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

Side by Side Diff: Source/devtools/front_end/Settings.js

Issue 212223003: DevTools: Introduce WebInspector.RegExpSetting. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/FileSystemMapping.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 this.workerInspectorWidth = this.createSetting("workerInspectorWidth", 600); 99 this.workerInspectorWidth = this.createSetting("workerInspectorWidth", 600);
100 this.workerInspectorHeight = this.createSetting("workerInspectorHeight", 600 ); 100 this.workerInspectorHeight = this.createSetting("workerInspectorHeight", 600 );
101 this.messageURLFilters = this.createSetting("messageURLFilters", {}); 101 this.messageURLFilters = this.createSetting("messageURLFilters", {});
102 this.networkHideDataURL = this.createSetting("networkHideDataURL", false); 102 this.networkHideDataURL = this.createSetting("networkHideDataURL", false);
103 this.messageLevelFilters = this.createSetting("messageLevelFilters", {}); 103 this.messageLevelFilters = this.createSetting("messageLevelFilters", {});
104 this.splitVerticallyWhenDockedToRight = this.createSetting("splitVerticallyW henDockedToRight", true); 104 this.splitVerticallyWhenDockedToRight = this.createSetting("splitVerticallyW henDockedToRight", true);
105 this.visiblePanels = this.createSetting("visiblePanels", {}); 105 this.visiblePanels = this.createSetting("visiblePanels", {});
106 this.shortcutPanelSwitch = this.createSetting("shortcutPanelSwitch", false); 106 this.shortcutPanelSwitch = this.createSetting("shortcutPanelSwitch", false);
107 this.showWhitespacesInEditor = this.createSetting("showWhitespacesInEditor", false); 107 this.showWhitespacesInEditor = this.createSetting("showWhitespacesInEditor", false);
108 this.skipStackFramesSwitch = this.createSetting("skipStackFramesSwitch", fal se); 108 this.skipStackFramesSwitch = this.createSetting("skipStackFramesSwitch", fal se);
109 this.skipStackFramesPattern = this.createSetting("skipStackFramesPattern", " "); 109 this.skipStackFramesPattern = this.createRegExpSetting("skipStackFramesPatte rn", "");
110 this.pauseOnExceptionEnabled = this.createSetting("pauseOnExceptionEnabled", false); 110 this.pauseOnExceptionEnabled = this.createSetting("pauseOnExceptionEnabled", false);
111 this.pauseOnCaughtException = this.createSetting("pauseOnCaughtException", f alse); 111 this.pauseOnCaughtException = this.createSetting("pauseOnCaughtException", f alse);
112 this.enableAsyncStackTraces = this.createSetting("enableAsyncStackTraces", f alse); 112 this.enableAsyncStackTraces = this.createSetting("enableAsyncStackTraces", f alse);
113 } 113 }
114 114
115 WebInspector.Settings.prototype = { 115 WebInspector.Settings.prototype = {
116 /** 116 /**
117 * @param {string} key 117 * @param {string} key
118 * @param {*} defaultValue 118 * @param {*} defaultValue
119 * @return {!WebInspector.Setting} 119 * @return {!WebInspector.Setting}
120 */ 120 */
121 createSetting: function(key, defaultValue) 121 createSetting: function(key, defaultValue)
122 { 122 {
123 if (!this._registry[key]) 123 if (!this._registry[key])
124 this._registry[key] = new WebInspector.Setting(key, defaultValue, th is._eventSupport, window.localStorage); 124 this._registry[key] = new WebInspector.Setting(key, defaultValue, th is._eventSupport, window.localStorage);
125 return this._registry[key]; 125 return this._registry[key];
126 }, 126 },
127 127
128 /** 128 /**
129 * @param {string} key 129 * @param {string} key
130 * @param {string} defaultValue
131 * @param {string=} regexFlags
132 * @return {!WebInspector.Setting}
133 */
134 createRegExpSetting: function(key, defaultValue, regexFlags)
135 {
136 if (!this._registry[key])
137 this._registry[key] = new WebInspector.RegExpSetting(key, defaultVal ue, this._eventSupport, window.localStorage, regexFlags);
138 return this._registry[key];
139 },
140
141 /**
142 * @param {string} key
130 * @param {*} defaultValue 143 * @param {*} defaultValue
131 * @param {function(*, function(string, ...))} setterCallback 144 * @param {function(*, function(string, ...))} setterCallback
132 * @return {!WebInspector.Setting} 145 * @return {!WebInspector.Setting}
133 */ 146 */
134 createBackendSetting: function(key, defaultValue, setterCallback) 147 createBackendSetting: function(key, defaultValue, setterCallback)
135 { 148 {
136 if (!this._registry[key]) 149 if (!this._registry[key])
137 this._registry[key] = new WebInspector.BackendSetting(key, defaultVa lue, this._eventSupport, window.localStorage, setterCallback); 150 this._registry[key] = new WebInspector.BackendSetting(key, defaultVa lue, this._eventSupport, window.localStorage, setterCallback);
138 return this._registry[key]; 151 return this._registry[key];
139 }, 152 },
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 231 }
219 } 232 }
220 this._eventSupport.dispatchEventToListeners(this._name, value); 233 this._eventSupport.dispatchEventToListeners(this._name, value);
221 } 234 }
222 } 235 }
223 236
224 /** 237 /**
225 * @constructor 238 * @constructor
226 * @extends {WebInspector.Setting} 239 * @extends {WebInspector.Setting}
227 * @param {string} name 240 * @param {string} name
241 * @param {string} defaultValue
242 * @param {!WebInspector.Object} eventSupport
243 * @param {?Storage} storage
244 * @param {string=} regexFlags
245 */
246 WebInspector.RegExpSetting = function(name, defaultValue, eventSupport, storage, regexFlags)
247 {
248 WebInspector.Setting.call(this, name, defaultValue, eventSupport, storage);
249 this._regexFlags = regexFlags;
250 }
251
252 WebInspector.RegExpSetting.prototype = {
253 set: function(value)
254 {
255 delete this._regex;
256 WebInspector.Setting.prototype.set.call(this, value);
257 },
258
259 /**
260 * @return {?RegExp}
261 */
262 asRegExp: function()
263 {
264 if (typeof this._regex !== "undefined")
265 return this._regex;
266 this._regex = null;
267 try {
268 this._regex = new RegExp(this.get(), this._regexFlags || "");
269 } catch (e) {
270 }
271 return this._regex;
272 },
273
274 __proto__: WebInspector.Setting.prototype
275 }
276
277 /**
278 * @constructor
279 * @extends {WebInspector.Setting}
280 * @param {string} name
228 * @param {*} defaultValue 281 * @param {*} defaultValue
229 * @param {!WebInspector.Object} eventSupport 282 * @param {!WebInspector.Object} eventSupport
230 * @param {?Storage} storage 283 * @param {?Storage} storage
231 * @param {function(*,function(string, ...))} setterCallback 284 * @param {function(*,function(string, ...))} setterCallback
232 */ 285 */
233 WebInspector.BackendSetting = function(name, defaultValue, eventSupport, storage , setterCallback) 286 WebInspector.BackendSetting = function(name, defaultValue, eventSupport, storage , setterCallback)
234 { 287 {
235 WebInspector.Setting.call(this, name, defaultValue, eventSupport, storage); 288 WebInspector.Setting.call(this, name, defaultValue, eventSupport, storage);
236 this._setterCallback = setterCallback; 289 this._setterCallback = setterCallback;
237 var currentValue = this.get(); 290 var currentValue = this.get();
(...skipping 14 matching lines...) Expand all
252 WebInspector.console.log("Error applying setting " + this._name + ": " + error); 305 WebInspector.console.log("Error applying setting " + this._name + ": " + error);
253 this._eventSupport.dispatchEventToListeners(this._name, this._va lue); 306 this._eventSupport.dispatchEventToListeners(this._name, this._va lue);
254 return; 307 return;
255 } 308 }
256 WebInspector.Setting.prototype.set.call(this, value); 309 WebInspector.Setting.prototype.set.call(this, value);
257 } 310 }
258 this._setterCallback(value, callback.bind(this)); 311 this._setterCallback(value, callback.bind(this));
259 }, 312 },
260 313
261 __proto__: WebInspector.Setting.prototype 314 __proto__: WebInspector.Setting.prototype
262 }; 315 }
263 316
264 /** 317 /**
265 * @constructor 318 * @constructor
266 * @param {boolean} experimentsEnabled 319 * @param {boolean} experimentsEnabled
267 */ 320 */
268 WebInspector.ExperimentsSettings = function(experimentsEnabled) 321 WebInspector.ExperimentsSettings = function(experimentsEnabled)
269 { 322 {
270 this._experimentsEnabled = experimentsEnabled; 323 this._experimentsEnabled = experimentsEnabled;
271 this._setting = WebInspector.settings.createSetting("experiments", {}); 324 this._setting = WebInspector.settings.createSetting("experiments", {});
272 this._experiments = []; 325 this._experiments = [];
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 { 652 {
600 // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused 653 // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused
601 // periodical breakpoints duplication leading to inspector slowness. 654 // periodical breakpoints duplication leading to inspector slowness.
602 if (breakpointsSetting.get().length > maxBreakpointsCount) 655 if (breakpointsSetting.get().length > maxBreakpointsCount)
603 breakpointsSetting.set([]); 656 breakpointsSetting.set([]);
604 } 657 }
605 } 658 }
606 659
607 WebInspector.settings = new WebInspector.Settings(); 660 WebInspector.settings = new WebInspector.Settings();
608 WebInspector.experimentsSettings = new WebInspector.ExperimentsSettings(WebInspe ctor.queryParam("experiments") !== null); 661 WebInspector.experimentsSettings = new WebInspector.ExperimentsSettings(WebInspe ctor.queryParam("experiments") !== null);
OLDNEW
« no previous file with comments | « Source/devtools/front_end/FileSystemMapping.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698