Index: third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js |
index 5c27e8c7d524fe37b57d78014872696918e2e6a5..02138a8e4822b3eb59e8c4489a08395f2e5bf975 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sources/XHRBreakpointsSidebarPane.js |
@@ -1,277 +1,257 @@ |
// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
- |
/** |
- * @constructor |
- * @extends {WebInspector.BreakpointsSidebarPaneBase} |
* @implements {WebInspector.ContextFlavorListener} |
* @implements {WebInspector.TargetManager.Observer} |
* @implements {WebInspector.ToolbarItem.ItemsProvider} |
+ * @unrestricted |
*/ |
-WebInspector.XHRBreakpointsSidebarPane = function() |
-{ |
- WebInspector.BreakpointsSidebarPaneBase.call(this); |
- this._xhrBreakpointsSetting = WebInspector.settings.createLocalSetting("xhrBreakpoints", []); |
+WebInspector.XHRBreakpointsSidebarPane = class extends WebInspector.BreakpointsSidebarPaneBase { |
+ constructor() { |
+ super(); |
+ this._xhrBreakpointsSetting = WebInspector.settings.createLocalSetting('xhrBreakpoints', []); |
/** @type {!Map.<string, !Element>} */ |
this._breakpointElements = new Map(); |
- this._addButton = new WebInspector.ToolbarButton(WebInspector.UIString("Add breakpoint"), "add-toolbar-item"); |
- this._addButton.addEventListener("click", this._addButtonClicked.bind(this)); |
+ this._addButton = new WebInspector.ToolbarButton(WebInspector.UIString('Add breakpoint'), 'add-toolbar-item'); |
+ this._addButton.addEventListener('click', this._addButtonClicked.bind(this)); |
- this.emptyElement.addEventListener("contextmenu", this._emptyElementContextMenu.bind(this), true); |
+ this.emptyElement.addEventListener('contextmenu', this._emptyElementContextMenu.bind(this), true); |
WebInspector.targetManager.observeTargets(this, WebInspector.Target.Capability.Browser); |
this._update(); |
-}; |
- |
-WebInspector.XHRBreakpointsSidebarPane.prototype = { |
- /** |
- * @override |
- * @param {!WebInspector.Target} target |
- */ |
- targetAdded: function(target) |
- { |
- this._restoreBreakpoints(target); |
- }, |
- |
- /** |
- * @override |
- * @param {!WebInspector.Target} target |
- */ |
- targetRemoved: function(target) { }, |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetAdded(target) { |
+ this._restoreBreakpoints(target); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetRemoved(target) { |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {!Array<!WebInspector.ToolbarItem>} |
+ */ |
+ toolbarItems() { |
+ return [this._addButton]; |
+ } |
+ |
+ _emptyElementContextMenu(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString.capitalize('Add ^breakpoint'), this._addButtonClicked.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ _addButtonClicked(event) { |
+ if (event) |
+ event.consume(); |
+ |
+ WebInspector.viewManager.showView('sources.xhrBreakpoints'); |
+ |
+ var inputElementContainer = createElementWithClass('p', 'breakpoint-condition'); |
+ inputElementContainer.textContent = WebInspector.UIString('Break when URL contains:'); |
+ |
+ var inputElement = inputElementContainer.createChild('span', 'editing'); |
+ inputElement.id = 'breakpoint-condition-input'; |
+ this.addListElement(inputElementContainer, /** @type {?Element} */ (this.listElement.firstChild)); |
/** |
- * @override |
- * @return {!Array<!WebInspector.ToolbarItem>} |
+ * @param {boolean} accept |
+ * @param {!Element} e |
+ * @param {string} text |
+ * @this {WebInspector.XHRBreakpointsSidebarPane} |
*/ |
- toolbarItems: function() |
- { |
- return [this._addButton]; |
- }, |
- |
- _emptyElementContextMenu: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString.capitalize("Add ^breakpoint"), this._addButtonClicked.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _addButtonClicked: function(event) |
- { |
- if (event) |
- event.consume(); |
- |
- WebInspector.viewManager.showView("sources.xhrBreakpoints"); |
- |
- var inputElementContainer = createElementWithClass("p", "breakpoint-condition"); |
- inputElementContainer.textContent = WebInspector.UIString("Break when URL contains:"); |
- |
- var inputElement = inputElementContainer.createChild("span", "editing"); |
- inputElement.id = "breakpoint-condition-input"; |
- this.addListElement(inputElementContainer, /** @type {?Element} */ (this.listElement.firstChild)); |
- |
- /** |
- * @param {boolean} accept |
- * @param {!Element} e |
- * @param {string} text |
- * @this {WebInspector.XHRBreakpointsSidebarPane} |
- */ |
- function finishEditing(accept, e, text) |
- { |
- this.removeListElement(inputElementContainer); |
- if (accept) { |
- this._setBreakpoint(text, true); |
- this._saveBreakpoints(); |
- } |
- } |
- |
- var config = new WebInspector.InplaceEditor.Config(finishEditing.bind(this, true), finishEditing.bind(this, false)); |
- WebInspector.InplaceEditor.startEditing(inputElement, config); |
- }, |
+ function finishEditing(accept, e, text) { |
+ this.removeListElement(inputElementContainer); |
+ if (accept) { |
+ this._setBreakpoint(text, true); |
+ this._saveBreakpoints(); |
+ } |
+ } |
+ |
+ var config = new WebInspector.InplaceEditor.Config(finishEditing.bind(this, true), finishEditing.bind(this, false)); |
+ WebInspector.InplaceEditor.startEditing(inputElement, config); |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @param {boolean} enabled |
+ * @param {!WebInspector.Target=} target |
+ */ |
+ _setBreakpoint(url, enabled, target) { |
+ if (enabled) |
+ this._updateBreakpointOnTarget(url, true, target); |
+ |
+ if (this._breakpointElements.has(url)) { |
+ this._breakpointElements.get(url)._checkboxElement.checked = enabled; |
+ return; |
+ } |
+ |
+ var element = createElement('li'); |
+ element._url = url; |
+ element.addEventListener('contextmenu', this._contextMenu.bind(this, url), true); |
+ |
+ var title = url ? WebInspector.UIString('URL contains "%s"', url) : WebInspector.UIString('Any XHR'); |
+ var label = createCheckboxLabel(title, enabled); |
+ element.appendChild(label); |
+ label.checkboxElement.addEventListener('click', this._checkboxClicked.bind(this, url), false); |
+ element._checkboxElement = label.checkboxElement; |
+ |
+ label.textElement.classList.add('cursor-auto'); |
+ label.textElement.addEventListener('dblclick', this._labelClicked.bind(this, url), false); |
+ |
+ var currentElement = /** @type {?Element} */ (this.listElement.firstChild); |
+ while (currentElement) { |
+ if (currentElement._url && currentElement._url < element._url) |
+ break; |
+ currentElement = /** @type {?Element} */ (currentElement.nextSibling); |
+ } |
+ this.addListElement(element, currentElement); |
+ this._breakpointElements.set(url, element); |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @param {!WebInspector.Target=} target |
+ */ |
+ _removeBreakpoint(url, target) { |
+ var element = this._breakpointElements.get(url); |
+ if (!element) |
+ return; |
+ |
+ this.removeListElement(element); |
+ this._breakpointElements.delete(url); |
+ if (element._checkboxElement.checked) |
+ this._updateBreakpointOnTarget(url, false, target); |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @param {boolean} enable |
+ * @param {!WebInspector.Target=} target |
+ */ |
+ _updateBreakpointOnTarget(url, enable, target) { |
+ var targets = target ? [target] : WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
+ for (target of targets) { |
+ if (enable) |
+ target.domdebuggerAgent().setXHRBreakpoint(url); |
+ else |
+ target.domdebuggerAgent().removeXHRBreakpoint(url); |
+ } |
+ } |
+ |
+ _contextMenu(url, event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
/** |
- * @param {string} url |
- * @param {boolean} enabled |
- * @param {!WebInspector.Target=} target |
+ * @this {WebInspector.XHRBreakpointsSidebarPane} |
*/ |
- _setBreakpoint: function(url, enabled, target) |
- { |
- if (enabled) |
- this._updateBreakpointOnTarget(url, true, target); |
- |
- if (this._breakpointElements.has(url)) { |
- this._breakpointElements.get(url)._checkboxElement.checked = enabled; |
- return; |
- } |
- |
- var element = createElement("li"); |
- element._url = url; |
- element.addEventListener("contextmenu", this._contextMenu.bind(this, url), true); |
- |
- var title = url ? WebInspector.UIString("URL contains \"%s\"", url) : WebInspector.UIString("Any XHR"); |
- var label = createCheckboxLabel(title, enabled); |
- element.appendChild(label); |
- label.checkboxElement.addEventListener("click", this._checkboxClicked.bind(this, url), false); |
- element._checkboxElement = label.checkboxElement; |
- |
- label.textElement.classList.add("cursor-auto"); |
- label.textElement.addEventListener("dblclick", this._labelClicked.bind(this, url), false); |
- |
- var currentElement = /** @type {?Element} */ (this.listElement.firstChild); |
- while (currentElement) { |
- if (currentElement._url && currentElement._url < element._url) |
- break; |
- currentElement = /** @type {?Element} */ (currentElement.nextSibling); |
- } |
- this.addListElement(element, currentElement); |
- this._breakpointElements.set(url, element); |
- }, |
+ function removeBreakpoint() { |
+ this._removeBreakpoint(url); |
+ this._saveBreakpoints(); |
+ } |
/** |
- * @param {string} url |
- * @param {!WebInspector.Target=} target |
+ * @this {WebInspector.XHRBreakpointsSidebarPane} |
*/ |
- _removeBreakpoint: function(url, target) |
- { |
- var element = this._breakpointElements.get(url); |
- if (!element) |
- return; |
- |
- this.removeListElement(element); |
- this._breakpointElements.delete(url); |
- if (element._checkboxElement.checked) |
- this._updateBreakpointOnTarget(url, false, target); |
- }, |
+ function removeAllBreakpoints() { |
+ for (var url of this._breakpointElements.keys()) |
+ this._removeBreakpoint(url); |
+ this._saveBreakpoints(); |
+ } |
+ var removeAllTitle = WebInspector.UIString.capitalize('Remove ^all ^breakpoints'); |
+ |
+ contextMenu.appendItem(WebInspector.UIString.capitalize('Add ^breakpoint'), this._addButtonClicked.bind(this)); |
+ contextMenu.appendItem(WebInspector.UIString.capitalize('Remove ^breakpoint'), removeBreakpoint.bind(this)); |
+ contextMenu.appendItem(removeAllTitle, removeAllBreakpoints.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ _checkboxClicked(url, event) { |
+ this._updateBreakpointOnTarget(url, event.target.checked); |
+ this._saveBreakpoints(); |
+ } |
+ |
+ _labelClicked(url) { |
+ var element = this._breakpointElements.get(url) || null; |
+ var inputElement = createElementWithClass('span', 'breakpoint-condition editing'); |
+ inputElement.textContent = url; |
+ this.listElement.insertBefore(inputElement, element); |
+ element.classList.add('hidden'); |
/** |
- * @param {string} url |
- * @param {boolean} enable |
- * @param {!WebInspector.Target=} target |
+ * @param {boolean} accept |
+ * @param {!Element} e |
+ * @param {string} text |
+ * @this {WebInspector.XHRBreakpointsSidebarPane} |
*/ |
- _updateBreakpointOnTarget: function(url, enable, target) |
- { |
- var targets = target ? [target] : WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
- for (target of targets) { |
- if (enable) |
- target.domdebuggerAgent().setXHRBreakpoint(url); |
- else |
- target.domdebuggerAgent().removeXHRBreakpoint(url); |
- } |
- }, |
- |
- _contextMenu: function(url, event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- |
- /** |
- * @this {WebInspector.XHRBreakpointsSidebarPane} |
- */ |
- function removeBreakpoint() |
- { |
- this._removeBreakpoint(url); |
- this._saveBreakpoints(); |
- } |
- |
- /** |
- * @this {WebInspector.XHRBreakpointsSidebarPane} |
- */ |
- function removeAllBreakpoints() |
- { |
- for (var url of this._breakpointElements.keys()) |
- this._removeBreakpoint(url); |
- this._saveBreakpoints(); |
- } |
- var removeAllTitle = WebInspector.UIString.capitalize("Remove ^all ^breakpoints"); |
- |
- contextMenu.appendItem(WebInspector.UIString.capitalize("Add ^breakpoint"), this._addButtonClicked.bind(this)); |
- contextMenu.appendItem(WebInspector.UIString.capitalize("Remove ^breakpoint"), removeBreakpoint.bind(this)); |
- contextMenu.appendItem(removeAllTitle, removeAllBreakpoints.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _checkboxClicked: function(url, event) |
- { |
- this._updateBreakpointOnTarget(url, event.target.checked); |
+ function finishEditing(accept, e, text) { |
+ this.removeListElement(inputElement); |
+ if (accept) { |
+ this._removeBreakpoint(url); |
+ this._setBreakpoint(text, element._checkboxElement.checked); |
this._saveBreakpoints(); |
- }, |
- |
- _labelClicked: function(url) |
- { |
- var element = this._breakpointElements.get(url) || null; |
- var inputElement = createElementWithClass("span", "breakpoint-condition editing"); |
- inputElement.textContent = url; |
- this.listElement.insertBefore(inputElement, element); |
- element.classList.add("hidden"); |
- |
- /** |
- * @param {boolean} accept |
- * @param {!Element} e |
- * @param {string} text |
- * @this {WebInspector.XHRBreakpointsSidebarPane} |
- */ |
- function finishEditing(accept, e, text) |
- { |
- this.removeListElement(inputElement); |
- if (accept) { |
- this._removeBreakpoint(url); |
- this._setBreakpoint(text, element._checkboxElement.checked); |
- this._saveBreakpoints(); |
- } else |
- element.classList.remove("hidden"); |
- } |
- |
- WebInspector.InplaceEditor.startEditing(inputElement, new WebInspector.InplaceEditor.Config(finishEditing.bind(this, true), finishEditing.bind(this, false))); |
- }, |
- |
- /** |
- * @override |
- * @param {?Object} object |
- */ |
- flavorChanged: function(object) |
- { |
- this._update(); |
- }, |
- |
- _update: function() |
- { |
- var details = WebInspector.context.flavor(WebInspector.DebuggerPausedDetails); |
- if (!details || details.reason !== WebInspector.DebuggerModel.BreakReason.XHR) { |
- if (this._highlightedElement) { |
- this._highlightedElement.classList.remove("breakpoint-hit"); |
- delete this._highlightedElement; |
- } |
- return; |
- } |
- var url = details.auxData["breakpointURL"]; |
- var element = this._breakpointElements.get(url); |
- if (!element) |
- return; |
- WebInspector.viewManager.showView("sources.xhrBreakpoints"); |
- element.classList.add("breakpoint-hit"); |
- this._highlightedElement = element; |
- }, |
- |
- _saveBreakpoints: function() |
- { |
- var breakpoints = []; |
- for (var url of this._breakpointElements.keys()) |
- breakpoints.push({ url: url, enabled: this._breakpointElements.get(url)._checkboxElement.checked }); |
- this._xhrBreakpointsSetting.set(breakpoints); |
- }, |
- |
- /** |
- * @param {!WebInspector.Target} target |
- */ |
- _restoreBreakpoints: function(target) |
- { |
- var breakpoints = this._xhrBreakpointsSetting.get(); |
- for (var i = 0; i < breakpoints.length; ++i) { |
- var breakpoint = breakpoints[i]; |
- if (breakpoint && typeof breakpoint.url === "string") |
- this._setBreakpoint(breakpoint.url, breakpoint.enabled, target); |
- } |
- }, |
- |
- __proto__: WebInspector.BreakpointsSidebarPaneBase.prototype |
+ } else |
+ element.classList.remove('hidden'); |
+ } |
+ |
+ WebInspector.InplaceEditor.startEditing( |
+ inputElement, |
+ new WebInspector.InplaceEditor.Config(finishEditing.bind(this, true), finishEditing.bind(this, false))); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {?Object} object |
+ */ |
+ flavorChanged(object) { |
+ this._update(); |
+ } |
+ |
+ _update() { |
+ var details = WebInspector.context.flavor(WebInspector.DebuggerPausedDetails); |
+ if (!details || details.reason !== WebInspector.DebuggerModel.BreakReason.XHR) { |
+ if (this._highlightedElement) { |
+ this._highlightedElement.classList.remove('breakpoint-hit'); |
+ delete this._highlightedElement; |
+ } |
+ return; |
+ } |
+ var url = details.auxData['breakpointURL']; |
+ var element = this._breakpointElements.get(url); |
+ if (!element) |
+ return; |
+ WebInspector.viewManager.showView('sources.xhrBreakpoints'); |
+ element.classList.add('breakpoint-hit'); |
+ this._highlightedElement = element; |
+ } |
+ |
+ _saveBreakpoints() { |
+ var breakpoints = []; |
+ for (var url of this._breakpointElements.keys()) |
+ breakpoints.push({url: url, enabled: this._breakpointElements.get(url)._checkboxElement.checked}); |
+ this._xhrBreakpointsSetting.set(breakpoints); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ _restoreBreakpoints(target) { |
+ var breakpoints = this._xhrBreakpointsSetting.get(); |
+ for (var i = 0; i < breakpoints.length; ++i) { |
+ var breakpoint = breakpoints[i]; |
+ if (breakpoint && typeof breakpoint.url === 'string') |
+ this._setBreakpoint(breakpoint.url, breakpoint.enabled, target); |
+ } |
+ } |
}; |