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

Side by Side 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, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The Chromium Authors. All rights reserved. 2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * @constructor 8 * @constructor
9 * @extends {WebInspector.DialogDelegate} 9 * @extends {WebInspector.DialogDelegate}
10 */ 10 */
(...skipping 11 matching lines...) Expand all
22 22
23 var contents = this.element.createChild("div", "contents"); 23 var contents = this.element.createChild("div", "contents");
24 24
25 var blockHeader = contents.createChild("div", "columns-header"); 25 var blockHeader = contents.createChild("div", "columns-header");
26 blockHeader.createChild("span").textContent = WebInspector.UIString("URI pat tern"); 26 blockHeader.createChild("span").textContent = WebInspector.UIString("URI pat tern");
27 blockHeader.createChild("span").textContent = WebInspector.UIString("Behavio r"); 27 blockHeader.createChild("span").textContent = WebInspector.UIString("Behavio r");
28 28
29 var section = contents.createChild("div", "section"); 29 var section = contents.createChild("div", "section");
30 var container = section.createChild("div", "settings-list-container"); 30 var container = section.createChild("div", "settings-list-container");
31 31
32 this._blackboxLabel = WebInspector.UIString("Blackbox");
33 this._disabledLabel = WebInspector.UIString("Disabled");
34
32 var column1 = { id: "pattern", placeholder: "/framework\\.js$" }; 35 var column1 = { id: "pattern", placeholder: "/framework\\.js$" };
33 var column2 = { id: "value", options: [WebInspector.UIString("Blackbox")] }; 36 var column2 = { id: "value", options: [this._blackboxLabel, this._disabledLa bel] };
34 37
35 this._patternsList = new WebInspector.EditableSettingsList([column1, column2 ], this._patternValuesProvider.bind(this), this._patternValidate.bind(this), thi s._patternEdit.bind(this)); 38 this._patternsList = new WebInspector.EditableSettingsList([column1, column2 ], this._patternValuesProvider.bind(this), this._patternValidate.bind(this), thi s._patternEdit.bind(this));
36 this._patternsList.element.classList.add("blackbox-patterns-list"); 39 this._patternsList.element.classList.add("blackbox-patterns-list");
37 this._patternsList.addEventListener(WebInspector.SettingsList.Events.Removed , this._patternRemovedFromList.bind(this)); 40 this._patternsList.addEventListener(WebInspector.SettingsList.Events.Removed , this._patternRemovedFromList.bind(this));
38 container.appendChild(this._patternsList.element); 41 container.appendChild(this._patternsList.element);
39 42
40 /** @type {!Object.<string, boolean>} */ 43 /** @type {!StringMap.<string>} */
41 this._entries = {}; 44 this._entries = new StringMap();
42 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray(); 45 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray();
43 for (var i = 0; i < patterns.length; ++i) 46 for (var i = 0; i < patterns.length; ++i)
44 this._addPattern(patterns[i]); 47 this._addPattern(patterns[i].pattern, patterns[i].disabled);
45 48
46 this.element.tabIndex = 0; 49 this.element.tabIndex = 0;
47 } 50 }
48 51
49 WebInspector.FrameworkBlackboxDialog.show = function(element) 52 WebInspector.FrameworkBlackboxDialog.show = function(element)
50 { 53 {
51 WebInspector.Dialog.show(element, new WebInspector.FrameworkBlackboxDialog() ); 54 WebInspector.Dialog.show(element, new WebInspector.FrameworkBlackboxDialog() );
52 var glassPane = document.getElementById("glass-pane"); 55 var glassPane = document.getElementById("glass-pane");
53 glassPane.classList.add("settings-glass-pane"); 56 glassPane.classList.add("settings-glass-pane");
54 } 57 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 * @return {string} 104 * @return {string}
102 */ 105 */
103 _patternValuesProvider: function(itemId, columnId) 106 _patternValuesProvider: function(itemId, columnId)
104 { 107 {
105 if (!itemId) 108 if (!itemId)
106 return ""; 109 return "";
107 switch (columnId) { 110 switch (columnId) {
108 case "pattern": 111 case "pattern":
109 return itemId; 112 return itemId;
110 case "value": 113 case "value":
111 return WebInspector.UIString("Blackbox"); 114 return /** @type {string} */ (this._entries.get(itemId));
112 default: 115 default:
113 console.assert("Should not be reached."); 116 console.assert("Should not be reached.");
114 } 117 }
115 return ""; 118 return "";
116 }, 119 },
117 120
118 /** 121 /**
119 * @param {?string} itemId 122 * @param {?string} itemId
120 * @param {!Object} data 123 * @param {!Object} data
121 * @return {!Array.<string>} 124 * @return {!Array.<string>}
122 */ 125 */
123 _patternValidate: function(itemId, data) 126 _patternValidate: function(itemId, data)
124 { 127 {
125 var regex; 128 var regex;
129 var oldPattern = itemId;
126 var newPattern = data["pattern"]; 130 var newPattern = data["pattern"];
127 try { 131 try {
128 if (newPattern && !this._entries[newPattern]) 132 if (newPattern && (oldPattern === newPattern || !this._entries.conta ins(newPattern)))
129 regex = new RegExp(newPattern); 133 regex = new RegExp(newPattern);
130 } catch (e) { 134 } catch (e) {
131 } 135 }
132 return regex ? [] : ["pattern"]; 136 return regex ? [] : ["pattern"];
133 }, 137 },
134 138
135 /** 139 /**
136 * @param {?string} itemId 140 * @param {?string} itemId
137 * @param {!Object} data 141 * @param {!Object} data
138 */ 142 */
139 _patternEdit: function(itemId, data) 143 _patternEdit: function(itemId, data)
140 { 144 {
141 var oldPattern = itemId; 145 var oldPattern = itemId;
142 var newPattern = data["pattern"]; 146 var newPattern = data["pattern"];
143 if (!newPattern) 147 if (!newPattern)
144 return; 148 return;
149 var disabled = (data["value"] === this._disabledLabel);
145 150
146 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray() ; 151 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray() ;
147 var pos = oldPattern ? patterns.indexOf(oldPattern) : -1; 152 for (var i = 0; i <= patterns.length; ++i) {
148 if (pos === -1) 153 if (i === patterns.length) {
149 patterns.push(newPattern); 154 patterns.push({ pattern: newPattern, disabled: disabled });
150 else 155 break;
151 patterns[pos] = newPattern; 156 }
157 if (patterns[i].pattern === oldPattern) {
158 patterns[i] = { pattern: newPattern, disabled: disabled };
159 break;
160 }
161 }
152 WebInspector.settings.skipStackFramesPattern.setAsArray(patterns); 162 WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);
153 163
164 if (oldPattern && oldPattern === newPattern) {
165 this._entries.put(newPattern, disabled ? this._disabledLabel : this. _blackboxLabel)
166 this._patternsList.refreshItem(newPattern);
167 return;
168 }
169
154 if (oldPattern) { 170 if (oldPattern) {
155 this._patternsList.removeItem(oldPattern); 171 this._patternsList.removeItem(oldPattern);
156 delete this._entries[oldPattern]; 172 this._entries.remove(oldPattern);
157 } 173 }
158 this._addPattern(newPattern); 174 this._addPattern(newPattern, disabled);
159 this._patternsList.selectItem(newPattern);
160 }, 175 },
161 176
162 /** 177 /**
163 * @param {!WebInspector.Event} event 178 * @param {!WebInspector.Event} event
164 */ 179 */
165 _patternRemovedFromList: function(event) 180 _patternRemovedFromList: function(event)
166 { 181 {
167 var pattern = /** @type{?string} */ (event.data); 182 var pattern = /** @type{?string} */ (event.data);
168 if (!pattern) 183 if (!pattern)
169 return; 184 return;
170 delete this._entries[pattern]; 185 this._entries.remove(pattern);
171 186
172 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray() ; 187 var patterns = WebInspector.settings.skipStackFramesPattern.getAsArray() ;
173 patterns.remove(pattern); 188 for (var i = 0; i < patterns.length; ++i) {
189 if (patterns[i].pattern === pattern) {
190 patterns.splice(i, 1);
191 break;
192 }
193 }
174 WebInspector.settings.skipStackFramesPattern.setAsArray(patterns); 194 WebInspector.settings.skipStackFramesPattern.setAsArray(patterns);
175 }, 195 },
176 196
177 /** 197 /**
178 * @param {string} pattern 198 * @param {string} pattern
199 * @param {boolean=} disabled
179 */ 200 */
180 _addPattern: function(pattern) 201 _addPattern: function(pattern, disabled)
181 { 202 {
182 if (!pattern || this._entries[pattern]) 203 if (!pattern || this._entries.contains(pattern))
183 return; 204 return;
184 this._entries[pattern] = true; 205 this._entries.put(pattern, disabled ? this._disabledLabel : this._blackb oxLabel);
185 this._patternsList.addItem(pattern, null); 206 this._patternsList.addItem(pattern, null);
186 this._resize(); 207 this._resize();
187 }, 208 },
188 209
189 focus: function() 210 focus: function()
190 { 211 {
191 WebInspector.setCurrentFocusElement(this.element); 212 WebInspector.setCurrentFocusElement(this.element);
192 }, 213 },
193 214
194 _onDoneClick: function() 215 _onDoneClick: function()
195 { 216 {
196 WebInspector.Dialog.hide(); 217 WebInspector.Dialog.hide();
197 }, 218 },
198 219
199 onEnter: function(event) 220 onEnter: function(event)
200 { 221 {
201 var focusElement = WebInspector.currentFocusElement(); 222 var focusElement = WebInspector.currentFocusElement();
202 var nodeName = focusElement && focusElement.nodeName.toLowerCase(); 223 var nodeName = focusElement && focusElement.nodeName.toLowerCase();
203 if (nodeName === "input" || nodeName === "select") { 224 if (nodeName === "input" || nodeName === "select") {
204 this.focus(); 225 this.focus();
205 event.consume(true); 226 event.consume(true);
206 return; 227 return;
207 } 228 }
208 }, 229 },
209 230
210 __proto__: WebInspector.DialogDelegate.prototype 231 __proto__: WebInspector.DialogDelegate.prototype
211 } 232 }
OLDNEW
« 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