| 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 */ | 12 */ |
| 13 constructor(targetManager, workspace) { | 13 constructor(targetManager, workspace) { |
| 14 this._workspace = workspace; | 14 this._workspace = workspace; |
| 15 | 15 |
| 16 /** @type {!Map.<!SDK.CSSModel, !Bindings.CSSWorkspaceBinding.TargetInfo>} *
/ | 16 /** @type {!Map.<!SDK.CSSModel, !Bindings.CSSWorkspaceBinding.TargetInfo>} *
/ |
| 17 this._modelToTargetInfo = new Map(); | 17 this._modelToTargetInfo = new Map(); |
| 18 targetManager.observeTargets(this); | 18 targetManager.observeTargets(this); |
| 19 } | 19 } |
| 20 | 20 |
| 21 /** | 21 /** |
| 22 * @override | 22 * @override |
| 23 * @param {!SDK.Target} target | 23 * @param {!SDK.Target} target |
| 24 */ | 24 */ |
| 25 targetAdded(target) { | 25 targetAdded(target) { |
| 26 var cssModel = SDK.CSSModel.fromTarget(target); | 26 var cssModel = SDK.CSSModel.fromTarget(target); |
| 27 if (cssModel) { | 27 if (cssModel) |
| 28 this._modelToTargetInfo.set( | 28 this._modelToTargetInfo.set(cssModel, new Bindings.CSSWorkspaceBinding.Tar
getInfo(cssModel, this._workspace)); |
| 29 cssModel, new Bindings.CSSWorkspaceBinding.TargetInfo(cssModel, this._
workspace)); | |
| 30 } | |
| 31 } | 29 } |
| 32 | 30 |
| 33 /** | 31 /** |
| 34 * @override | 32 * @override |
| 35 * @param {!SDK.Target} target | 33 * @param {!SDK.Target} target |
| 36 */ | 34 */ |
| 37 targetRemoved(target) { | 35 targetRemoved(target) { |
| 38 var cssModel = SDK.CSSModel.fromTarget(target); | 36 var cssModel = SDK.CSSModel.fromTarget(target); |
| 39 if (cssModel) | 37 if (cssModel) |
| 40 this._modelToTargetInfo.remove(cssModel)._dispose(); | 38 this._modelToTargetInfo.remove(cssModel)._dispose(); |
| 41 } | 39 } |
| 42 | 40 |
| 43 /** | 41 /** |
| 44 * @param {!SDK.CSSStyleSheetHeader} header | 42 * @param {!SDK.CSSStyleSheetHeader} header |
| 45 * @return {?Bindings.CSSWorkspaceBinding.TargetInfo} | 43 * @return {?Bindings.CSSWorkspaceBinding.TargetInfo} |
| 46 */ | 44 */ |
| 47 _targetInfo(header) { | 45 _targetInfo(header) { |
| 48 return this._modelToTargetInfo.get(header.cssModel()) || null; | 46 return this._modelToTargetInfo.get(header.cssModel()) || null; |
| 49 } | 47 } |
| 50 | 48 |
| 51 /** | 49 /** |
| 52 * @param {!SDK.CSSStyleSheetHeader} header | 50 * @param {!SDK.CSSStyleSheetHeader} header |
| 53 * @return {!Bindings.CSSWorkspaceBinding.TargetInfo} | 51 * @return {!Bindings.CSSWorkspaceBinding.TargetInfo} |
| 54 */ | 52 */ |
| 55 _ensureTargetInfo(header) { | 53 _ensureTargetInfo(header) { |
| 56 var targetInfo = this._modelToTargetInfo.get(header.cssModel()); | 54 var targetInfo = this._modelToTargetInfo.get(header.cssModel()); |
| 57 if (!targetInfo) { | 55 if (!targetInfo) { |
| 58 targetInfo = | 56 targetInfo = new Bindings.CSSWorkspaceBinding.TargetInfo(header.cssModel()
, this._workspace); |
| 59 new Bindings.CSSWorkspaceBinding.TargetInfo(header.cssModel(), this._w
orkspace); | |
| 60 this._modelToTargetInfo.set(header.cssModel(), targetInfo); | 57 this._modelToTargetInfo.set(header.cssModel(), targetInfo); |
| 61 } | 58 } |
| 62 return targetInfo; | 59 return targetInfo; |
| 63 } | 60 } |
| 64 | 61 |
| 65 /** | 62 /** |
| 66 * @param {!SDK.CSSStyleSheetHeader} header | 63 * @param {!SDK.CSSStyleSheetHeader} header |
| 67 */ | 64 */ |
| 68 updateLocations(header) { | 65 updateLocations(header) { |
| 69 var targetInfo = this._targetInfo(header); | 66 var targetInfo = this._targetInfo(header); |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 /** | 263 /** |
| 267 * @override | 264 * @override |
| 268 * @return {?Workspace.UILocation} | 265 * @return {?Workspace.UILocation} |
| 269 */ | 266 */ |
| 270 uiLocation() { | 267 uiLocation() { |
| 271 var cssLocation = this._rawLocation; | 268 var cssLocation = this._rawLocation; |
| 272 if (this._header) { | 269 if (this._header) { |
| 273 var targetInfo = this._binding._targetInfo(this._header); | 270 var targetInfo = this._binding._targetInfo(this._header); |
| 274 return targetInfo._rawLocationToUILocation(this._header, cssLocation.lineN
umber, cssLocation.columnNumber); | 271 return targetInfo._rawLocationToUILocation(this._header, cssLocation.lineN
umber, cssLocation.columnNumber); |
| 275 } | 272 } |
| 276 var uiSourceCode = Bindings.NetworkProject.uiSourceCodeForStyleURL(this._bin
ding._workspace, cssLocation.url, cssLocation.header()); | 273 var uiSourceCode = Bindings.NetworkProject.uiSourceCodeForStyleURL( |
| 274 this._binding._workspace, cssLocation.url, cssLocation.header()); |
| 277 if (!uiSourceCode) | 275 if (!uiSourceCode) |
| 278 return null; | 276 return null; |
| 279 return uiSourceCode.uiLocation(cssLocation.lineNumber, cssLocation.columnNum
ber); | 277 return uiSourceCode.uiLocation(cssLocation.lineNumber, cssLocation.columnNum
ber); |
| 280 } | 278 } |
| 281 | 279 |
| 282 /** | 280 /** |
| 283 * @override | 281 * @override |
| 284 */ | 282 */ |
| 285 dispose() { | 283 dispose() { |
| 286 super.dispose(); | 284 super.dispose(); |
| 287 if (this._header) | 285 if (this._header) |
| 288 this._binding._removeLiveLocation(this); | 286 this._binding._removeLiveLocation(this); |
| 289 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetAdded, this
._styleSheetAdded, this); | 287 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetAdded, this
._styleSheetAdded, this); |
| 290 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetRemoved, th
is._styleSheetRemoved, this); | 288 this._cssModel.removeEventListener(SDK.CSSModel.Events.StyleSheetRemoved, th
is._styleSheetRemoved, this); |
| 291 } | 289 } |
| 292 | 290 |
| 293 /** | 291 /** |
| 294 * @override | 292 * @override |
| 295 * @return {boolean} | 293 * @return {boolean} |
| 296 */ | 294 */ |
| 297 isBlackboxed() { | 295 isBlackboxed() { |
| 298 return false; | 296 return false; |
| 299 } | 297 } |
| 300 }; | 298 }; |
| 301 | 299 |
| 302 /** | 300 /** |
| 303 * @type {!Bindings.CSSWorkspaceBinding} | 301 * @type {!Bindings.CSSWorkspaceBinding} |
| 304 */ | 302 */ |
| 305 Bindings.cssWorkspaceBinding; | 303 Bindings.cssWorkspaceBinding; |
| OLD | NEW |