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

Unified Diff: Source/devtools/front_end/settings/FrameworkBlackboxDialog.js

Issue 413213003: DevTools: Support Blackbox/Disabled options in framework blackboxing UI dialog. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: addressed 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/devtools/front_end/common/Settings.js ('k') | Source/devtools/front_end/settings/SettingsScreen.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/settings/FrameworkBlackboxDialog.js
diff --git a/Source/devtools/front_end/settings/FrameworkBlackboxDialog.js b/Source/devtools/front_end/settings/FrameworkBlackboxDialog.js
index eed6b1652b8caac91fa7f5e5d2798dafd04d0827..8920de0cfadd96de741bdf71b09a66b1e6c367dd 100644
--- a/Source/devtools/front_end/settings/FrameworkBlackboxDialog.js
+++ b/Source/devtools/front_end/settings/FrameworkBlackboxDialog.js
@@ -29,19 +29,22 @@ WebInspector.FrameworkBlackboxDialog = function()
var section = contents.createChild("div", "section");
var container = section.createChild("div", "settings-list-container");
+ this._blackboxLabel = WebInspector.UIString("Blackbox");
+ this._disabledLabel = WebInspector.UIString("Disabled");
+
var column1 = { id: "pattern", placeholder: "/framework\\.js$" };
- var column2 = { id: "value", options: [WebInspector.UIString("Blackbox")] };
+ var column2 = { id: "value", options: [this._blackboxLabel, this._disabledLabel] };
this._patternsList = new WebInspector.EditableSettingsList([column1, column2], this._patternValuesProvider.bind(this), this._patternValidate.bind(this), this._patternEdit.bind(this));
this._patternsList.element.classList.add("blackbox-patterns-list");
this._patternsList.addEventListener(WebInspector.SettingsList.Events.Removed, this._patternRemovedFromList.bind(this));
container.appendChild(this._patternsList.element);
- /** @type {!Object.<string, boolean>} */
- this._entries = {};
+ /** @type {!StringMap.<string>} */
+ this._entries = new StringMap();
var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray();
for (var i = 0; i < patterns.length; ++i)
- this._addPattern(patterns[i]);
+ this._addPattern(patterns[i].pattern, patterns[i].disabled);
this.element.tabIndex = 0;
}
@@ -108,7 +111,7 @@ WebInspector.FrameworkBlackboxDialog.prototype = {
case "pattern":
return itemId;
case "value":
- return WebInspector.UIString("Blackbox");
+ return /** @type {string} */ (this._entries.get(itemId));
default:
console.assert("Should not be reached.");
}
@@ -123,9 +126,10 @@ WebInspector.FrameworkBlackboxDialog.prototype = {
_patternValidate: function(itemId, data)
{
var regex;
+ var oldPattern = itemId;
var newPattern = data["pattern"];
try {
- if (newPattern && !this._entries[newPattern])
+ if (newPattern && (oldPattern === newPattern || !this._entries.contains(newPattern)))
regex = new RegExp(newPattern);
} catch (e) {
}
@@ -142,21 +146,32 @@ WebInspector.FrameworkBlackboxDialog.prototype = {
var newPattern = data["pattern"];
if (!newPattern)
return;
+ var disabled = (data["value"] === this._disabledLabel);
var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray();
- var pos = oldPattern ? patterns.indexOf(oldPattern) : -1;
- if (pos === -1)
- patterns.push(newPattern);
- else
- patterns[pos] = newPattern;
+ for (var i = 0; i <= patterns.length; ++i) {
+ if (i === patterns.length) {
+ patterns.push({ pattern: newPattern, disabled: disabled });
+ break;
+ }
+ if (patterns[i].pattern === oldPattern) {
+ patterns[i] = { pattern: newPattern, disabled: disabled };
+ break;
+ }
+ }
WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);
+ if (oldPattern && oldPattern === newPattern) {
+ this._entries.put(newPattern, disabled ? this._disabledLabel : this._blackboxLabel)
+ this._patternsList.refreshItem(newPattern);
+ return;
+ }
+
if (oldPattern) {
this._patternsList.removeItem(oldPattern);
- delete this._entries[oldPattern];
+ this._entries.remove(oldPattern);
}
- this._addPattern(newPattern);
- this._patternsList.selectItem(newPattern);
+ this._addPattern(newPattern, disabled);
},
/**
@@ -167,21 +182,27 @@ WebInspector.FrameworkBlackboxDialog.prototype = {
var pattern = /** @type{?string} */ (event.data);
if (!pattern)
return;
- delete this._entries[pattern];
+ this._entries.remove(pattern);
var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray();
- patterns.remove(pattern);
+ for (var i = 0; i < patterns.length; ++i) {
+ if (patterns[i].pattern === pattern) {
+ patterns.splice(i, 1);
+ break;
+ }
+ }
WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);
},
/**
* @param {string} pattern
+ * @param {boolean=} disabled
*/
- _addPattern: function(pattern)
+ _addPattern: function(pattern, disabled)
{
- if (!pattern || this._entries[pattern])
+ if (!pattern || this._entries.contains(pattern))
return;
- this._entries[pattern] = true;
+ this._entries.put(pattern, disabled ? this._disabledLabel : this._blackboxLabel);
this._patternsList.addItem(pattern, null);
this._resize();
},
« no previous file with comments | « Source/devtools/front_end/common/Settings.js ('k') | Source/devtools/front_end/settings/SettingsScreen.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698