Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @constructor | 32 * @constructor |
| 33 * @extends {WebInspector.BreakpointsSidebarPaneBase} | 33 * @extends {WebInspector.BreakpointsSidebarPaneBase} |
| 34 */ | 34 */ |
| 35 WebInspector.DOMBreakpointsSidebarPane = function() | 35 WebInspector.DOMBreakpointsSidebarPane = function() |
| 36 { | 36 { |
| 37 WebInspector.BreakpointsSidebarPaneBase.call(this, WebInspector.UIString("DO M Breakpoints")); | 37 WebInspector.BreakpointsSidebarPaneBase.call(this, WebInspector.UIString("DO M Breakpoints")); |
| 38 this._domBreakpointsSetting = WebInspector.settings.createLocalSetting("domB reakpoints", []); | |
| 39 this.listElement.classList.add("dom-breakpoints-list"); | 38 this.listElement.classList.add("dom-breakpoints-list"); |
| 40 | 39 |
| 41 this._breakpointElements = {}; | 40 this._breakpointElements = {}; |
|
lushnikov
2016/08/11 18:40:18
let's use Map and type-annotate it
chenwilliam
2016/08/17 01:20:11
Done.
| |
| 42 | 41 |
| 43 this._breakpointTypes = { | 42 this._breakpointTypes = { |
| 44 SubtreeModified: "subtree-modified", | 43 SubtreeModified: "subtree-modified", |
| 45 AttributeModified: "attribute-modified", | 44 AttributeModified: "attribute-modified", |
| 46 NodeRemoved: "node-removed" | 45 NodeRemoved: "node-removed" |
| 47 }; | 46 }; |
| 47 | |
| 48 this._breakpointTypeLabels = {}; | 48 this._breakpointTypeLabels = {}; |
| 49 this._breakpointTypeLabels[this._breakpointTypes.SubtreeModified] = WebInspe ctor.UIString("Subtree Modified"); | 49 this._breakpointTypeLabels[this._breakpointTypes.SubtreeModified] = WebInspe ctor.UIString("Subtree Modified"); |
| 50 this._breakpointTypeLabels[this._breakpointTypes.AttributeModified] = WebIns pector.UIString("Attribute Modified"); | 50 this._breakpointTypeLabels[this._breakpointTypes.AttributeModified] = WebIns pector.UIString("Attribute Modified"); |
| 51 this._breakpointTypeLabels[this._breakpointTypes.NodeRemoved] = WebInspector .UIString("Node Removed"); | 51 this._breakpointTypeLabels[this._breakpointTypes.NodeRemoved] = WebInspector .UIString("Node Removed"); |
| 52 | 52 |
| 53 this._contextMenuLabels = {}; | 53 this._contextMenuLabels = {}; |
| 54 this._contextMenuLabels[this._breakpointTypes.SubtreeModified] = WebInspecto r.UIString.capitalize("Subtree ^modifications"); | 54 this._contextMenuLabels[this._breakpointTypes.SubtreeModified] = WebInspecto r.UIString.capitalize("Subtree ^modifications"); |
| 55 this._contextMenuLabels[this._breakpointTypes.AttributeModified] = WebInspec tor.UIString.capitalize("Attributes ^modifications"); | 55 this._contextMenuLabels[this._breakpointTypes.AttributeModified] = WebInspec tor.UIString.capitalize("Attributes ^modifications"); |
| 56 this._contextMenuLabels[this._breakpointTypes.NodeRemoved] = WebInspector.UI String.capitalize("Node ^removal"); | 56 this._contextMenuLabels[this._breakpointTypes.NodeRemoved] = WebInspector.UI String.capitalize("Node ^removal"); |
| 57 | 57 |
| 58 WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Event s.InspectedURLChanged, this._inspectedURLChanged, this); | 58 WebInspector.domBreakpointManager.addEventListener(WebInspector.DOMBreakpoin tManager.Events.BreakpointsChanged, this._reloadBreakpointElements, this); |
| 59 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspec tor.DOMModel.Events.NodeRemoved, this._nodeRemoved, this); | |
| 60 } | 59 } |
| 61 | 60 |
| 62 WebInspector.DOMBreakpointsSidebarPane.Marker = "breakpoint-marker"; | |
| 63 | |
| 64 WebInspector.DOMBreakpointsSidebarPane.prototype = { | 61 WebInspector.DOMBreakpointsSidebarPane.prototype = { |
| 65 _inspectedURLChanged: function(event) | |
| 66 { | |
| 67 var target = /** @type {!WebInspector.Target} */ (event.data); | |
| 68 if (target !== WebInspector.targetManager.mainTarget()) | |
| 69 return; | |
| 70 this._breakpointElements = {}; | |
| 71 this.reset(); | |
| 72 this._inspectedURL = target.inspectedURL().removeURLFragment(); | |
| 73 }, | |
| 74 | |
| 75 /** | 62 /** |
| 76 * @param {!WebInspector.DOMNode} node | 63 * @param {!WebInspector.DOMNode} node |
| 77 * @param {!WebInspector.ContextMenu} contextMenu | 64 * @param {!WebInspector.ContextMenu} contextMenu |
| 78 * @param {boolean} createSubMenu | 65 * @param {boolean} createSubMenu |
| 79 */ | 66 */ |
| 80 populateNodeContextMenu: function(node, contextMenu, createSubMenu) | 67 populateNodeContextMenu: function(node, contextMenu, createSubMenu) |
|
lushnikov
2016/08/11 18:40:18
let's move this to the elements's panel
chenwilliam
2016/08/17 01:20:11
Done.
| |
| 81 { | 68 { |
| 82 if (node.pseudoType()) | 69 if (node.pseudoType()) |
| 83 return; | 70 return; |
| 84 | 71 |
| 85 var nodeBreakpoints = this._nodeBreakpoints(node); | 72 var nodeBreakpoints = WebInspector.domBreakpointManager.nodeBreakpoints( node); |
| 86 | 73 |
| 87 /** | 74 /** |
| 88 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | 75 * @param {!DOMDebuggerAgent.DOMBreakpointType} type |
| 89 * @this {WebInspector.DOMBreakpointsSidebarPane} | |
| 90 */ | 76 */ |
| 91 function toggleBreakpoint(type) | 77 function toggleBreakpoint(type) |
| 92 { | 78 { |
| 93 if (!nodeBreakpoints[type]) | 79 WebInspector.domBreakpointManager.toggleBreakpoint(node, type); |
| 94 this._setBreakpoint(node, type, true); | |
| 95 else | |
| 96 this._removeBreakpoint(node, type); | |
| 97 this._saveBreakpoints(); | |
| 98 } | 80 } |
| 99 | 81 |
| 100 var breakpointsMenu = createSubMenu ? contextMenu.appendSubMenuItem(WebI nspector.UIString("Break on...")) : contextMenu; | 82 var breakpointsMenu = createSubMenu ? contextMenu.appendSubMenuItem(WebI nspector.UIString("Break on...")) : contextMenu; |
| 101 for (var key in this._breakpointTypes) { | 83 for (var key in this._breakpointTypes) { |
| 102 var type = this._breakpointTypes[key]; | 84 var type = this._breakpointTypes[key]; |
| 103 var label = this._contextMenuLabels[type]; | 85 var label = this._contextMenuLabels[type]; |
| 104 breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(this , type), nodeBreakpoints[type]); | 86 breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(null , type), nodeBreakpoints[type]); |
| 105 } | 87 } |
| 106 }, | 88 }, |
| 107 | 89 |
| 108 /** | 90 /** |
| 109 * @param {!WebInspector.DOMNode} node | |
| 110 * @return {!Object<string, boolean>} | |
| 111 */ | |
| 112 _nodeBreakpoints: function(node) | |
| 113 { | |
| 114 var nodeBreakpoints = {}; | |
| 115 for (var id in this._breakpointElements) { | |
| 116 var element = this._breakpointElements[id]; | |
| 117 if (element._node === node && element._checkboxElement.checked) | |
| 118 nodeBreakpoints[element._type] = true; | |
| 119 } | |
| 120 return nodeBreakpoints; | |
| 121 }, | |
| 122 | |
| 123 /** | |
| 124 * @param {!WebInspector.DOMNode} node | |
| 125 * @return {boolean} | |
| 126 */ | |
| 127 hasBreakpoints: function(node) | |
| 128 { | |
| 129 for (var id in this._breakpointElements) { | |
| 130 var element = this._breakpointElements[id]; | |
| 131 if (element._node === node && element._checkboxElement.checked) | |
| 132 return true; | |
| 133 } | |
| 134 return false; | |
| 135 }, | |
| 136 | |
| 137 /** | |
| 138 * @param {!WebInspector.DebuggerPausedDetails} details | 91 * @param {!WebInspector.DebuggerPausedDetails} details |
| 139 * @return {!Element} | 92 * @return {!Element} |
| 140 */ | 93 */ |
| 141 createBreakpointHitStatusMessage: function(details) | 94 createBreakpointHitStatusMessage: function(details) |
| 142 { | 95 { |
| 143 var auxData = /** @type {!Object} */ (details.auxData); | 96 var auxData = /** @type {!Object} */ (details.auxData); |
| 144 var message = "Paused on a \"%s\" breakpoint."; | 97 var message = "Paused on a \"%s\" breakpoint."; |
| 145 var substitutions = []; | 98 var substitutions = []; |
| 146 substitutions.push(this._breakpointTypeLabels[auxData["type"]]); | 99 substitutions.push(this._breakpointTypeLabels[auxData["type"]]); |
| 147 | 100 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 167 message = "Paused on a \"%s\" breakpoint set on %s, because its descendant %s was removed."; | 120 message = "Paused on a \"%s\" breakpoint set on %s, because its descendant %s was removed."; |
| 168 substitutions.push(targetNodeLink); | 121 substitutions.push(targetNodeLink); |
| 169 } | 122 } |
| 170 } else { | 123 } else { |
| 171 message = "Paused on a \"%s\" breakpoint set on %s."; | 124 message = "Paused on a \"%s\" breakpoint set on %s."; |
| 172 } | 125 } |
| 173 | 126 |
| 174 return WebInspector.formatLocalized(message, substitutions); | 127 return WebInspector.formatLocalized(message, substitutions); |
| 175 }, | 128 }, |
| 176 | 129 |
| 177 _nodeRemoved: function(event) | 130 _reloadBreakpointElements: function() |
| 178 { | 131 { |
| 179 var node = event.data.node; | 132 this._breakpointElements = {}; |
| 180 this._removeBreakpointsForNode(event.data.node); | 133 this.reset(); |
| 181 var children = node.children(); | 134 var breakpoints = WebInspector.domBreakpointManager.domBreakpoints(); |
| 182 if (!children) | 135 for (var breakpoint of breakpoints.values()) { |
| 183 return; | 136 var id = this._createBreakpointId(breakpoint.node.id, breakpoint.typ e); |
| 184 for (var i = 0; i < children.length; ++i) | 137 this._breakpointElements[id] = this._createBreakpointElement(breakpo int.node, breakpoint.type, breakpoint.enabled); |
| 185 this._removeBreakpointsForNode(children[i]); | |
| 186 this._saveBreakpoints(); | |
| 187 }, | |
| 188 | |
| 189 /** | |
| 190 * @param {!WebInspector.DOMNode} node | |
| 191 */ | |
| 192 _removeBreakpointsForNode: function(node) | |
| 193 { | |
| 194 for (var id in this._breakpointElements) { | |
| 195 var element = this._breakpointElements[id]; | |
| 196 if (element._node === node) | |
| 197 this._removeBreakpoint(element._node, element._type); | |
| 198 } | 138 } |
| 199 }, | 139 }, |
| 200 | 140 |
| 201 /** | 141 /** |
| 202 * @param {!WebInspector.DOMNode} node | |
| 203 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | |
| 204 * @param {boolean} enabled | |
| 205 */ | |
| 206 _setBreakpoint: function(node, type, enabled) | |
| 207 { | |
| 208 var breakpointId = this._createBreakpointId(node.id, type); | |
| 209 var breakpointElement = this._breakpointElements[breakpointId]; | |
| 210 if (!breakpointElement) { | |
| 211 breakpointElement = this._createBreakpointElement(node, type, enable d); | |
| 212 this._breakpointElements[breakpointId] = breakpointElement; | |
| 213 } else { | |
| 214 breakpointElement._checkboxElement.checked = enabled; | |
| 215 } | |
| 216 if (enabled) | |
| 217 node.target().domdebuggerAgent().setDOMBreakpoint(node.id, type); | |
| 218 node.setMarker(WebInspector.DOMBreakpointsSidebarPane.Marker, true); | |
| 219 }, | |
| 220 | |
| 221 /** | |
| 222 * @param {!WebInspector.DOMNode} node | 142 * @param {!WebInspector.DOMNode} node |
| 223 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | 143 * @param {!DOMDebuggerAgent.DOMBreakpointType} type |
| 224 * @param {boolean} enabled | 144 * @param {boolean} enabled |
| 225 */ | 145 */ |
| 226 _createBreakpointElement: function(node, type, enabled) | 146 _createBreakpointElement: function(node, type, enabled) |
| 227 { | 147 { |
| 228 var element = createElement("li"); | 148 var element = createElement("li"); |
| 229 element._node = node; | 149 element._node = node; |
| 230 element._type = type; | 150 element._type = type; |
| 231 element.addEventListener("contextmenu", this._contextMenu.bind(this, nod e, type), true); | 151 element.addEventListener("contextmenu", this._contextMenu.bind(this, nod e, type), true); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 250 var currentElement = this.listElement.firstChild; | 170 var currentElement = this.listElement.firstChild; |
| 251 while (currentElement) { | 171 while (currentElement) { |
| 252 if (currentElement._type && currentElement._type < element._type) | 172 if (currentElement._type && currentElement._type < element._type) |
| 253 break; | 173 break; |
| 254 currentElement = currentElement.nextSibling; | 174 currentElement = currentElement.nextSibling; |
| 255 } | 175 } |
| 256 this.addListElement(element, currentElement); | 176 this.addListElement(element, currentElement); |
| 257 return element; | 177 return element; |
| 258 }, | 178 }, |
| 259 | 179 |
| 260 _removeAllBreakpoints: function() | |
| 261 { | |
| 262 for (var id in this._breakpointElements) { | |
| 263 var element = this._breakpointElements[id]; | |
| 264 this._removeBreakpoint(element._node, element._type); | |
| 265 } | |
| 266 this._saveBreakpoints(); | |
| 267 }, | |
| 268 | |
| 269 /** | 180 /** |
| 270 * @param {!WebInspector.DOMNode} node | 181 * @param {!WebInspector.DOMNode} node |
| 271 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | 182 * @param {!DOMDebuggerAgent.DOMBreakpointType} type |
| 183 * @param {!Event} event | |
| 272 */ | 184 */ |
| 273 _removeBreakpoint: function(node, type) | 185 _checkboxClicked: function(node, type, event) |
| 274 { | 186 { |
| 275 var breakpointId = this._createBreakpointId(node.id, type); | 187 WebInspector.domBreakpointManager.setBreakpoint(node, type, event.target ["checkboxElement"].checked); |
| 276 var element = this._breakpointElements[breakpointId]; | |
| 277 if (!element) | |
| 278 return; | |
| 279 | |
| 280 this.removeListElement(element); | |
| 281 delete this._breakpointElements[breakpointId]; | |
| 282 if (element._checkboxElement.checked) | |
| 283 node.target().domdebuggerAgent().removeDOMBreakpoint(node.id, type); | |
| 284 node.setMarker(WebInspector.DOMBreakpointsSidebarPane.Marker, this.hasBr eakpoints(node) ? true : null); | |
| 285 }, | 188 }, |
| 286 | 189 |
| 287 /** | 190 /** |
| 288 * @param {!WebInspector.DOMNode} node | 191 * @param {!WebInspector.DOMNode} node |
| 289 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | 192 * @param {!DOMDebuggerAgent.DOMBreakpointType} type |
| 290 * @param {!Event} event | 193 * @param {!Event} event |
| 291 */ | 194 */ |
| 292 _contextMenu: function(node, type, event) | 195 _contextMenu: function(node, type, event) |
| 293 { | 196 { |
| 294 var contextMenu = new WebInspector.ContextMenu(event); | 197 var contextMenu = new WebInspector.ContextMenu(event); |
| 295 | 198 var removeBreakpoint = () => WebInspector.domBreakpointManager.removeBre akpoint(node, type); |
| 296 /** | 199 contextMenu.appendItem(WebInspector.UIString.capitalize("Remove ^breakpo int"), removeBreakpoint); |
| 297 * @this {WebInspector.DOMBreakpointsSidebarPane} | 200 var removeAllBreakpoints = () => WebInspector.domBreakpointManager.remov eAllBreakpoints(); |
| 298 */ | 201 contextMenu.appendItem(WebInspector.UIString.capitalize("Remove ^all DOM breakpoints"), removeAllBreakpoints); |
| 299 function removeBreakpoint() | |
| 300 { | |
| 301 this._removeBreakpoint(node, type); | |
| 302 this._saveBreakpoints(); | |
| 303 } | |
| 304 contextMenu.appendItem(WebInspector.UIString.capitalize("Remove ^breakpo int"), removeBreakpoint.bind(this)); | |
| 305 contextMenu.appendItem(WebInspector.UIString.capitalize("Remove ^all DOM breakpoints"), this._removeAllBreakpoints.bind(this)); | |
| 306 contextMenu.show(); | 202 contextMenu.show(); |
| 307 }, | 203 }, |
| 308 | 204 |
| 309 /** | |
| 310 * @param {!WebInspector.DOMNode} node | |
| 311 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | |
| 312 * @param {!Event} event | |
| 313 */ | |
| 314 _checkboxClicked: function(node, type, event) | |
| 315 { | |
| 316 if (event.target.checked) | |
| 317 node.target().domdebuggerAgent().setDOMBreakpoint(node.id, type); | |
| 318 else | |
| 319 node.target().domdebuggerAgent().removeDOMBreakpoint(node.id, type); | |
| 320 this._saveBreakpoints(); | |
| 321 }, | |
| 322 | |
| 323 highlightBreakpoint: function(auxData) | 205 highlightBreakpoint: function(auxData) |
| 324 { | 206 { |
| 325 var breakpointId = this._createBreakpointId(auxData.nodeId, auxData.type ); | 207 var breakpointId = this._createBreakpointId(auxData.nodeId, auxData.type ); |
| 326 var element = this._breakpointElements[breakpointId]; | 208 var element = this._breakpointElements[breakpointId]; |
| 327 if (!element) | 209 if (!element) |
| 328 return; | 210 return; |
| 329 this.revealView(); | 211 this.revealView(); |
| 330 element.classList.add("breakpoint-hit"); | 212 element.classList.add("breakpoint-hit"); |
| 331 this._highlightedElement = element; | 213 this._highlightedElement = element; |
| 332 }, | 214 }, |
| 333 | 215 |
| 334 clearBreakpointHighlight: function() | 216 clearBreakpointHighlight: function() |
| 335 { | 217 { |
| 336 if (this._highlightedElement) { | 218 if (this._highlightedElement) { |
| 337 this._highlightedElement.classList.remove("breakpoint-hit"); | 219 this._highlightedElement.classList.remove("breakpoint-hit"); |
| 338 delete this._highlightedElement; | 220 delete this._highlightedElement; |
| 339 } | 221 } |
| 340 }, | 222 }, |
| 341 | 223 |
| 342 /** | 224 /** |
| 343 * @param {number} nodeId | 225 * @param {number} nodeId |
| 344 * @param {!DOMDebuggerAgent.DOMBreakpointType} type | 226 * @param {!DOMDebuggerAgent.DOMBreakpointType} type |
| 227 * @return {string} | |
| 345 */ | 228 */ |
| 346 _createBreakpointId: function(nodeId, type) | 229 _createBreakpointId: function(nodeId, type) |
| 347 { | 230 { |
| 348 return nodeId + ":" + type; | 231 return `${nodeId}:${type}`; |
|
lushnikov
2016/08/11 18:40:18
nit: The former was easier to understand
chenwilliam
2016/08/17 01:20:11
Done.
| |
| 349 }, | |
| 350 | |
| 351 _saveBreakpoints: function() | |
| 352 { | |
| 353 var breakpoints = []; | |
| 354 var storedBreakpoints = this._domBreakpointsSetting.get(); | |
| 355 for (var i = 0; i < storedBreakpoints.length; ++i) { | |
| 356 var breakpoint = storedBreakpoints[i]; | |
| 357 if (breakpoint.url !== this._inspectedURL) | |
| 358 breakpoints.push(breakpoint); | |
| 359 } | |
| 360 for (var id in this._breakpointElements) { | |
| 361 var element = this._breakpointElements[id]; | |
| 362 breakpoints.push({ url: this._inspectedURL, path: element._node.path (), type: element._type, enabled: element._checkboxElement.checked }); | |
| 363 } | |
| 364 this._domBreakpointsSetting.set(breakpoints); | |
| 365 }, | |
| 366 | |
| 367 /** | |
| 368 * @param {!WebInspector.DOMModel} domModel | |
| 369 */ | |
| 370 restoreBreakpoints: function(domModel) | |
| 371 { | |
| 372 var pathToBreakpoints = {}; | |
| 373 | |
| 374 /** | |
| 375 * @param {string} path | |
| 376 * @param {?DOMAgent.NodeId} nodeId | |
| 377 * @this {WebInspector.DOMBreakpointsSidebarPane} | |
| 378 */ | |
| 379 function didPushNodeByPathToFrontend(path, nodeId) | |
| 380 { | |
| 381 var node = nodeId ? domModel.nodeForId(nodeId) : null; | |
| 382 if (!node) | |
| 383 return; | |
| 384 | |
| 385 var breakpoints = pathToBreakpoints[path]; | |
| 386 for (var i = 0; i < breakpoints.length; ++i) | |
| 387 this._setBreakpoint(node, breakpoints[i].type, breakpoints[i].en abled); | |
| 388 } | |
| 389 | |
| 390 var breakpoints = this._domBreakpointsSetting.get(); | |
| 391 for (var i = 0; i < breakpoints.length; ++i) { | |
| 392 var breakpoint = breakpoints[i]; | |
| 393 if (breakpoint.url !== this._inspectedURL) | |
| 394 continue; | |
| 395 var path = breakpoint.path; | |
| 396 if (!pathToBreakpoints[path]) { | |
| 397 pathToBreakpoints[path] = []; | |
| 398 domModel.pushNodeByPathToFrontend(path, didPushNodeByPathToFront end.bind(this, path)); | |
| 399 } | |
| 400 pathToBreakpoints[path].push(breakpoint); | |
| 401 } | |
| 402 }, | 232 }, |
| 403 | 233 |
| 404 __proto__: WebInspector.BreakpointsSidebarPaneBase.prototype | 234 __proto__: WebInspector.BreakpointsSidebarPaneBase.prototype |
| 405 } | 235 } |
| 406 | 236 |
| 407 /** | 237 /** |
| 408 * @constructor | 238 * @constructor |
| 409 * @extends {WebInspector.VBox} | 239 * @extends {WebInspector.VBox} |
| 410 */ | 240 */ |
| 411 WebInspector.DOMBreakpointsSidebarPane.Proxy = function() | 241 WebInspector.DOMBreakpointsSidebarPane.Proxy = function() |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 423 pane.show(this.element); | 253 pane.show(this.element); |
| 424 }, | 254 }, |
| 425 | 255 |
| 426 __proto__: WebInspector.VBox.prototype | 256 __proto__: WebInspector.VBox.prototype |
| 427 } | 257 } |
| 428 | 258 |
| 429 /** | 259 /** |
| 430 * @type {!WebInspector.DOMBreakpointsSidebarPane} | 260 * @type {!WebInspector.DOMBreakpointsSidebarPane} |
| 431 */ | 261 */ |
| 432 WebInspector.domBreakpointsSidebarPane; | 262 WebInspector.domBreakpointsSidebarPane; |
| OLD | NEW |