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

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

Issue 1754483002: [DevTools] Added setBlackboxPatterns method to protocol (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@provide-hash-for-anonymous-scripts
Patch Set: Created 4 years, 9 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 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 98fc9c29eebbd6d256d323c13490c2b18290a30b..df7911e4a38df155f45fbc8765b1579e471a2c47 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/BlackboxManager.js
@@ -6,6 +6,7 @@
* @constructor
* @param {!WebInspector.DebuggerWorkspaceBinding} debuggerWorkspaceBinding
* @param {!WebInspector.NetworkMapping} networkMapping
+ * @implements {WebInspector.TargetManager.Observer}
*/
WebInspector.BlackboxManager = function(debuggerWorkspaceBinding, networkMapping)
{
@@ -21,6 +22,8 @@ WebInspector.BlackboxManager = function(debuggerWorkspaceBinding, networkMapping
this._debuggerModelData = new Map();
/** @type {!Map<string, boolean>} */
this._isBlackboxedURLCache = new Map();
+
+ WebInspector.targetManager.observeTargets(this);
}
WebInspector.BlackboxManager.prototype = {
@@ -149,6 +152,40 @@ WebInspector.BlackboxManager.prototype = {
},
/**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetAdded: function(target)
+ {
+ var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
+ if (debuggerModel)
+ this._addBlackboxPatterns(debuggerModel);
+ },
+
+ /**
+ * @override
+ * @param {!WebInspector.Target} target
+ */
+ targetRemoved: function(target)
+ {
+ },
+
+ /**
+ * @param {!WebInspector.DebuggerModel} debuggerModel
+ * @return {!Promise<boolean>}
+ */
+ _addBlackboxPatterns: function(debuggerModel)
+ {
+ var regexPatterns = WebInspector.moduleSetting("skipStackFramesPattern").getAsArray();
+ var patterns = /** @type {!Array<!DebuggerAgent.BlackboxPattern>} */([]);
+ for (var item of regexPatterns) {
+ if (!item.disabled && item.pattern)
+ patterns.push({ regexp: item.pattern });
+ }
+ return debuggerModel.addBlackboxPatterns(patterns);
+ },
+
+ /**
* @param {!WebInspector.UISourceCode} uiSourceCode
* @return {?string}
*/
@@ -262,6 +299,7 @@ WebInspector.BlackboxManager.prototype = {
promises.push(this._addScript(script)
.then(loadSourceMap.bind(this, script)));
}
+ promises.push(clearBlackboxPatterns(debuggerModel).then(addBlackboxPatterns.bind(this, debuggerModel)));
dgozman 2016/03/08 18:48:12 This should go before _addScript calls.
}
Promise.all(promises).then(this._patternChangeFinishedForTests.bind(this));
@@ -274,6 +312,29 @@ WebInspector.BlackboxManager.prototype = {
{
return this.sourceMapLoaded(script, this._debuggerWorkspaceBinding.sourceMapForScript(script));
}
+
+ /**
+ * @param {!WebInspector.DebuggerModel} debuggerModel
+ * @return {!Promise<boolean>}
+ */
+ function clearBlackboxPatterns(debuggerModel)
+ {
+ return debuggerModel.clearBlackboxPatterns();
dgozman 2016/03/08 18:48:12 Inline it!
+ }
+
+ /**
+ * @param {!WebInspector.DebuggerModel} debuggerModel
+ * @param {boolean} wasCleared
+ * @return {!Promise<boolean>}
+ * @this {WebInspector.BlackboxManager}
+ */
+ function addBlackboxPatterns(debuggerModel, wasCleared)
+ {
+ if (!wasCleared)
dgozman 2016/03/08 18:48:12 Ignore this and inline.
+ return Promise.resolve(false);
+ else
+ return this._addBlackboxPatterns(debuggerModel);
+ }
},
_patternChangeFinishedForTests: function()
@@ -362,7 +423,7 @@ WebInspector.BlackboxManager.prototype = {
return Promise.resolve().then(updateState.bind(this, false));
}
- return script.setBlackboxedRanges(positions).then(updateState.bind(this));
+ return script.addBlackboxPattern(positions).then(updateState.bind(this));
/**
* @param {boolean} success

Powered by Google App Engine
This is Rietveld 408576698