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

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

Issue 2389883003: DevTools: hoist debugger paused reason to top (Closed)
Patch Set: fix height of exceptions Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 this._breakpointTypes = { 45 this._breakpointTypes = {
46 SubtreeModified: "subtree-modified", 46 SubtreeModified: "subtree-modified",
47 AttributeModified: "attribute-modified", 47 AttributeModified: "attribute-modified",
48 NodeRemoved: "node-removed" 48 NodeRemoved: "node-removed"
49 }; 49 };
50 this._breakpointTypeLabels = {}; 50 this._breakpointTypeLabels = {};
51 this._breakpointTypeLabels[this._breakpointTypes.SubtreeModified] = WebInspe ctor.UIString("Subtree Modified"); 51 this._breakpointTypeLabels[this._breakpointTypes.SubtreeModified] = WebInspe ctor.UIString("Subtree Modified");
52 this._breakpointTypeLabels[this._breakpointTypes.AttributeModified] = WebIns pector.UIString("Attribute Modified"); 52 this._breakpointTypeLabels[this._breakpointTypes.AttributeModified] = WebIns pector.UIString("Attribute Modified");
53 this._breakpointTypeLabels[this._breakpointTypes.NodeRemoved] = WebInspector .UIString("Node Removed"); 53 this._breakpointTypeLabels[this._breakpointTypes.NodeRemoved] = WebInspector .UIString("Node Removed");
54 54
55 this._contextMenuLabels = {}; 55 this._breakpointTypeNouns = {};
56 this._contextMenuLabels[this._breakpointTypes.SubtreeModified] = WebInspecto r.UIString.capitalize("Subtree ^modifications"); 56 this._breakpointTypeNouns[this._breakpointTypes.SubtreeModified] = WebInspec tor.UIString.capitalize("Subtree ^modifications");
57 this._contextMenuLabels[this._breakpointTypes.AttributeModified] = WebInspec tor.UIString.capitalize("Attributes ^modifications"); 57 this._breakpointTypeNouns[this._breakpointTypes.AttributeModified] = WebInsp ector.UIString.capitalize("Attribute ^modifications");
58 this._contextMenuLabels[this._breakpointTypes.NodeRemoved] = WebInspector.UI String.capitalize("Node ^removal"); 58 this._breakpointTypeNouns[this._breakpointTypes.NodeRemoved] = WebInspector. UIString.capitalize("Node ^removal");
59 59
60 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspec tor.DOMModel.Events.NodeRemoved, this._nodeRemoved, this); 60 WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspec tor.DOMModel.Events.NodeRemoved, this._nodeRemoved, this);
61 this._update(); 61 this._update();
62 } 62 }
63 63
64 WebInspector.DOMBreakpointsSidebarPane.Marker = "breakpoint-marker"; 64 WebInspector.DOMBreakpointsSidebarPane.Marker = "breakpoint-marker";
65 65
66 WebInspector.DOMBreakpointsSidebarPane.prototype = { 66 WebInspector.DOMBreakpointsSidebarPane.prototype = {
67 /** 67 /**
68 * @param {!WebInspector.DOMNode} node 68 * @param {!WebInspector.DOMNode} node
(...skipping 16 matching lines...) Expand all
85 if (!nodeBreakpoints.has(type)) 85 if (!nodeBreakpoints.has(type))
86 this._setBreakpoint(node, type, true); 86 this._setBreakpoint(node, type, true);
87 else 87 else
88 this._removeBreakpoint(node, type); 88 this._removeBreakpoint(node, type);
89 this._saveBreakpoints(); 89 this._saveBreakpoints();
90 } 90 }
91 91
92 var breakpointsMenu = createSubMenu ? contextMenu.appendSubMenuItem(WebI nspector.UIString("Break on...")) : contextMenu; 92 var breakpointsMenu = createSubMenu ? contextMenu.appendSubMenuItem(WebI nspector.UIString("Break on...")) : contextMenu;
93 for (var key in this._breakpointTypes) { 93 for (var key in this._breakpointTypes) {
94 var type = this._breakpointTypes[key]; 94 var type = this._breakpointTypes[key];
95 var label = this._contextMenuLabels[type]; 95 var label = this._breakpointTypeNouns[type];
96 breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(this , type), nodeBreakpoints.has(type)); 96 breakpointsMenu.appendCheckboxItem(label, toggleBreakpoint.bind(this , type), nodeBreakpoints.has(type));
97 } 97 }
98 }, 98 },
99 99
100 /** 100 /**
101 * @param {!WebInspector.DOMNode} node 101 * @param {!WebInspector.DOMNode} node
102 * @return {!Set<!DOMDebuggerAgent.DOMBreakpointType>} 102 * @return {!Set<!DOMDebuggerAgent.DOMBreakpointType>}
103 */ 103 */
104 _nodeBreakpoints: function(node) 104 _nodeBreakpoints: function(node)
105 { 105 {
(...skipping 16 matching lines...) Expand all
122 if (element._node === node && element._checkboxElement.checked) 122 if (element._node === node && element._checkboxElement.checked)
123 return true; 123 return true;
124 } 124 }
125 return false; 125 return false;
126 }, 126 },
127 127
128 /** 128 /**
129 * @param {!WebInspector.DebuggerPausedDetails} details 129 * @param {!WebInspector.DebuggerPausedDetails} details
130 * @return {!Element} 130 * @return {!Element}
131 */ 131 */
132 createBreakpointHitStatusMessage: function(details) 132 createBreakpointHitMainMessage: function(details)
133 { 133 {
134 var auxData = /** @type {!Object} */ (details.auxData); 134 var auxData = /** @type {!Object} */ (details.auxData);
135 var message = "Paused on a \"%s\" breakpoint."; 135 var message = String.sprintf("Paused on %s", this._breakpointTypeNouns[a uxData["type"]]);
136 var substitutions = []; 136 var element = createElement("div");
137 substitutions.push(this._breakpointTypeLabels[auxData["type"]]); 137 element.textContent = message;
138 return element;
139 },
138 140
141 /**
142 * @param {!WebInspector.DebuggerPausedDetails} details
143 * @return {!Element}
144 */
145 createBreakpointHitSubMessage: function(details)
lushnikov 2016/10/12 21:26:58 you don't need two functions - let's keep them as
luoe 2016/10/13 00:36:58 Done.
146 {
147 var element = createElement("div");
139 var domModel = WebInspector.DOMModel.fromTarget(details.target()); 148 var domModel = WebInspector.DOMModel.fromTarget(details.target());
140 if (!domModel) 149 if (!domModel)
141 return WebInspector.formatLocalized(message, substitutions); 150 return element;
142 151
152 var auxData = /** @type {!Object} */ (details.auxData);
143 var node = domModel.nodeForId(auxData["nodeId"]); 153 var node = domModel.nodeForId(auxData["nodeId"]);
144 var linkifiedNode = WebInspector.DOMPresentationUtils.linkifyNodeReferen ce(node); 154 var linkifiedNode = WebInspector.DOMPresentationUtils.linkifyNodeReferen ce(node);
145 substitutions.push(linkifiedNode); 155 element.appendChild(linkifiedNode);
146 156
147 var targetNode = auxData["targetNodeId"] ? domModel.nodeForId(auxData["t argetNodeId"]) : null; 157 var targetNode = auxData["targetNodeId"] ? domModel.nodeForId(auxData["t argetNodeId"]) : null;
148 var targetNodeLink = targetNode ? WebInspector.DOMPresentationUtils.link ifyNodeReference(targetNode) : ""; 158 var targetNodeLink = targetNode ? WebInspector.DOMPresentationUtils.link ifyNodeReference(targetNode) : "";
149 159 var message;
150 if (auxData.type === this._breakpointTypes.SubtreeModified) { 160 if (auxData.type === this._breakpointTypes.SubtreeModified) {
151 if (auxData["insertion"]) { 161 if (auxData["insertion"])
152 if (targetNode !== node) { 162 message = targetNode === node ? "Child %s added" : "Descendant % s added";
153 message = "Paused on a \"%s\" breakpoint set on %s, because a new child was added to its descendant %s."; 163 else
154 substitutions.push(targetNodeLink); 164 message = "Descendant %s removed";
155 } else 165 element.appendChild(createElement("br"));
156 message = "Paused on a \"%s\" breakpoint set on %s, because a new child was added to that node."; 166 element.appendChild(WebInspector.formatLocalized(message, [targetNod eLink]));
157 } else {
158 message = "Paused on a \"%s\" breakpoint set on %s, because its descendant %s was removed.";
159 substitutions.push(targetNodeLink);
160 }
161 } else {
162 message = "Paused on a \"%s\" breakpoint set on %s.";
163 } 167 }
164 168 return element;
165 return WebInspector.formatLocalized(message, substitutions);
166 }, 169 },
167 170
168 _nodeRemoved: function(event) 171 _nodeRemoved: function(event)
169 { 172 {
170 var node = event.data.node; 173 var node = event.data.node;
171 this._removeBreakpointsForNode(event.data.node); 174 this._removeBreakpointsForNode(event.data.node);
172 var children = node.children(); 175 var children = node.children();
173 if (!children) 176 if (!children)
174 return; 177 return;
175 for (var i = 0; i < children.length; ++i) 178 for (var i = 0; i < children.length; ++i)
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 pane.show(this.element); 428 pane.show(this.element);
426 }, 429 },
427 430
428 __proto__: WebInspector.VBox.prototype 431 __proto__: WebInspector.VBox.prototype
429 } 432 }
430 433
431 /** 434 /**
432 * @type {!WebInspector.DOMBreakpointsSidebarPane} 435 * @type {!WebInspector.DOMBreakpointsSidebarPane}
433 */ 436 */
434 WebInspector.domBreakpointsSidebarPane; 437 WebInspector.domBreakpointsSidebarPane;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698