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

Unified Diff: third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js b/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
index e310c23312f15e4ba92a15dbd57a99fc69ab84b5..1c59a3e415fcc4ecfd8f107f1565b7d0ef90f873 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
@@ -1,20 +1,25 @@
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
/**
- * @constructor
- * @param {!WebInspector.DebuggerWorkspaceBinding} debuggerWorkspaceBinding
* @implements {WebInspector.TargetManager.Observer}
+ * @unrestricted
*/
-WebInspector.BlackboxManager = function(debuggerWorkspaceBinding)
-{
+WebInspector.BlackboxManager = class {
+ /**
+ * @param {!WebInspector.DebuggerWorkspaceBinding} debuggerWorkspaceBinding
+ */
+ constructor(debuggerWorkspaceBinding) {
this._debuggerWorkspaceBinding = debuggerWorkspaceBinding;
- WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this);
- WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._globalObjectCleared, this);
- WebInspector.moduleSetting("skipStackFramesPattern").addChangeListener(this._patternChanged.bind(this));
- WebInspector.moduleSetting("skipContentScripts").addChangeListener(this._patternChanged.bind(this));
+ WebInspector.targetManager.addModelListener(
+ WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource,
+ this);
+ WebInspector.targetManager.addModelListener(
+ WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._globalObjectCleared,
+ this);
+ WebInspector.moduleSetting('skipStackFramesPattern').addChangeListener(this._patternChanged.bind(this));
+ WebInspector.moduleSetting('skipContentScripts').addChangeListener(this._patternChanged.bind(this));
/** @type {!Map<!WebInspector.DebuggerModel, !Map<string, !Array<!DebuggerAgent.ScriptPosition>>>} */
this._debuggerModelData = new Map();
@@ -22,433 +27,401 @@ WebInspector.BlackboxManager = function(debuggerWorkspaceBinding)
this._isBlackboxedURLCache = new Map();
WebInspector.targetManager.observeTargets(this);
-};
-
-WebInspector.BlackboxManager.prototype = {
- /**
- * @param {function(!WebInspector.Event)} listener
- * @param {!Object=} thisObject
- */
- addChangeListener: function(listener, thisObject)
- {
- WebInspector.moduleSetting("skipStackFramesPattern").addChangeListener(listener, thisObject);
- },
-
- /**
- * @param {function(!WebInspector.Event)} listener
- * @param {!Object=} thisObject
- */
- removeChangeListener: function(listener, thisObject)
- {
- WebInspector.moduleSetting("skipStackFramesPattern").removeChangeListener(listener, thisObject);
- },
-
- /**
- * @override
- * @param {!WebInspector.Target} target
- */
- targetAdded: function(target)
- {
- var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
- if (debuggerModel)
- this._setBlackboxPatterns(debuggerModel);
- },
-
- /**
- * @override
- * @param {!WebInspector.Target} target
- */
- targetRemoved: function(target)
- {
- },
-
- /**
- * @param {!WebInspector.DebuggerModel} debuggerModel
- * @return {!Promise<boolean>}
- */
- _setBlackboxPatterns: function(debuggerModel)
- {
- var regexPatterns = WebInspector.moduleSetting("skipStackFramesPattern").getAsArray();
- var patterns = /** @type {!Array<string>} */([]);
- for (var item of regexPatterns) {
- if (!item.disabled && item.pattern)
- patterns.push(item.pattern);
- }
- return debuggerModel.setBlackboxPatterns(patterns);
- },
-
- /**
- * @param {!WebInspector.DebuggerModel.Location} location
- * @return {boolean}
- */
- isBlackboxedRawLocation: function(location)
- {
- var script = location.script();
- if (!script)
- return false;
- var positions = this._scriptPositions(script);
- if (!positions)
- return this._isBlackboxedScript(script);
- var index = positions.lowerBound(location, comparator);
- return !!(index % 2);
-
- /**
- * @param {!WebInspector.DebuggerModel.Location} a
- * @param {!DebuggerAgent.ScriptPosition} b
- * @return {number}
- */
- function comparator(a, b)
- {
- if (a.lineNumber !== b.lineNumber)
- return a.lineNumber - b.lineNumber;
- return a.columnNumber - b.columnNumber;
- }
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @return {boolean}
- */
- isBlackboxedUISourceCode: function(uiSourceCode)
- {
- var projectType = uiSourceCode.project().type();
- var isContentScript = projectType === WebInspector.projectTypes.ContentScripts;
- if (isContentScript && WebInspector.moduleSetting("skipContentScripts").get())
- return true;
- var url = this._uiSourceCodeURL(uiSourceCode);
- return url ? this.isBlackboxedURL(url) : false;
- },
-
- /**
- * @param {string} url
- * @param {boolean=} isContentScript
- * @return {boolean}
- */
- isBlackboxedURL: function(url, isContentScript)
- {
- if (this._isBlackboxedURLCache.has(url))
- return !!this._isBlackboxedURLCache.get(url);
- if (isContentScript && WebInspector.moduleSetting("skipContentScripts").get())
- return true;
- var regex = WebInspector.moduleSetting("skipStackFramesPattern").asRegExp();
- var isBlackboxed = regex && regex.test(url);
- this._isBlackboxedURLCache.set(url, isBlackboxed);
- return isBlackboxed;
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @param {?WebInspector.TextSourceMap} sourceMap
- * @return {!Promise<undefined>}
- */
- sourceMapLoaded: function(script, sourceMap)
- {
- if (!sourceMap)
- return Promise.resolve();
- var previousScriptState = this._scriptPositions(script);
- if (!previousScriptState)
- return Promise.resolve();
-
- var hasBlackboxedMappings = sourceMap.sourceURLs().some((url) => this.isBlackboxedURL(url));
- var mappings = hasBlackboxedMappings ? sourceMap.mappings().slice() : [];
- if (!mappings.length) {
- if (previousScriptState.length > 0)
- return this._setScriptState(script, []);
- return Promise.resolve();
- }
- mappings.sort(mappingComparator);
-
- var currentBlackboxed = false;
- var isBlackboxed = false;
- var positions = [];
- // If content in script file begin is not mapped and one or more ranges are blackboxed then blackbox it.
- if (mappings[0].lineNumber !== 0 || mappings[0].columnNumber !== 0) {
- positions.push({ lineNumber: 0, columnNumber: 0});
- currentBlackboxed = true;
- }
- for (var mapping of mappings) {
- if (mapping.sourceURL && currentBlackboxed !== this.isBlackboxedURL(mapping.sourceURL)) {
- positions.push({ lineNumber: mapping.lineNumber, columnNumber: mapping.columnNumber });
- currentBlackboxed = !currentBlackboxed;
- }
- isBlackboxed = currentBlackboxed || isBlackboxed;
- }
- return this._setScriptState(script, !isBlackboxed ? [] : positions);
- /**
- * @param {!WebInspector.SourceMapEntry} a
- * @param {!WebInspector.SourceMapEntry} b
- * @return {number}
- */
- function mappingComparator(a, b)
- {
- if (a.lineNumber !== b.lineNumber)
- return a.lineNumber - b.lineNumber;
- return a.columnNumber - b.columnNumber;
- }
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @return {?string}
- */
- _uiSourceCodeURL: function(uiSourceCode)
- {
- return uiSourceCode.project().type() === WebInspector.projectTypes.Debugger ? null : uiSourceCode.url();
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @return {boolean}
- */
- canBlackboxUISourceCode: function(uiSourceCode)
- {
- var url = this._uiSourceCodeURL(uiSourceCode);
- return url ? !!this._urlToRegExpString(url) : false;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- */
- blackboxUISourceCode: function(uiSourceCode)
- {
- var url = this._uiSourceCodeURL(uiSourceCode);
- if (url)
- this._blackboxURL(url);
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- */
- unblackboxUISourceCode: function(uiSourceCode)
- {
- var url = this._uiSourceCodeURL(uiSourceCode);
- if (url)
- this._unblackboxURL(url);
- },
-
- blackboxContentScripts: function()
- {
- WebInspector.moduleSetting("skipContentScripts").set(true);
- },
-
- unblackboxContentScripts: function()
- {
- WebInspector.moduleSetting("skipContentScripts").set(false);
- },
-
- /**
- * @param {string} url
- */
- _blackboxURL: function(url)
- {
- var regexPatterns = WebInspector.moduleSetting("skipStackFramesPattern").getAsArray();
- var regexValue = this._urlToRegExpString(url);
- if (!regexValue)
- return;
- var found = false;
- for (var i = 0; i < regexPatterns.length; ++i) {
- var item = regexPatterns[i];
- if (item.pattern === regexValue) {
- item.disabled = false;
- found = true;
- break;
- }
- }
- if (!found)
- regexPatterns.push({ pattern: regexValue });
- WebInspector.moduleSetting("skipStackFramesPattern").setAsArray(regexPatterns);
- },
-
- /**
- * @param {string} url
- */
- _unblackboxURL: function(url)
- {
- var regexPatterns = WebInspector.moduleSetting("skipStackFramesPattern").getAsArray();
- var regexValue = WebInspector.blackboxManager._urlToRegExpString(url);
- if (!regexValue)
- return;
- regexPatterns = regexPatterns.filter(function(item) {
- return item.pattern !== regexValue;
- });
- for (var i = 0; i < regexPatterns.length; ++i) {
- var item = regexPatterns[i];
- if (item.disabled)
- continue;
- try {
- var regex = new RegExp(item.pattern);
- if (regex.test(url))
- item.disabled = true;
- } catch (e) {
- }
- }
- WebInspector.moduleSetting("skipStackFramesPattern").setAsArray(regexPatterns);
- },
-
- _patternChanged: function()
- {
- this._isBlackboxedURLCache.clear();
-
- var promises = [];
- for (var debuggerModel of WebInspector.DebuggerModel.instances()) {
- promises.push(this._setBlackboxPatterns.bind(this, debuggerModel));
- for (var scriptId in debuggerModel.scripts) {
- var script = debuggerModel.scripts[scriptId];
- promises.push(this._addScript(script)
- .then(loadSourceMap.bind(this, script)));
- }
- }
- Promise.all(promises).then(this._patternChangeFinishedForTests.bind(this));
-
- /**
- * @param {!WebInspector.Script} script
- * @return {!Promise<undefined>}
- * @this {WebInspector.BlackboxManager}
- */
- function loadSourceMap(script)
- {
- return this.sourceMapLoaded(script, this._debuggerWorkspaceBinding.sourceMapForScript(script));
- }
- },
-
- _patternChangeFinishedForTests: function()
- {
- // This method is sniffed in tests.
- },
+ }
+
+ /**
+ * @param {function(!WebInspector.Event)} listener
+ * @param {!Object=} thisObject
+ */
+ addChangeListener(listener, thisObject) {
+ WebInspector.moduleSetting('skipStackFramesPattern').addChangeListener(listener, thisObject);
+ }
+
+ /**
+ * @param {function(!WebInspector.Event)} listener
+ * @param {!Object=} thisObject
+ */
+ removeChangeListener(listener, thisObject) {
+ WebInspector.moduleSetting('skipStackFramesPattern').removeChangeListener(listener, thisObject);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetAdded(target) {
+ var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
+ if (debuggerModel)
+ this._setBlackboxPatterns(debuggerModel);
+ }
+
+ /**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetRemoved(target) {
+ }
+
+ /**
+ * @param {!WebInspector.DebuggerModel} debuggerModel
+ * @return {!Promise<boolean>}
+ */
+ _setBlackboxPatterns(debuggerModel) {
+ var regexPatterns = WebInspector.moduleSetting('skipStackFramesPattern').getAsArray();
+ var patterns = /** @type {!Array<string>} */ ([]);
+ for (var item of regexPatterns) {
+ if (!item.disabled && item.pattern)
+ patterns.push(item.pattern);
+ }
+ return debuggerModel.setBlackboxPatterns(patterns);
+ }
+
+ /**
+ * @param {!WebInspector.DebuggerModel.Location} location
+ * @return {boolean}
+ */
+ isBlackboxedRawLocation(location) {
+ var script = location.script();
+ if (!script)
+ return false;
+ var positions = this._scriptPositions(script);
+ if (!positions)
+ return this._isBlackboxedScript(script);
+ var index = positions.lowerBound(location, comparator);
+ return !!(index % 2);
/**
- * @param {!WebInspector.Event} event
+ * @param {!WebInspector.DebuggerModel.Location} a
+ * @param {!DebuggerAgent.ScriptPosition} b
+ * @return {number}
*/
- _globalObjectCleared: function(event)
- {
- var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
- this._debuggerModelData.delete(debuggerModel);
- this._isBlackboxedURLCache.clear();
- },
-
+ function comparator(a, b) {
+ if (a.lineNumber !== b.lineNumber)
+ return a.lineNumber - b.lineNumber;
+ return a.columnNumber - b.columnNumber;
+ }
+ }
+
+ /**
+ * @param {!WebInspector.UISourceCode} uiSourceCode
+ * @return {boolean}
+ */
+ isBlackboxedUISourceCode(uiSourceCode) {
+ var projectType = uiSourceCode.project().type();
+ var isContentScript = projectType === WebInspector.projectTypes.ContentScripts;
+ if (isContentScript && WebInspector.moduleSetting('skipContentScripts').get())
+ return true;
+ var url = this._uiSourceCodeURL(uiSourceCode);
+ return url ? this.isBlackboxedURL(url) : false;
+ }
+
+ /**
+ * @param {string} url
+ * @param {boolean=} isContentScript
+ * @return {boolean}
+ */
+ isBlackboxedURL(url, isContentScript) {
+ if (this._isBlackboxedURLCache.has(url))
+ return !!this._isBlackboxedURLCache.get(url);
+ if (isContentScript && WebInspector.moduleSetting('skipContentScripts').get())
+ return true;
+ var regex = WebInspector.moduleSetting('skipStackFramesPattern').asRegExp();
+ var isBlackboxed = regex && regex.test(url);
+ this._isBlackboxedURLCache.set(url, isBlackboxed);
+ return isBlackboxed;
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @param {?WebInspector.TextSourceMap} sourceMap
+ * @return {!Promise<undefined>}
+ */
+ sourceMapLoaded(script, sourceMap) {
+ if (!sourceMap)
+ return Promise.resolve();
+ var previousScriptState = this._scriptPositions(script);
+ if (!previousScriptState)
+ return Promise.resolve();
+
+ var hasBlackboxedMappings = sourceMap.sourceURLs().some((url) => this.isBlackboxedURL(url));
+ var mappings = hasBlackboxedMappings ? sourceMap.mappings().slice() : [];
+ if (!mappings.length) {
+ if (previousScriptState.length > 0)
+ return this._setScriptState(script, []);
+ return Promise.resolve();
+ }
+ mappings.sort(mappingComparator);
+
+ var currentBlackboxed = false;
+ var isBlackboxed = false;
+ var positions = [];
+ // If content in script file begin is not mapped and one or more ranges are blackboxed then blackbox it.
+ if (mappings[0].lineNumber !== 0 || mappings[0].columnNumber !== 0) {
+ positions.push({lineNumber: 0, columnNumber: 0});
+ currentBlackboxed = true;
+ }
+ for (var mapping of mappings) {
+ if (mapping.sourceURL && currentBlackboxed !== this.isBlackboxedURL(mapping.sourceURL)) {
+ positions.push({lineNumber: mapping.lineNumber, columnNumber: mapping.columnNumber});
+ currentBlackboxed = !currentBlackboxed;
+ }
+ isBlackboxed = currentBlackboxed || isBlackboxed;
+ }
+ return this._setScriptState(script, !isBlackboxed ? [] : positions);
/**
- * @param {!WebInspector.Event} event
+ * @param {!WebInspector.SourceMapEntry} a
+ * @param {!WebInspector.SourceMapEntry} b
+ * @return {number}
*/
- _parsedScriptSource: function(event)
- {
- var script = /** @type {!WebInspector.Script} */ (event.data);
- this._addScript(script);
- },
+ function mappingComparator(a, b) {
+ if (a.lineNumber !== b.lineNumber)
+ return a.lineNumber - b.lineNumber;
+ return a.columnNumber - b.columnNumber;
+ }
+ }
+
+ /**
+ * @param {!WebInspector.UISourceCode} uiSourceCode
+ * @return {?string}
+ */
+ _uiSourceCodeURL(uiSourceCode) {
+ return uiSourceCode.project().type() === WebInspector.projectTypes.Debugger ? null : uiSourceCode.url();
+ }
+
+ /**
+ * @param {!WebInspector.UISourceCode} uiSourceCode
+ * @return {boolean}
+ */
+ canBlackboxUISourceCode(uiSourceCode) {
+ var url = this._uiSourceCodeURL(uiSourceCode);
+ return url ? !!this._urlToRegExpString(url) : false;
+ }
+
+ /**
+ * @param {!WebInspector.UISourceCode} uiSourceCode
+ */
+ blackboxUISourceCode(uiSourceCode) {
+ var url = this._uiSourceCodeURL(uiSourceCode);
+ if (url)
+ this._blackboxURL(url);
+ }
+
+ /**
+ * @param {!WebInspector.UISourceCode} uiSourceCode
+ */
+ unblackboxUISourceCode(uiSourceCode) {
+ var url = this._uiSourceCodeURL(uiSourceCode);
+ if (url)
+ this._unblackboxURL(url);
+ }
+
+ blackboxContentScripts() {
+ WebInspector.moduleSetting('skipContentScripts').set(true);
+ }
+
+ unblackboxContentScripts() {
+ WebInspector.moduleSetting('skipContentScripts').set(false);
+ }
+
+ /**
+ * @param {string} url
+ */
+ _blackboxURL(url) {
+ var regexPatterns = WebInspector.moduleSetting('skipStackFramesPattern').getAsArray();
+ var regexValue = this._urlToRegExpString(url);
+ if (!regexValue)
+ return;
+ var found = false;
+ for (var i = 0; i < regexPatterns.length; ++i) {
+ var item = regexPatterns[i];
+ if (item.pattern === regexValue) {
+ item.disabled = false;
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ regexPatterns.push({pattern: regexValue});
+ WebInspector.moduleSetting('skipStackFramesPattern').setAsArray(regexPatterns);
+ }
+
+ /**
+ * @param {string} url
+ */
+ _unblackboxURL(url) {
+ var regexPatterns = WebInspector.moduleSetting('skipStackFramesPattern').getAsArray();
+ var regexValue = WebInspector.blackboxManager._urlToRegExpString(url);
+ if (!regexValue)
+ return;
+ regexPatterns = regexPatterns.filter(function(item) {
+ return item.pattern !== regexValue;
+ });
+ for (var i = 0; i < regexPatterns.length; ++i) {
+ var item = regexPatterns[i];
+ if (item.disabled)
+ continue;
+ try {
+ var regex = new RegExp(item.pattern);
+ if (regex.test(url))
+ item.disabled = true;
+ } catch (e) {
+ }
+ }
+ WebInspector.moduleSetting('skipStackFramesPattern').setAsArray(regexPatterns);
+ }
+
+ _patternChanged() {
+ this._isBlackboxedURLCache.clear();
+
+ var promises = [];
+ for (var debuggerModel of WebInspector.DebuggerModel.instances()) {
+ promises.push(this._setBlackboxPatterns.bind(this, debuggerModel));
+ for (var scriptId in debuggerModel.scripts) {
+ var script = debuggerModel.scripts[scriptId];
+ promises.push(this._addScript(script).then(loadSourceMap.bind(this, script)));
+ }
+ }
+ Promise.all(promises).then(this._patternChangeFinishedForTests.bind(this));
/**
* @param {!WebInspector.Script} script
* @return {!Promise<undefined>}
+ * @this {WebInspector.BlackboxManager}
*/
- _addScript: function(script)
- {
- var blackboxed = this._isBlackboxedScript(script);
- return this._setScriptState(script, blackboxed ? [ { lineNumber: 0, columnNumber: 0 } ] : []);
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @return {boolean}
- */
- _isBlackboxedScript: function(script)
- {
- return this.isBlackboxedURL(script.sourceURL, script.isContentScript());
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @return {?Array<!DebuggerAgent.ScriptPosition>}
- */
- _scriptPositions: function(script)
- {
- if (this._debuggerModelData.has(script.debuggerModel))
- return this._debuggerModelData.get(script.debuggerModel).get(script.scriptId) || null;
- return null;
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
- */
- _setScriptPositions: function(script, positions)
- {
- var debuggerModel = script.debuggerModel;
- if (!this._debuggerModelData.has(debuggerModel))
- this._debuggerModelData.set(debuggerModel, new Map());
- this._debuggerModelData.get(debuggerModel).set(script.scriptId, positions);
- },
+ function loadSourceMap(script) {
+ return this.sourceMapLoaded(script, this._debuggerWorkspaceBinding.sourceMapForScript(script));
+ }
+ }
+
+ _patternChangeFinishedForTests() {
+ // This method is sniffed in tests.
+ }
+
+ /**
+ * @param {!WebInspector.Event} event
+ */
+ _globalObjectCleared(event) {
+ var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
+ this._debuggerModelData.delete(debuggerModel);
+ this._isBlackboxedURLCache.clear();
+ }
+
+ /**
+ * @param {!WebInspector.Event} event
+ */
+ _parsedScriptSource(event) {
+ var script = /** @type {!WebInspector.Script} */ (event.data);
+ this._addScript(script);
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @return {!Promise<undefined>}
+ */
+ _addScript(script) {
+ var blackboxed = this._isBlackboxedScript(script);
+ return this._setScriptState(script, blackboxed ? [{lineNumber: 0, columnNumber: 0}] : []);
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @return {boolean}
+ */
+ _isBlackboxedScript(script) {
+ return this.isBlackboxedURL(script.sourceURL, script.isContentScript());
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @return {?Array<!DebuggerAgent.ScriptPosition>}
+ */
+ _scriptPositions(script) {
+ if (this._debuggerModelData.has(script.debuggerModel))
+ return this._debuggerModelData.get(script.debuggerModel).get(script.scriptId) || null;
+ return null;
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
+ */
+ _setScriptPositions(script, positions) {
+ var debuggerModel = script.debuggerModel;
+ if (!this._debuggerModelData.has(debuggerModel))
+ this._debuggerModelData.set(debuggerModel, new Map());
+ this._debuggerModelData.get(debuggerModel).set(script.scriptId, positions);
+ }
+
+ /**
+ * @param {!WebInspector.Script} script
+ * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
+ * @return {!Promise<undefined>}
+ */
+ _setScriptState(script, positions) {
+ var previousScriptState = this._scriptPositions(script);
+ if (previousScriptState) {
+ var hasChanged = false;
+ hasChanged = previousScriptState.length !== positions.length;
+ for (var i = 0; !hasChanged && i < positions.length; ++i)
+ hasChanged = positions[i].lineNumber !== previousScriptState[i].lineNumber ||
+ positions[i].columnNumber !== previousScriptState[i].columnNumber;
+ if (!hasChanged)
+ return Promise.resolve();
+ } else {
+ if (positions.length === 0)
+ return Promise.resolve().then(updateState.bind(this, false));
+ }
- /**
- * @param {!WebInspector.Script} script
- * @param {!Array<!DebuggerAgent.ScriptPosition>} positions
- * @return {!Promise<undefined>}
- */
- _setScriptState: function(script, positions)
- {
- var previousScriptState = this._scriptPositions(script);
- if (previousScriptState) {
- var hasChanged = false;
- hasChanged = previousScriptState.length !== positions.length;
- for (var i = 0; !hasChanged && i < positions.length; ++i)
- hasChanged = positions[i].lineNumber !== previousScriptState[i].lineNumber || positions[i].columnNumber !== previousScriptState[i].columnNumber;
- if (!hasChanged)
- return Promise.resolve();
- } else {
- if (positions.length === 0)
- return Promise.resolve().then(updateState.bind(this, false));
- }
-
- return script.setBlackboxedRanges(positions).then(updateState.bind(this));
-
- /**
- * @param {boolean} success
- * @this {WebInspector.BlackboxManager}
- */
- function updateState(success)
- {
- if (success) {
- this._setScriptPositions(script, positions);
- this._debuggerWorkspaceBinding.updateLocations(script);
- var isBlackboxed = positions.length !== 0;
- if (!isBlackboxed && script.sourceMapURL)
- this._debuggerWorkspaceBinding.maybeLoadSourceMap(script);
- } else {
- var hasPositions = !!this._scriptPositions(script);
- if (!hasPositions)
- this._setScriptPositions(script, []);
- }
- }
- },
+ return script.setBlackboxedRanges(positions).then(updateState.bind(this));
/**
- * @param {string} url
- * @return {string}
+ * @param {boolean} success
+ * @this {WebInspector.BlackboxManager}
*/
- _urlToRegExpString: function(url)
- {
- var parsedURL = new WebInspector.ParsedURL(url);
- if (parsedURL.isAboutBlank() || parsedURL.isDataURL())
- return "";
- if (!parsedURL.isValid)
- return "^" + url.escapeForRegExp() + "$";
- var name = parsedURL.lastPathComponent;
- if (name)
- name = "/" + name;
- else if (parsedURL.folderPathComponents)
- name = parsedURL.folderPathComponents + "/";
- if (!name)
- name = parsedURL.host;
- if (!name)
- return "";
- var scheme = parsedURL.scheme;
- var prefix = "";
- if (scheme && scheme !== "http" && scheme !== "https") {
- prefix = "^" + scheme + "://";
- if (scheme === "chrome-extension")
- prefix += parsedURL.host + "\\b";
- prefix += ".*";
- }
- return prefix + name.escapeForRegExp() + (url.endsWith(name) ? "$" : "\\b");
+ function updateState(success) {
+ if (success) {
+ this._setScriptPositions(script, positions);
+ this._debuggerWorkspaceBinding.updateLocations(script);
+ var isBlackboxed = positions.length !== 0;
+ if (!isBlackboxed && script.sourceMapURL)
+ this._debuggerWorkspaceBinding.maybeLoadSourceMap(script);
+ } else {
+ var hasPositions = !!this._scriptPositions(script);
+ if (!hasPositions)
+ this._setScriptPositions(script, []);
+ }
+ }
+ }
+
+ /**
+ * @param {string} url
+ * @return {string}
+ */
+ _urlToRegExpString(url) {
+ var parsedURL = new WebInspector.ParsedURL(url);
+ if (parsedURL.isAboutBlank() || parsedURL.isDataURL())
+ return '';
+ if (!parsedURL.isValid)
+ return '^' + url.escapeForRegExp() + '$';
+ var name = parsedURL.lastPathComponent;
+ if (name)
+ name = '/' + name;
+ else if (parsedURL.folderPathComponents)
+ name = parsedURL.folderPathComponents + '/';
+ if (!name)
+ name = parsedURL.host;
+ if (!name)
+ return '';
+ var scheme = parsedURL.scheme;
+ var prefix = '';
+ if (scheme && scheme !== 'http' && scheme !== 'https') {
+ prefix = '^' + scheme + '://';
+ if (scheme === 'chrome-extension')
+ prefix += parsedURL.host + '\\b';
+ prefix += '.*';
}
+ return prefix + name.escapeForRegExp() + (url.endsWith(name) ? '$' : '\\b');
+ }
};
/** @type {!WebInspector.BlackboxManager} */

Powered by Google App Engine
This is Rietveld 408576698