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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js

Issue 2900843002: DevTools: remove BreakpointsSidebarPaneBase and breakpointsList.css (Closed)
Patch Set: split breakpointsList.css Created 3 years, 6 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 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @implements {UI.ContextFlavorListener} 5 * @implements {UI.ContextFlavorListener}
6 * @implements {UI.ToolbarItem.ItemsProvider} 6 * @implements {UI.ToolbarItem.ItemsProvider}
7 * @unrestricted 7 * @unrestricted
8 */ 8 */
9 Sources.XHRBreakpointsSidebarPane = class extends Components.BreakpointsSidebarP aneBase { 9 Sources.XHRBreakpointsSidebarPane = class extends UI.VBox {
10 constructor() { 10 constructor() {
11 super(); 11 super(true);
12 this.registerRequiredCSS('sources/xhrBreakpointsSidebarPane.css');
13
14 this._listElement = this.contentElement.createChild('div', 'breakpoint-list hidden');
15 this._emptyElement = this.contentElement.createChild('div', 'gray-info-messa ge');
16 this._emptyElement.textContent = Common.UIString('No Breakpoints');
17
12 /** @type {!Map.<string, !Element>} */ 18 /** @type {!Map.<string, !Element>} */
13 this._breakpointElements = new Map(); 19 this._breakpointElements = new Map();
14 20
15 this._addButton = new UI.ToolbarButton(Common.UIString('Add breakpoint'), 'l argeicon-add'); 21 this._addButton = new UI.ToolbarButton(Common.UIString('Add breakpoint'), 'l argeicon-add');
16 this._addButton.addEventListener(UI.ToolbarButton.Events.Click, this._addBut tonClicked.bind(this)); 22 this._addButton.addEventListener(UI.ToolbarButton.Events.Click, this._addBut tonClicked.bind(this));
17 23
18 this.emptyElement.addEventListener('contextmenu', this._emptyElementContextM enu.bind(this), true); 24 this._emptyElement.addEventListener('contextmenu', this._emptyElementContext Menu.bind(this), true);
19 this._restoreBreakpoints(); 25 this._restoreBreakpoints();
20 this._update(); 26 this._update();
21 } 27 }
22 28
23 /** 29 /**
24 * @override 30 * @override
25 * @return {!Array<!UI.ToolbarItem>} 31 * @return {!Array<!UI.ToolbarItem>}
26 */ 32 */
27 toolbarItems() { 33 toolbarItems() {
28 return [this._addButton]; 34 return [this._addButton];
29 } 35 }
30 36
31 _emptyElementContextMenu(event) { 37 _emptyElementContextMenu(event) {
32 var contextMenu = new UI.ContextMenu(event); 38 var contextMenu = new UI.ContextMenu(event);
33 contextMenu.appendItem(Common.UIString.capitalize('Add ^breakpoint'), this._ addButtonClicked.bind(this)); 39 contextMenu.appendItem(Common.UIString.capitalize('Add ^breakpoint'), this._ addButtonClicked.bind(this));
34 contextMenu.show(); 40 contextMenu.show();
35 } 41 }
36 42
37 _addButtonClicked() { 43 _addButtonClicked() {
38 UI.viewManager.showView('sources.xhrBreakpoints'); 44 UI.viewManager.showView('sources.xhrBreakpoints');
39 45
40 var inputElementContainer = createElementWithClass('p', 'breakpoint-conditio n'); 46 var inputElementContainer = createElementWithClass('p', 'breakpoint-conditio n');
41 inputElementContainer.textContent = Common.UIString('Break when URL contains :'); 47 inputElementContainer.textContent = Common.UIString('Break when URL contains :');
42 48
43 var inputElement = inputElementContainer.createChild('span'); 49 var inputElement = inputElementContainer.createChild('span');
44 inputElement.id = 'breakpoint-condition-input'; 50 inputElement.id = 'breakpoint-condition-input';
45 this.addListElement(inputElementContainer, /** @type {?Element} */ (this.lis tElement.firstChild)); 51 this._addListElement(inputElementContainer, /** @type {?Element} */ (this._l istElement.firstChild));
46 52
47 /** 53 /**
48 * @param {boolean} accept 54 * @param {boolean} accept
49 * @param {!Element} e 55 * @param {!Element} e
50 * @param {string} text 56 * @param {string} text
51 * @this {Sources.XHRBreakpointsSidebarPane} 57 * @this {Sources.XHRBreakpointsSidebarPane}
52 */ 58 */
53 function finishEditing(accept, e, text) { 59 function finishEditing(accept, e, text) {
54 this.removeListElement(inputElementContainer); 60 this._removeListElement(inputElementContainer);
55 if (accept) { 61 if (accept) {
56 SDK.domDebuggerManager.addXHRBreakpoint(text, true); 62 SDK.domDebuggerManager.addXHRBreakpoint(text, true);
57 this._setBreakpoint(text, true); 63 this._setBreakpoint(text, true);
58 } 64 }
59 } 65 }
60 66
61 var config = new UI.InplaceEditor.Config(finishEditing.bind(this, true), fin ishEditing.bind(this, false)); 67 var config = new UI.InplaceEditor.Config(finishEditing.bind(this, true), fin ishEditing.bind(this, false));
62 UI.InplaceEditor.startEditing(inputElement, config); 68 UI.InplaceEditor.startEditing(inputElement, config);
63 } 69 }
64 70
65 /** 71 /**
66 * @param {string} url 72 * @param {string} url
67 * @param {boolean} enabled 73 * @param {boolean} enabled
68 */ 74 */
69 _setBreakpoint(url, enabled) { 75 _setBreakpoint(url, enabled) {
70 if (this._breakpointElements.has(url)) { 76 if (this._breakpointElements.has(url)) {
71 this._breakpointElements.get(url)._checkboxElement.checked = enabled; 77 this._breakpointElements.get(url)._checkboxElement.checked = enabled;
72 return; 78 return;
73 } 79 }
74 80
75 var element = createElement('li'); 81 var element = createElementWithClass('div', 'breakpoint-entry');
76 element._url = url; 82 element._url = url;
77 element.addEventListener('contextmenu', this._contextMenu.bind(this, url), t rue); 83 element.addEventListener('contextmenu', this._contextMenu.bind(this, url), t rue);
78 84
79 var title = url ? Common.UIString('URL contains "%s"', url) : Common.UIStrin g('Any XHR'); 85 var title = url ? Common.UIString('URL contains "%s"', url) : Common.UIStrin g('Any XHR');
80 var label = UI.CheckboxLabel.create(title, enabled); 86 var label = UI.CheckboxLabel.create(title, enabled);
81 element.appendChild(label); 87 element.appendChild(label);
82 label.checkboxElement.addEventListener('click', this._checkboxClicked.bind(t his, url), false); 88 label.checkboxElement.addEventListener('click', this._checkboxClicked.bind(t his, url), false);
83 element._checkboxElement = label.checkboxElement; 89 element._checkboxElement = label.checkboxElement;
84 90
85 label.classList.add('cursor-auto'); 91 label.classList.add('cursor-auto');
86 label.textElement.addEventListener('dblclick', this._labelClicked.bind(this, url), false); 92 label.textElement.addEventListener('dblclick', this._labelClicked.bind(this, url), false);
87 93
88 var currentElement = /** @type {?Element} */ (this.listElement.firstChild); 94 var currentElement = /** @type {?Element} */ (this._listElement.firstChild);
89 while (currentElement) { 95 while (currentElement) {
90 if (currentElement._url && currentElement._url < element._url) 96 if (currentElement._url && currentElement._url < element._url)
91 break; 97 break;
92 currentElement = /** @type {?Element} */ (currentElement.nextSibling); 98 currentElement = /** @type {?Element} */ (currentElement.nextSibling);
93 } 99 }
94 this.addListElement(element, currentElement); 100 this._addListElement(element, currentElement);
95 this._breakpointElements.set(url, element); 101 this._breakpointElements.set(url, element);
96 } 102 }
97 103
98 /** 104 /**
99 * @param {string} url 105 * @param {string} url
100 */ 106 */
101 _removeBreakpoint(url) { 107 _removeBreakpoint(url) {
102 var element = this._breakpointElements.get(url); 108 var element = this._breakpointElements.get(url);
103 if (!element) 109 if (!element)
104 return; 110 return;
105 111
106 this.removeListElement(element); 112 this._removeListElement(element);
107 this._breakpointElements.delete(url); 113 this._breakpointElements.delete(url);
108 } 114 }
109 115
116 /**
117 * @param {!Element} element
118 * @param {?Node} beforeNode
119 */
120 _addListElement(element, beforeNode) {
121 this._listElement.insertBefore(element, beforeNode);
122 this._emptyElement.classList.add('hidden');
123 this._listElement.classList.remove('hidden');
124 }
125
126 _removeListElement(element) {
dgozman 2017/05/31 17:36:33 JSDoc please.
luoe 2017/05/31 18:22:36 Done, thanks.
127 this._listElement.removeChild(element);
128 if (!this._listElement.firstChild) {
129 this._emptyElement.classList.remove('hidden');
130 this._listElement.classList.add('hidden');
131 }
132 }
133
110 _contextMenu(url, event) { 134 _contextMenu(url, event) {
111 var contextMenu = new UI.ContextMenu(event); 135 var contextMenu = new UI.ContextMenu(event);
112 136
113 /** 137 /**
114 * @this {Sources.XHRBreakpointsSidebarPane} 138 * @this {Sources.XHRBreakpointsSidebarPane}
115 */ 139 */
116 function removeBreakpoint() { 140 function removeBreakpoint() {
117 SDK.domDebuggerManager.removeXHRBreakpoint(url); 141 SDK.domDebuggerManager.removeXHRBreakpoint(url);
118 this._removeBreakpoint(url); 142 this._removeBreakpoint(url);
119 } 143 }
(...skipping 16 matching lines...) Expand all
136 } 160 }
137 161
138 _checkboxClicked(url, event) { 162 _checkboxClicked(url, event) {
139 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked); 163 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked);
140 } 164 }
141 165
142 _labelClicked(url) { 166 _labelClicked(url) {
143 var element = this._breakpointElements.get(url) || null; 167 var element = this._breakpointElements.get(url) || null;
144 var inputElement = createElementWithClass('span', 'breakpoint-condition'); 168 var inputElement = createElementWithClass('span', 'breakpoint-condition');
145 inputElement.textContent = url; 169 inputElement.textContent = url;
146 this.listElement.insertBefore(inputElement, element); 170 this._listElement.insertBefore(inputElement, element);
147 element.classList.add('hidden'); 171 element.classList.add('hidden');
148 172
149 /** 173 /**
150 * @param {boolean} accept 174 * @param {boolean} accept
151 * @param {!Element} e 175 * @param {!Element} e
152 * @param {string} text 176 * @param {string} text
153 * @this {Sources.XHRBreakpointsSidebarPane} 177 * @this {Sources.XHRBreakpointsSidebarPane}
154 */ 178 */
155 function finishEditing(accept, e, text) { 179 function finishEditing(accept, e, text) {
156 this.removeListElement(inputElement); 180 this._removeListElement(inputElement);
157 if (accept) { 181 if (accept) {
158 SDK.domDebuggerManager.removeXHRBreakpoint(url); 182 SDK.domDebuggerManager.removeXHRBreakpoint(url);
159 this._removeBreakpoint(url); 183 this._removeBreakpoint(url);
160 var enabled = element ? element._checkboxElement.checked : true; 184 var enabled = element ? element._checkboxElement.checked : true;
161 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled); 185 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled);
162 this._setBreakpoint(text, enabled); 186 this._setBreakpoint(text, enabled);
163 } else { 187 } else {
164 element.classList.remove('hidden'); 188 element.classList.remove('hidden');
165 } 189 }
166 } 190 }
(...skipping 27 matching lines...) Expand all
194 element.classList.add('breakpoint-hit'); 218 element.classList.add('breakpoint-hit');
195 this._highlightedElement = element; 219 this._highlightedElement = element;
196 } 220 }
197 221
198 _restoreBreakpoints() { 222 _restoreBreakpoints() {
199 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints(); 223 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints();
200 for (var url of breakpoints.keys()) 224 for (var url of breakpoints.keys())
201 this._setBreakpoint(url, breakpoints.get(url)); 225 this._setBreakpoint(url, breakpoints.get(url));
202 } 226 }
203 }; 227 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698