Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(292)

Unified Diff: third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js

Issue 2301023003: DevTools: fix disposing of main debugger script mappings (Closed)
Patch Set: main debugger mappings do not leak memory Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js b/third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js
index 5a8e683a125c049e693a88650522eefc79974d61..b608b13e512f2c56cb3167c4245f4025b4e71bb6 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/ResourceScriptMapping.js
@@ -40,9 +40,6 @@ WebInspector.ResourceScriptMapping = function(debuggerModel, workspace, networkM
{
this._target = debuggerModel.target();
this._debuggerModel = debuggerModel;
- this._workspace = workspace;
- this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded, this._uiSourceCodeAdded, this);
- this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this);
this._networkMapping = networkMapping;
this._debuggerWorkspaceBinding = debuggerWorkspaceBinding;
/** @type {!Array.<!WebInspector.UISourceCode>} */
@@ -51,7 +48,11 @@ WebInspector.ResourceScriptMapping = function(debuggerModel, workspace, networkM
/** @type {!Map.<!WebInspector.UISourceCode, !WebInspector.ResourceScriptFile>} */
this._uiSourceCodeToScriptFile = new Map();
- debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this);
+ this._eventListeners = [
+ debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this),
+ workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded, this._uiSourceCodeAdded, this),
+ workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this)
+ ];
}
WebInspector.ResourceScriptMapping.prototype = {
@@ -267,11 +268,9 @@ WebInspector.ResourceScriptMapping.prototype = {
dispose: function()
{
+ WebInspector.EventTarget.removeEventListeners(this._eventListeners);
this._debuggerReset();
- this._workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeAdded, this._uiSourceCodeAdded, this);
- this._workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this);
}
-
}
/**

Powered by Google App Engine
This is Rietveld 408576698