Bug 927740 (part 2) - Make about:memory's "Minimize Memory Usage" button affect child processes, like the "GC" and "CC" buttons. r=khuey.

--HG--
extra : rebase_source : 555f0e6ca11caa73e33f48a941ee119181c28b74
This commit is contained in:
Nicholas Nethercote 2013-12-02 20:07:02 -08:00
parent 3ebd61539b
commit 57ebad82f8
2 changed files with 8 additions and 2 deletions

View File

@ -627,6 +627,7 @@ ContentParent::Init()
obs->AddObserver(this, "memory-pressure", false);
obs->AddObserver(this, "child-gc-request", false);
obs->AddObserver(this, "child-cc-request", false);
obs->AddObserver(this, "child-mmu-request", false);
obs->AddObserver(this, "last-pb-context-exited", false);
obs->AddObserver(this, "file-watcher-update", false);
#ifdef MOZ_WIDGET_GONK
@ -1008,6 +1009,7 @@ ContentParent::ActorDestroy(ActorDestroyReason why)
obs->RemoveObserver(static_cast<nsIObserver*>(this), NS_IPC_IOSERVICE_SET_OFFLINE_TOPIC);
obs->RemoveObserver(static_cast<nsIObserver*>(this), "child-gc-request");
obs->RemoveObserver(static_cast<nsIObserver*>(this), "child-cc-request");
obs->RemoveObserver(static_cast<nsIObserver*>(this), "child-mmu-request");
obs->RemoveObserver(static_cast<nsIObserver*>(this), "last-pb-context-exited");
obs->RemoveObserver(static_cast<nsIObserver*>(this), "file-watcher-update");
#ifdef MOZ_WIDGET_GONK
@ -1837,6 +1839,9 @@ ContentParent::Observe(nsISupports* aSubject,
else if (!strcmp(aTopic, "child-cc-request")){
unused << SendCycleCollect();
}
else if (!strcmp(aTopic, "child-mmu-request")){
unused << SendMinimizeMemoryUsage();
}
else if (!strcmp(aTopic, "last-pb-context-exited")) {
unused << SendLastPrivateDocShellDestroyed();
}

View File

@ -359,22 +359,23 @@ function onLoad()
function doGC()
{
Cu.forceGC();
Services.obs.notifyObservers(null, "child-gc-request", null);
Cu.forceGC();
updateMainAndFooter("Garbage collection completed", HIDE_FOOTER);
}
function doCC()
{
Services.obs.notifyObservers(null, "child-cc-request", null);
window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindowUtils)
.cycleCollect();
Services.obs.notifyObservers(null, "child-cc-request", null);
updateMainAndFooter("Cycle collection completed", HIDE_FOOTER);
}
function doMMU()
{
Services.obs.notifyObservers(null, "child-mmu-request", null);
gMgr.minimizeMemoryUsage(
() => updateMainAndFooter("Memory minimization completed", HIDE_FOOTER));
}