Looking closer, I see we [add the blocker with a string literal](https://searchfox.org/mozilla-central/source/dom/serviceworkers/ServiceWorkerRegistrar.cpp#1111): ``` rv = GetShutdownPhase()->AddBlocker( this, NS_LITERAL_STRING(__FILE__), __LINE__, NS_LITERAL_STRING("ServiceWorkerRegistrar: Flushing data")); ``` but [the only place we have the same literal](https://searchfox.org/mozilla-central/source/dom/serviceworkers/ServiceWorkerRegistrar.cpp#1187) is the function ``` NS_IMETHODIMP ServiceWorkerRegistrar::GetName(nsAString& aName) { aName = NS_LITERAL_STRING("ServiceWorkerRegistrar: Flushing data"); return NS_OK; } ``` which seems to have some overloads. I have no evidence, that this causes the crash, but in any case we should use the `GetName` function instead of literals anyway, I'd say.
Bug 1602393 Comment 7 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Looking closer, I see we [add the blocker with a string literal](https://searchfox.org/mozilla-central/source/dom/serviceworkers/ServiceWorkerRegistrar.cpp#1111): ``` rv = GetShutdownPhase()->AddBlocker( this, NS_LITERAL_STRING(__FILE__), __LINE__, NS_LITERAL_STRING("ServiceWorkerRegistrar: Flushing data")); ``` but [the only place we have the same literal](https://searchfox.org/mozilla-central/source/dom/serviceworkers/ServiceWorkerRegistrar.cpp#1187) is the function ``` NS_IMETHODIMP ServiceWorkerRegistrar::GetName(nsAString& aName) { aName = NS_LITERAL_STRING("ServiceWorkerRegistrar: Flushing data"); return NS_OK; } ``` which seems to have some overloads. I have no evidence, that this causes the crash, but in any case we should use the `GetName` function to add the blocker instead of literals anyway, I'd say.