Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/bindings/SASSSourceMapping.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/SASSSourceMapping.js b/third_party/WebKit/Source/devtools/front_end/bindings/SASSSourceMapping.js |
| index f7f9507e992356c1760e94384e3a0ba82bf0ed7f..325a15d238d92387086bc074cffea49bacfabbe9 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/bindings/SASSSourceMapping.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/bindings/SASSSourceMapping.js |
| @@ -49,6 +49,9 @@ Bindings.SASSSourceMapping = class { |
| this._sourceMapManager.addEventListener( |
| SDK.SourceMapManager.Events.SourceMapChanged, this._sourceMapChanged, this) |
| ]; |
| + |
| + /** @type {!Multimap<string, !SDK.CSSStyleSheetHeader>} */ |
| + this._frameIdToHeaders = new Multimap(); |
| } |
| /** |
| @@ -63,6 +66,13 @@ Bindings.SASSSourceMapping = class { |
| _sourceMapAttached(event) { |
| var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); |
| var sourceMap = this._sourceMapManager.sourceMapForClient(header); |
| + if (this._frameIdToHeaders.has(header.frameId)) { |
| + this._frameIdToHeaders.set(header.frameId, header); |
| + this._sourceMapAttachedForTest(sourceMap); |
| + return; |
|
dgozman
2017/03/28 23:37:37
I haven't seen any difference in tests related to
lushnikov
2017/03/29 01:27:24
This stops over-writing sourcemap uiSourceCodes fo
|
| + } |
| + this._frameIdToHeaders.set(header.frameId, header); |
| + |
| for (var sassURL of sourceMap.sourceURLs()) { |
| var contentProvider = sourceMap.sourceContentProvider(sassURL, Common.resourceTypes.SourceMapStyleSheet); |
| var embeddedContent = sourceMap.embeddedContentByURL(sassURL); |
| @@ -77,7 +87,13 @@ Bindings.SASSSourceMapping = class { |
| * @param {!Common.Event} event |
| */ |
| _sourceMapDetached(event) { |
| - var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data); |
| + var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data.client); |
| + this._frameIdToHeaders.remove(header.frameId, header); |
| + if (this._frameIdToHeaders.has(header.frameId)) |
| + return; |
| + var sourceMap = /** @type {!SDK.SourceMap} */ (event.data.sourceMap); |
| + for (var sassURL of sourceMap.sourceURLs()) |
| + this._networkProject.removeSourceMapFile(sassURL, header.frameId, false); |
| Bindings.cssWorkspaceBinding.updateLocations(header); |
| } |