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

Side by Side Diff: Source/devtools/front_end/sdk/SASSSourceMapping.js

Issue 297923002: DevTools: Decouple CSS model from UI entities (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase atop new workspace bindings Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 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 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 delete this._completeSourceMapURLForCSSURL[sourceURL]; 412 delete this._completeSourceMapURLForCSSURL[sourceURL];
413 for (var sassURL in this._cssURLsForSASSURL) { 413 for (var sassURL in this._cssURLsForSASSURL) {
414 var urls = this._cssURLsForSASSURL[sassURL]; 414 var urls = this._cssURLsForSASSURL[sassURL];
415 urls.remove(sourceURL); 415 urls.remove(sourceURL);
416 if (!urls.length) 416 if (!urls.length)
417 delete this._cssURLsForSASSURL[sassURL]; 417 delete this._cssURLsForSASSURL[sassURL];
418 } 418 }
419 var completeSourceMapURL = WebInspector.ParsedURL.completeURL(sourceURL, header.sourceMapURL); 419 var completeSourceMapURL = WebInspector.ParsedURL.completeURL(sourceURL, header.sourceMapURL);
420 if (completeSourceMapURL) 420 if (completeSourceMapURL)
421 delete this._sourceMapByURL[completeSourceMapURL]; 421 delete this._sourceMapByURL[completeSourceMapURL];
422 header.updateLocations(); 422 WebInspector.cssWorkspaceBinding.updateLocations(header);
423 }, 423 },
424 424
425 /** 425 /**
426 * @param {!Array.<!WebInspector.CSSStyleSheetHeader>} headersWithSameSource URL 426 * @param {!Array.<!WebInspector.CSSStyleSheetHeader>} headersWithSameSource URL
427 * @param {boolean} forceRebind 427 * @param {boolean} forceRebind
428 * @param {string} completeSourceMapURL 428 * @param {string} completeSourceMapURL
429 */ 429 */
430 _loadSourceMapAndBindUISourceCode: function(headersWithSameSourceURL, forceR ebind, completeSourceMapURL) 430 _loadSourceMapAndBindUISourceCode: function(headersWithSameSourceURL, forceR ebind, completeSourceMapURL)
431 { 431 {
432 console.assert(headersWithSameSourceURL.length); 432 console.assert(headersWithSameSourceURL.length);
433 var sourceURL = headersWithSameSourceURL[0].sourceURL; 433 var sourceURL = headersWithSameSourceURL[0].sourceURL;
434 this._loadSourceMapForStyleSheet(completeSourceMapURL, sourceURL, forceR ebind, sourceMapLoaded.bind(this)); 434 this._loadSourceMapForStyleSheet(completeSourceMapURL, sourceURL, forceR ebind, sourceMapLoaded.bind(this));
435 435
436 /** 436 /**
437 * @param {?WebInspector.SourceMap} sourceMap 437 * @param {?WebInspector.SourceMap} sourceMap
438 * @this {WebInspector.SASSSourceMapping} 438 * @this {WebInspector.SASSSourceMapping}
439 */ 439 */
440 function sourceMapLoaded(sourceMap) 440 function sourceMapLoaded(sourceMap)
441 { 441 {
442 if (!sourceMap) 442 if (!sourceMap)
443 return; 443 return;
444 444
445 this._sourceMapByStyleSheetURL[sourceURL] = sourceMap; 445 this._sourceMapByStyleSheetURL[sourceURL] = sourceMap;
446 for (var i = 0; i < headersWithSameSourceURL.length; ++i) { 446 for (var i = 0; i < headersWithSameSourceURL.length; ++i) {
447 if (forceRebind) 447 if (forceRebind)
448 headersWithSameSourceURL[i].updateLocations(); 448 WebInspector.cssWorkspaceBinding.updateLocations(headersWith SameSourceURL[i]);
449 else 449 else
450 this._bindUISourceCode(headersWithSameSourceURL[i], sourceMa p); 450 this._bindUISourceCode(headersWithSameSourceURL[i], sourceMa p);
451 } 451 }
452 } 452 }
453 }, 453 },
454 454
455 /** 455 /**
456 * @param {string} cssURL 456 * @param {string} cssURL
457 * @param {string} sassURL 457 * @param {string} sassURL
458 */ 458 */
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 callbacks[i](sourceMap); 512 callbacks[i](sourceMap);
513 } 513 }
514 }, 514 },
515 515
516 /** 516 /**
517 * @param {!WebInspector.CSSStyleSheetHeader} header 517 * @param {!WebInspector.CSSStyleSheetHeader} header
518 * @param {!WebInspector.SourceMap} sourceMap 518 * @param {!WebInspector.SourceMap} sourceMap
519 */ 519 */
520 _bindUISourceCode: function(header, sourceMap) 520 _bindUISourceCode: function(header, sourceMap)
521 { 521 {
522 header.pushSourceMapping(this); 522 WebInspector.cssWorkspaceBinding.pushSourceMapping(header, this);
523 var rawURL = header.sourceURL; 523 var rawURL = header.sourceURL;
524 var sources = sourceMap.sources(); 524 var sources = sourceMap.sources();
525 for (var i = 0; i < sources.length; ++i) { 525 for (var i = 0; i < sources.length; ++i) {
526 var url = sources[i]; 526 var url = sources[i];
527 this._addCSSURLforSASSURL(rawURL, url); 527 this._addCSSURLforSASSURL(rawURL, url);
528 if (!this._workspace.hasMappingForURL(url) && !this._workspace.uiSou rceCodeForURL(url)) { 528 if (!this._workspace.hasMappingForURL(url) && !this._workspace.uiSou rceCodeForURL(url)) {
529 var contentProvider = sourceMap.sourceContentProvider(url, WebIn spector.resourceTypes.Stylesheet); 529 var contentProvider = sourceMap.sourceContentProvider(url, WebIn spector.resourceTypes.Stylesheet);
530 this._networkWorkspaceBinding.addFileForURL(url, contentProvider ); 530 this._networkWorkspaceBinding.addFileForURL(url, contentProvider );
531 } 531 }
532 } 532 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 _uiSourceCodeAdded: function(event) 596 _uiSourceCodeAdded: function(event)
597 { 597 {
598 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data ); 598 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data );
599 var cssURLs = this._cssURLsForSASSURL[uiSourceCode.url]; 599 var cssURLs = this._cssURLsForSASSURL[uiSourceCode.url];
600 if (!cssURLs) 600 if (!cssURLs)
601 return; 601 return;
602 for (var i = 0; i < cssURLs.length; ++i) { 602 for (var i = 0; i < cssURLs.length; ++i) {
603 var ids = this._cssModel.styleSheetIdsForURL(cssURLs[i]); 603 var ids = this._cssModel.styleSheetIdsForURL(cssURLs[i]);
604 for (var j = 0; j < ids.length; ++j) { 604 for (var j = 0; j < ids.length; ++j) {
605 var header = this._cssModel.styleSheetHeaderForId(ids[j]); 605 var header = this._cssModel.styleSheetHeaderForId(ids[j]);
606 console.assert(header); 606 if (!header)
607 header.updateLocations(); 607 throw new Error("Header not found for id=" + ids[j]);
vsevik 2014/07/22 14:59:01 This should never happen and we used to assert in
apavlov 2014/07/22 16:19:53 Done.
608 WebInspector.cssWorkspaceBinding.updateLocations(header);
608 } 609 }
609 } 610 }
610 }, 611 },
611 612
612 /** 613 /**
613 * @param {!WebInspector.Event} event 614 * @param {!WebInspector.Event} event
614 */ 615 */
615 _uiSourceCodeContentCommitted: function(event) 616 _uiSourceCodeContentCommitted: function(event)
616 { 617 {
617 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data .uiSourceCode); 618 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data .uiSourceCode);
618 if (uiSourceCode.project().type() === WebInspector.projectTypes.FileSyst em) 619 if (uiSourceCode.project().type() === WebInspector.projectTypes.FileSyst em)
619 this._sassFileSaved(uiSourceCode.url, true); 620 this._sassFileSaved(uiSourceCode.url, true);
620 }, 621 },
621 622
622 _reset: function() 623 _reset: function()
623 { 624 {
624 this._addingRevisionCounter = 0; 625 this._addingRevisionCounter = 0;
625 this._completeSourceMapURLForCSSURL = {}; 626 this._completeSourceMapURLForCSSURL = {};
626 this._cssURLsForSASSURL = {}; 627 this._cssURLsForSASSURL = {};
627 /** @type {!Object.<string, !Array.<function(?WebInspector.SourceMap)>>} */ 628 /** @type {!Object.<string, !Array.<function(?WebInspector.SourceMap)>>} */
628 this._pendingSourceMapLoadingCallbacks = {}; 629 this._pendingSourceMapLoadingCallbacks = {};
629 /** @type {!Object.<string, !{deadlineMs: number, dataByURL: !Object.<st ring, !{timer: number, previousPoll: number}>}>} */ 630 /** @type {!Object.<string, !{deadlineMs: number, dataByURL: !Object.<st ring, !{timer: number, previousPoll: number}>}>} */
630 this._pollDataForSASSURL = {}; 631 this._pollDataForSASSURL = {};
631 /** @type {!Object.<string, !WebInspector.SourceMap>} */ 632 /** @type {!Object.<string, !WebInspector.SourceMap>} */
632 this._sourceMapByURL = {}; 633 this._sourceMapByURL = {};
633 this._sourceMapByStyleSheetURL = {}; 634 this._sourceMapByStyleSheetURL = {};
634 } 635 }
635 } 636 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698