Chromium Code Reviews| Index: Source/devtools/front_end/sdk/CSSStyleModel.js |
| diff --git a/Source/devtools/front_end/sdk/CSSStyleModel.js b/Source/devtools/front_end/sdk/CSSStyleModel.js |
| index dd203d842021d751536f347d84c1044a5b0a725a..e6568a6f06a5455f6d33fa2bff6f3855440f5714 100644 |
| --- a/Source/devtools/front_end/sdk/CSSStyleModel.js |
| +++ b/Source/devtools/front_end/sdk/CSSStyleModel.js |
| @@ -595,140 +595,11 @@ WebInspector.CSSStyleModel.prototype = { |
| this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, headers[i]); |
| }, |
| - updateLocations: function() |
| - { |
| - var headers = this._styleSheetIdToHeader.values(); |
| - for (var i = 0; i < headers.length; ++i) |
| - headers[i].updateLocations(); |
| - }, |
| - |
| - /** |
| - * @param {?CSSAgent.StyleSheetId} styleSheetId |
| - * @param {!WebInspector.CSSLocation} rawLocation |
| - * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate |
| - * @return {?WebInspector.LiveLocation} |
| - */ |
| - createLiveLocation: function(styleSheetId, rawLocation, updateDelegate) |
| - { |
| - if (!rawLocation) |
| - return null; |
| - var header = styleSheetId ? this.styleSheetHeaderForId(styleSheetId) : null; |
| - return new WebInspector.CSSStyleModel.LiveLocation(this, header, rawLocation, updateDelegate); |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.CSSLocation} rawLocation |
| - * @return {?WebInspector.UILocation} |
| - */ |
| - rawLocationToUILocation: function(rawLocation) |
| - { |
| - var frameIdToSheetIds = this._styleSheetIdsForURL.get(rawLocation.url); |
| - if (!frameIdToSheetIds) |
| - return null; |
| - var styleSheetIds = []; |
| - for (var frameId in frameIdToSheetIds) |
| - styleSheetIds = styleSheetIds.concat(frameIdToSheetIds[frameId]); |
| - var uiLocation; |
| - for (var i = 0; !uiLocation && i < styleSheetIds.length; ++i) { |
| - var header = this.styleSheetHeaderForId(styleSheetIds[i]); |
| - console.assert(header); |
| - uiLocation = header.rawLocationToUILocation(rawLocation.lineNumber, rawLocation.columnNumber); |
| - } |
| - return uiLocation || null; |
| - }, |
| - |
| __proto__: WebInspector.SDKModel.prototype |
| } |
| /** |
| * @constructor |
| - * @extends {WebInspector.LiveLocation} |
| - * @param {!WebInspector.CSSStyleModel} model |
| - * @param {?WebInspector.CSSStyleSheetHeader} header |
| - * @param {!WebInspector.CSSLocation} rawLocation |
| - * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate |
| - */ |
| -WebInspector.CSSStyleModel.LiveLocation = function(model, header, rawLocation, updateDelegate) |
| -{ |
| - WebInspector.LiveLocation.call(this, rawLocation, updateDelegate); |
| - this._model = model; |
| - if (!header) |
| - this._clearStyleSheet(); |
| - else |
| - this._setStyleSheet(header); |
| -} |
| - |
| -WebInspector.CSSStyleModel.LiveLocation.prototype = { |
| - /** |
| - * @param {!WebInspector.Event} event |
| - */ |
| - _styleSheetAdded: function(event) |
| - { |
| - console.assert(!this._header); |
| - var header = /** @type {!WebInspector.CSSStyleSheetHeader} */ (event.data); |
| - if (header.sourceURL && header.sourceURL === this.rawLocation().url) |
| - this._setStyleSheet(header); |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.Event} event |
| - */ |
| - _styleSheetRemoved: function(event) |
| - { |
| - console.assert(this._header); |
| - var header = /** @type {!WebInspector.CSSStyleSheetHeader} */ (event.data); |
| - if (this._header !== header) |
| - return; |
| - this._header._removeLocation(this); |
| - this._clearStyleSheet(); |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.CSSStyleSheetHeader} header |
| - */ |
| - _setStyleSheet: function(header) |
| - { |
| - this._header = header; |
| - this._header.addLiveLocation(this); |
| - this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
| - this._model.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
| - }, |
| - |
| - _clearStyleSheet: function() |
| - { |
| - delete this._header; |
| - this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
| - this._model.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
| - }, |
| - |
| - /** |
| - * @return {?WebInspector.UILocation} |
| - */ |
| - uiLocation: function() |
| - { |
| - var cssLocation = /** @type WebInspector.CSSLocation */ (this.rawLocation()); |
| - if (this._header) |
| - return this._header.rawLocationToUILocation(cssLocation.lineNumber, cssLocation.columnNumber); |
| - var uiSourceCode = WebInspector.workspace.uiSourceCodeForURL(cssLocation.url); |
| - if (!uiSourceCode) |
| - return null; |
| - return uiSourceCode.uiLocation(cssLocation.lineNumber, cssLocation.columnNumber); |
| - }, |
| - |
| - dispose: function() |
| - { |
| - WebInspector.LiveLocation.prototype.dispose.call(this); |
| - if (this._header) |
| - this._header._removeLocation(this); |
| - this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
| - this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
| - }, |
| - |
| - __proto__: WebInspector.LiveLocation.prototype |
| -} |
| - |
| -/** |
| - * @constructor |
| * @implements {WebInspector.RawLocation} |
| * @extends {WebInspector.SDKObject} |
| * @param {!WebInspector.Target} target |
| @@ -740,24 +611,13 @@ WebInspector.CSSStyleModel.LiveLocation.prototype = { |
| WebInspector.CSSLocation = function(target, styleSheetId, url, lineNumber, columnNumber) |
| { |
| WebInspector.SDKObject.call(this, target); |
| - this._cssModel = target.cssModel; |
| - this._styleSheetId = styleSheetId; |
| + this.styleSheetId = styleSheetId; |
| this.url = url; |
| this.lineNumber = lineNumber; |
| this.columnNumber = columnNumber || 0; |
| } |
| WebInspector.CSSLocation.prototype = { |
| - /** |
| - * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate |
| - * @return {!WebInspector.LiveLocation} |
| - */ |
| - createLiveLocation: function(updateDelegate) |
| - { |
| - var header = this._styleSheetId ? this._cssModel.styleSheetHeaderForId(this._styleSheetId) : null; |
| - return new WebInspector.CSSStyleModel.LiveLocation(this._cssModel, header, this, updateDelegate); |
| - }, |
| - |
| __proto__: WebInspector.SDKObject.prototype |
| } |
| @@ -1063,7 +923,7 @@ WebInspector.CSSRule = function(cssModel, payload, matchingSelectors) |
| this.style.parentRule = this; |
| if (payload.media) |
| this.media = WebInspector.CSSMedia.parseMediaArrayPayload(cssModel, payload.media); |
| - this._setRawLocationAndFrameId(); |
| + this._setFrameId(); |
| } |
| /** |
| @@ -1101,16 +961,12 @@ WebInspector.CSSRule.prototype = { |
| this.style.sourceStyleSheetEdited(styleSheetId, oldRange, newRange); |
| }, |
| - _setRawLocationAndFrameId: function() |
| + _setFrameId: function() |
| { |
| if (!this.styleSheetId) |
| return; |
| var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetId); |
| this.frameId = styleSheetHeader.frameId; |
| - var url = styleSheetHeader.resourceURL(); |
| - if (!url) |
| - return; |
| - this.rawLocation = new WebInspector.CSSLocation(this._cssModel.target(), this.styleSheetId, url, this.lineNumberInSource(0), this.columnNumberInSource(0)); |
| }, |
| /** |
| @@ -1151,6 +1007,19 @@ WebInspector.CSSRule.prototype = { |
| return styleSheetHeader.columnNumberInSource(selector.range.startLine, selector.range.startColumn); |
| }, |
| + /** |
| + * @param {number} index |
| + * @return {?WebInspector.CSSLocation} |
| + */ |
| + rawSelectorLocation: function(index) |
| + { |
| + var lineNumber = this.lineNumberInSource(index); |
| + if (lineNumber === undefined) |
|
vsevik
2014/07/22 14:59:01
This is not possible according to annotations.
apavlov
2014/07/22 16:19:53
Done.
|
| + return null; |
| + var columnNumber = this.columnNumberInSource(index); |
| + return new WebInspector.CSSLocation(this._cssModel.target(), this.styleSheetId || null, this.resourceURL(), lineNumber, columnNumber); |
| + }, |
| + |
| get isUserAgent() |
| { |
| return this.origin === "user-agent"; |
| @@ -1521,28 +1390,10 @@ WebInspector.CSSMedia.prototype = { |
| */ |
| rawLocation: function() |
| { |
| - if (!this.header() || typeof this.lineNumberInSource() === "undefined") |
|
vsevik
2014/07/22 14:59:01
Shouldn't it be this.lineNumberInSource(0) ?
apavlov
2014/07/22 16:19:53
This is CSSMedia, not CSSRule
|
| + if (!this.header() || this.lineNumberInSource() === undefined) |
| return null; |
| var lineNumber = Number(this.lineNumberInSource()); |
| return new WebInspector.CSSLocation(this._cssModel.target(), this.header().id, this.sourceURL, lineNumber, this.columnNumberInSource()); |
| - }, |
| - |
| - /** |
| - * @return {?WebInspector.UILocation} |
| - */ |
| - uiLocation: function() |
| - { |
| - var styleSheetHeader = this.header(); |
| - var lineNumber = this.lineNumberInSource(); |
| - var columnNumber = this.columnNumberInSource(); |
| - if (typeof lineNumber !== "number") |
| - return null; |
| - if (styleSheetHeader) |
| - return styleSheetHeader.rawLocationToUILocation(lineNumber, columnNumber); |
| - var uiSourceCode = WebInspector.workspace.uiSourceCodeForURL(this.sourceURL); |
| - if (!uiSourceCode) |
| - return null; |
| - return uiSourceCode.uiLocation(lineNumber, columnNumber); |
| } |
| } |
| @@ -1566,66 +1417,23 @@ WebInspector.CSSStyleSheetHeader = function(cssModel, payload) |
| this.isInline = payload.isInline; |
| this.startLine = payload.startLine; |
| this.startColumn = payload.startColumn; |
| - /** @type {!Set.<!WebInspector.CSSStyleModel.LiveLocation>} */ |
| - this._locations = new Set(); |
| - /** @type {!Array.<!WebInspector.SourceMapping>} */ |
| - this._sourceMappings = []; |
| } |
| WebInspector.CSSStyleSheetHeader.prototype = { |
| /** |
| - * @return {string} |
| - */ |
| - resourceURL: function() |
| - { |
| - return this.isViaInspector() ? this._viaInspectorResourceURL() : this.sourceURL; |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.CSSStyleModel.LiveLocation} location |
| - */ |
| - addLiveLocation: function(location) |
| - { |
| - this._locations.add(location); |
| - location.update(); |
| - }, |
| - |
| - updateLocations: function() |
| - { |
| - var items = this._locations.values(); |
| - for (var i = 0; i < items.length; ++i) |
| - items[i].update(); |
| - }, |
| - |
| - /** |
| - * @param {!WebInspector.CSSStyleModel.LiveLocation} location |
| - */ |
| - _removeLocation: function(location) |
| - { |
| - this._locations.remove(location); |
| - }, |
| - |
| - /** |
| - * @param {number} lineNumber |
| - * @param {number=} columnNumber |
| - * @return {?WebInspector.UILocation} |
| + * @return {!WebInspector.Target} |
| */ |
| - rawLocationToUILocation: function(lineNumber, columnNumber) |
| + target: function() |
| { |
| - var uiLocation = null; |
| - var rawLocation = new WebInspector.CSSLocation(this._cssModel.target(), this.id, this.resourceURL(), lineNumber, columnNumber); |
| - for (var i = this._sourceMappings.length - 1; !uiLocation && i >= 0; --i) |
| - uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLocation); |
| - return uiLocation; |
| + return this._cssModel.target(); |
| }, |
| /** |
| - * @param {!WebInspector.SourceMapping} sourceMapping |
| + * @return {string} |
| */ |
| - pushSourceMapping: function(sourceMapping) |
| + resourceURL: function() |
| { |
| - this._sourceMappings.push(sourceMapping); |
| - this.updateLocations(); |
| + return this.isViaInspector() ? this._viaInspectorResourceURL() : this.sourceURL; |
| }, |
| /** |
| @@ -1745,8 +1553,7 @@ WebInspector.CSSStyleSheetHeader.prototype = { |
| isViaInspector: function() |
| { |
| return this.origin === "inspector"; |
| - }, |
| - |
| + } |
| } |
| /** |