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

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: rebase again 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', 'breakpoint-con dition-input');
44 inputElement.id = 'breakpoint-condition-input'; 50 this._addListElement(inputElementContainer, /** @type {?Element} */ (this._l istElement.firstChild));
45 this.addListElement(inputElementContainer, /** @type {?Element} */ (this.lis tElement.firstChild));
46 51
47 /** 52 /**
48 * @param {boolean} accept 53 * @param {boolean} accept
49 * @param {!Element} e 54 * @param {!Element} e
50 * @param {string} text 55 * @param {string} text
51 * @this {Sources.XHRBreakpointsSidebarPane} 56 * @this {Sources.XHRBreakpointsSidebarPane}
52 */ 57 */
53 function finishEditing(accept, e, text) { 58 function finishEditing(accept, e, text) {
54 this.removeListElement(inputElementContainer); 59 this._removeListElement(inputElementContainer);
55 if (accept) { 60 if (accept) {
56 SDK.domDebuggerManager.addXHRBreakpoint(text, true); 61 SDK.domDebuggerManager.addXHRBreakpoint(text, true);
57 this._setBreakpoint(text, true); 62 this._setBreakpoint(text, true);
58 } 63 }
59 } 64 }
60 65
61 var config = new UI.InplaceEditor.Config(finishEditing.bind(this, true), fin ishEditing.bind(this, false)); 66 var config = new UI.InplaceEditor.Config(finishEditing.bind(this, true), fin ishEditing.bind(this, false));
62 UI.InplaceEditor.startEditing(inputElement, config); 67 UI.InplaceEditor.startEditing(inputElement, config);
63 } 68 }
64 69
65 /** 70 /**
66 * @param {string} url 71 * @param {string} url
67 * @param {boolean} enabled 72 * @param {boolean} enabled
68 */ 73 */
69 _setBreakpoint(url, enabled) { 74 _setBreakpoint(url, enabled) {
70 if (this._breakpointElements.has(url)) { 75 if (this._breakpointElements.has(url)) {
71 this._breakpointElements.get(url)._checkboxElement.checked = enabled; 76 this._breakpointElements.get(url)._checkboxElement.checked = enabled;
72 return; 77 return;
73 } 78 }
74 79
75 var element = createElement('li'); 80 var element = createElementWithClass('div', 'breakpoint-entry');
76 element._url = url; 81 element._url = url;
77 element.addEventListener('contextmenu', this._contextMenu.bind(this, url), t rue); 82 element.addEventListener('contextmenu', this._contextMenu.bind(this, url), t rue);
78 83
79 var title = url ? Common.UIString('URL contains "%s"', url) : Common.UIStrin g('Any XHR'); 84 var title = url ? Common.UIString('URL contains "%s"', url) : Common.UIStrin g('Any XHR');
80 var label = UI.CheckboxLabel.create(title, enabled); 85 var label = UI.CheckboxLabel.create(title, enabled);
81 element.appendChild(label); 86 element.appendChild(label);
82 label.checkboxElement.addEventListener('click', this._checkboxClicked.bind(t his, url), false); 87 label.checkboxElement.addEventListener('click', this._checkboxClicked.bind(t his, url), false);
83 element._checkboxElement = label.checkboxElement; 88 element._checkboxElement = label.checkboxElement;
84 89
85 label.classList.add('cursor-auto'); 90 label.classList.add('cursor-auto');
86 label.textElement.addEventListener('dblclick', this._labelClicked.bind(this, url), false); 91 label.textElement.addEventListener('dblclick', this._labelClicked.bind(this, url), false);
87 92
88 var currentElement = /** @type {?Element} */ (this.listElement.firstChild); 93 var currentElement = /** @type {?Element} */ (this._listElement.firstChild);
89 while (currentElement) { 94 while (currentElement) {
90 if (currentElement._url && currentElement._url < element._url) 95 if (currentElement._url && currentElement._url < element._url)
91 break; 96 break;
92 currentElement = /** @type {?Element} */ (currentElement.nextSibling); 97 currentElement = /** @type {?Element} */ (currentElement.nextSibling);
93 } 98 }
94 this.addListElement(element, currentElement); 99 this._addListElement(element, currentElement);
95 this._breakpointElements.set(url, element); 100 this._breakpointElements.set(url, element);
96 } 101 }
97 102
98 /** 103 /**
99 * @param {string} url 104 * @param {string} url
100 */ 105 */
101 _removeBreakpoint(url) { 106 _removeBreakpoint(url) {
102 var element = this._breakpointElements.get(url); 107 var element = this._breakpointElements.get(url);
103 if (!element) 108 if (!element)
104 return; 109 return;
105 110
106 this.removeListElement(element); 111 this._removeListElement(element);
107 this._breakpointElements.delete(url); 112 this._breakpointElements.delete(url);
108 } 113 }
109 114
115 /**
116 * @param {!Element} element
117 * @param {?Node} beforeNode
118 */
119 _addListElement(element, beforeNode) {
120 this._listElement.insertBefore(element, beforeNode);
121 this._emptyElement.classList.add('hidden');
122 this._listElement.classList.remove('hidden');
123 }
124
125 /**
126 * @param {!Element} element
127 */
128 _removeListElement(element) {
129 this._listElement.removeChild(element);
130 if (!this._listElement.firstChild) {
131 this._emptyElement.classList.remove('hidden');
132 this._listElement.classList.add('hidden');
133 }
134 }
135
110 _contextMenu(url, event) { 136 _contextMenu(url, event) {
111 var contextMenu = new UI.ContextMenu(event); 137 var contextMenu = new UI.ContextMenu(event);
112 138
113 /** 139 /**
114 * @this {Sources.XHRBreakpointsSidebarPane} 140 * @this {Sources.XHRBreakpointsSidebarPane}
115 */ 141 */
116 function removeBreakpoint() { 142 function removeBreakpoint() {
117 SDK.domDebuggerManager.removeXHRBreakpoint(url); 143 SDK.domDebuggerManager.removeXHRBreakpoint(url);
118 this._removeBreakpoint(url); 144 this._removeBreakpoint(url);
119 } 145 }
(...skipping 16 matching lines...) Expand all
136 } 162 }
137 163
138 _checkboxClicked(url, event) { 164 _checkboxClicked(url, event) {
139 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked); 165 SDK.domDebuggerManager.toggleXHRBreakpoint(url, event.target.checked);
140 } 166 }
141 167
142 _labelClicked(url) { 168 _labelClicked(url) {
143 var element = this._breakpointElements.get(url) || null; 169 var element = this._breakpointElements.get(url) || null;
144 var inputElement = createElementWithClass('span', 'breakpoint-condition'); 170 var inputElement = createElementWithClass('span', 'breakpoint-condition');
145 inputElement.textContent = url; 171 inputElement.textContent = url;
146 this.listElement.insertBefore(inputElement, element); 172 this._listElement.insertBefore(inputElement, element);
147 element.classList.add('hidden'); 173 element.classList.add('hidden');
148 174
149 /** 175 /**
150 * @param {boolean} accept 176 * @param {boolean} accept
151 * @param {!Element} e 177 * @param {!Element} e
152 * @param {string} text 178 * @param {string} text
153 * @this {Sources.XHRBreakpointsSidebarPane} 179 * @this {Sources.XHRBreakpointsSidebarPane}
154 */ 180 */
155 function finishEditing(accept, e, text) { 181 function finishEditing(accept, e, text) {
156 this.removeListElement(inputElement); 182 this._removeListElement(inputElement);
157 if (accept) { 183 if (accept) {
158 SDK.domDebuggerManager.removeXHRBreakpoint(url); 184 SDK.domDebuggerManager.removeXHRBreakpoint(url);
159 this._removeBreakpoint(url); 185 this._removeBreakpoint(url);
160 var enabled = element ? element._checkboxElement.checked : true; 186 var enabled = element ? element._checkboxElement.checked : true;
161 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled); 187 SDK.domDebuggerManager.addXHRBreakpoint(text, enabled);
162 this._setBreakpoint(text, enabled); 188 this._setBreakpoint(text, enabled);
163 } else { 189 } else {
164 element.classList.remove('hidden'); 190 element.classList.remove('hidden');
165 } 191 }
166 } 192 }
(...skipping 27 matching lines...) Expand all
194 element.classList.add('breakpoint-hit'); 220 element.classList.add('breakpoint-hit');
195 this._highlightedElement = element; 221 this._highlightedElement = element;
196 } 222 }
197 223
198 _restoreBreakpoints() { 224 _restoreBreakpoints() {
199 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints(); 225 var breakpoints = SDK.domDebuggerManager.xhrBreakpoints();
200 for (var url of breakpoints.keys()) 226 for (var url of breakpoints.keys())
201 this._setBreakpoint(url, breakpoints.get(url)); 227 this._setBreakpoint(url, breakpoints.get(url));
202 } 228 }
203 }; 229 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698