Index: third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js b/third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js |
index cfa0ac4225f27cdf4fe1a523e87d3b32efc5b3f1..9e51d54857100ad472edab640f6fb251d55bc380 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js |
+++ b/third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js |
@@ -1,170 +1,168 @@ |
// 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. |
- |
/** |
- * @extends {WebInspector.Object} |
- * @constructor |
+ * @unrestricted |
*/ |
-WebInspector.ComputedStyleModel = function() |
-{ |
- WebInspector.Object.call(this); |
+WebInspector.ComputedStyleModel = class extends WebInspector.Object { |
+ constructor() { |
+ super(); |
this._node = WebInspector.context.flavor(WebInspector.DOMNode); |
WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._onNodeChanged, this); |
-}; |
- |
-/** @enum {symbol} */ |
-WebInspector.ComputedStyleModel.Events = { |
- ComputedStyleChanged: Symbol("ComputedStyleChanged") |
-}; |
- |
-WebInspector.ComputedStyleModel.prototype = { |
- /** |
- * @return {?WebInspector.DOMNode} |
- */ |
- node: function() |
- { |
- return this._node; |
- }, |
- |
- /** |
- * @return {?WebInspector.CSSModel} |
- */ |
- cssModel: function() |
- { |
- return this._cssModel && this._cssModel.isEnabled() ? this._cssModel : null; |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _onNodeChanged: function(event) |
- { |
- this._node = /** @type {?WebInspector.DOMNode} */(event.data); |
- this._updateTarget(this._node ? this._node.target() : null); |
- this._onComputedStyleChanged(null); |
- }, |
- |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.DOMNode} |
+ */ |
+ node() { |
+ return this._node; |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.CSSModel} |
+ */ |
+ cssModel() { |
+ return this._cssModel && this._cssModel.isEnabled() ? this._cssModel : null; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onNodeChanged(event) { |
+ this._node = /** @type {?WebInspector.DOMNode} */ (event.data); |
+ this._updateTarget(this._node ? this._node.target() : null); |
+ this._onComputedStyleChanged(null); |
+ } |
+ |
+ /** |
+ * @param {?WebInspector.Target} target |
+ */ |
+ _updateTarget(target) { |
+ if (this._target === target) |
+ return; |
+ if (this._targetEvents) |
+ WebInspector.EventTarget.removeEventListeners(this._targetEvents); |
+ this._target = target; |
+ |
+ var domModel = null; |
+ var resourceTreeModel = null; |
+ if (target) { |
+ this._cssModel = WebInspector.CSSModel.fromTarget(target); |
+ domModel = WebInspector.DOMModel.fromTarget(target); |
+ resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
+ } |
+ |
+ if (this._cssModel && domModel && resourceTreeModel) { |
+ this._targetEvents = [ |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.StyleSheetAdded, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.StyleSheetRemoved, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.StyleSheetChanged, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener(WebInspector.CSSModel.Events.FontsUpdated, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.MediaQueryResultChanged, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.PseudoStateForced, this._onComputedStyleChanged, this), |
+ this._cssModel.addEventListener( |
+ WebInspector.CSSModel.Events.ModelWasEnabled, this._onComputedStyleChanged, this), |
+ domModel.addEventListener(WebInspector.DOMModel.Events.DOMMutated, this._onDOMModelChanged, this), |
+ resourceTreeModel.addEventListener( |
+ WebInspector.ResourceTreeModel.Events.FrameResized, this._onFrameResized, this), |
+ ]; |
+ } |
+ } |
+ |
+ /** |
+ * @param {?WebInspector.Event} event |
+ */ |
+ _onComputedStyleChanged(event) { |
+ delete this._computedStylePromise; |
+ this.dispatchEventToListeners( |
+ WebInspector.ComputedStyleModel.Events.ComputedStyleChanged, event ? event.data : null); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onDOMModelChanged(event) { |
+ // Any attribute removal or modification can affect the styles of "related" nodes. |
+ var node = /** @type {!WebInspector.DOMNode} */ (event.data); |
+ if (!this._node || this._node !== node && node.parentNode !== this._node.parentNode && !node.isAncestor(this._node)) |
+ return; |
+ this._onComputedStyleChanged(null); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onFrameResized(event) { |
/** |
- * @param {?WebInspector.Target} target |
- */ |
- _updateTarget: function(target) |
- { |
- if (this._target === target) |
- return; |
- if (this._targetEvents) |
- WebInspector.EventTarget.removeEventListeners(this._targetEvents); |
- this._target = target; |
- |
- var domModel = null; |
- var resourceTreeModel = null; |
- if (target) { |
- this._cssModel = WebInspector.CSSModel.fromTarget(target); |
- domModel = WebInspector.DOMModel.fromTarget(target); |
- resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
- } |
- |
- if (this._cssModel && domModel && resourceTreeModel) { |
- this._targetEvents = [ |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetChanged, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.FontsUpdated, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.MediaQueryResultChanged, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.PseudoStateForced, this._onComputedStyleChanged, this), |
- this._cssModel.addEventListener(WebInspector.CSSModel.Events.ModelWasEnabled, this._onComputedStyleChanged, this), |
- domModel.addEventListener(WebInspector.DOMModel.Events.DOMMutated, this._onDOMModelChanged, this), |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameResized, this._onFrameResized, this), |
- ]; |
- } |
- }, |
- |
- /** |
- * @param {?WebInspector.Event} event |
- */ |
- _onComputedStyleChanged: function(event) |
- { |
- delete this._computedStylePromise; |
- this.dispatchEventToListeners(WebInspector.ComputedStyleModel.Events.ComputedStyleChanged, event ? event.data : null); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
+ * @this {WebInspector.ComputedStyleModel} |
*/ |
- _onDOMModelChanged: function(event) |
- { |
- // Any attribute removal or modification can affect the styles of "related" nodes. |
- var node = /** @type {!WebInspector.DOMNode} */ (event.data); |
- if (!this._node || this._node !== node && node.parentNode !== this._node.parentNode && !node.isAncestor(this._node)) |
- return; |
- this._onComputedStyleChanged(null); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _onFrameResized: function(event) |
- { |
- /** |
- * @this {WebInspector.ComputedStyleModel} |
- */ |
- function refreshContents() |
- { |
- this._onComputedStyleChanged(null); |
- delete this._frameResizedTimer; |
- } |
- |
- if (this._frameResizedTimer) |
- clearTimeout(this._frameResizedTimer); |
- |
- this._frameResizedTimer = setTimeout(refreshContents.bind(this), 100); |
- }, |
+ function refreshContents() { |
+ this._onComputedStyleChanged(null); |
+ delete this._frameResizedTimer; |
+ } |
+ |
+ if (this._frameResizedTimer) |
+ clearTimeout(this._frameResizedTimer); |
+ |
+ this._frameResizedTimer = setTimeout(refreshContents.bind(this), 100); |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.DOMNode} |
+ */ |
+ _elementNode() { |
+ return this.node() ? this.node().enclosingElementOrSelf() : null; |
+ } |
+ |
+ /** |
+ * @return {!Promise.<?WebInspector.ComputedStyleModel.ComputedStyle>} |
+ */ |
+ fetchComputedStyle() { |
+ var elementNode = this._elementNode(); |
+ var cssModel = this.cssModel(); |
+ if (!elementNode || !cssModel) |
+ return Promise.resolve(/** @type {?WebInspector.ComputedStyleModel.ComputedStyle} */ (null)); |
+ |
+ if (!this._computedStylePromise) |
+ this._computedStylePromise = |
+ cssModel.computedStylePromise(elementNode.id).then(verifyOutdated.bind(this, elementNode)); |
+ |
+ return this._computedStylePromise; |
/** |
- * @return {?WebInspector.DOMNode} |
+ * @param {!WebInspector.DOMNode} elementNode |
+ * @param {?Map.<string, string>} style |
+ * @return {?WebInspector.ComputedStyleModel.ComputedStyle} |
+ * @this {WebInspector.ComputedStyleModel} |
*/ |
- _elementNode: function() |
- { |
- return this.node() ? this.node().enclosingElementOrSelf() : null; |
- }, |
+ function verifyOutdated(elementNode, style) { |
+ return elementNode === this._elementNode() && style ? |
+ new WebInspector.ComputedStyleModel.ComputedStyle(elementNode, style) : |
+ /** @type {?WebInspector.ComputedStyleModel.ComputedStyle} */ (null); |
+ } |
+ } |
+}; |
- /** |
- * @return {!Promise.<?WebInspector.ComputedStyleModel.ComputedStyle>} |
- */ |
- fetchComputedStyle: function() |
- { |
- var elementNode = this._elementNode(); |
- var cssModel = this.cssModel(); |
- if (!elementNode || !cssModel) |
- return Promise.resolve(/** @type {?WebInspector.ComputedStyleModel.ComputedStyle} */(null)); |
- |
- if (!this._computedStylePromise) |
- this._computedStylePromise = cssModel.computedStylePromise(elementNode.id).then(verifyOutdated.bind(this, elementNode)); |
- |
- return this._computedStylePromise; |
- |
- /** |
- * @param {!WebInspector.DOMNode} elementNode |
- * @param {?Map.<string, string>} style |
- * @return {?WebInspector.ComputedStyleModel.ComputedStyle} |
- * @this {WebInspector.ComputedStyleModel} |
- */ |
- function verifyOutdated(elementNode, style) |
- { |
- return elementNode === this._elementNode() && style ? new WebInspector.ComputedStyleModel.ComputedStyle(elementNode, style) : /** @type {?WebInspector.ComputedStyleModel.ComputedStyle} */(null); |
- } |
- }, |
- |
- __proto__: WebInspector.Object.prototype |
+/** @enum {symbol} */ |
+WebInspector.ComputedStyleModel.Events = { |
+ ComputedStyleChanged: Symbol('ComputedStyleChanged') |
}; |
/** |
- * @constructor |
- * @param {!WebInspector.DOMNode} node |
- * @param {!Map.<string, string>} computedStyle |
+ * @unrestricted |
*/ |
-WebInspector.ComputedStyleModel.ComputedStyle = function(node, computedStyle) |
-{ |
+WebInspector.ComputedStyleModel.ComputedStyle = class { |
+ /** |
+ * @param {!WebInspector.DOMNode} node |
+ * @param {!Map.<string, string>} computedStyle |
+ */ |
+ constructor(node, computedStyle) { |
this.node = node; |
this.computedStyle = computedStyle; |
+ } |
}; |