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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/bindings/CSSWorkspaceBinding.js

Issue 2856233002: DevTools: support uiLocationToRawLocations for CSS (Closed)
Patch Set: review comments addressed Created 3 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 /** 5 /**
6 * @implements {SDK.SDKModelObserver<!SDK.CSSModel>} 6 * @implements {SDK.SDKModelObserver<!SDK.CSSModel>}
7 */ 7 */
8 Bindings.CSSWorkspaceBinding = class { 8 Bindings.CSSWorkspaceBinding = class {
9 /** 9 /**
10 * @param {!SDK.TargetManager} targetManager 10 * @param {!SDK.TargetManager} targetManager
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 return null; 72 return null;
73 73
74 var lineNumber = range.startLine; 74 var lineNumber = range.startLine;
75 var columnNumber = range.startColumn; 75 var columnNumber = range.startColumn;
76 var rawLocation = new SDK.CSSLocation( 76 var rawLocation = new SDK.CSSLocation(
77 header, header.lineNumberInSource(lineNumber), header.columnNumberInSour ce(lineNumber, columnNumber)); 77 header, header.lineNumberInSource(lineNumber), header.columnNumberInSour ce(lineNumber, columnNumber));
78 return this.rawLocationToUILocation(rawLocation); 78 return this.rawLocationToUILocation(rawLocation);
79 } 79 }
80 80
81 /** 81 /**
82 * @param {?SDK.CSSLocation} rawLocation 82 * @param {!SDK.CSSLocation} rawLocation
83 * @return {?Workspace.UILocation} 83 * @return {?Workspace.UILocation}
84 */ 84 */
85 rawLocationToUILocation(rawLocation) { 85 rawLocationToUILocation(rawLocation) {
86 if (!rawLocation)
dgozman 2017/05/04 17:44:37 Seems unrelated :-)
caseq 2017/05/04 17:46:49 It's a drive-by. Compiler, code search and tests t
87 return null;
88 for (var i = this._sourceMappings.length - 1; i >= 0; --i) { 86 for (var i = this._sourceMappings.length - 1; i >= 0; --i) {
89 var uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLocati on); 87 var uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLocati on);
90 if (uiLocation) 88 if (uiLocation)
91 return uiLocation; 89 return uiLocation;
92 } 90 }
93 return this._modelToInfo.get(rawLocation.cssModel())._rawLocationToUILocatio n(rawLocation); 91 return this._modelToInfo.get(rawLocation.cssModel())._rawLocationToUILocatio n(rawLocation);
94 } 92 }
95 93
96 /** 94 /**
95 * @param {!Workspace.UILocation} uiLocation
96 * @return {!Array<!SDK.CSSLocation>}
97 */
98 uiLocationToRawLocations(uiLocation) {
99 for (var i = this._sourceMappings.length - 1; i >= 0; --i) {
100 var rawLocations = this._sourceMappings[i].uiLocationToRawLocations(uiLoca tion);
101 if (rawLocations.length)
102 return rawLocations;
103 }
104 var rawLocations = [];
105 for (var modelInfo of this._modelToInfo.values())
106 rawLocations.pushAll(modelInfo._uiLocationToRawLocations(uiLocation));
107 return rawLocations;
108 }
109
110 /**
97 * @param {!Bindings.CSSWorkspaceBinding.SourceMapping} sourceMapping 111 * @param {!Bindings.CSSWorkspaceBinding.SourceMapping} sourceMapping
98 */ 112 */
99 addSourceMapping(sourceMapping) { 113 addSourceMapping(sourceMapping) {
100 this._sourceMappings.push(sourceMapping); 114 this._sourceMappings.push(sourceMapping);
101 } 115 }
102 }; 116 };
103 117
104 /** 118 /**
105 * @interface 119 * @interface
106 */ 120 */
107 Bindings.CSSWorkspaceBinding.SourceMapping = function() {}; 121 Bindings.CSSWorkspaceBinding.SourceMapping = function() {};
108 122
109 Bindings.CSSWorkspaceBinding.SourceMapping.prototype = { 123 Bindings.CSSWorkspaceBinding.SourceMapping.prototype = {
110 /** 124 /**
111 * @param {!SDK.CSSLocation} rawLocation 125 * @param {!SDK.CSSLocation} rawLocation
112 * @return {?Workspace.UILocation} 126 * @return {?Workspace.UILocation}
113 */ 127 */
114 rawLocationToUILocation(rawLocation) {}, 128 rawLocationToUILocation(rawLocation) {},
129
130 /**
131 * @param {!Workspace.UILocation} uiLocation
132 * @return {!Array<!SDK.CSSLocation>}
133 */
134 uiLocationToRawLocations(uiLocation) {},
115 }; 135 };
116 136
117 Bindings.CSSWorkspaceBinding.ModelInfo = class { 137 Bindings.CSSWorkspaceBinding.ModelInfo = class {
118 /** 138 /**
119 * @param {!SDK.CSSModel} cssModel 139 * @param {!SDK.CSSModel} cssModel
120 * @param {!Workspace.Workspace} workspace 140 * @param {!Workspace.Workspace} workspace
121 */ 141 */
122 constructor(cssModel, workspace) { 142 constructor(cssModel, workspace) {
123 this._eventListeners = [ 143 this._eventListeners = [
124 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetAdded, this._style SheetAdded, this), 144 cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetAdded, this._style SheetAdded, this),
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 * @param {!SDK.CSSLocation} rawLocation 226 * @param {!SDK.CSSLocation} rawLocation
207 * @return {?Workspace.UILocation} 227 * @return {?Workspace.UILocation}
208 */ 228 */
209 _rawLocationToUILocation(rawLocation) { 229 _rawLocationToUILocation(rawLocation) {
210 var uiLocation = null; 230 var uiLocation = null;
211 uiLocation = uiLocation || this._sassSourceMapping.rawLocationToUILocation(r awLocation); 231 uiLocation = uiLocation || this._sassSourceMapping.rawLocationToUILocation(r awLocation);
212 uiLocation = uiLocation || this._stylesSourceMapping.rawLocationToUILocation (rawLocation); 232 uiLocation = uiLocation || this._stylesSourceMapping.rawLocationToUILocation (rawLocation);
213 return uiLocation; 233 return uiLocation;
214 } 234 }
215 235
236 /**
237 * @param {!Workspace.UILocation} uiLocation
238 * @return {!Array<!SDK.CSSLocation>}
239 */
240 _uiLocationToRawLocations(uiLocation) {
241 var rawLocations = this._sassSourceMapping.uiLocationToRawLocations(uiLocati on);
242 if (rawLocations.length)
243 return rawLocations;
244 return this._stylesSourceMapping.uiLocationToRawLocations(uiLocation);
245 }
246
247
216 _dispose() { 248 _dispose() {
217 Common.EventTarget.removeEventListeners(this._eventListeners); 249 Common.EventTarget.removeEventListeners(this._eventListeners);
218 this._stylesSourceMapping.dispose(); 250 this._stylesSourceMapping.dispose();
219 this._sassSourceMapping.dispose(); 251 this._sassSourceMapping.dispose();
220 } 252 }
221 }; 253 };
222 254
223 /** 255 /**
224 * @unrestricted 256 * @unrestricted
225 */ 257 */
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 */ 296 */
265 isBlackboxed() { 297 isBlackboxed() {
266 return false; 298 return false;
267 } 299 }
268 }; 300 };
269 301
270 /** 302 /**
271 * @type {!Bindings.CSSWorkspaceBinding} 303 * @type {!Bindings.CSSWorkspaceBinding}
272 */ 304 */
273 Bindings.cssWorkspaceBinding; 305 Bindings.cssWorkspaceBinding;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698