| OLD | NEW |
| 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 * @implements {SDK.TargetManager.Observer} | 5 * @implements {SDK.TargetManager.Observer} |
| 6 * @unrestricted | 6 * @unrestricted |
| 7 */ | 7 */ |
| 8 Bindings.CSSWorkspaceBinding = class { | 8 Bindings.CSSWorkspaceBinding = class { |
| 9 /** | 9 /** |
| 10 * @param {!SDK.TargetManager} targetManager | 10 * @param {!SDK.TargetManager} targetManager |
| 11 * @param {!Workspace.Workspace} workspace | 11 * @param {!Workspace.Workspace} workspace |
| 12 * @param {!Bindings.NetworkMapping} networkMapping | |
| 13 */ | 12 */ |
| 14 constructor(targetManager, workspace, networkMapping) { | 13 constructor(targetManager, workspace) { |
| 15 this._workspace = workspace; | 14 this._workspace = workspace; |
| 16 this._networkMapping = networkMapping; | |
| 17 | 15 |
| 18 /** @type {!Map.<!SDK.CSSModel, !Bindings.CSSWorkspaceBinding.TargetInfo>} *
/ | 16 /** @type {!Map.<!SDK.CSSModel, !Bindings.CSSWorkspaceBinding.TargetInfo>} *
/ |
| 19 this._modelToTargetInfo = new Map(); | 17 this._modelToTargetInfo = new Map(); |
| 20 targetManager.observeTargets(this); | 18 targetManager.observeTargets(this); |
| 21 } | 19 } |
| 22 | 20 |
| 23 /** | 21 /** |
| 24 * @override | 22 * @override |
| 25 * @param {!SDK.Target} target | 23 * @param {!SDK.Target} target |
| 26 */ | 24 */ |
| 27 targetAdded(target) { | 25 targetAdded(target) { |
| 28 var cssModel = SDK.CSSModel.fromTarget(target); | 26 var cssModel = SDK.CSSModel.fromTarget(target); |
| 29 if (cssModel) { | 27 if (cssModel) { |
| 30 this._modelToTargetInfo.set( | 28 this._modelToTargetInfo.set( |
| 31 cssModel, new Bindings.CSSWorkspaceBinding.TargetInfo(cssModel, this._
workspace, this._networkMapping)); | 29 cssModel, new Bindings.CSSWorkspaceBinding.TargetInfo(cssModel, this._
workspace)); |
| 32 } | 30 } |
| 33 } | 31 } |
| 34 | 32 |
| 35 /** | 33 /** |
| 36 * @override | 34 * @override |
| 37 * @param {!SDK.Target} target | 35 * @param {!SDK.Target} target |
| 38 */ | 36 */ |
| 39 targetRemoved(target) { | 37 targetRemoved(target) { |
| 40 var cssModel = SDK.CSSModel.fromTarget(target); | 38 var cssModel = SDK.CSSModel.fromTarget(target); |
| 41 if (cssModel) | 39 if (cssModel) |
| 42 this._modelToTargetInfo.remove(cssModel)._dispose(); | 40 this._modelToTargetInfo.remove(cssModel)._dispose(); |
| 43 } | 41 } |
| 44 | 42 |
| 45 /** | 43 /** |
| 46 * @param {!SDK.CSSStyleSheetHeader} header | 44 * @param {!SDK.CSSStyleSheetHeader} header |
| 47 * @return {?Bindings.CSSWorkspaceBinding.TargetInfo} | 45 * @return {?Bindings.CSSWorkspaceBinding.TargetInfo} |
| 48 */ | 46 */ |
| 49 _targetInfo(header) { | 47 _targetInfo(header) { |
| 50 return this._modelToTargetInfo.get(header.cssModel()) || null; | 48 return this._modelToTargetInfo.get(header.cssModel()) || null; |
| 51 } | 49 } |
| 52 | 50 |
| 53 /** | 51 /** |
| 54 * @param {!SDK.CSSStyleSheetHeader} header | 52 * @param {!SDK.CSSStyleSheetHeader} header |
| 55 * @return {!Bindings.CSSWorkspaceBinding.TargetInfo} | 53 * @return {!Bindings.CSSWorkspaceBinding.TargetInfo} |
| 56 */ | 54 */ |
| 57 _ensureTargetInfo(header) { | 55 _ensureTargetInfo(header) { |
| 58 var targetInfo = this._modelToTargetInfo.get(header.cssModel()); | 56 var targetInfo = this._modelToTargetInfo.get(header.cssModel()); |
| 59 if (!targetInfo) { | 57 if (!targetInfo) { |
| 60 targetInfo = | 58 targetInfo = |
| 61 new Bindings.CSSWorkspaceBinding.TargetInfo(header.cssModel(), this._w
orkspace, this._networkMapping); | 59 new Bindings.CSSWorkspaceBinding.TargetInfo(header.cssModel(), this._w
orkspace); |
| 62 this._modelToTargetInfo.set(header.cssModel(), targetInfo); | 60 this._modelToTargetInfo.set(header.cssModel(), targetInfo); |
| 63 } | 61 } |
| 64 return targetInfo; | 62 return targetInfo; |
| 65 } | 63 } |
| 66 | 64 |
| 67 /** | 65 /** |
| 68 * @param {!SDK.CSSStyleSheetHeader} header | 66 * @param {!SDK.CSSStyleSheetHeader} header |
| 69 */ | 67 */ |
| 70 updateLocations(header) { | 68 updateLocations(header) { |
| 71 var targetInfo = this._targetInfo(header); | 69 var targetInfo = this._targetInfo(header); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 } | 140 } |
| 143 }; | 141 }; |
| 144 | 142 |
| 145 /** | 143 /** |
| 146 * @unrestricted | 144 * @unrestricted |
| 147 */ | 145 */ |
| 148 Bindings.CSSWorkspaceBinding.TargetInfo = class { | 146 Bindings.CSSWorkspaceBinding.TargetInfo = class { |
| 149 /** | 147 /** |
| 150 * @param {!SDK.CSSModel} cssModel | 148 * @param {!SDK.CSSModel} cssModel |
| 151 * @param {!Workspace.Workspace} workspace | 149 * @param {!Workspace.Workspace} workspace |
| 152 * @param {!Bindings.NetworkMapping} networkMapping | |
| 153 */ | 150 */ |
| 154 constructor(cssModel, workspace, networkMapping) { | 151 constructor(cssModel, workspace) { |
| 155 this._cssModel = cssModel; | 152 this._cssModel = cssModel; |
| 156 this._stylesSourceMapping = new Bindings.StylesSourceMapping(cssModel, works
pace, networkMapping); | 153 this._stylesSourceMapping = new Bindings.StylesSourceMapping(cssModel, works
pace); |
| 157 this._sassSourceMapping = | 154 this._sassSourceMapping = |
| 158 new Bindings.SASSSourceMapping(cssModel, networkMapping, Bindings.Networ
kProject.forTarget(cssModel.target())); | 155 new Bindings.SASSSourceMapping(cssModel, workspace, Bindings.NetworkProj
ect.forTarget(cssModel.target())); |
| 159 | 156 |
| 160 /** @type {!Multimap<!SDK.CSSStyleSheetHeader, !Bindings.LiveLocation>} */ | 157 /** @type {!Multimap<!SDK.CSSStyleSheetHeader, !Bindings.LiveLocation>} */ |
| 161 this._locations = new Multimap(); | 158 this._locations = new Multimap(); |
| 162 } | 159 } |
| 163 | 160 |
| 164 /** | 161 /** |
| 165 * @param {!Bindings.CSSWorkspaceBinding.LiveLocation} location | 162 * @param {!Bindings.CSSWorkspaceBinding.LiveLocation} location |
| 166 */ | 163 */ |
| 167 _addLocation(location) { | 164 _addLocation(location) { |
| 168 var header = location._header; | 165 var header = location._header; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 /** | 266 /** |
| 270 * @override | 267 * @override |
| 271 * @return {?Workspace.UILocation} | 268 * @return {?Workspace.UILocation} |
| 272 */ | 269 */ |
| 273 uiLocation() { | 270 uiLocation() { |
| 274 var cssLocation = this._rawLocation; | 271 var cssLocation = this._rawLocation; |
| 275 if (this._header) { | 272 if (this._header) { |
| 276 var targetInfo = this._binding._targetInfo(this._header); | 273 var targetInfo = this._binding._targetInfo(this._header); |
| 277 return targetInfo._rawLocationToUILocation(this._header, cssLocation.lineN
umber, cssLocation.columnNumber); | 274 return targetInfo._rawLocationToUILocation(this._header, cssLocation.lineN
umber, cssLocation.columnNumber); |
| 278 } | 275 } |
| 279 var uiSourceCode = this._binding._networkMapping.uiSourceCodeForStyleURL(css
Location.url, cssLocation.header()); | 276 var uiSourceCode = Bindings.NetworkProject.uiSourceCodeForStyleURL(this._bin
ding._workspace, cssLocation.url, cssLocation.header()); |
| 280 if (!uiSourceCode) | 277 if (!uiSourceCode) |
| 281 return null; | 278 return null; |
| 282 return uiSourceCode.uiLocation(cssLocation.lineNumber, cssLocation.columnNum
ber); | 279 return uiSourceCode.uiLocation(cssLocation.lineNumber, cssLocation.columnNum
ber); |
| 283 } | 280 } |
| 284 | 281 |
| 285 /** | 282 /** |
| 286 * @override | 283 * @override |
| 287 */ | 284 */ |
| 288 dispose() { | 285 dispose() { |
| 289 super.dispose(); | 286 super.dispose(); |
| 290 if (this._header) | 287 if (this._header) |
| 291 this._binding._removeLiveLocation(this); | 288 this._binding._removeLiveLocation(this); |
| 292 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetAdded, this
._styleSheetAdded, this); | 289 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetAdded, this
._styleSheetAdded, this); |
| 293 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetRemoved, th
is._styleSheetRemoved, this); | 290 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetRemoved, th
is._styleSheetRemoved, this); |
| 294 } | 291 } |
| 295 | 292 |
| 296 /** | 293 /** |
| 297 * @override | 294 * @override |
| 298 * @return {boolean} | 295 * @return {boolean} |
| 299 */ | 296 */ |
| 300 isBlackboxed() { | 297 isBlackboxed() { |
| 301 return false; | 298 return false; |
| 302 } | 299 } |
| 303 }; | 300 }; |
| 304 | 301 |
| 305 /** | 302 /** |
| 306 * @type {!Bindings.CSSWorkspaceBinding} | 303 * @type {!Bindings.CSSWorkspaceBinding} |
| 307 */ | 304 */ |
| 308 Bindings.cssWorkspaceBinding; | 305 Bindings.cssWorkspaceBinding; |
| OLD | NEW |