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

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: remove the base, and also rebase 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('components/breakpointsList.css');
13
14 this._listElement = createElementWithClass('ol', 'breakpoint-list');
dgozman 2017/05/30 21:53:39 ol -> div
luoe 2017/05/31 03:09:24 Done.
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 = createElement('li');
dgozman 2017/05/30 21:53:39 li -> div
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 if (this._emptyElement.parentElement === this.contentElement)
123 this.contentElement.replaceChild(this._listElement, this._emptyElement);
dgozman 2017/05/30 21:53:39 Toggle hidden class.
luoe 2017/05/31 03:09:24 Done.
124 }
125
126 _removeListElement(element) {
127 this._listElement.removeChild(element);
128 if (!this._listElement.firstChild && this._listElement.parentElement === thi s.contentElement)
129 this.contentElement.replaceChild(this._emptyElement, this._listElement);
130 }
131
110 _contextMenu(url, event) { 132 _contextMenu(url, event) {
111 var contextMenu = new UI.ContextMenu(event); 133 var contextMenu = new UI.ContextMenu(event);
112 134
113 /** 135 /**
114 * @this {Sources.XHRBreakpointsSidebarPane} 136 * @this {Sources.XHRBreakpointsSidebarPane}
115 */ 137 */
116 function removeBreakpoint() { 138 function removeBreakpoint() {
117 SDK.domDebuggerManager.removeXHRBreakpoint(url); 139 SDK.domDebuggerManager.removeXHRBreakpoint(url);
118 this._removeBreakpoint(url); 140 this._removeBreakpoint(url);
119 } 141 }
(...skipping 16 matching lines...) Expand all
136 } 158 }
137 159
138 _checkboxClicked(url, event) { 160 _checkboxClicked(url, event) {
139 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked); 161 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked);
140 } 162 }
141 163
142 _labelClicked(url) { 164 _labelClicked(url) {
143 var element = this._breakpointElements.get(url) || null; 165 var element = this._breakpointElements.get(url) || null;
144 var inputElement = createElementWithClass('span', 'breakpoint-condition'); 166 var inputElement = createElementWithClass('span', 'breakpoint-condition');
145 inputElement.textContent = url; 167 inputElement.textContent = url;
146 this.listElement.insertBefore(inputElement, element); 168 this._listElement.insertBefore(inputElement, element);
147 element.classList.add('hidden'); 169 element.classList.add('hidden');
148 170
149 /** 171 /**
150 * @param {boolean} accept 172 * @param {boolean} accept
151 * @param {!Element} e 173 * @param {!Element} e
152 * @param {string} text 174 * @param {string} text
153 * @this {Sources.XHRBreakpointsSidebarPane} 175 * @this {Sources.XHRBreakpointsSidebarPane}
154 */ 176 */
155 function finishEditing(accept, e, text) { 177 function finishEditing(accept, e, text) {
156 this.removeListElement(inputElement); 178 this._removeListElement(inputElement);
157 if (accept) { 179 if (accept) {
158 SDK.domDebuggerManager.removeXHRBreakpoint(url); 180 SDK.domDebuggerManager.removeXHRBreakpoint(url);
159 this._removeBreakpoint(url); 181 this._removeBreakpoint(url);
160 var enabled = element ? element._checkboxElement.checked : true; 182 var enabled = element ? element._checkboxElement.checked : true;
161 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled); 183 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled);
162 this._setBreakpoint(text, enabled); 184 this._setBreakpoint(text, enabled);
163 } else { 185 } else {
164 element.classList.remove('hidden'); 186 element.classList.remove('hidden');
165 } 187 }
166 } 188 }
(...skipping 27 matching lines...) Expand all
194 element.classList.add('breakpoint-hit'); 216 element.classList.add('breakpoint-hit');
195 this._highlightedElement = element; 217 this._highlightedElement = element;
196 } 218 }
197 219
198 _restoreBreakpoints() { 220 _restoreBreakpoints() {
199 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints(); 221 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints();
200 for (var url of breakpoints.keys()) 222 for (var url of breakpoints.keys())
201 this._setBreakpoint(url, breakpoints.get(url)); 223 this._setBreakpoint(url, breakpoints.get(url));
202 } 224 }
203 }; 225 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698