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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/common/Settings.js

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots Created 4 years, 1 month 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
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 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 /** 31 /**
32 * @unrestricted 32 * @unrestricted
33 */ 33 */
34 WebInspector.Settings = class { 34 Common.Settings = class {
35 /** 35 /**
36 * @param {!WebInspector.SettingsStorage} globalStorage 36 * @param {!Common.SettingsStorage} globalStorage
37 * @param {!WebInspector.SettingsStorage} localStorage 37 * @param {!Common.SettingsStorage} localStorage
38 */ 38 */
39 constructor(globalStorage, localStorage) { 39 constructor(globalStorage, localStorage) {
40 this._settingsStorage = globalStorage; 40 this._settingsStorage = globalStorage;
41 this._localStorage = localStorage; 41 this._localStorage = localStorage;
42 42
43 this._eventSupport = new WebInspector.Object(); 43 this._eventSupport = new Common.Object();
44 /** @type {!Map<string, !WebInspector.Setting>} */ 44 /** @type {!Map<string, !Common.Setting>} */
45 this._registry = new Map(); 45 this._registry = new Map();
46 /** @type {!Map<string, !WebInspector.Setting>} */ 46 /** @type {!Map<string, !Common.Setting>} */
47 this._moduleSettings = new Map(); 47 this._moduleSettings = new Map();
48 self.runtime.extensions('setting').forEach(this._registerModuleSetting.bind( this)); 48 self.runtime.extensions('setting').forEach(this._registerModuleSetting.bind( this));
49 } 49 }
50 50
51 /** 51 /**
52 * @param {!Runtime.Extension} extension 52 * @param {!Runtime.Extension} extension
53 */ 53 */
54 _registerModuleSetting(extension) { 54 _registerModuleSetting(extension) {
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'];
58 var defaultValue = descriptor['defaultValue']; 58 var defaultValue = descriptor['defaultValue'];
59 var isLocal = !!descriptor['local']; 59 var isLocal = !!descriptor['local'];
60 var setting = settingType === 'regex' ? this.createRegExpSetting(settingName , defaultValue, undefined, isLocal) : 60 var setting = settingType === 'regex' ? this.createRegExpSetting(settingName , defaultValue, undefined, isLocal) :
61 this.createSetting(settingName, defa ultValue, isLocal); 61 this.createSetting(settingName, defa ultValue, isLocal);
62 this._moduleSettings.set(settingName, setting); 62 this._moduleSettings.set(settingName, setting);
63 } 63 }
64 64
65 /** 65 /**
66 * @param {string} settingName 66 * @param {string} settingName
67 * @return {!WebInspector.Setting} 67 * @return {!Common.Setting}
68 */ 68 */
69 moduleSetting(settingName) { 69 moduleSetting(settingName) {
70 var setting = this._moduleSettings.get(settingName); 70 var setting = this._moduleSettings.get(settingName);
71 if (!setting) 71 if (!setting)
72 throw new Error('No setting registered: ' + settingName); 72 throw new Error('No setting registered: ' + settingName);
73 return setting; 73 return setting;
74 } 74 }
75 75
76 /** 76 /**
77 * @param {string} settingName 77 * @param {string} settingName
78 * @return {!WebInspector.Setting} 78 * @return {!Common.Setting}
79 */ 79 */
80 settingForTest(settingName) { 80 settingForTest(settingName) {
81 var setting = this._registry.get(settingName); 81 var setting = this._registry.get(settingName);
82 if (!setting) 82 if (!setting)
83 throw new Error('No setting registered: ' + settingName); 83 throw new Error('No setting registered: ' + settingName);
84 return setting; 84 return setting;
85 } 85 }
86 86
87 /** 87 /**
88 * @param {string} key 88 * @param {string} key
89 * @param {*} defaultValue 89 * @param {*} defaultValue
90 * @param {boolean=} isLocal 90 * @param {boolean=} isLocal
91 * @return {!WebInspector.Setting} 91 * @return {!Common.Setting}
92 */ 92 */
93 createSetting(key, defaultValue, isLocal) { 93 createSetting(key, defaultValue, isLocal) {
94 if (!this._registry.get(key)) 94 if (!this._registry.get(key))
95 this._registry.set( 95 this._registry.set(
96 key, new WebInspector.Setting( 96 key, new Common.Setting(
97 this, key, defaultValue, this._eventSupport, isLocal ? this._ localStorage : this._settingsStorage)); 97 this, key, defaultValue, this._eventSupport, isLocal ? this._ localStorage : this._settingsStorage));
98 return /** @type {!WebInspector.Setting} */ (this._registry.get(key)); 98 return /** @type {!Common.Setting} */ (this._registry.get(key));
99 } 99 }
100 100
101 /** 101 /**
102 * @param {string} key 102 * @param {string} key
103 * @param {*} defaultValue 103 * @param {*} defaultValue
104 * @return {!WebInspector.Setting} 104 * @return {!Common.Setting}
105 */ 105 */
106 createLocalSetting(key, defaultValue) { 106 createLocalSetting(key, defaultValue) {
107 return this.createSetting(key, defaultValue, true); 107 return this.createSetting(key, defaultValue, true);
108 } 108 }
109 109
110 /** 110 /**
111 * @param {string} key 111 * @param {string} key
112 * @param {string} defaultValue 112 * @param {string} defaultValue
113 * @param {string=} regexFlags 113 * @param {string=} regexFlags
114 * @param {boolean=} isLocal 114 * @param {boolean=} isLocal
115 * @return {!WebInspector.RegExpSetting} 115 * @return {!Common.RegExpSetting}
116 */ 116 */
117 createRegExpSetting(key, defaultValue, regexFlags, isLocal) { 117 createRegExpSetting(key, defaultValue, regexFlags, isLocal) {
118 if (!this._registry.get(key)) 118 if (!this._registry.get(key))
119 this._registry.set( 119 this._registry.set(
120 key, new WebInspector.RegExpSetting( 120 key, new Common.RegExpSetting(
121 this, key, defaultValue, this._eventSupport, isLocal ? this._ localStorage : this._settingsStorage, 121 this, key, defaultValue, this._eventSupport, isLocal ? this._ localStorage : this._settingsStorage,
122 regexFlags)); 122 regexFlags));
123 return /** @type {!WebInspector.RegExpSetting} */ (this._registry.get(key)); 123 return /** @type {!Common.RegExpSetting} */ (this._registry.get(key));
124 } 124 }
125 125
126 clearAll() { 126 clearAll() {
127 this._settingsStorage.removeAll(); 127 this._settingsStorage.removeAll();
128 this._localStorage.removeAll(); 128 this._localStorage.removeAll();
129 var versionSetting = WebInspector.settings.createSetting(WebInspector.Versio nController._currentVersionName, 0); 129 var versionSetting = Common.settings.createSetting(Common.VersionController. _currentVersionName, 0);
130 versionSetting.set(WebInspector.VersionController.currentVersion); 130 versionSetting.set(Common.VersionController.currentVersion);
131 } 131 }
132 }; 132 };
133 133
134 /** 134 /**
135 * @unrestricted 135 * @unrestricted
136 */ 136 */
137 WebInspector.SettingsStorage = class { 137 Common.SettingsStorage = class {
138 /** 138 /**
139 * @param {!Object} object 139 * @param {!Object} object
140 * @param {function(string, string)=} setCallback 140 * @param {function(string, string)=} setCallback
141 * @param {function(string)=} removeCallback 141 * @param {function(string)=} removeCallback
142 * @param {function(string)=} removeAllCallback 142 * @param {function(string)=} removeAllCallback
143 * @param {string=} storagePrefix 143 * @param {string=} storagePrefix
144 */ 144 */
145 constructor(object, setCallback, removeCallback, removeAllCallback, storagePre fix) { 145 constructor(object, setCallback, removeCallback, removeAllCallback, storagePre fix) {
146 this._object = object; 146 this._object = object;
147 this._setCallback = setCallback || function() {}; 147 this._setCallback = setCallback || function() {};
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 delete this._object[name]; 186 delete this._object[name];
187 this._removeCallback(name); 187 this._removeCallback(name);
188 } 188 }
189 189
190 removeAll() { 190 removeAll() {
191 this._object = {}; 191 this._object = {};
192 this._removeAllCallback(); 192 this._removeAllCallback();
193 } 193 }
194 194
195 _dumpSizes() { 195 _dumpSizes() {
196 WebInspector.console.log('Ten largest settings: '); 196 Common.console.log('Ten largest settings: ');
197 197
198 var sizes = {__proto__: null}; 198 var sizes = {__proto__: null};
199 for (var key in this._object) 199 for (var key in this._object)
200 sizes[key] = this._object[key].length; 200 sizes[key] = this._object[key].length;
201 var keys = Object.keys(sizes); 201 var keys = Object.keys(sizes);
202 202
203 function comparator(key1, key2) { 203 function comparator(key1, key2) {
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: ' + sizes[ke ys[i]]); 210 Common.console.log('Setting: \'' + keys[i] + '\', size: ' + sizes[keys[i]] );
211 } 211 }
212 }; 212 };
213 213
214 /** 214 /**
215 * @template V 215 * @template V
216 * @unrestricted 216 * @unrestricted
217 */ 217 */
218 WebInspector.Setting = class { 218 Common.Setting = class {
219 /** 219 /**
220 * @param {!WebInspector.Settings} settings 220 * @param {!Common.Settings} settings
221 * @param {string} name 221 * @param {string} name
222 * @param {V} defaultValue 222 * @param {V} defaultValue
223 * @param {!WebInspector.Object} eventSupport 223 * @param {!Common.Object} eventSupport
224 * @param {!WebInspector.SettingsStorage} storage 224 * @param {!Common.SettingsStorage} storage
225 */ 225 */
226 constructor(settings, name, defaultValue, eventSupport, storage) { 226 constructor(settings, name, defaultValue, eventSupport, storage) {
227 this._settings = settings; 227 this._settings = settings;
228 this._name = name; 228 this._name = name;
229 this._defaultValue = defaultValue; 229 this._defaultValue = defaultValue;
230 this._eventSupport = eventSupport; 230 this._eventSupport = eventSupport;
231 this._storage = storage; 231 this._storage = storage;
232 } 232 }
233 233
234 /** 234 /**
235 * @param {function(!WebInspector.Event)} listener 235 * @param {function(!Common.Event)} listener
236 * @param {!Object=} thisObject 236 * @param {!Object=} thisObject
237 */ 237 */
238 addChangeListener(listener, thisObject) { 238 addChangeListener(listener, thisObject) {
239 this._eventSupport.addEventListener(this._name, listener, thisObject); 239 this._eventSupport.addEventListener(this._name, listener, thisObject);
240 } 240 }
241 241
242 /** 242 /**
243 * @param {function(!WebInspector.Event)} listener 243 * @param {function(!Common.Event)} listener
244 * @param {!Object=} thisObject 244 * @param {!Object=} thisObject
245 */ 245 */
246 removeChangeListener(listener, thisObject) { 246 removeChangeListener(listener, thisObject) {
247 this._eventSupport.removeEventListener(this._name, listener, thisObject); 247 this._eventSupport.removeEventListener(this._name, listener, thisObject);
248 } 248 }
249 249
250 get name() { 250 get name() {
251 return this._name; 251 return this._name;
252 } 252 }
253 253
(...skipping 21 matching lines...) Expand all
275 set(value) { 275 set(value) {
276 this._value = value; 276 this._value = value;
277 try { 277 try {
278 var settingString = JSON.stringify(value); 278 var settingString = JSON.stringify(value);
279 try { 279 try {
280 this._storage.set(this._name, settingString); 280 this._storage.set(this._name, settingString);
281 } catch (e) { 281 } catch (e) {
282 this._printSettingsSavingError(e.message, this._name, settingString); 282 this._printSettingsSavingError(e.message, this._name, settingString);
283 } 283 }
284 } catch (e) { 284 } catch (e) {
285 WebInspector.console.error('Cannot stringify setting with name: ' + this._ name + ', error: ' + e.message); 285 Common.console.error('Cannot stringify setting with name: ' + this._name + ', error: ' + e.message);
286 } 286 }
287 this._eventSupport.dispatchEventToListeners(this._name, value); 287 this._eventSupport.dispatchEventToListeners(this._name, value);
288 } 288 }
289 289
290 remove() { 290 remove() {
291 this._settings._registry.delete(this._name); 291 this._settings._registry.delete(this._name);
292 this._settings._moduleSettings.delete(this._name); 292 this._settings._moduleSettings.delete(this._name);
293 this._storage.remove(this._name); 293 this._storage.remove(this._name);
294 } 294 }
295 295
296 /** 296 /**
297 * @param {string} message 297 * @param {string} message
298 * @param {string} name 298 * @param {string} name
299 * @param {string} value 299 * @param {string} value
300 */ 300 */
301 _printSettingsSavingError(message, name, value) { 301 _printSettingsSavingError(message, name, value) {
302 var errorMessage = 302 var errorMessage =
303 'Error saving setting with name: ' + this._name + ', value length: ' + v alue.length + '. Error: ' + message; 303 'Error saving setting with name: ' + this._name + ', value length: ' + v alue.length + '. Error: ' + message;
304 console.error(errorMessage); 304 console.error(errorMessage);
305 WebInspector.console.error(errorMessage); 305 Common.console.error(errorMessage);
306 this._storage._dumpSizes(); 306 this._storage._dumpSizes();
307 } 307 }
308 }; 308 };
309 309
310 /** 310 /**
311 * @unrestricted 311 * @unrestricted
312 */ 312 */
313 WebInspector.RegExpSetting = class extends WebInspector.Setting { 313 Common.RegExpSetting = class extends Common.Setting {
314 /** 314 /**
315 * @param {!WebInspector.Settings} settings 315 * @param {!Common.Settings} settings
316 * @param {string} name 316 * @param {string} name
317 * @param {string} defaultValue 317 * @param {string} defaultValue
318 * @param {!WebInspector.Object} eventSupport 318 * @param {!Common.Object} eventSupport
319 * @param {!WebInspector.SettingsStorage} storage 319 * @param {!Common.SettingsStorage} storage
320 * @param {string=} regexFlags 320 * @param {string=} regexFlags
321 */ 321 */
322 constructor(settings, name, defaultValue, eventSupport, storage, regexFlags) { 322 constructor(settings, name, defaultValue, eventSupport, storage, regexFlags) {
323 super(settings, name, defaultValue ? [{pattern: defaultValue}] : [], eventSu pport, storage); 323 super(settings, name, defaultValue ? [{pattern: defaultValue}] : [], eventSu pport, storage);
324 this._regexFlags = regexFlags; 324 this._regexFlags = regexFlags;
325 } 325 }
326 326
327 /** 327 /**
328 * @override 328 * @override
329 * @return {string} 329 * @return {string}
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 this._regex = new RegExp(pattern, this._regexFlags || ''); 375 this._regex = new RegExp(pattern, this._regexFlags || '');
376 } catch (e) { 376 } catch (e) {
377 } 377 }
378 return this._regex; 378 return this._regex;
379 } 379 }
380 }; 380 };
381 381
382 /** 382 /**
383 * @unrestricted 383 * @unrestricted
384 */ 384 */
385 WebInspector.VersionController = class { 385 Common.VersionController = class {
386 updateVersion() { 386 updateVersion() {
387 var localStorageVersion = 387 var localStorageVersion =
388 window.localStorage ? window.localStorage[WebInspector.VersionController ._currentVersionName] : 0; 388 window.localStorage ? window.localStorage[Common.VersionController._curr entVersionName] : 0;
389 var versionSetting = WebInspector.settings.createSetting(WebInspector.Versio nController._currentVersionName, 0); 389 var versionSetting = Common.settings.createSetting(Common.VersionController. _currentVersionName, 0);
390 var currentVersion = WebInspector.VersionController.currentVersion; 390 var currentVersion = Common.VersionController.currentVersion;
391 var oldVersion = versionSetting.get() || parseInt(localStorageVersion || '0' , 10); 391 var oldVersion = versionSetting.get() || parseInt(localStorageVersion || '0' , 10);
392 if (oldVersion === 0) { 392 if (oldVersion === 0) {
393 // First run, no need to do anything. 393 // First run, no need to do anything.
394 versionSetting.set(currentVersion); 394 versionSetting.set(currentVersion);
395 return; 395 return;
396 } 396 }
397 var methodsToRun = this._methodsToRunToUpdateVersion(oldVersion, currentVers ion); 397 var methodsToRun = this._methodsToRunToUpdateVersion(oldVersion, currentVers ion);
398 for (var i = 0; i < methodsToRun.length; ++i) 398 for (var i = 0; i < methodsToRun.length; ++i)
399 this[methodsToRun[i]].call(this); 399 this[methodsToRun[i]].call(this);
400 versionSetting.set(currentVersion); 400 versionSetting.set(currentVersion);
401 } 401 }
402 402
403 /** 403 /**
404 * @param {number} oldVersion 404 * @param {number} oldVersion
405 * @param {number} currentVersion 405 * @param {number} currentVersion
406 */ 406 */
407 _methodsToRunToUpdateVersion(oldVersion, currentVersion) { 407 _methodsToRunToUpdateVersion(oldVersion, currentVersion) {
408 var result = []; 408 var result = [];
409 for (var i = oldVersion; i < currentVersion; ++i) 409 for (var i = oldVersion; i < currentVersion; ++i)
410 result.push('_updateVersionFrom' + i + 'To' + (i + 1)); 410 result.push('_updateVersionFrom' + i + 'To' + (i + 1));
411 return result; 411 return result;
412 } 412 }
413 413
414 _updateVersionFrom0To1() { 414 _updateVersionFrom0To1() {
415 this._clearBreakpointsWhenTooMany(WebInspector.settings.createLocalSetting(' breakpoints', []), 500000); 415 this._clearBreakpointsWhenTooMany(Common.settings.createLocalSetting('breakp oints', []), 500000);
416 } 416 }
417 417
418 _updateVersionFrom1To2() { 418 _updateVersionFrom1To2() {
419 WebInspector.settings.createSetting('previouslyViewedFiles', []).set([]); 419 Common.settings.createSetting('previouslyViewedFiles', []).set([]);
420 } 420 }
421 421
422 _updateVersionFrom2To3() { 422 _updateVersionFrom2To3() {
423 WebInspector.settings.createSetting('fileSystemMapping', {}).set({}); 423 Common.settings.createSetting('fileSystemMapping', {}).set({});
424 WebInspector.settings.createSetting('fileMappingEntries', []).remove(); 424 Common.settings.createSetting('fileMappingEntries', []).remove();
425 } 425 }
426 426
427 _updateVersionFrom3To4() { 427 _updateVersionFrom3To4() {
428 var advancedMode = WebInspector.settings.createSetting('showHeaSnapshotObjec tsHiddenProperties', false); 428 var advancedMode = Common.settings.createSetting('showHeaSnapshotObjectsHidd enProperties', false);
429 WebInspector.moduleSetting('showAdvancedHeapSnapshotProperties').set(advance dMode.get()); 429 Common.moduleSetting('showAdvancedHeapSnapshotProperties').set(advancedMode. get());
430 advancedMode.remove(); 430 advancedMode.remove();
431 } 431 }
432 432
433 _updateVersionFrom4To5() { 433 _updateVersionFrom4To5() {
434 var settingNames = { 434 var settingNames = {
435 'FileSystemViewSidebarWidth': 'fileSystemViewSplitViewState', 435 'FileSystemViewSidebarWidth': 'fileSystemViewSplitViewState',
436 'elementsSidebarWidth': 'elementsPanelSplitViewState', 436 'elementsSidebarWidth': 'elementsPanelSplitViewState',
437 'StylesPaneSplitRatio': 'stylesPaneSplitViewState', 437 'StylesPaneSplitRatio': 'stylesPaneSplitViewState',
438 'heapSnapshotRetainersViewSize': 'heapSnapshotSplitViewState', 438 'heapSnapshotRetainersViewSize': 'heapSnapshotSplitViewState',
439 'InspectorView.splitView': 'InspectorView.splitViewState', 439 'InspectorView.splitView': 'InspectorView.splitViewState',
(...skipping 11 matching lines...) Expand all
451 'layersSidebarWidth': 'layersPanelSplitViewState', 451 'layersSidebarWidth': 'layersPanelSplitViewState',
452 'profilesSidebarWidth': 'profilesPanelSplitViewState', 452 'profilesSidebarWidth': 'profilesPanelSplitViewState',
453 'resourcesSidebarWidth': 'resourcesPanelSplitViewState' 453 'resourcesSidebarWidth': 'resourcesPanelSplitViewState'
454 }; 454 };
455 var empty = {}; 455 var empty = {};
456 for (var oldName in settingNames) { 456 for (var oldName in settingNames) {
457 var newName = settingNames[oldName]; 457 var newName = settingNames[oldName];
458 var oldNameH = oldName + 'H'; 458 var oldNameH = oldName + 'H';
459 459
460 var newValue = null; 460 var newValue = null;
461 var oldSetting = WebInspector.settings.createSetting(oldName, empty); 461 var oldSetting = Common.settings.createSetting(oldName, empty);
462 if (oldSetting.get() !== empty) { 462 if (oldSetting.get() !== empty) {
463 newValue = newValue || {}; 463 newValue = newValue || {};
464 newValue.vertical = {}; 464 newValue.vertical = {};
465 newValue.vertical.size = oldSetting.get(); 465 newValue.vertical.size = oldSetting.get();
466 oldSetting.remove(); 466 oldSetting.remove();
467 } 467 }
468 var oldSettingH = WebInspector.settings.createSetting(oldNameH, empty); 468 var oldSettingH = Common.settings.createSetting(oldNameH, empty);
469 if (oldSettingH.get() !== empty) { 469 if (oldSettingH.get() !== empty) {
470 newValue = newValue || {}; 470 newValue = newValue || {};
471 newValue.horizontal = {}; 471 newValue.horizontal = {};
472 newValue.horizontal.size = oldSettingH.get(); 472 newValue.horizontal.size = oldSettingH.get();
473 oldSettingH.remove(); 473 oldSettingH.remove();
474 } 474 }
475 if (newValue) 475 if (newValue)
476 WebInspector.settings.createSetting(newName, {}).set(newValue); 476 Common.settings.createSetting(newName, {}).set(newValue);
477 } 477 }
478 } 478 }
479 479
480 _updateVersionFrom5To6() { 480 _updateVersionFrom5To6() {
481 var settingNames = { 481 var settingNames = {
482 'debuggerSidebarHidden': 'sourcesPanelSplitViewState', 482 'debuggerSidebarHidden': 'sourcesPanelSplitViewState',
483 'navigatorHidden': 'sourcesPanelNavigatorSplitViewState', 483 'navigatorHidden': 'sourcesPanelNavigatorSplitViewState',
484 'WebInspector.Drawer.showOnLoad': 'Inspector.drawerSplitViewState' 484 'WebInspector.Drawer.showOnLoad': 'Inspector.drawerSplitViewState'
485 }; 485 };
486 486
487 for (var oldName in settingNames) { 487 for (var oldName in settingNames) {
488 var oldSetting = WebInspector.settings.createSetting(oldName, null); 488 var oldSetting = Common.settings.createSetting(oldName, null);
489 if (oldSetting.get() === null) { 489 if (oldSetting.get() === null) {
490 oldSetting.remove(); 490 oldSetting.remove();
491 continue; 491 continue;
492 } 492 }
493 493
494 var newName = settingNames[oldName]; 494 var newName = settingNames[oldName];
495 var invert = oldName === 'WebInspector.Drawer.showOnLoad'; 495 var invert = oldName === 'WebInspector.Drawer.showOnLoad';
496 var hidden = oldSetting.get() !== invert; 496 var hidden = oldSetting.get() !== invert;
497 oldSetting.remove(); 497 oldSetting.remove();
498 var showMode = hidden ? 'OnlyMain' : 'Both'; 498 var showMode = hidden ? 'OnlyMain' : 'Both';
499 499
500 var newSetting = WebInspector.settings.createSetting(newName, {}); 500 var newSetting = Common.settings.createSetting(newName, {});
501 var newValue = newSetting.get() || {}; 501 var newValue = newSetting.get() || {};
502 newValue.vertical = newValue.vertical || {}; 502 newValue.vertical = newValue.vertical || {};
503 newValue.vertical.showMode = showMode; 503 newValue.vertical.showMode = showMode;
504 newValue.horizontal = newValue.horizontal || {}; 504 newValue.horizontal = newValue.horizontal || {};
505 newValue.horizontal.showMode = showMode; 505 newValue.horizontal.showMode = showMode;
506 newSetting.set(newValue); 506 newSetting.set(newValue);
507 } 507 }
508 } 508 }
509 509
510 _updateVersionFrom6To7() { 510 _updateVersionFrom6To7() {
511 var settingNames = { 511 var settingNames = {
512 'sourcesPanelNavigatorSplitViewState': 'sourcesPanelNavigatorSplitViewStat e', 512 'sourcesPanelNavigatorSplitViewState': 'sourcesPanelNavigatorSplitViewStat e',
513 'elementsPanelSplitViewState': 'elementsPanelSplitViewState', 513 'elementsPanelSplitViewState': 'elementsPanelSplitViewState',
514 'stylesPaneSplitViewState': 'stylesPaneSplitViewState', 514 'stylesPaneSplitViewState': 'stylesPaneSplitViewState',
515 'sourcesPanelDebuggerSidebarSplitViewState': 'sourcesPanelDebuggerSidebarS plitViewState' 515 'sourcesPanelDebuggerSidebarSplitViewState': 'sourcesPanelDebuggerSidebarS plitViewState'
516 }; 516 };
517 517
518 var empty = {}; 518 var empty = {};
519 for (var name in settingNames) { 519 for (var name in settingNames) {
520 var setting = WebInspector.settings.createSetting(name, empty); 520 var setting = Common.settings.createSetting(name, empty);
521 var value = setting.get(); 521 var value = setting.get();
522 if (value === empty) 522 if (value === empty)
523 continue; 523 continue;
524 // Zero out saved percentage sizes, and they will be restored to defaults. 524 // Zero out saved percentage sizes, and they will be restored to defaults.
525 if (value.vertical && value.vertical.size && value.vertical.size < 1) 525 if (value.vertical && value.vertical.size && value.vertical.size < 1)
526 value.vertical.size = 0; 526 value.vertical.size = 0;
527 if (value.horizontal && value.horizontal.size && value.horizontal.size < 1 ) 527 if (value.horizontal && value.horizontal.size && value.horizontal.size < 1 )
528 value.horizontal.size = 0; 528 value.horizontal.size = 0;
529 setting.set(value); 529 setting.set(value);
530 } 530 }
531 } 531 }
532 532
533 _updateVersionFrom7To8() { 533 _updateVersionFrom7To8() {
534 } 534 }
535 535
536 _updateVersionFrom8To9() { 536 _updateVersionFrom8To9() {
537 var settingNames = ['skipStackFramesPattern', 'workspaceFolderExcludePattern ']; 537 var settingNames = ['skipStackFramesPattern', 'workspaceFolderExcludePattern '];
538 538
539 for (var i = 0; i < settingNames.length; ++i) { 539 for (var i = 0; i < settingNames.length; ++i) {
540 var setting = WebInspector.settings.createSetting(settingNames[i], ''); 540 var setting = Common.settings.createSetting(settingNames[i], '');
541 var value = setting.get(); 541 var value = setting.get();
542 if (!value) 542 if (!value)
543 return; 543 return;
544 if (typeof value === 'string') 544 if (typeof value === 'string')
545 value = [value]; 545 value = [value];
546 for (var j = 0; j < value.length; ++j) { 546 for (var j = 0; j < value.length; ++j) {
547 if (typeof value[j] === 'string') 547 if (typeof value[j] === 'string')
548 value[j] = {pattern: value[j]}; 548 value[j] = {pattern: value[j]};
549 } 549 }
550 setting.set(value); 550 setting.set(value);
551 } 551 }
552 } 552 }
553 553
554 _updateVersionFrom9To10() { 554 _updateVersionFrom9To10() {
555 // This one is localStorage specific, which is fine. 555 // This one is localStorage specific, which is fine.
556 if (!window.localStorage) 556 if (!window.localStorage)
557 return; 557 return;
558 for (var key in window.localStorage) { 558 for (var key in window.localStorage) {
559 if (key.startsWith('revision-history')) 559 if (key.startsWith('revision-history'))
560 window.localStorage.removeItem(key); 560 window.localStorage.removeItem(key);
561 } 561 }
562 } 562 }
563 563
564 _updateVersionFrom10To11() { 564 _updateVersionFrom10To11() {
565 var oldSettingName = 'customDevicePresets'; 565 var oldSettingName = 'customDevicePresets';
566 var newSettingName = 'customEmulatedDeviceList'; 566 var newSettingName = 'customEmulatedDeviceList';
567 var oldSetting = WebInspector.settings.createSetting(oldSettingName, undefin ed); 567 var oldSetting = Common.settings.createSetting(oldSettingName, undefined);
568 var list = oldSetting.get(); 568 var list = oldSetting.get();
569 if (!Array.isArray(list)) 569 if (!Array.isArray(list))
570 return; 570 return;
571 var newList = []; 571 var newList = [];
572 for (var i = 0; i < list.length; ++i) { 572 for (var i = 0; i < list.length; ++i) {
573 var value = list[i]; 573 var value = list[i];
574 var device = {}; 574 var device = {};
575 device['title'] = value['title']; 575 device['title'] = value['title'];
576 device['type'] = 'unknown'; 576 device['type'] = 'unknown';
577 device['user-agent'] = value['userAgent']; 577 device['user-agent'] = value['userAgent'];
578 device['capabilities'] = []; 578 device['capabilities'] = [];
579 if (value['touch']) 579 if (value['touch'])
580 device['capabilities'].push('touch'); 580 device['capabilities'].push('touch');
581 if (value['mobile']) 581 if (value['mobile'])
582 device['capabilities'].push('mobile'); 582 device['capabilities'].push('mobile');
583 device['screen'] = {}; 583 device['screen'] = {};
584 device['screen']['vertical'] = {width: value['width'], height: value['heig ht']}; 584 device['screen']['vertical'] = {width: value['width'], height: value['heig ht']};
585 device['screen']['horizontal'] = {width: value['height'], height: value['w idth']}; 585 device['screen']['horizontal'] = {width: value['height'], height: value['w idth']};
586 device['screen']['device-pixel-ratio'] = value['deviceScaleFactor']; 586 device['screen']['device-pixel-ratio'] = value['deviceScaleFactor'];
587 device['modes'] = []; 587 device['modes'] = [];
588 device['show-by-default'] = true; 588 device['show-by-default'] = true;
589 device['show'] = 'Default'; 589 device['show'] = 'Default';
590 newList.push(device); 590 newList.push(device);
591 } 591 }
592 if (newList.length) 592 if (newList.length)
593 WebInspector.settings.createSetting(newSettingName, []).set(newList); 593 Common.settings.createSetting(newSettingName, []).set(newList);
594 oldSetting.remove(); 594 oldSetting.remove();
595 } 595 }
596 596
597 _updateVersionFrom11To12() { 597 _updateVersionFrom11To12() {
598 this._migrateSettingsFromLocalStorage(); 598 this._migrateSettingsFromLocalStorage();
599 } 599 }
600 600
601 _updateVersionFrom12To13() { 601 _updateVersionFrom12To13() {
602 this._migrateSettingsFromLocalStorage(); 602 this._migrateSettingsFromLocalStorage();
603 WebInspector.settings.createSetting('timelineOverviewMode', '').remove(); 603 Common.settings.createSetting('timelineOverviewMode', '').remove();
604 } 604 }
605 605
606 _updateVersionFrom13To14() { 606 _updateVersionFrom13To14() {
607 var defaultValue = {'throughput': -1, 'latency': 0}; 607 var defaultValue = {'throughput': -1, 'latency': 0};
608 WebInspector.settings.createSetting('networkConditions', defaultValue).set(d efaultValue); 608 Common.settings.createSetting('networkConditions', defaultValue).set(default Value);
609 } 609 }
610 610
611 _updateVersionFrom14To15() { 611 _updateVersionFrom14To15() {
612 var setting = WebInspector.settings.createLocalSetting('workspaceExcludedFol ders', {}); 612 var setting = Common.settings.createLocalSetting('workspaceExcludedFolders', {});
613 var oldValue = setting.get(); 613 var oldValue = setting.get();
614 var newValue = {}; 614 var newValue = {};
615 for (var fileSystemPath in oldValue) { 615 for (var fileSystemPath in oldValue) {
616 newValue[fileSystemPath] = []; 616 newValue[fileSystemPath] = [];
617 for (var entry of oldValue[fileSystemPath]) 617 for (var entry of oldValue[fileSystemPath])
618 newValue[fileSystemPath].push(entry.path); 618 newValue[fileSystemPath].push(entry.path);
619 } 619 }
620 setting.set(newValue); 620 setting.set(newValue);
621 } 621 }
622 622
623 _updateVersionFrom15To16() { 623 _updateVersionFrom15To16() {
624 var setting = WebInspector.settings.createSetting('InspectorView.panelOrder' , {}); 624 var setting = Common.settings.createSetting('InspectorView.panelOrder', {});
625 var tabOrders = setting.get(); 625 var tabOrders = setting.get();
626 for (var key of Object.keys(tabOrders)) 626 for (var key of Object.keys(tabOrders))
627 tabOrders[key] = (tabOrders[key] + 1) * 10; 627 tabOrders[key] = (tabOrders[key] + 1) * 10;
628 setting.set(tabOrders); 628 setting.set(tabOrders);
629 } 629 }
630 630
631 _updateVersionFrom16To17() { 631 _updateVersionFrom16To17() {
632 var setting = WebInspector.settings.createSetting('networkConditionsCustomPr ofiles', []); 632 var setting = Common.settings.createSetting('networkConditionsCustomProfiles ', []);
633 var oldValue = setting.get(); 633 var oldValue = setting.get();
634 var newValue = []; 634 var newValue = [];
635 if (Array.isArray(oldValue)) { 635 if (Array.isArray(oldValue)) {
636 for (var preset of oldValue) { 636 for (var preset of oldValue) {
637 if (typeof preset.title === 'string' && typeof preset.value === 'object' && 637 if (typeof preset.title === 'string' && typeof preset.value === 'object' &&
638 typeof preset.value.throughput === 'number' && typeof preset.value.l atency === 'number') 638 typeof preset.value.throughput === 'number' && typeof preset.value.l atency === 'number')
639 newValue.push({ 639 newValue.push({
640 title: preset.title, 640 title: preset.title,
641 value: 641 value:
642 {download: preset.value.throughput, upload: preset.value.through put, latency: preset.value.latency} 642 {download: preset.value.throughput, upload: preset.value.through put, latency: preset.value.latency}
643 }); 643 });
644 } 644 }
645 } 645 }
646 setting.set(newValue); 646 setting.set(newValue);
647 } 647 }
648 648
649 _updateVersionFrom17To18() { 649 _updateVersionFrom17To18() {
650 var setting = WebInspector.settings.createLocalSetting('workspaceExcludedFol ders', {}); 650 var setting = Common.settings.createLocalSetting('workspaceExcludedFolders', {});
651 var oldValue = setting.get(); 651 var oldValue = setting.get();
652 var newValue = {}; 652 var newValue = {};
653 for (var oldKey in oldValue) { 653 for (var oldKey in oldValue) {
654 var newKey = oldKey.replace(/\\/g, '/'); 654 var newKey = oldKey.replace(/\\/g, '/');
655 if (!newKey.startsWith('file://')) { 655 if (!newKey.startsWith('file://')) {
656 if (newKey.startsWith('/')) 656 if (newKey.startsWith('/'))
657 newKey = 'file://' + newKey; 657 newKey = 'file://' + newKey;
658 else 658 else
659 newKey = 'file:///' + newKey; 659 newKey = 'file:///' + newKey;
660 } 660 }
661 newValue[newKey] = oldValue[oldKey]; 661 newValue[newKey] = oldValue[oldKey];
662 } 662 }
663 setting.set(newValue); 663 setting.set(newValue);
664 } 664 }
665 665
666 _updateVersionFrom18To19() { 666 _updateVersionFrom18To19() {
667 var defaultColumns = {status: true, type: true, initiator: true, size: true, time: true}; 667 var defaultColumns = {status: true, type: true, initiator: true, size: true, time: true};
668 var visibleColumnSettings = WebInspector.settings.createSetting('networkLogC olumnsVisibility', defaultColumns); 668 var visibleColumnSettings = Common.settings.createSetting('networkLogColumns Visibility', defaultColumns);
669 var visibleColumns = visibleColumnSettings.get(); 669 var visibleColumns = visibleColumnSettings.get();
670 visibleColumns.name = true; 670 visibleColumns.name = true;
671 visibleColumns.timeline = true; 671 visibleColumns.timeline = true;
672 672
673 var configs = {}; 673 var configs = {};
674 for (var columnId in visibleColumns) { 674 for (var columnId in visibleColumns) {
675 if (!visibleColumns.hasOwnProperty(columnId)) 675 if (!visibleColumns.hasOwnProperty(columnId))
676 continue; 676 continue;
677 configs[columnId.toLowerCase()] = {visible: visibleColumns[columnId]}; 677 configs[columnId.toLowerCase()] = {visible: visibleColumns[columnId]};
678 } 678 }
679 var newSetting = WebInspector.settings.createSetting('networkLogColumns', {} ); 679 var newSetting = Common.settings.createSetting('networkLogColumns', {});
680 newSetting.set(configs); 680 newSetting.set(configs);
681 visibleColumnSettings.remove(); 681 visibleColumnSettings.remove();
682 } 682 }
683 683
684 _updateVersionFrom19To20() { 684 _updateVersionFrom19To20() {
685 var oldSetting = WebInspector.settings.createSetting('InspectorView.panelOrd er', {}); 685 var oldSetting = Common.settings.createSetting('InspectorView.panelOrder', { });
686 var newSetting = WebInspector.settings.createSetting('panel-tabOrder', {}); 686 var newSetting = Common.settings.createSetting('panel-tabOrder', {});
687 newSetting.set(oldSetting.get()); 687 newSetting.set(oldSetting.get());
688 oldSetting.remove(); 688 oldSetting.remove();
689 } 689 }
690 690
691 _migrateSettingsFromLocalStorage() { 691 _migrateSettingsFromLocalStorage() {
692 // This step migrates all the settings except for the ones below into the br owser profile. 692 // This step migrates all the settings except for the ones below into the br owser profile.
693 var localSettings = new Set([ 693 var localSettings = new Set([
694 'advancedSearchConfig', 'breakpoints', 'consoleHistory', 'domBreakpoints', 'eventListenerBreakpoints', 694 'advancedSearchConfig', 'breakpoints', 'consoleHistory', 'domBreakpoints', 'eventListenerBreakpoints',
695 'fileSystemMapping', 'lastSelectedSourcesSidebarPaneTab', 'previouslyViewe dFiles', 'savedURLs', 695 'fileSystemMapping', 'lastSelectedSourcesSidebarPaneTab', 'previouslyViewe dFiles', 'savedURLs',
696 'watchExpressions', 'workspaceExcludedFolders', 'xhrBreakpoints' 696 'watchExpressions', 'workspaceExcludedFolders', 'xhrBreakpoints'
697 ]); 697 ]);
698 if (!window.localStorage) 698 if (!window.localStorage)
699 return; 699 return;
700 700
701 for (var key in window.localStorage) { 701 for (var key in window.localStorage) {
702 if (localSettings.has(key)) 702 if (localSettings.has(key))
703 continue; 703 continue;
704 var value = window.localStorage[key]; 704 var value = window.localStorage[key];
705 window.localStorage.removeItem(key); 705 window.localStorage.removeItem(key);
706 WebInspector.settings._settingsStorage[key] = value; 706 Common.settings._settingsStorage[key] = value;
707 } 707 }
708 } 708 }
709 709
710 /** 710 /**
711 * @param {!WebInspector.Setting} breakpointsSetting 711 * @param {!Common.Setting} breakpointsSetting
712 * @param {number} maxBreakpointsCount 712 * @param {number} maxBreakpointsCount
713 */ 713 */
714 _clearBreakpointsWhenTooMany(breakpointsSetting, maxBreakpointsCount) { 714 _clearBreakpointsWhenTooMany(breakpointsSetting, maxBreakpointsCount) {
715 // If there are too many breakpoints in a storage, it is likely due to a rec ent bug that caused 715 // If there are too many breakpoints in a storage, it is likely due to a rec ent bug that caused
716 // periodical breakpoints duplication leading to inspector slowness. 716 // periodical breakpoints duplication leading to inspector slowness.
717 if (breakpointsSetting.get().length > maxBreakpointsCount) 717 if (breakpointsSetting.get().length > maxBreakpointsCount)
718 breakpointsSetting.set([]); 718 breakpointsSetting.set([]);
719 } 719 }
720 }; 720 };
721 721
722 WebInspector.VersionController._currentVersionName = 'inspectorVersion'; 722 Common.VersionController._currentVersionName = 'inspectorVersion';
723 WebInspector.VersionController.currentVersion = 20; 723 Common.VersionController.currentVersion = 20;
724 724
725 /** 725 /**
726 * @type {!WebInspector.Settings} 726 * @type {!Common.Settings}
727 */ 727 */
728 WebInspector.settings; 728 Common.settings;
729 729
730 /** 730 /**
731 * @param {string} settingName 731 * @param {string} settingName
732 * @return {!WebInspector.Setting} 732 * @return {!Common.Setting}
733 */ 733 */
734 WebInspector.moduleSetting = function(settingName) { 734 Common.moduleSetting = function(settingName) {
735 return WebInspector.settings.moduleSetting(settingName); 735 return Common.settings.moduleSetting(settingName);
736 }; 736 };
737 737
738 /** 738 /**
739 * @param {string} settingName 739 * @param {string} settingName
740 * @return {!WebInspector.Setting} 740 * @return {!Common.Setting}
741 */ 741 */
742 WebInspector.settingForTest = function(settingName) { 742 Common.settingForTest = function(settingName) {
743 return WebInspector.settings.settingForTest(settingName); 743 return Common.settings.settingForTest(settingName);
744 }; 744 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698