зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1371119 - Remove watchdog observers in XPCJSContext destructor (r=mccr8)
MozReview-Commit-ID: 5tj1hbom6zR
This commit is contained in:
Родитель
2bb98fc53f
Коммит
0b17d548b6
|
@ -256,13 +256,17 @@ class WatchdogManager : public nsIObserver
|
|||
// thread, which isn't great to do in a destructor. So we require
|
||||
// consumers to shut it down manually before releasing it.
|
||||
MOZ_ASSERT(!mWatchdog);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
void Shutdown()
|
||||
{
|
||||
mozilla::Preferences::RemoveObserver(this, "dom.use_watchdog");
|
||||
mozilla::Preferences::RemoveObserver(this, PREF_MAX_SCRIPT_RUN_TIME_CONTENT);
|
||||
mozilla::Preferences::RemoveObserver(this, PREF_MAX_SCRIPT_RUN_TIME_CHROME);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
NS_IMETHOD Observe(nsISupports* aSubject, const char* aTopic,
|
||||
const char16_t* aData) override
|
||||
{
|
||||
|
@ -714,6 +718,7 @@ XPCJSContext::~XPCJSContext()
|
|||
|
||||
if (mWatchdogManager->GetWatchdog())
|
||||
mWatchdogManager->StopWatchdog();
|
||||
mWatchdogManager->Shutdown();
|
||||
|
||||
if (mCallContext)
|
||||
mCallContext->SystemIsBeingShutDown();
|
||||
|
|
Загрузка…
Ссылка в новой задаче