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

Unified Diff: third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js

Issue 2286413003: DevTools: refactor DOMBreakpointsSidebarPane to use Map and Set (Closed)
Patch Set: Nit Created 4 years, 4 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
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/sources/debugger-breakpoints/dom-breakpoints.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js
diff --git a/third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js
index ad6cfe6c201a6d81d3ca7f92b5ca128d154e7f57..42654145de2d4c71d8d5678a69f01c64e2bd5682 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/components/DOMBreakpointsSidebarPane.js
@@ -39,7 +39,8 @@ WebInspector.DOMBreakpointsSidebarPane = function()
this._domBreakpointsSetting = WebInspector.settings.createLocalSetting("domBreakpoints", []);
this.listElement.classList.add("dom-breakpoints-list");
- this._breakpointElements = {};
+ /** @type {!Map<string, !Element>} */
+ this._breakpointElements = new Map();
this._breakpointTypes = {
SubtreeModified: "subtree-modified",
@@ -81,7 +82,7 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
*/
function toggleBreakpoint(type)
{
- if (!nodeBreakpoints[type])
+ if (!nodeBreakpoints.has(type))
this._setBreakpoint(node, type, true);
else
this._removeBreakpoint(node, type);
@@ -92,21 +93,21 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
for (var key in this._breakpointTypes) {
var type = this._breakpointTypes[key];
var label = this._contextMenuLabels[type];
- breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(this, type), nodeBreakpoints[type]);
+ breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(this, type), nodeBreakpoints.has(type));
}
},
/**
* @param {!WebInspector.DOMNode} node
- * @return {!Object<string, boolean>}
+ * @return {!Set<!DOMDebuggerAgent.DOMBreakpointType>}
*/
_nodeBreakpoints: function(node)
{
- var nodeBreakpoints = {};
- for (var id in this._breakpointElements) {
- var element = this._breakpointElements[id];
+ /** @type {!Set<!DOMDebuggerAgent.DOMBreakpointType>} */
+ var nodeBreakpoints = new Set();
+ for (var element of this._breakpointElements.values()) {
if (element._node === node && element._checkboxElement.checked)
- nodeBreakpoints[element._type] = true;
+ nodeBreakpoints.add(element._type);
}
return nodeBreakpoints;
},
@@ -117,8 +118,7 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
*/
hasBreakpoints: function(node)
{
- for (var id in this._breakpointElements) {
- var element = this._breakpointElements[id];
+ for (var element of this._breakpointElements.values()) {
if (element._node === node && element._checkboxElement.checked)
return true;
}
@@ -182,8 +182,7 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
*/
_removeBreakpointsForNode: function(node)
{
- for (var id in this._breakpointElements) {
- var element = this._breakpointElements[id];
+ for (var element of this._breakpointElements.values()) {
if (element._node === node)
this._removeBreakpoint(element._node, element._type);
}
@@ -197,10 +196,10 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
_setBreakpoint: function(node, type, enabled)
{
var breakpointId = this._createBreakpointId(node.id, type);
- var breakpointElement = this._breakpointElements[breakpointId];
+ var breakpointElement = this._breakpointElements.get(breakpointId);
if (!breakpointElement) {
breakpointElement = this._createBreakpointElement(node, type, enabled);
- this._breakpointElements[breakpointId] = breakpointElement;
+ this._breakpointElements.set(breakpointId, breakpointElement);
} else {
breakpointElement._checkboxElement.checked = enabled;
}
@@ -251,10 +250,8 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
_removeAllBreakpoints: function()
{
- for (var id in this._breakpointElements) {
- var element = this._breakpointElements[id];
+ for (var element of this._breakpointElements.values())
this._removeBreakpoint(element._node, element._type);
- }
this._saveBreakpoints();
},
@@ -265,12 +262,12 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
_removeBreakpoint: function(node, type)
{
var breakpointId = this._createBreakpointId(node.id, type);
- var element = this._breakpointElements[breakpointId];
+ var element = this._breakpointElements.get(breakpointId);
if (!element)
return;
this.removeListElement(element);
- delete this._breakpointElements[breakpointId];
+ this._breakpointElements.delete(breakpointId);
if (element._checkboxElement.checked)
node.target().domdebuggerAgent().removeDOMBreakpoint(node.id, type);
node.setMarker(WebInspector.DOMBreakpointsSidebarPane.Marker, this.hasBreakpoints(node) ? true : null);
@@ -333,7 +330,7 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
}
var auxData = details.auxData;
var breakpointId = this._createBreakpointId(auxData.nodeId, auxData.type);
lushnikov 2016/08/29 22:19:30 let's get rid of this _createBreakpointId in a fol
- var element = this._breakpointElements[breakpointId];
+ var element = this._breakpointElements.get(breakpointId);
if (!element)
return;
WebInspector.viewManager.showView("sources.domBreakpoints");
@@ -359,10 +356,8 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
if (breakpoint.url !== this._inspectedURL)
breakpoints.push(breakpoint);
}
- for (var id in this._breakpointElements) {
- var element = this._breakpointElements[id];
+ for (var element of this._breakpointElements.values())
breakpoints.push({ url: this._inspectedURL, path: element._node.path(), type: element._type, enabled: element._checkboxElement.checked });
- }
this._domBreakpointsSetting.set(breakpoints);
},
@@ -371,11 +366,12 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
*/
restoreBreakpoints: function(domDocument)
{
- this._breakpointElements = {};
+ this._breakpointElements.clear();
this.reset();
this._inspectedURL = domDocument.documentURL;
var domModel = domDocument.domModel();
- var pathToBreakpoints = {};
+ /** @type {!Map<string, !Array<!Object>>} */
chenwilliam 2016/08/29 20:10:43 I'm planning on improving this type annotation by
+ var pathToBreakpoints = new Map();
/**
* @param {string} path
@@ -388,7 +384,7 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
if (!node)
return;
- var breakpoints = pathToBreakpoints[path];
+ var breakpoints = pathToBreakpoints.get(path);
for (var i = 0; i < breakpoints.length; ++i)
this._setBreakpoint(node, breakpoints[i].type, breakpoints[i].enabled);
}
@@ -399,11 +395,11 @@ WebInspector.DOMBreakpointsSidebarPane.prototype = {
if (breakpoint.url !== this._inspectedURL)
continue;
var path = breakpoint.path;
- if (!pathToBreakpoints[path]) {
- pathToBreakpoints[path] = [];
+ if (!pathToBreakpoints.has(path)) {
+ pathToBreakpoints.set(path, []);
domModel.pushNodeByPathToFrontend(path, didPushNodeByPathToFrontend.bind(this, path));
}
- pathToBreakpoints[path].push(breakpoint);
+ pathToBreakpoints.get(path).push(breakpoint);
}
},
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/sources/debugger-breakpoints/dom-breakpoints.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698