Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/inspector/sass/sass-test.js |
| diff --git a/third_party/WebKit/LayoutTests/inspector/sass/sass-test.js b/third_party/WebKit/LayoutTests/inspector/sass/sass-test.js |
| index 3714f7480f7982a7c4d861b31667b377bc4efae4..96eb57fbdf66ed1bf11484c95770189e7bbce855 100644 |
| --- a/third_party/WebKit/LayoutTests/inspector/sass/sass-test.js |
| +++ b/third_party/WebKit/LayoutTests/inspector/sass/sass-test.js |
| @@ -2,10 +2,67 @@ var initialize_SassTest = function() { |
| InspectorTest.preloadModule("sass"); |
| -InspectorTest.loadSourceMap = function(header, callback) |
| +var sassWorkspaceAdapter = null; |
| +InspectorTest.sassWorkspaceAdapter = function() |
| { |
| + if (!sassWorkspaceAdapter) |
| + sassWorkspaceAdapter = new WebInspector.SASSWorkspaceAdapter(InspectorTest.cssModel, WebInspector.workspace, WebInspector.networkMapping); |
| + return sassWorkspaceAdapter; |
| +} |
| + |
| +var cssParser = null; |
| + |
| +InspectorTest.cssParser = function() |
| +{ |
| + if (!cssParser) |
| + cssParser = new WebInspector.CSSParser(); |
| + return cssParser; |
| +} |
| + |
| +InspectorTest.parseCSS = function(url, text) |
| +{ |
| + return WebInspector.SASSSupport.parseCSS(InspectorTest.cssParser(), url, text); |
| +} |
| + |
| +InspectorTest.parseSCSS = function(url, text) |
| +{ |
| + return self.runtime.instancePromise(WebInspector.TokenizerFactory) |
| + .then(onTokenizer); |
| + |
| + function onTokenizer(tokenizer) |
| + { |
| + return WebInspector.SASSSupport.parseSCSS(url, text, tokenizer); |
| + } |
| +} |
| + |
| +InspectorTest.loadASTMapping = function(header, callback) |
| +{ |
| + console.assert(header.cssModel() === InspectorTest.sassWorkspaceAdapter()._cssModel, "The header could not be processed by main target workspaceAdapter"); |
| + var tokenizerFactory = null; |
| + var sourceMap = null; |
| + |
| var completeSourceMapURL = WebInspector.ParsedURL.completeURL(header.sourceURL, header.sourceMapURL); |
| - WebInspector.SourceMap.load(completeSourceMapURL, header.sourceURL, callback); |
| + WebInspector.SourceMap.load(completeSourceMapURL, header.sourceURL, onSourceMapLoaded); |
| + |
| + self.runtime.instancePromise(WebInspector.TokenizerFactory) |
| + .then(tf => tokenizerFactory = tf) |
| + .then(maybeStartLoading); |
| + |
| + function onSourceMapLoaded(sm) |
| + { |
| + sourceMap = sm; |
| + maybeStartLoading(); |
| + } |
| + |
| + function maybeStartLoading() |
| + { |
| + if (!sourceMap || !tokenizerFactory) |
| + return; |
| + var client = InspectorTest.sassWorkspaceAdapter().trackSources(sourceMap); |
| + WebInspector.SASSLiveSourceMap._loadMapping(client, InspectorTest.cssParser(), tokenizerFactory, sourceMap) |
| + .then(callback) |
| + .then(() => client.dispose()) |
| + } |
| } |
| InspectorTest.dumpAST = function(ast) |
| @@ -140,7 +197,7 @@ InspectorTest.validateASTRanges = function(ast) |
| } |
| } |
| -InspectorTest.validateMapping = function(mapping, cssAST, sassModels) |
| +InspectorTest.validateMapping = function(mapping) |
| { |
| InspectorTest.addResult("Mapped CSS: " + mapping._cssToSass.size); |
| InspectorTest.addResult("Mapped SCSS: " + mapping._sassToCss.size); |
| @@ -149,9 +206,9 @@ InspectorTest.validateMapping = function(mapping, cssAST, sassModels) |
| var staleSASS = 0; |
| for (var i = 0; i < cssNodes.length; ++i) { |
| var cssNode = cssNodes[i]; |
| - staleCSS += cssNode.document !== cssAST.document ? 1 : 0; |
| + staleCSS += cssNode.document !== mapping.cssAST().document ? 1 : 0; |
| var sassNode = mapping.toSASSNode(cssNode); |
| - var sassAST = sassModels.get(sassNode.document.url); |
| + var sassAST = mapping.sassModels().get(sassNode.document.url); |
| staleSASS += sassNode.document !== sassAST.document ? 1 : 0; |
| } |
| if (staleCSS || staleSASS) { |
| @@ -163,24 +220,17 @@ InspectorTest.validateMapping = function(mapping, cssAST, sassModels) |
| } |
| } |
| -InspectorTest.parseSCSS = function(url, text) |
| +InspectorTest.updateCSSText = function(url, newText) |
| { |
| - return self.runtime.instancePromise(WebInspector.TokenizerFactory) |
| - .then(onTokenizer); |
| - |
| - function onTokenizer(tokenizer) |
| - { |
| - return WebInspector.SASSSupport.parseSCSS(url, text, tokenizer); |
| - } |
| + var styleSheetIds = InspectorTest.cssModel.styleSheetIdsForURL(url) |
|
dgozman
2016/01/28 01:11:52
semicolon missing
|
| + var promises = styleSheetIds.map(id => InspectorTest.cssModel.setStyleSheetText(id, newText, true)); |
| + return Promise.all(promises); |
| } |
| -var cssParser = null; |
| - |
| -InspectorTest.parseCSS = function(url, text) |
| +InspectorTest.updateSASSText = function(url, newText) |
| { |
| - if (!cssParser) |
| - cssParser = new WebInspector.CSSParser(); |
| - return WebInspector.SASSSupport.parseCSS(cssParser, url, text); |
| + var uiSourceCode = WebInspector.workspace.uiSourceCodeForURL(url); |
| + uiSourceCode.addRevision(newText); |
| } |
| } |