| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @constructor | 32 * @constructor |
| 33 * @extends {WebInspector.Object} | 33 * @extends {WebInspector.TargetAwareObject} |
| 34 * @param {!WebInspector.Target} target | 34 * @param {!WebInspector.Target} target |
| 35 */ | 35 */ |
| 36 WebInspector.CSSStyleModel = function(target) | 36 WebInspector.CSSStyleModel = function(target) |
| 37 { | 37 { |
| 38 WebInspector.TargetAwareObject.call(this, target); |
| 38 this._domModel = target.domModel; | 39 this._domModel = target.domModel; |
| 39 this._agent = target.cssAgent(); | 40 this._agent = target.cssAgent(); |
| 40 this._pendingCommandsMajorState = []; | 41 this._pendingCommandsMajorState = []; |
| 41 this._styleLoader = new WebInspector.CSSStyleModel.ComputedStyleLoader(this)
; | 42 this._styleLoader = new WebInspector.CSSStyleModel.ComputedStyleLoader(this)
; |
| 42 this._domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedoRequest
ed, this._undoRedoRequested, this); | 43 this._domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedoRequest
ed, this._undoRedoRequested, this); |
| 43 this._domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedoComplet
ed, this._undoRedoCompleted, this); | 44 this._domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedoComplet
ed, this._undoRedoCompleted, this); |
| 44 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.MainFrameCreatedOrNavigated, this._mainFrameCreatedOrNavigated, th
is); | 45 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.MainFrameCreatedOrNavigated, this._mainFrameCreatedOrNavigated, th
is); |
| 45 InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this))
; | 46 InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this))
; |
| 46 this._agent.enable(this._wasEnabled.bind(this)); | 47 this._agent.enable(this._wasEnabled.bind(this)); |
| 47 this._resetStyleSheets(); | 48 this._resetStyleSheets(); |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 styleSheetIds = styleSheetIds.concat(frameIdToSheetIds[frameId]); | 586 styleSheetIds = styleSheetIds.concat(frameIdToSheetIds[frameId]); |
| 586 var uiLocation; | 587 var uiLocation; |
| 587 for (var i = 0; !uiLocation && i < styleSheetIds.length; ++i) { | 588 for (var i = 0; !uiLocation && i < styleSheetIds.length; ++i) { |
| 588 var header = this.styleSheetHeaderForId(styleSheetIds[i]); | 589 var header = this.styleSheetHeaderForId(styleSheetIds[i]); |
| 589 console.assert(header); | 590 console.assert(header); |
| 590 uiLocation = header.rawLocationToUILocation(rawLocation.lineNumber,
rawLocation.columnNumber); | 591 uiLocation = header.rawLocationToUILocation(rawLocation.lineNumber,
rawLocation.columnNumber); |
| 591 } | 592 } |
| 592 return uiLocation || null; | 593 return uiLocation || null; |
| 593 }, | 594 }, |
| 594 | 595 |
| 595 __proto__: WebInspector.Object.prototype | 596 __proto__: WebInspector.TargetAwareObject.prototype |
| 596 } | 597 } |
| 597 | 598 |
| 598 /** | 599 /** |
| 599 * @constructor | 600 * @constructor |
| 600 * @extends {WebInspector.LiveLocation} | 601 * @extends {WebInspector.LiveLocation} |
| 601 * @param {!WebInspector.CSSStyleModel} model | 602 * @param {!WebInspector.CSSStyleModel} model |
| 602 * @param {?WebInspector.CSSStyleSheetHeader} header | 603 * @param {?WebInspector.CSSStyleSheetHeader} header |
| 603 * @param {!WebInspector.CSSLocation} rawLocation | 604 * @param {!WebInspector.CSSLocation} rawLocation |
| 604 * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegat
e | 605 * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegat
e |
| 605 */ | 606 */ |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 __proto__: WebInspector.LiveLocation.prototype | 681 __proto__: WebInspector.LiveLocation.prototype |
| 681 } | 682 } |
| 682 | 683 |
| 683 /** | 684 /** |
| 684 * @constructor | 685 * @constructor |
| 685 * @implements {WebInspector.RawLocation} | 686 * @implements {WebInspector.RawLocation} |
| 686 * @param {string} url | 687 * @param {string} url |
| 687 * @param {number} lineNumber | 688 * @param {number} lineNumber |
| 688 * @param {number=} columnNumber | 689 * @param {number=} columnNumber |
| 689 */ | 690 */ |
| 690 WebInspector.CSSLocation = function(url, lineNumber, columnNumber) | 691 WebInspector.CSSLocation = function(target, url, lineNumber, columnNumber) |
| 691 { | 692 { |
| 693 this._cssModel = target.cssModel; |
| 692 this.url = url; | 694 this.url = url; |
| 693 this.lineNumber = lineNumber; | 695 this.lineNumber = lineNumber; |
| 694 this.columnNumber = columnNumber || 0; | 696 this.columnNumber = columnNumber || 0; |
| 695 } | 697 } |
| 696 | 698 |
| 699 WebInspector.CSSLocation.prototype = { |
| 700 /** |
| 701 * @param {?CSSAgent.StyleSheetId} styleSheetId |
| 702 * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDel
egate |
| 703 * @return {?WebInspector.LiveLocation} |
| 704 */ |
| 705 createLiveLocation: function(styleSheetId, updateDelegate) |
| 706 { |
| 707 var header = styleSheetId ? this._cssModel.styleSheetHeaderForId(styleSh
eetId) : null; |
| 708 return new WebInspector.CSSStyleModel.LiveLocation(this._cssModel, heade
r, this, updateDelegate); |
| 709 }, |
| 710 |
| 711 /** |
| 712 * @return {?WebInspector.UILocation} |
| 713 */ |
| 714 toUILocation: function() |
| 715 { |
| 716 return this._cssModel.rawLocationToUILocation(this); |
| 717 } |
| 718 } |
| 719 |
| 697 /** | 720 /** |
| 698 * @constructor | 721 * @constructor |
| 699 * @param {!WebInspector.CSSStyleModel} cssModel | 722 * @param {!WebInspector.CSSStyleModel} cssModel |
| 700 * @param {!CSSAgent.CSSStyle} payload | 723 * @param {!CSSAgent.CSSStyle} payload |
| 701 */ | 724 */ |
| 702 WebInspector.CSSStyleDeclaration = function(cssModel, payload) | 725 WebInspector.CSSStyleDeclaration = function(cssModel, payload) |
| 703 { | 726 { |
| 704 this._cssModel = cssModel; | 727 this._cssModel = cssModel; |
| 705 this.id = payload.styleId; | 728 this.id = payload.styleId; |
| 706 this.width = payload.width; | 729 this.width = payload.width; |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 WebInspector.CSSRule.prototype = { | 997 WebInspector.CSSRule.prototype = { |
| 975 _setRawLocationAndFrameId: function() | 998 _setRawLocationAndFrameId: function() |
| 976 { | 999 { |
| 977 if (!this.id) | 1000 if (!this.id) |
| 978 return; | 1001 return; |
| 979 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.id.styl
eSheetId); | 1002 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.id.styl
eSheetId); |
| 980 this.frameId = styleSheetHeader.frameId; | 1003 this.frameId = styleSheetHeader.frameId; |
| 981 var url = styleSheetHeader.resourceURL(); | 1004 var url = styleSheetHeader.resourceURL(); |
| 982 if (!url) | 1005 if (!url) |
| 983 return; | 1006 return; |
| 984 this.rawLocation = new WebInspector.CSSLocation(url, this.lineNumberInSo
urce(0), this.columnNumberInSource(0)); | 1007 this.rawLocation = new WebInspector.CSSLocation(this._cssModel.target(),
url, this.lineNumberInSource(0), this.columnNumberInSource(0)); |
| 985 }, | 1008 }, |
| 986 | 1009 |
| 987 /** | 1010 /** |
| 988 * @return {string} | 1011 * @return {string} |
| 989 */ | 1012 */ |
| 990 resourceURL: function() | 1013 resourceURL: function() |
| 991 { | 1014 { |
| 992 if (!this.id) | 1015 if (!this.id) |
| 993 return ""; | 1016 return ""; |
| 994 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.id.styl
eSheetId); | 1017 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.id.styl
eSheetId); |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 return null; | 1246 return null; |
| 1224 | 1247 |
| 1225 var url = this.ownerStyle.parentRule.resourceURL(); | 1248 var url = this.ownerStyle.parentRule.resourceURL(); |
| 1226 if (!url) | 1249 if (!url) |
| 1227 return null; | 1250 return null; |
| 1228 | 1251 |
| 1229 var range = this.range; | 1252 var range = this.range; |
| 1230 var line = forName ? range.startLine : range.endLine; | 1253 var line = forName ? range.startLine : range.endLine; |
| 1231 // End of range is exclusive, so subtract 1 from the end offset. | 1254 // End of range is exclusive, so subtract 1 from the end offset. |
| 1232 var column = forName ? range.startColumn : range.endColumn - (this.text
&& this.text.endsWith(";") ? 2 : 1); | 1255 var column = forName ? range.startColumn : range.endColumn - (this.text
&& this.text.endsWith(";") ? 2 : 1); |
| 1233 var rawLocation = new WebInspector.CSSLocation(url, line, column); | 1256 var rawLocation = new WebInspector.CSSLocation(this.ownerStyle._cssModel
.target(), url, line, column); |
| 1234 return this.ownerStyle._cssModel.rawLocationToUILocation(rawLocation); | 1257 return rawLocation.toUILocation(); |
| 1235 } | 1258 } |
| 1236 } | 1259 } |
| 1237 | 1260 |
| 1238 /** | 1261 /** |
| 1239 * @constructor | 1262 * @constructor |
| 1240 * @param {!WebInspector.CSSStyleModel} cssModel | 1263 * @param {!WebInspector.CSSStyleModel} cssModel |
| 1241 * @param {!CSSAgent.CSSMedia} payload | 1264 * @param {!CSSAgent.CSSMedia} payload |
| 1242 */ | 1265 */ |
| 1243 WebInspector.CSSMedia = function(cssModel, payload) | 1266 WebInspector.CSSMedia = function(cssModel, payload) |
| 1244 { | 1267 { |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 }, | 1399 }, |
| 1377 | 1400 |
| 1378 /** | 1401 /** |
| 1379 * @param {number} lineNumber | 1402 * @param {number} lineNumber |
| 1380 * @param {number=} columnNumber | 1403 * @param {number=} columnNumber |
| 1381 * @return {?WebInspector.UILocation} | 1404 * @return {?WebInspector.UILocation} |
| 1382 */ | 1405 */ |
| 1383 rawLocationToUILocation: function(lineNumber, columnNumber) | 1406 rawLocationToUILocation: function(lineNumber, columnNumber) |
| 1384 { | 1407 { |
| 1385 var uiLocation = null; | 1408 var uiLocation = null; |
| 1386 var rawLocation = new WebInspector.CSSLocation(this.resourceURL(), lineN
umber, columnNumber); | 1409 var rawLocation = new WebInspector.CSSLocation(this._cssModel.target(),
this.resourceURL(), lineNumber, columnNumber); |
| 1387 for (var i = this._sourceMappings.length - 1; !uiLocation && i >= 0; --i
) | 1410 for (var i = this._sourceMappings.length - 1; !uiLocation && i >= 0; --i
) |
| 1388 uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLoca
tion); | 1411 uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLoca
tion); |
| 1389 return uiLocation; | 1412 return uiLocation; |
| 1390 }, | 1413 }, |
| 1391 | 1414 |
| 1392 /** | 1415 /** |
| 1393 * @param {!WebInspector.SourceMapping} sourceMapping | 1416 * @param {!WebInspector.SourceMapping} sourceMapping |
| 1394 */ | 1417 */ |
| 1395 pushSourceMapping: function(sourceMapping) | 1418 pushSourceMapping: function(sourceMapping) |
| 1396 { | 1419 { |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1606 for (var i = 0; i < callbacks.length; ++i) | 1629 for (var i = 0; i < callbacks.length; ++i) |
| 1607 callbacks[i](computedStyle); | 1630 callbacks[i](computedStyle); |
| 1608 } | 1631 } |
| 1609 } | 1632 } |
| 1610 } | 1633 } |
| 1611 | 1634 |
| 1612 /** | 1635 /** |
| 1613 * @type {!WebInspector.CSSStyleModel} | 1636 * @type {!WebInspector.CSSStyleModel} |
| 1614 */ | 1637 */ |
| 1615 WebInspector.cssModel; | 1638 WebInspector.cssModel; |
| OLD | NEW |