Open any page, right click Inspect Element, close both windows. Lots of items will not be garbage collected (heap.numLiveObjects will be large). You can repeat and the number will continue to grow. InspectorController::m_scriptObject is never unprotected, because the call to JSObjectSetPrivate() in the InspectorController destructor causes unloading() to never call windowUnloading(). A Fix: In InspectorController.cpp, InspectorController destructor, move: m_client->inspectorDestroyed(); before: if (m_scriptContext) { and remove: m_client->closeWindow(); It seems to fix the leak and things seem to still work, but I've been playing with the WebKit code for less than a day, so who knows?
Created attachment 17312 [details] Patch
Comment on attachment 17312 [details] Patch r=me, but "Zero" should be "zero" in the changelog.
Landed in r27839. http://trac.webkit.org/projects/webkit/changeset/27839