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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sass/SASSSourceMapFactory.js

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots Created 4 years, 1 month 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @implements {WebInspector.SourceMapFactory} 5 * @implements {SDK.SourceMapFactory}
6 * @unrestricted 6 * @unrestricted
7 */ 7 */
8 WebInspector.SASSSourceMapFactory = class { 8 Sass.SASSSourceMapFactory = class {
9 constructor() { 9 constructor() {
10 this._astService = new WebInspector.ASTService(); 10 this._astService = new Sass.ASTService();
11 } 11 }
12 12
13 /** 13 /**
14 * @override 14 * @override
15 * @param {!WebInspector.Target} target 15 * @param {!SDK.Target} target
16 * @param {!WebInspector.SourceMap} sourceMap 16 * @param {!SDK.SourceMap} sourceMap
17 * @return {!Promise<?WebInspector.SourceMap>} 17 * @return {!Promise<?SDK.SourceMap>}
18 */ 18 */
19 editableSourceMap(target, sourceMap) { 19 editableSourceMap(target, sourceMap) {
20 var cssModel = WebInspector.CSSModel.fromTarget(target); 20 var cssModel = SDK.CSSModel.fromTarget(target);
21 if (!cssModel) 21 if (!cssModel)
22 return Promise.resolve(/** @type {?WebInspector.SourceMap} */ (null)); 22 return Promise.resolve(/** @type {?SDK.SourceMap} */ (null));
23 23
24 var header = 24 var header =
25 cssModel.styleSheetHeaders().find(styleSheetHeader => styleSheetHeader.s ourceMapURL === sourceMap.url()); 25 cssModel.styleSheetHeaders().find(styleSheetHeader => styleSheetHeader.s ourceMapURL === sourceMap.url());
26 if (!header) 26 if (!header)
27 return Promise.resolve(/** @type {?WebInspector.SourceMap} */ (null)); 27 return Promise.resolve(/** @type {?SDK.SourceMap} */ (null));
28 28
29 /** @type {!Map<string, !WebInspector.SASSSupport.AST>} */ 29 /** @type {!Map<string, !Sass.SASSSupport.AST>} */
30 var models = new Map(); 30 var models = new Map();
31 var promises = []; 31 var promises = [];
32 for (let url of sourceMap.sourceURLs()) { 32 for (let url of sourceMap.sourceURLs()) {
33 var contentProvider = sourceMap.sourceContentProvider(url, WebInspector.re sourceTypes.SourceMapStyleSheet); 33 var contentProvider = sourceMap.sourceContentProvider(url, Common.resource Types.SourceMapStyleSheet);
34 var sassPromise = contentProvider.requestContent() 34 var sassPromise = contentProvider.requestContent()
35 .then(text => this._astService.parseSCSS(url, text | | '')) 35 .then(text => this._astService.parseSCSS(url, text | | ''))
36 .then(ast => models.set(ast.document.url, ast)); 36 .then(ast => models.set(ast.document.url, ast));
37 promises.push(sassPromise); 37 promises.push(sassPromise);
38 } 38 }
39 var cssURL = sourceMap.compiledURL(); 39 var cssURL = sourceMap.compiledURL();
40 var cssPromise = header.originalContentProvider() 40 var cssPromise = header.originalContentProvider()
41 .requestContent() 41 .requestContent()
42 .then(text => this._astService.parseCSS(cssURL, text || '')) 42 .then(text => this._astService.parseCSS(cssURL, text || ''))
43 .then(ast => models.set(ast.document.url, ast)); 43 .then(ast => models.set(ast.document.url, ast));
44 promises.push(cssPromise); 44 promises.push(cssPromise);
45 45
46 return Promise.all(promises) 46 return Promise.all(promises)
47 .then(this._onSourcesParsed.bind(this, sourceMap, models)) 47 .then(this._onSourcesParsed.bind(this, sourceMap, models))
48 .catchException(/** @type {?WebInspector.SourceMap} */ (null)); 48 .catchException(/** @type {?SDK.SourceMap} */ (null));
49 } 49 }
50 50
51 /** 51 /**
52 * @param {!WebInspector.SourceMap} sourceMap 52 * @param {!SDK.SourceMap} sourceMap
53 * @param {!Map<string, !WebInspector.SASSSupport.AST>} models 53 * @param {!Map<string, !Sass.SASSSupport.AST>} models
54 * @return {?WebInspector.SourceMap} 54 * @return {?SDK.SourceMap}
55 */ 55 */
56 _onSourcesParsed(sourceMap, models) { 56 _onSourcesParsed(sourceMap, models) {
57 var editCallback = WebInspector.SASSProcessor.processCSSEdits.bind(WebInspec tor.SASSProcessor, this._astService); 57 var editCallback = Sass.SASSProcessor.processCSSEdits.bind(Sass.SASSProcesso r, this._astService);
58 var map = new WebInspector.ASTSourceMap(sourceMap.compiledURL(), sourceMap.u rl(), models, editCallback); 58 var map = new Sass.ASTSourceMap(sourceMap.compiledURL(), sourceMap.url(), mo dels, editCallback);
59 var valid = true; 59 var valid = true;
60 map.compiledModel().visit(onNode); 60 map.compiledModel().visit(onNode);
61 return valid ? map : null; 61 return valid ? map : null;
62 62
63 /** 63 /**
64 * @param {!WebInspector.SASSSupport.Node} cssNode 64 * @param {!Sass.SASSSupport.Node} cssNode
65 */ 65 */
66 function onNode(cssNode) { 66 function onNode(cssNode) {
67 if (!valid) 67 if (!valid)
68 return; 68 return;
69 if (!(cssNode instanceof WebInspector.SASSSupport.TextNode)) 69 if (!(cssNode instanceof Sass.SASSSupport.TextNode))
70 return; 70 return;
71 var entry = sourceMap.findEntry(cssNode.range.startLine, cssNode.range.sta rtColumn); 71 var entry = sourceMap.findEntry(cssNode.range.startLine, cssNode.range.sta rtColumn);
72 if (!entry || !entry.sourceURL || typeof entry.sourceLineNumber === 'undef ined' || 72 if (!entry || !entry.sourceURL || typeof entry.sourceLineNumber === 'undef ined' ||
73 typeof entry.sourceColumnNumber === 'undefined') 73 typeof entry.sourceColumnNumber === 'undefined')
74 return; 74 return;
75 var sassAST = models.get(entry.sourceURL); 75 var sassAST = models.get(entry.sourceURL);
76 if (!sassAST) 76 if (!sassAST)
77 return; 77 return;
78 var sassNode = sassAST.findNodeForPosition(entry.sourceLineNumber, entry.s ourceColumnNumber); 78 var sassNode = sassAST.findNodeForPosition(entry.sourceLineNumber, entry.s ourceColumnNumber);
79 if (!sassNode) 79 if (!sassNode)
80 return; 80 return;
81 if (cssNode.parent && (cssNode.parent instanceof WebInspector.SASSSupport. Property) && 81 if (cssNode.parent && (cssNode.parent instanceof Sass.SASSSupport.Property ) &&
82 cssNode === cssNode.parent.name && cssNode.text.trim() !== sassNode.te xt.trim()) { 82 cssNode === cssNode.parent.name && cssNode.text.trim() !== sassNode.te xt.trim()) {
83 valid = false; 83 valid = false;
84 reportError(cssNode, sassNode); 84 reportError(cssNode, sassNode);
85 return; 85 return;
86 } 86 }
87 map.addMapping(cssNode, sassNode); 87 map.addMapping(cssNode, sassNode);
88 } 88 }
89 89
90 /** 90 /**
91 * @param {!WebInspector.SASSSupport.TextNode} cssNode 91 * @param {!Sass.SASSSupport.TextNode} cssNode
92 * @param {!WebInspector.SASSSupport.TextNode} sassNode 92 * @param {!Sass.SASSSupport.TextNode} sassNode
93 */ 93 */
94 function reportError(cssNode, sassNode) { 94 function reportError(cssNode, sassNode) {
95 var text = WebInspector.UIString('LiveSASS failed to start: %s', sourceMap .url()); 95 var text = Common.UIString('LiveSASS failed to start: %s', sourceMap.url() );
96 text += WebInspector.UIString('\nSourceMap is misaligned: %s != %s', cssNo de.text.trim(), sassNode.text.trim()); 96 text += Common.UIString('\nSourceMap is misaligned: %s != %s', cssNode.tex t.trim(), sassNode.text.trim());
97 text += '\ncompiled: ' + cssNode.document.url + ':' + (cssNode.range.start Line + 1) + ':' + 97 text += '\ncompiled: ' + cssNode.document.url + ':' + (cssNode.range.start Line + 1) + ':' +
98 (cssNode.range.startColumn + 1); 98 (cssNode.range.startColumn + 1);
99 text += '\nsource: ' + sassNode.document.url + ':' + (sassNode.range.start Line + 1) + ':' + 99 text += '\nsource: ' + sassNode.document.url + ':' + (sassNode.range.start Line + 1) + ':' +
100 (sassNode.range.startColumn + 1); 100 (sassNode.range.startColumn + 1);
101 WebInspector.console.error(text); 101 Common.console.error(text);
102 } 102 }
103 } 103 }
104 }; 104 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698