OLD | NEW |
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 26 matching lines...) Expand all Loading... |
37 this._settingsStorage = storage; | 37 this._settingsStorage = storage; |
38 var clearLocalStorage = window.localStorage ? window.localStorage.clear.bind
(window.localStorage) : undefined; | 38 var clearLocalStorage = window.localStorage ? window.localStorage.clear.bind
(window.localStorage) : undefined; |
39 this._localStorage = new WebInspector.SettingsStorage(window.localStorage ||
{}, undefined, undefined, clearLocalStorage); | 39 this._localStorage = new WebInspector.SettingsStorage(window.localStorage ||
{}, undefined, undefined, clearLocalStorage); |
40 | 40 |
41 this._eventSupport = new WebInspector.Object(); | 41 this._eventSupport = new WebInspector.Object(); |
42 /** @type {!Map<string, !WebInspector.Setting>} */ | 42 /** @type {!Map<string, !WebInspector.Setting>} */ |
43 this._registry = new Map(); | 43 this._registry = new Map(); |
44 /** @type {!Map<string, !WebInspector.Setting>} */ | 44 /** @type {!Map<string, !WebInspector.Setting>} */ |
45 this._moduleSettings = new Map(); | 45 this._moduleSettings = new Map(); |
46 self.runtime.extensions("setting").forEach(this._registerModuleSetting.bind(
this)); | 46 self.runtime.extensions("setting").forEach(this._registerModuleSetting.bind(
this)); |
47 } | 47 }; |
48 | 48 |
49 WebInspector.Settings.prototype = { | 49 WebInspector.Settings.prototype = { |
50 /** | 50 /** |
51 * @param {!Runtime.Extension} extension | 51 * @param {!Runtime.Extension} extension |
52 */ | 52 */ |
53 _registerModuleSetting: function(extension) | 53 _registerModuleSetting: function(extension) |
54 { | 54 { |
55 var descriptor = extension.descriptor(); | 55 var descriptor = extension.descriptor(); |
56 var settingName = descriptor["settingName"]; | 56 var settingName = descriptor["settingName"]; |
57 var settingType = descriptor["settingType"]; | 57 var settingType = descriptor["settingType"]; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 return /** @type {!WebInspector.RegExpSetting} */ (this._registry.get(ke
y)); | 122 return /** @type {!WebInspector.RegExpSetting} */ (this._registry.get(ke
y)); |
123 }, | 123 }, |
124 | 124 |
125 clearAll: function() | 125 clearAll: function() |
126 { | 126 { |
127 this._settingsStorage.removeAll(); | 127 this._settingsStorage.removeAll(); |
128 this._localStorage.removeAll(); | 128 this._localStorage.removeAll(); |
129 var versionSetting = WebInspector.settings.createSetting(WebInspector.Ve
rsionController._currentVersionName, 0); | 129 var versionSetting = WebInspector.settings.createSetting(WebInspector.Ve
rsionController._currentVersionName, 0); |
130 versionSetting.set(WebInspector.VersionController.currentVersion); | 130 versionSetting.set(WebInspector.VersionController.currentVersion); |
131 } | 131 } |
132 } | 132 }; |
133 | 133 |
134 /** | 134 /** |
135 * @constructor | 135 * @constructor |
136 * @param {!Object} object | 136 * @param {!Object} object |
137 * @param {function(string, string)=} setCallback | 137 * @param {function(string, string)=} setCallback |
138 * @param {function(string)=} removeCallback | 138 * @param {function(string)=} removeCallback |
139 * @param {function(string)=} removeAllCallback | 139 * @param {function(string)=} removeAllCallback |
140 */ | 140 */ |
141 WebInspector.SettingsStorage = function(object, setCallback, removeCallback, rem
oveAllCallback) | 141 WebInspector.SettingsStorage = function(object, setCallback, removeCallback, rem
oveAllCallback) |
142 { | 142 { |
143 this._object = object; | 143 this._object = object; |
144 this._setCallback = setCallback || function() {}; | 144 this._setCallback = setCallback || function() {}; |
145 this._removeCallback = removeCallback || function() {}; | 145 this._removeCallback = removeCallback || function() {}; |
146 this._removeAllCallback = removeAllCallback || function() {}; | 146 this._removeAllCallback = removeAllCallback || function() {}; |
147 } | 147 }; |
148 | 148 |
149 WebInspector.SettingsStorage.prototype = { | 149 WebInspector.SettingsStorage.prototype = { |
150 /** | 150 /** |
151 * @param {string} name | 151 * @param {string} name |
152 * @param {string} value | 152 * @param {string} value |
153 */ | 153 */ |
154 set: function(name, value) | 154 set: function(name, value) |
155 { | 155 { |
156 this._object[name] = value; | 156 this._object[name] = value; |
157 this._setCallback(name, value); | 157 this._setCallback(name, value); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 function comparator(key1, key2) | 202 function comparator(key1, key2) |
203 { | 203 { |
204 return sizes[key2] - sizes[key1]; | 204 return sizes[key2] - sizes[key1]; |
205 } | 205 } |
206 | 206 |
207 keys.sort(comparator); | 207 keys.sort(comparator); |
208 | 208 |
209 for (var i = 0; i < 10 && i < keys.length; ++i) | 209 for (var i = 0; i < 10 && i < keys.length; ++i) |
210 WebInspector.console.log("Setting: '" + keys[i] + "', size: " + size
s[keys[i]]); | 210 WebInspector.console.log("Setting: '" + keys[i] + "', size: " + size
s[keys[i]]); |
211 } | 211 } |
212 } | 212 }; |
213 | 213 |
214 /** | 214 /** |
215 * @constructor | 215 * @constructor |
216 * @param {!WebInspector.Settings} settings | 216 * @param {!WebInspector.Settings} settings |
217 * @param {string} name | 217 * @param {string} name |
218 * @param {V} defaultValue | 218 * @param {V} defaultValue |
219 * @param {!WebInspector.Object} eventSupport | 219 * @param {!WebInspector.Object} eventSupport |
220 * @param {!WebInspector.SettingsStorage} storage | 220 * @param {!WebInspector.SettingsStorage} storage |
221 * @template V | 221 * @template V |
222 */ | 222 */ |
223 WebInspector.Setting = function(settings, name, defaultValue, eventSupport, stor
age) | 223 WebInspector.Setting = function(settings, name, defaultValue, eventSupport, stor
age) |
224 { | 224 { |
225 this._settings = settings; | 225 this._settings = settings; |
226 this._name = name; | 226 this._name = name; |
227 this._defaultValue = defaultValue; | 227 this._defaultValue = defaultValue; |
228 this._eventSupport = eventSupport; | 228 this._eventSupport = eventSupport; |
229 this._storage = storage; | 229 this._storage = storage; |
230 } | 230 }; |
231 | 231 |
232 WebInspector.Setting.prototype = { | 232 WebInspector.Setting.prototype = { |
233 /** | 233 /** |
234 * @param {function(!WebInspector.Event)} listener | 234 * @param {function(!WebInspector.Event)} listener |
235 * @param {!Object=} thisObject | 235 * @param {!Object=} thisObject |
236 */ | 236 */ |
237 addChangeListener: function(listener, thisObject) | 237 addChangeListener: function(listener, thisObject) |
238 { | 238 { |
239 this._eventSupport.addEventListener(this._name, listener, thisObject); | 239 this._eventSupport.addEventListener(this._name, listener, thisObject); |
240 }, | 240 }, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 * @param {string} name | 303 * @param {string} name |
304 * @param {string} value | 304 * @param {string} value |
305 */ | 305 */ |
306 _printSettingsSavingError: function(message, name, value) | 306 _printSettingsSavingError: function(message, name, value) |
307 { | 307 { |
308 var errorMessage = "Error saving setting with name: " + this._name + ",
value length: " + value.length + ". Error: " + message; | 308 var errorMessage = "Error saving setting with name: " + this._name + ",
value length: " + value.length + ". Error: " + message; |
309 console.error(errorMessage); | 309 console.error(errorMessage); |
310 WebInspector.console.error(errorMessage); | 310 WebInspector.console.error(errorMessage); |
311 this._storage._dumpSizes(); | 311 this._storage._dumpSizes(); |
312 } | 312 } |
313 } | 313 }; |
314 | 314 |
315 /** | 315 /** |
316 * @constructor | 316 * @constructor |
317 * @extends {WebInspector.Setting} | 317 * @extends {WebInspector.Setting} |
318 * @param {!WebInspector.Settings} settings | 318 * @param {!WebInspector.Settings} settings |
319 * @param {string} name | 319 * @param {string} name |
320 * @param {string} defaultValue | 320 * @param {string} defaultValue |
321 * @param {!WebInspector.Object} eventSupport | 321 * @param {!WebInspector.Object} eventSupport |
322 * @param {!WebInspector.SettingsStorage} storage | 322 * @param {!WebInspector.SettingsStorage} storage |
323 * @param {string=} regexFlags | 323 * @param {string=} regexFlags |
324 */ | 324 */ |
325 WebInspector.RegExpSetting = function(settings, name, defaultValue, eventSupport
, storage, regexFlags) | 325 WebInspector.RegExpSetting = function(settings, name, defaultValue, eventSupport
, storage, regexFlags) |
326 { | 326 { |
327 WebInspector.Setting.call(this, settings, name, defaultValue ? [{ pattern: d
efaultValue }] : [], eventSupport, storage); | 327 WebInspector.Setting.call(this, settings, name, defaultValue ? [{ pattern: d
efaultValue }] : [], eventSupport, storage); |
328 this._regexFlags = regexFlags; | 328 this._regexFlags = regexFlags; |
329 } | 329 }; |
330 | 330 |
331 WebInspector.RegExpSetting.prototype = { | 331 WebInspector.RegExpSetting.prototype = { |
332 /** | 332 /** |
333 * @override | 333 * @override |
334 * @return {string} | 334 * @return {string} |
335 */ | 335 */ |
336 get: function() | 336 get: function() |
337 { | 337 { |
338 var result = []; | 338 var result = []; |
339 var items = this.getAsArray(); | 339 var items = this.getAsArray(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 try { | 382 try { |
383 var pattern = this.get(); | 383 var pattern = this.get(); |
384 if (pattern) | 384 if (pattern) |
385 this._regex = new RegExp(pattern, this._regexFlags || ""); | 385 this._regex = new RegExp(pattern, this._regexFlags || ""); |
386 } catch (e) { | 386 } catch (e) { |
387 } | 387 } |
388 return this._regex; | 388 return this._regex; |
389 }, | 389 }, |
390 | 390 |
391 __proto__: WebInspector.Setting.prototype | 391 __proto__: WebInspector.Setting.prototype |
392 } | 392 }; |
393 | 393 |
394 /** | 394 /** |
395 * @constructor | 395 * @constructor |
396 */ | 396 */ |
397 WebInspector.VersionController = function() | 397 WebInspector.VersionController = function() |
398 { | 398 { |
399 } | 399 }; |
400 | 400 |
401 WebInspector.VersionController._currentVersionName = "inspectorVersion"; | 401 WebInspector.VersionController._currentVersionName = "inspectorVersion"; |
402 WebInspector.VersionController.currentVersion = 20; | 402 WebInspector.VersionController.currentVersion = 20; |
403 | 403 |
404 WebInspector.VersionController.prototype = { | 404 WebInspector.VersionController.prototype = { |
405 updateVersion: function() | 405 updateVersion: function() |
406 { | 406 { |
407 var localStorageVersion = window.localStorage ? window.localStorage[WebI
nspector.VersionController._currentVersionName] : 0; | 407 var localStorageVersion = window.localStorage ? window.localStorage[WebI
nspector.VersionController._currentVersionName] : 0; |
408 var versionSetting = WebInspector.settings.createSetting(WebInspector.Ve
rsionController._currentVersionName, 0); | 408 var versionSetting = WebInspector.settings.createSetting(WebInspector.Ve
rsionController._currentVersionName, 0); |
409 var currentVersion = WebInspector.VersionController.currentVersion; | 409 var currentVersion = WebInspector.VersionController.currentVersion; |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 * @param {!WebInspector.Setting} breakpointsSetting | 756 * @param {!WebInspector.Setting} breakpointsSetting |
757 * @param {number} maxBreakpointsCount | 757 * @param {number} maxBreakpointsCount |
758 */ | 758 */ |
759 _clearBreakpointsWhenTooMany: function(breakpointsSetting, maxBreakpointsCou
nt) | 759 _clearBreakpointsWhenTooMany: function(breakpointsSetting, maxBreakpointsCou
nt) |
760 { | 760 { |
761 // If there are too many breakpoints in a storage, it is likely due to a
recent bug that caused | 761 // If there are too many breakpoints in a storage, it is likely due to a
recent bug that caused |
762 // periodical breakpoints duplication leading to inspector slowness. | 762 // periodical breakpoints duplication leading to inspector slowness. |
763 if (breakpointsSetting.get().length > maxBreakpointsCount) | 763 if (breakpointsSetting.get().length > maxBreakpointsCount) |
764 breakpointsSetting.set([]); | 764 breakpointsSetting.set([]); |
765 } | 765 } |
766 } | 766 }; |
767 | 767 |
768 /** | 768 /** |
769 * @type {!WebInspector.Settings} | 769 * @type {!WebInspector.Settings} |
770 */ | 770 */ |
771 WebInspector.settings; | 771 WebInspector.settings; |
772 | 772 |
773 /** | 773 /** |
774 * @param {string} settingName | 774 * @param {string} settingName |
775 * @return {!WebInspector.Setting} | 775 * @return {!WebInspector.Setting} |
776 */ | 776 */ |
777 WebInspector.moduleSetting = function(settingName) | 777 WebInspector.moduleSetting = function(settingName) |
778 { | 778 { |
779 return WebInspector.settings.moduleSetting(settingName); | 779 return WebInspector.settings.moduleSetting(settingName); |
780 } | 780 }; |
781 | 781 |
782 /** | 782 /** |
783 * @param {string} settingName | 783 * @param {string} settingName |
784 * @return {!WebInspector.Setting} | 784 * @return {!WebInspector.Setting} |
785 */ | 785 */ |
786 WebInspector.settingForTest = function(settingName) | 786 WebInspector.settingForTest = function(settingName) |
787 { | 787 { |
788 return WebInspector.settings.settingForTest(settingName); | 788 return WebInspector.settings.settingForTest(settingName); |
789 } | 789 }; |
OLD | NEW |