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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/elements/ComputedStyleModel.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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
5 /** 4 /**
6 * @extends {WebInspector.Object} 5 * @unrestricted
7 * @constructor
8 */ 6 */
9 WebInspector.ComputedStyleModel = function() 7 WebInspector.ComputedStyleModel = class extends WebInspector.Object {
10 { 8 constructor() {
11 WebInspector.Object.call(this); 9 super();
12 this._node = WebInspector.context.flavor(WebInspector.DOMNode); 10 this._node = WebInspector.context.flavor(WebInspector.DOMNode);
13 WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._onN odeChanged, this); 11 WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._onN odeChanged, this);
12 }
13
14 /**
15 * @return {?WebInspector.DOMNode}
16 */
17 node() {
18 return this._node;
19 }
20
21 /**
22 * @return {?WebInspector.CSSModel}
23 */
24 cssModel() {
25 return this._cssModel && this._cssModel.isEnabled() ? this._cssModel : null;
26 }
27
28 /**
29 * @param {!WebInspector.Event} event
30 */
31 _onNodeChanged(event) {
32 this._node = /** @type {?WebInspector.DOMNode} */ (event.data);
33 this._updateTarget(this._node ? this._node.target() : null);
34 this._onComputedStyleChanged(null);
35 }
36
37 /**
38 * @param {?WebInspector.Target} target
39 */
40 _updateTarget(target) {
41 if (this._target === target)
42 return;
43 if (this._targetEvents)
44 WebInspector.EventTarget.removeEventListeners(this._targetEvents);
45 this._target = target;
46
47 var domModel = null;
48 var resourceTreeModel = null;
49 if (target) {
50 this._cssModel = WebInspector.CSSModel.fromTarget(target);
51 domModel = WebInspector.DOMModel.fromTarget(target);
52 resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target);
53 }
54
55 if (this._cssModel && domModel && resourceTreeModel) {
56 this._targetEvents = [
57 this._cssModel.addEventListener(
58 WebInspector.CSSModel.Events.StyleSheetAdded, this._onComputedStyleC hanged, this),
59 this._cssModel.addEventListener(
60 WebInspector.CSSModel.Events.StyleSheetRemoved, this._onComputedStyl eChanged, this),
61 this._cssModel.addEventListener(
62 WebInspector.CSSModel.Events.StyleSheetChanged, this._onComputedStyl eChanged, this),
63 this._cssModel.addEventListener(WebInspector.CSSModel.Events.FontsUpdate d, this._onComputedStyleChanged, this),
64 this._cssModel.addEventListener(
65 WebInspector.CSSModel.Events.MediaQueryResultChanged, this._onComput edStyleChanged, this),
66 this._cssModel.addEventListener(
67 WebInspector.CSSModel.Events.PseudoStateForced, this._onComputedStyl eChanged, this),
68 this._cssModel.addEventListener(
69 WebInspector.CSSModel.Events.ModelWasEnabled, this._onComputedStyleC hanged, this),
70 domModel.addEventListener(WebInspector.DOMModel.Events.DOMMutated, this. _onDOMModelChanged, this),
71 resourceTreeModel.addEventListener(
72 WebInspector.ResourceTreeModel.Events.FrameResized, this._onFrameRes ized, this),
73 ];
74 }
75 }
76
77 /**
78 * @param {?WebInspector.Event} event
79 */
80 _onComputedStyleChanged(event) {
81 delete this._computedStylePromise;
82 this.dispatchEventToListeners(
83 WebInspector.ComputedStyleModel.Events.ComputedStyleChanged, event ? eve nt.data : null);
84 }
85
86 /**
87 * @param {!WebInspector.Event} event
88 */
89 _onDOMModelChanged(event) {
90 // Any attribute removal or modification can affect the styles of "related" nodes.
91 var node = /** @type {!WebInspector.DOMNode} */ (event.data);
92 if (!this._node || this._node !== node && node.parentNode !== this._node.par entNode && !node.isAncestor(this._node))
93 return;
94 this._onComputedStyleChanged(null);
95 }
96
97 /**
98 * @param {!WebInspector.Event} event
99 */
100 _onFrameResized(event) {
101 /**
102 * @this {WebInspector.ComputedStyleModel}
103 */
104 function refreshContents() {
105 this._onComputedStyleChanged(null);
106 delete this._frameResizedTimer;
107 }
108
109 if (this._frameResizedTimer)
110 clearTimeout(this._frameResizedTimer);
111
112 this._frameResizedTimer = setTimeout(refreshContents.bind(this), 100);
113 }
114
115 /**
116 * @return {?WebInspector.DOMNode}
117 */
118 _elementNode() {
119 return this.node() ? this.node().enclosingElementOrSelf() : null;
120 }
121
122 /**
123 * @return {!Promise.<?WebInspector.ComputedStyleModel.ComputedStyle>}
124 */
125 fetchComputedStyle() {
126 var elementNode = this._elementNode();
127 var cssModel = this.cssModel();
128 if (!elementNode || !cssModel)
129 return Promise.resolve(/** @type {?WebInspector.ComputedStyleModel.Compute dStyle} */ (null));
130
131 if (!this._computedStylePromise)
132 this._computedStylePromise =
133 cssModel.computedStylePromise(elementNode.id).then(verifyOutdated.bind (this, elementNode));
134
135 return this._computedStylePromise;
136
137 /**
138 * @param {!WebInspector.DOMNode} elementNode
139 * @param {?Map.<string, string>} style
140 * @return {?WebInspector.ComputedStyleModel.ComputedStyle}
141 * @this {WebInspector.ComputedStyleModel}
142 */
143 function verifyOutdated(elementNode, style) {
144 return elementNode === this._elementNode() && style ?
145 new WebInspector.ComputedStyleModel.ComputedStyle(elementNode, style) :
146 /** @type {?WebInspector.ComputedStyleModel.ComputedStyle} */ (null);
147 }
148 }
14 }; 149 };
15 150
16 /** @enum {symbol} */ 151 /** @enum {symbol} */
17 WebInspector.ComputedStyleModel.Events = { 152 WebInspector.ComputedStyleModel.Events = {
18 ComputedStyleChanged: Symbol("ComputedStyleChanged") 153 ComputedStyleChanged: Symbol('ComputedStyleChanged')
19 };
20
21 WebInspector.ComputedStyleModel.prototype = {
22 /**
23 * @return {?WebInspector.DOMNode}
24 */
25 node: function()
26 {
27 return this._node;
28 },
29
30 /**
31 * @return {?WebInspector.CSSModel}
32 */
33 cssModel: function()
34 {
35 return this._cssModel && this._cssModel.isEnabled() ? this._cssModel : n ull;
36 },
37
38 /**
39 * @param {!WebInspector.Event} event
40 */
41 _onNodeChanged: function(event)
42 {
43 this._node = /** @type {?WebInspector.DOMNode} */(event.data);
44 this._updateTarget(this._node ? this._node.target() : null);
45 this._onComputedStyleChanged(null);
46 },
47
48 /**
49 * @param {?WebInspector.Target} target
50 */
51 _updateTarget: function(target)
52 {
53 if (this._target === target)
54 return;
55 if (this._targetEvents)
56 WebInspector.EventTarget.removeEventListeners(this._targetEvents);
57 this._target = target;
58
59 var domModel = null;
60 var resourceTreeModel = null;
61 if (target) {
62 this._cssModel = WebInspector.CSSModel.fromTarget(target);
63 domModel = WebInspector.DOMModel.fromTarget(target);
64 resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
65 }
66
67 if (this._cssModel && domModel && resourceTreeModel) {
68 this._targetEvents = [
69 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Sty leSheetAdded, this._onComputedStyleChanged, this),
70 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Sty leSheetRemoved, this._onComputedStyleChanged, this),
71 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Sty leSheetChanged, this._onComputedStyleChanged, this),
72 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Fon tsUpdated, this._onComputedStyleChanged, this),
73 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Med iaQueryResultChanged, this._onComputedStyleChanged, this),
74 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Pse udoStateForced, this._onComputedStyleChanged, this),
75 this._cssModel.addEventListener(WebInspector.CSSModel.Events.Mod elWasEnabled, this._onComputedStyleChanged, this),
76 domModel.addEventListener(WebInspector.DOMModel.Events.DOMMutate d, this._onDOMModelChanged, this),
77 resourceTreeModel.addEventListener(WebInspector.ResourceTreeMode l.Events.FrameResized, this._onFrameResized, this),
78 ];
79 }
80 },
81
82 /**
83 * @param {?WebInspector.Event} event
84 */
85 _onComputedStyleChanged: function(event)
86 {
87 delete this._computedStylePromise;
88 this.dispatchEventToListeners(WebInspector.ComputedStyleModel.Events.Com putedStyleChanged, event ? event.data : null);
89 },
90
91 /**
92 * @param {!WebInspector.Event} event
93 */
94 _onDOMModelChanged: function(event)
95 {
96 // Any attribute removal or modification can affect the styles of "relat ed" nodes.
97 var node = /** @type {!WebInspector.DOMNode} */ (event.data);
98 if (!this._node || this._node !== node && node.parentNode !== this._node .parentNode && !node.isAncestor(this._node))
99 return;
100 this._onComputedStyleChanged(null);
101 },
102
103 /**
104 * @param {!WebInspector.Event} event
105 */
106 _onFrameResized: function(event)
107 {
108 /**
109 * @this {WebInspector.ComputedStyleModel}
110 */
111 function refreshContents()
112 {
113 this._onComputedStyleChanged(null);
114 delete this._frameResizedTimer;
115 }
116
117 if (this._frameResizedTimer)
118 clearTimeout(this._frameResizedTimer);
119
120 this._frameResizedTimer = setTimeout(refreshContents.bind(this), 100);
121 },
122
123 /**
124 * @return {?WebInspector.DOMNode}
125 */
126 _elementNode: function()
127 {
128 return this.node() ? this.node().enclosingElementOrSelf() : null;
129 },
130
131 /**
132 * @return {!Promise.<?WebInspector.ComputedStyleModel.ComputedStyle>}
133 */
134 fetchComputedStyle: function()
135 {
136 var elementNode = this._elementNode();
137 var cssModel = this.cssModel();
138 if (!elementNode || !cssModel)
139 return Promise.resolve(/** @type {?WebInspector.ComputedStyleModel.C omputedStyle} */(null));
140
141 if (!this._computedStylePromise)
142 this._computedStylePromise = cssModel.computedStylePromise(elementNo de.id).then(verifyOutdated.bind(this, elementNode));
143
144 return this._computedStylePromise;
145
146 /**
147 * @param {!WebInspector.DOMNode} elementNode
148 * @param {?Map.<string, string>} style
149 * @return {?WebInspector.ComputedStyleModel.ComputedStyle}
150 * @this {WebInspector.ComputedStyleModel}
151 */
152 function verifyOutdated(elementNode, style)
153 {
154 return elementNode === this._elementNode() && style ? new WebInspect or.ComputedStyleModel.ComputedStyle(elementNode, style) : /** @type {?WebInspect or.ComputedStyleModel.ComputedStyle} */(null);
155 }
156 },
157
158 __proto__: WebInspector.Object.prototype
159 }; 154 };
160 155
161 /** 156 /**
162 * @constructor 157 * @unrestricted
163 * @param {!WebInspector.DOMNode} node
164 * @param {!Map.<string, string>} computedStyle
165 */ 158 */
166 WebInspector.ComputedStyleModel.ComputedStyle = function(node, computedStyle) 159 WebInspector.ComputedStyleModel.ComputedStyle = class {
167 { 160 /**
161 * @param {!WebInspector.DOMNode} node
162 * @param {!Map.<string, string>} computedStyle
163 */
164 constructor(node, computedStyle) {
168 this.node = node; 165 this.node = node;
169 this.computedStyle = computedStyle; 166 this.computedStyle = computedStyle;
167 }
170 }; 168 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698