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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js

Issue 2893523002: DevTools: make StyleSourceMapping in charge of managing UISourceCodes (Closed)
Patch Set: rebaseline Created 3 years, 6 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 /* 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 this._resourceTreeModel.addEventListener( 47 this._resourceTreeModel.addEventListener(
48 SDK.ResourceTreeModel.Events.MainFrameNavigated, this._resetStyleSheet s, this); 48 SDK.ResourceTreeModel.Events.MainFrameNavigated, this._resetStyleSheet s, this);
49 } 49 }
50 target.registerCSSDispatcher(new SDK.CSSDispatcher(this)); 50 target.registerCSSDispatcher(new SDK.CSSDispatcher(this));
51 this._enable(); 51 this._enable();
52 /** @type {!Map.<string, !SDK.CSSStyleSheetHeader>} */ 52 /** @type {!Map.<string, !SDK.CSSStyleSheetHeader>} */
53 this._styleSheetIdToHeader = new Map(); 53 this._styleSheetIdToHeader = new Map();
54 /** @type {!Map.<string, !Object.<!Protocol.Page.FrameId, !Array.<!Protocol. CSS.StyleSheetId>>>} */ 54 /** @type {!Map.<string, !Object.<!Protocol.Page.FrameId, !Array.<!Protocol. CSS.StyleSheetId>>>} */
55 this._styleSheetIdsForURL = new Map(); 55 this._styleSheetIdsForURL = new Map();
56 56
57 /** @type {!Multimap<string, function(!SDK.CSSStyleSheetHeader)>} */
58 this._styleSheetChangeSubscribers = new Multimap();
59
57 /** @type {!Map.<!SDK.CSSStyleSheetHeader, !Promise<?string>>} */ 60 /** @type {!Map.<!SDK.CSSStyleSheetHeader, !Promise<?string>>} */
58 this._originalStyleSheetText = new Map(); 61 this._originalStyleSheetText = new Map();
59 62
60 this._sourceMapManager.setEnabled(Common.moduleSetting('cssSourceMapsEnabled ').get()); 63 this._sourceMapManager.setEnabled(Common.moduleSetting('cssSourceMapsEnabled ').get());
61 Common.moduleSetting('cssSourceMapsEnabled') 64 Common.moduleSetting('cssSourceMapsEnabled')
62 .addChangeListener(event => this._sourceMapManager.setEnabled(/** @type {boolean} */ (event.data))); 65 .addChangeListener(event => this._sourceMapManager.setEnabled(/** @type {boolean} */ (event.data)));
63 } 66 }
64 67
65 /** 68 /**
66 * @return {!SDK.SourceMapManager<!SDK.CSSStyleSheetHeader>} 69 * @return {!SDK.SourceMapManager<!SDK.CSSStyleSheetHeader>}
(...skipping 17 matching lines...) Expand all
84 if (sourceURLLineIndex === -1) 87 if (sourceURLLineIndex === -1)
85 return text; 88 return text;
86 var sourceURLLine = text.substr(sourceURLLineIndex + 1).split('\n', 1)[0]; 89 var sourceURLLine = text.substr(sourceURLLineIndex + 1).split('\n', 1)[0];
87 var sourceURLRegex = /[\040\t]*\/\*[#@] sourceURL=[\040\t]*([^\s]*)[\040\t]* \*\/[\040\t]*$/; 90 var sourceURLRegex = /[\040\t]*\/\*[#@] sourceURL=[\040\t]*([^\s]*)[\040\t]* \*\/[\040\t]*$/;
88 if (sourceURLLine.search(sourceURLRegex) === -1) 91 if (sourceURLLine.search(sourceURLRegex) === -1)
89 return text; 92 return text;
90 return text.substr(0, sourceURLLineIndex) + text.substr(sourceURLLineIndex + sourceURLLine.length + 1); 93 return text.substr(0, sourceURLLineIndex) + text.substr(sourceURLLineIndex + sourceURLLine.length + 1);
91 } 94 }
92 95
93 /** 96 /**
97 * @param {string} headerId
98 * @param {function(!SDK.CSSStyleSheetHeader)} callback
99 */
100 subscribeToStyleSheetChanged(headerId, callback) {
101 this._styleSheetChangeSubscribers.set(headerId, callback);
102 }
103
104 /**
105 * @param {string} headerId
106 * @param {function(!SDK.CSSStyleSheetHeader)} callback
107 */
108 unsubscribeFromStyleSheetChanged(headerId, callback) {
109 this._styleSheetChangeSubscribers.delete(headerId, callback);
110 }
111
112 /**
94 * @return {!SDK.DOMModel} 113 * @return {!SDK.DOMModel}
95 */ 114 */
96 domModel() { 115 domModel() {
97 return this._domModel; 116 return this._domModel;
98 } 117 }
99 118
100 /** 119 /**
101 * @param {!Protocol.CSS.StyleSheetId} styleSheetId 120 * @param {!Protocol.CSS.StyleSheetId} styleSheetId
102 * @param {!TextUtils.TextRange} range 121 * @param {!TextUtils.TextRange} range
103 * @param {string} text 122 * @param {string} text
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 */ 557 */
539 styleSheetHeaders() { 558 styleSheetHeaders() {
540 return this._styleSheetIdToHeader.valuesArray(); 559 return this._styleSheetIdToHeader.valuesArray();
541 } 560 }
542 561
543 /** 562 /**
544 * @param {!Protocol.CSS.StyleSheetId} styleSheetId 563 * @param {!Protocol.CSS.StyleSheetId} styleSheetId
545 * @param {!SDK.CSSModel.Edit=} edit 564 * @param {!SDK.CSSModel.Edit=} edit
546 */ 565 */
547 _fireStyleSheetChanged(styleSheetId, edit) { 566 _fireStyleSheetChanged(styleSheetId, edit) {
567 if (this._styleSheetChangeSubscribers.has(styleSheetId)) {
568 var header = this._styleSheetIdToHeader.get(styleSheetId);
569 var subscribers = Array.from(this._styleSheetChangeSubscribers.get(styleSh eetId));
570 if (header && subscribers)
571 subscribers.forEach(subscriber => subscriber.call(null, header));
572 }
548 this.dispatchEventToListeners(SDK.CSSModel.Events.StyleSheetChanged, {styleS heetId: styleSheetId, edit: edit}); 573 this.dispatchEventToListeners(SDK.CSSModel.Events.StyleSheetChanged, {styleS heetId: styleSheetId, edit: edit});
549 } 574 }
550 575
551 /** 576 /**
552 * @param {!Protocol.CSS.StyleSheetId} styleSheetId 577 * @param {!Protocol.CSS.StyleSheetId} styleSheetId
553 * @return {!Promise<?string>} 578 * @return {!Promise<?string>}
554 */ 579 */
555 _ensureOriginalStyleSheetText(styleSheetId) { 580 _ensureOriginalStyleSheetText(styleSheetId) {
556 var header = this.styleSheetHeaderForId(styleSheetId); 581 var header = this.styleSheetHeaderForId(styleSheetId);
557 if (!header) 582 if (!header)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 627
603 /** 628 /**
604 * @param {!Protocol.CSS.StyleSheetId} id 629 * @param {!Protocol.CSS.StyleSheetId} id
605 */ 630 */
606 _styleSheetRemoved(id) { 631 _styleSheetRemoved(id) {
607 var header = this._styleSheetIdToHeader.get(id); 632 var header = this._styleSheetIdToHeader.get(id);
608 console.assert(header); 633 console.assert(header);
609 if (!header) 634 if (!header)
610 return; 635 return;
611 this._styleSheetIdToHeader.remove(id); 636 this._styleSheetIdToHeader.remove(id);
637 this._styleSheetChangeSubscribers.deleteAll(id);
612 var url = header.resourceURL(); 638 var url = header.resourceURL();
613 var frameIdToStyleSheetIds = /** @type {!Object.<!Protocol.Page.FrameId, !Ar ray.<!Protocol.CSS.StyleSheetId>>} */ ( 639 var frameIdToStyleSheetIds = /** @type {!Object.<!Protocol.Page.FrameId, !Ar ray.<!Protocol.CSS.StyleSheetId>>} */ (
614 this._styleSheetIdsForURL.get(url)); 640 this._styleSheetIdsForURL.get(url));
615 console.assert(frameIdToStyleSheetIds, 'No frameId to styleSheetId map is av ailable for given style sheet URL.'); 641 console.assert(frameIdToStyleSheetIds, 'No frameId to styleSheetId map is av ailable for given style sheet URL.');
616 frameIdToStyleSheetIds[header.frameId].remove(id); 642 frameIdToStyleSheetIds[header.frameId].remove(id);
617 if (!frameIdToStyleSheetIds[header.frameId].length) { 643 if (!frameIdToStyleSheetIds[header.frameId].length) {
618 delete frameIdToStyleSheetIds[header.frameId]; 644 delete frameIdToStyleSheetIds[header.frameId];
619 if (!Object.keys(frameIdToStyleSheetIds).length) 645 if (!Object.keys(frameIdToStyleSheetIds).length)
620 this._styleSheetIdsForURL.remove(url); 646 this._styleSheetIdsForURL.remove(url);
621 } 647 }
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 SDK.CSSModel.InlineStyleResult = class { 936 SDK.CSSModel.InlineStyleResult = class {
911 /** 937 /**
912 * @param {?SDK.CSSStyleDeclaration} inlineStyle 938 * @param {?SDK.CSSStyleDeclaration} inlineStyle
913 * @param {?SDK.CSSStyleDeclaration} attributesStyle 939 * @param {?SDK.CSSStyleDeclaration} attributesStyle
914 */ 940 */
915 constructor(inlineStyle, attributesStyle) { 941 constructor(inlineStyle, attributesStyle) {
916 this.inlineStyle = inlineStyle; 942 this.inlineStyle = inlineStyle;
917 this.attributesStyle = attributesStyle; 943 this.attributesStyle = attributesStyle;
918 } 944 }
919 }; 945 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698