Index: third_party/WebKit/Source/devtools/front_end/common/Settings.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/common/Settings.js b/third_party/WebKit/Source/devtools/front_end/common/Settings.js |
index d1bf8304946ca789abd86e2fd8aa66c6c21f2f96..062f65c4d7d58efe396833259c3cd5ce41b05041 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/common/Settings.js |
+++ b/third_party/WebKit/Source/devtools/front_end/common/Settings.js |
@@ -27,744 +27,695 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @param {!WebInspector.SettingsStorage} storage |
+ * @unrestricted |
*/ |
-WebInspector.Settings = function(storage) |
-{ |
+WebInspector.Settings = class { |
+ /** |
+ * @param {!WebInspector.SettingsStorage} storage |
+ */ |
+ constructor(storage) { |
this._settingsStorage = storage; |
var clearLocalStorage = window.localStorage ? window.localStorage.clear.bind(window.localStorage) : undefined; |
- this._localStorage = new WebInspector.SettingsStorage(window.localStorage || {}, undefined, undefined, clearLocalStorage); |
+ this._localStorage = |
+ new WebInspector.SettingsStorage(window.localStorage || {}, undefined, undefined, clearLocalStorage); |
this._eventSupport = new WebInspector.Object(); |
/** @type {!Map<string, !WebInspector.Setting>} */ |
this._registry = new Map(); |
/** @type {!Map<string, !WebInspector.Setting>} */ |
this._moduleSettings = new Map(); |
- self.runtime.extensions("setting").forEach(this._registerModuleSetting.bind(this)); |
-}; |
- |
-WebInspector.Settings.prototype = { |
- /** |
- * @param {!Runtime.Extension} extension |
- */ |
- _registerModuleSetting: function(extension) |
- { |
- var descriptor = extension.descriptor(); |
- var settingName = descriptor["settingName"]; |
- var settingType = descriptor["settingType"]; |
- var defaultValue = descriptor["defaultValue"]; |
- var isLocal = !!descriptor["local"]; |
- var setting = settingType === "regex" ? this.createRegExpSetting(settingName, defaultValue, undefined, isLocal) : this.createSetting(settingName, defaultValue, isLocal); |
- this._moduleSettings.set(settingName, setting); |
- }, |
- |
- /** |
- * @param {string} settingName |
- * @return {!WebInspector.Setting} |
- */ |
- moduleSetting: function(settingName) |
- { |
- var setting = this._moduleSettings.get(settingName); |
- if (!setting) |
- throw new Error("No setting registered: " + settingName); |
- return setting; |
- }, |
- |
- /** |
- * @param {string} settingName |
- * @return {!WebInspector.Setting} |
- */ |
- settingForTest: function(settingName) |
- { |
- var setting = this._registry.get(settingName); |
- if (!setting) |
- throw new Error("No setting registered: " + settingName); |
- return setting; |
- }, |
- |
- /** |
- * @param {string} key |
- * @param {*} defaultValue |
- * @param {boolean=} isLocal |
- * @return {!WebInspector.Setting} |
- */ |
- createSetting: function(key, defaultValue, isLocal) |
- { |
- if (!this._registry.get(key)) |
- this._registry.set(key, new WebInspector.Setting(this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage)); |
- return /** @type {!WebInspector.Setting} */ (this._registry.get(key)); |
- }, |
- |
- /** |
- * @param {string} key |
- * @param {*} defaultValue |
- * @return {!WebInspector.Setting} |
- */ |
- createLocalSetting: function(key, defaultValue) |
- { |
- return this.createSetting(key, defaultValue, true); |
- }, |
- |
- /** |
- * @param {string} key |
- * @param {string} defaultValue |
- * @param {string=} regexFlags |
- * @param {boolean=} isLocal |
- * @return {!WebInspector.RegExpSetting} |
- */ |
- createRegExpSetting: function(key, defaultValue, regexFlags, isLocal) |
- { |
- if (!this._registry.get(key)) |
- this._registry.set(key, new WebInspector.RegExpSetting(this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage, regexFlags)); |
- return /** @type {!WebInspector.RegExpSetting} */ (this._registry.get(key)); |
- }, |
- |
- clearAll: function() |
- { |
- this._settingsStorage.removeAll(); |
- this._localStorage.removeAll(); |
- var versionSetting = WebInspector.settings.createSetting(WebInspector.VersionController._currentVersionName, 0); |
- versionSetting.set(WebInspector.VersionController.currentVersion); |
- } |
+ self.runtime.extensions('setting').forEach(this._registerModuleSetting.bind(this)); |
+ } |
+ |
+ /** |
+ * @param {!Runtime.Extension} extension |
+ */ |
+ _registerModuleSetting(extension) { |
+ var descriptor = extension.descriptor(); |
+ var settingName = descriptor['settingName']; |
+ var settingType = descriptor['settingType']; |
+ var defaultValue = descriptor['defaultValue']; |
+ var isLocal = !!descriptor['local']; |
+ var setting = settingType === 'regex' ? this.createRegExpSetting(settingName, defaultValue, undefined, isLocal) : |
+ this.createSetting(settingName, defaultValue, isLocal); |
+ this._moduleSettings.set(settingName, setting); |
+ } |
+ |
+ /** |
+ * @param {string} settingName |
+ * @return {!WebInspector.Setting} |
+ */ |
+ moduleSetting(settingName) { |
+ var setting = this._moduleSettings.get(settingName); |
+ if (!setting) |
+ throw new Error('No setting registered: ' + settingName); |
+ return setting; |
+ } |
+ |
+ /** |
+ * @param {string} settingName |
+ * @return {!WebInspector.Setting} |
+ */ |
+ settingForTest(settingName) { |
+ var setting = this._registry.get(settingName); |
+ if (!setting) |
+ throw new Error('No setting registered: ' + settingName); |
+ return setting; |
+ } |
+ |
+ /** |
+ * @param {string} key |
+ * @param {*} defaultValue |
+ * @param {boolean=} isLocal |
+ * @return {!WebInspector.Setting} |
+ */ |
+ createSetting(key, defaultValue, isLocal) { |
+ if (!this._registry.get(key)) |
+ this._registry.set( |
+ key, new WebInspector.Setting( |
+ this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage)); |
+ return /** @type {!WebInspector.Setting} */ (this._registry.get(key)); |
+ } |
+ |
+ /** |
+ * @param {string} key |
+ * @param {*} defaultValue |
+ * @return {!WebInspector.Setting} |
+ */ |
+ createLocalSetting(key, defaultValue) { |
+ return this.createSetting(key, defaultValue, true); |
+ } |
+ |
+ /** |
+ * @param {string} key |
+ * @param {string} defaultValue |
+ * @param {string=} regexFlags |
+ * @param {boolean=} isLocal |
+ * @return {!WebInspector.RegExpSetting} |
+ */ |
+ createRegExpSetting(key, defaultValue, regexFlags, isLocal) { |
+ if (!this._registry.get(key)) |
+ this._registry.set( |
+ key, new WebInspector.RegExpSetting( |
+ this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage, |
+ regexFlags)); |
+ return /** @type {!WebInspector.RegExpSetting} */ (this._registry.get(key)); |
+ } |
+ |
+ clearAll() { |
+ this._settingsStorage.removeAll(); |
+ this._localStorage.removeAll(); |
+ var versionSetting = WebInspector.settings.createSetting(WebInspector.VersionController._currentVersionName, 0); |
+ versionSetting.set(WebInspector.VersionController.currentVersion); |
+ } |
}; |
/** |
- * @constructor |
- * @param {!Object} object |
- * @param {function(string, string)=} setCallback |
- * @param {function(string)=} removeCallback |
- * @param {function(string)=} removeAllCallback |
+ * @unrestricted |
*/ |
-WebInspector.SettingsStorage = function(object, setCallback, removeCallback, removeAllCallback) |
-{ |
+WebInspector.SettingsStorage = class { |
+ /** |
+ * @param {!Object} object |
+ * @param {function(string, string)=} setCallback |
+ * @param {function(string)=} removeCallback |
+ * @param {function(string)=} removeAllCallback |
+ */ |
+ constructor(object, setCallback, removeCallback, removeAllCallback) { |
this._object = object; |
this._setCallback = setCallback || function() {}; |
this._removeCallback = removeCallback || function() {}; |
this._removeAllCallback = removeAllCallback || function() {}; |
-}; |
- |
-WebInspector.SettingsStorage.prototype = { |
- /** |
- * @param {string} name |
- * @param {string} value |
- */ |
- set: function(name, value) |
- { |
- this._object[name] = value; |
- this._setCallback(name, value); |
- }, |
- |
- /** |
- * @param {string} name |
- * @return {boolean} |
- */ |
- has: function(name) |
- { |
- return name in this._object; |
- }, |
- |
- /** |
- * @param {string} name |
- * @return {string} |
- */ |
- get: function(name) |
- { |
- return this._object[name]; |
- }, |
- |
- /** |
- * @param {string} name |
- */ |
- remove: function(name) |
- { |
- delete this._object[name]; |
- this._removeCallback(name); |
- }, |
- |
- removeAll: function() |
- { |
- this._object = {}; |
- this._removeAllCallback(); |
- }, |
- |
- _dumpSizes: function() |
- { |
- WebInspector.console.log("Ten largest settings: "); |
- |
- var sizes = { __proto__: null }; |
- for (var key in this._object) |
- sizes[key] = this._object[key].length; |
- var keys = Object.keys(sizes); |
- |
- function comparator(key1, key2) |
- { |
- return sizes[key2] - sizes[key1]; |
- } |
- |
- keys.sort(comparator); |
- |
- for (var i = 0; i < 10 && i < keys.length; ++i) |
- WebInspector.console.log("Setting: '" + keys[i] + "', size: " + sizes[keys[i]]); |
+ } |
+ |
+ /** |
+ * @param {string} name |
+ * @param {string} value |
+ */ |
+ set(name, value) { |
+ this._object[name] = value; |
+ this._setCallback(name, value); |
+ } |
+ |
+ /** |
+ * @param {string} name |
+ * @return {boolean} |
+ */ |
+ has(name) { |
+ return name in this._object; |
+ } |
+ |
+ /** |
+ * @param {string} name |
+ * @return {string} |
+ */ |
+ get(name) { |
+ return this._object[name]; |
+ } |
+ |
+ /** |
+ * @param {string} name |
+ */ |
+ remove(name) { |
+ delete this._object[name]; |
+ this._removeCallback(name); |
+ } |
+ |
+ removeAll() { |
+ this._object = {}; |
+ this._removeAllCallback(); |
+ } |
+ |
+ _dumpSizes() { |
+ WebInspector.console.log('Ten largest settings: '); |
+ |
+ var sizes = {__proto__: null}; |
+ for (var key in this._object) |
+ sizes[key] = this._object[key].length; |
+ var keys = Object.keys(sizes); |
+ |
+ function comparator(key1, key2) { |
+ return sizes[key2] - sizes[key1]; |
} |
+ |
+ keys.sort(comparator); |
+ |
+ for (var i = 0; i < 10 && i < keys.length; ++i) |
+ WebInspector.console.log('Setting: \'' + keys[i] + '\', size: ' + sizes[keys[i]]); |
+ } |
}; |
/** |
- * @constructor |
- * @param {!WebInspector.Settings} settings |
- * @param {string} name |
- * @param {V} defaultValue |
- * @param {!WebInspector.Object} eventSupport |
- * @param {!WebInspector.SettingsStorage} storage |
* @template V |
+ * @unrestricted |
*/ |
-WebInspector.Setting = function(settings, name, defaultValue, eventSupport, storage) |
-{ |
+WebInspector.Setting = class { |
+ /** |
+ * @param {!WebInspector.Settings} settings |
+ * @param {string} name |
+ * @param {V} defaultValue |
+ * @param {!WebInspector.Object} eventSupport |
+ * @param {!WebInspector.SettingsStorage} storage |
+ */ |
+ constructor(settings, name, defaultValue, eventSupport, storage) { |
this._settings = settings; |
this._name = name; |
this._defaultValue = defaultValue; |
this._eventSupport = eventSupport; |
this._storage = storage; |
-}; |
- |
-WebInspector.Setting.prototype = { |
- /** |
- * @param {function(!WebInspector.Event)} listener |
- * @param {!Object=} thisObject |
- */ |
- addChangeListener: function(listener, thisObject) |
- { |
- this._eventSupport.addEventListener(this._name, listener, thisObject); |
- }, |
- |
- /** |
- * @param {function(!WebInspector.Event)} listener |
- * @param {!Object=} thisObject |
- */ |
- removeChangeListener: function(listener, thisObject) |
- { |
- this._eventSupport.removeEventListener(this._name, listener, thisObject); |
- }, |
- |
- get name() |
- { |
- return this._name; |
- }, |
- |
- /** |
- * @return {V} |
- */ |
- get: function() |
- { |
- if (typeof this._value !== "undefined") |
- return this._value; |
- |
- this._value = this._defaultValue; |
- if (this._storage.has(this._name)) { |
- try { |
- this._value = JSON.parse(this._storage.get(this._name)); |
- } catch (e) { |
- this._storage.remove(this._name); |
- } |
- } |
- return this._value; |
- }, |
- |
- /** |
- * @param {V} value |
- */ |
- set: function(value) |
- { |
- this._value = value; |
- try { |
- var settingString = JSON.stringify(value); |
- try { |
- this._storage.set(this._name, settingString); |
- } catch (e) { |
- this._printSettingsSavingError(e.message, this._name, settingString); |
- } |
- } catch (e) { |
- WebInspector.console.error("Cannot stringify setting with name: " + this._name + ", error: " + e.message); |
- } |
- this._eventSupport.dispatchEventToListeners(this._name, value); |
- }, |
- |
- remove: function() |
- { |
- this._settings._registry.delete(this._name); |
- this._settings._moduleSettings.delete(this._name); |
+ } |
+ |
+ /** |
+ * @param {function(!WebInspector.Event)} listener |
+ * @param {!Object=} thisObject |
+ */ |
+ addChangeListener(listener, thisObject) { |
+ this._eventSupport.addEventListener(this._name, listener, thisObject); |
+ } |
+ |
+ /** |
+ * @param {function(!WebInspector.Event)} listener |
+ * @param {!Object=} thisObject |
+ */ |
+ removeChangeListener(listener, thisObject) { |
+ this._eventSupport.removeEventListener(this._name, listener, thisObject); |
+ } |
+ |
+ get name() { |
+ return this._name; |
+ } |
+ |
+ /** |
+ * @return {V} |
+ */ |
+ get() { |
+ if (typeof this._value !== 'undefined') |
+ return this._value; |
+ |
+ this._value = this._defaultValue; |
+ if (this._storage.has(this._name)) { |
+ try { |
+ this._value = JSON.parse(this._storage.get(this._name)); |
+ } catch (e) { |
this._storage.remove(this._name); |
- }, |
- |
- /** |
- * @param {string} message |
- * @param {string} name |
- * @param {string} value |
- */ |
- _printSettingsSavingError: function(message, name, value) |
- { |
- var errorMessage = "Error saving setting with name: " + this._name + ", value length: " + value.length + ". Error: " + message; |
- console.error(errorMessage); |
- WebInspector.console.error(errorMessage); |
- this._storage._dumpSizes(); |
+ } |
} |
+ return this._value; |
+ } |
+ |
+ /** |
+ * @param {V} value |
+ */ |
+ set(value) { |
+ this._value = value; |
+ try { |
+ var settingString = JSON.stringify(value); |
+ try { |
+ this._storage.set(this._name, settingString); |
+ } catch (e) { |
+ this._printSettingsSavingError(e.message, this._name, settingString); |
+ } |
+ } catch (e) { |
+ WebInspector.console.error('Cannot stringify setting with name: ' + this._name + ', error: ' + e.message); |
+ } |
+ this._eventSupport.dispatchEventToListeners(this._name, value); |
+ } |
+ |
+ remove() { |
+ this._settings._registry.delete(this._name); |
+ this._settings._moduleSettings.delete(this._name); |
+ this._storage.remove(this._name); |
+ } |
+ |
+ /** |
+ * @param {string} message |
+ * @param {string} name |
+ * @param {string} value |
+ */ |
+ _printSettingsSavingError(message, name, value) { |
+ var errorMessage = |
+ 'Error saving setting with name: ' + this._name + ', value length: ' + value.length + '. Error: ' + message; |
+ console.error(errorMessage); |
+ WebInspector.console.error(errorMessage); |
+ this._storage._dumpSizes(); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.Setting} |
- * @param {!WebInspector.Settings} settings |
- * @param {string} name |
- * @param {string} defaultValue |
- * @param {!WebInspector.Object} eventSupport |
- * @param {!WebInspector.SettingsStorage} storage |
- * @param {string=} regexFlags |
+ * @unrestricted |
*/ |
-WebInspector.RegExpSetting = function(settings, name, defaultValue, eventSupport, storage, regexFlags) |
-{ |
- WebInspector.Setting.call(this, settings, name, defaultValue ? [{ pattern: defaultValue }] : [], eventSupport, storage); |
+WebInspector.RegExpSetting = class extends WebInspector.Setting { |
+ /** |
+ * @param {!WebInspector.Settings} settings |
+ * @param {string} name |
+ * @param {string} defaultValue |
+ * @param {!WebInspector.Object} eventSupport |
+ * @param {!WebInspector.SettingsStorage} storage |
+ * @param {string=} regexFlags |
+ */ |
+ constructor(settings, name, defaultValue, eventSupport, storage, regexFlags) { |
+ super(settings, name, defaultValue ? [{pattern: defaultValue}] : [], eventSupport, storage); |
this._regexFlags = regexFlags; |
-}; |
- |
-WebInspector.RegExpSetting.prototype = { |
- /** |
- * @override |
- * @return {string} |
- */ |
- get: function() |
- { |
- var result = []; |
- var items = this.getAsArray(); |
- for (var i = 0; i < items.length; ++i) { |
- var item = items[i]; |
- if (item.pattern && !item.disabled) |
- result.push(item.pattern); |
- } |
- return result.join("|"); |
- }, |
- |
- /** |
- * @return {!Array.<{pattern: string, disabled: (boolean|undefined)}>} |
- */ |
- getAsArray: function() |
- { |
- return WebInspector.Setting.prototype.get.call(this); |
- }, |
- |
- /** |
- * @override |
- * @param {string} value |
- */ |
- set: function(value) |
- { |
- this.setAsArray([{ pattern: value }]); |
- }, |
- |
- /** |
- * @param {!Array.<{pattern: string, disabled: (boolean|undefined)}>} value |
- */ |
- setAsArray: function(value) |
- { |
- delete this._regex; |
- WebInspector.Setting.prototype.set.call(this, value); |
- }, |
- |
- /** |
- * @return {?RegExp} |
- */ |
- asRegExp: function() |
- { |
- if (typeof this._regex !== "undefined") |
- return this._regex; |
- this._regex = null; |
- try { |
- var pattern = this.get(); |
- if (pattern) |
- this._regex = new RegExp(pattern, this._regexFlags || ""); |
- } catch (e) { |
- } |
- return this._regex; |
- }, |
- |
- __proto__: WebInspector.Setting.prototype |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {string} |
+ */ |
+ get() { |
+ var result = []; |
+ var items = this.getAsArray(); |
+ for (var i = 0; i < items.length; ++i) { |
+ var item = items[i]; |
+ if (item.pattern && !item.disabled) |
+ result.push(item.pattern); |
+ } |
+ return result.join('|'); |
+ } |
+ |
+ /** |
+ * @return {!Array.<{pattern: string, disabled: (boolean|undefined)}>} |
+ */ |
+ getAsArray() { |
+ return super.get(); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {string} value |
+ */ |
+ set(value) { |
+ this.setAsArray([{pattern: value}]); |
+ } |
+ |
+ /** |
+ * @param {!Array.<{pattern: string, disabled: (boolean|undefined)}>} value |
+ */ |
+ setAsArray(value) { |
+ delete this._regex; |
+ super.set(value); |
+ } |
+ |
+ /** |
+ * @return {?RegExp} |
+ */ |
+ asRegExp() { |
+ if (typeof this._regex !== 'undefined') |
+ return this._regex; |
+ this._regex = null; |
+ try { |
+ var pattern = this.get(); |
+ if (pattern) |
+ this._regex = new RegExp(pattern, this._regexFlags || ''); |
+ } catch (e) { |
+ } |
+ return this._regex; |
+ } |
}; |
/** |
- * @constructor |
+ * @unrestricted |
*/ |
-WebInspector.VersionController = function() |
-{ |
-}; |
- |
-WebInspector.VersionController._currentVersionName = "inspectorVersion"; |
-WebInspector.VersionController.currentVersion = 20; |
- |
-WebInspector.VersionController.prototype = { |
- updateVersion: function() |
- { |
- var localStorageVersion = window.localStorage ? window.localStorage[WebInspector.VersionController._currentVersionName] : 0; |
- var versionSetting = WebInspector.settings.createSetting(WebInspector.VersionController._currentVersionName, 0); |
- var currentVersion = WebInspector.VersionController.currentVersion; |
- var oldVersion = versionSetting.get() || parseInt(localStorageVersion || "0", 10); |
- if (oldVersion === 0) { |
- // First run, no need to do anything. |
- versionSetting.set(currentVersion); |
- return; |
- } |
- var methodsToRun = this._methodsToRunToUpdateVersion(oldVersion, currentVersion); |
- for (var i = 0; i < methodsToRun.length; ++i) |
- this[methodsToRun[i]].call(this); |
- versionSetting.set(currentVersion); |
- }, |
- |
- /** |
- * @param {number} oldVersion |
- * @param {number} currentVersion |
- */ |
- _methodsToRunToUpdateVersion: function(oldVersion, currentVersion) |
- { |
- var result = []; |
- for (var i = oldVersion; i < currentVersion; ++i) |
- result.push("_updateVersionFrom" + i + "To" + (i + 1)); |
- return result; |
- }, |
- |
- _updateVersionFrom0To1: function() |
- { |
- this._clearBreakpointsWhenTooMany(WebInspector.settings.createLocalSetting("breakpoints", []), 500000); |
- }, |
- |
- _updateVersionFrom1To2: function() |
- { |
- WebInspector.settings.createSetting("previouslyViewedFiles", []).set([]); |
- }, |
- |
- _updateVersionFrom2To3: function() |
- { |
- WebInspector.settings.createSetting("fileSystemMapping", {}).set({}); |
- WebInspector.settings.createSetting("fileMappingEntries", []).remove(); |
- }, |
- |
- _updateVersionFrom3To4: function() |
- { |
- var advancedMode = WebInspector.settings.createSetting("showHeaSnapshotObjectsHiddenProperties", false); |
- WebInspector.moduleSetting("showAdvancedHeapSnapshotProperties").set(advancedMode.get()); |
- advancedMode.remove(); |
- }, |
- |
- _updateVersionFrom4To5: function() |
- { |
- var settingNames = { |
- "FileSystemViewSidebarWidth": "fileSystemViewSplitViewState", |
- "elementsSidebarWidth": "elementsPanelSplitViewState", |
- "StylesPaneSplitRatio": "stylesPaneSplitViewState", |
- "heapSnapshotRetainersViewSize": "heapSnapshotSplitViewState", |
- "InspectorView.splitView": "InspectorView.splitViewState", |
- "InspectorView.screencastSplitView": "InspectorView.screencastSplitViewState", |
- "Inspector.drawerSplitView": "Inspector.drawerSplitViewState", |
- "layerDetailsSplitView": "layerDetailsSplitViewState", |
- "networkSidebarWidth": "networkPanelSplitViewState", |
- "sourcesSidebarWidth": "sourcesPanelSplitViewState", |
- "scriptsPanelNavigatorSidebarWidth": "sourcesPanelNavigatorSplitViewState", |
- "sourcesPanelSplitSidebarRatio": "sourcesPanelDebuggerSidebarSplitViewState", |
- "timeline-details": "timelinePanelDetailsSplitViewState", |
- "timeline-split": "timelinePanelRecorsSplitViewState", |
- "timeline-view": "timelinePanelTimelineStackSplitViewState", |
- "auditsSidebarWidth": "auditsPanelSplitViewState", |
- "layersSidebarWidth": "layersPanelSplitViewState", |
- "profilesSidebarWidth": "profilesPanelSplitViewState", |
- "resourcesSidebarWidth": "resourcesPanelSplitViewState" |
- }; |
- var empty = {}; |
- for (var oldName in settingNames) { |
- var newName = settingNames[oldName]; |
- var oldNameH = oldName + "H"; |
- |
- var newValue = null; |
- var oldSetting = WebInspector.settings.createSetting(oldName, empty); |
- if (oldSetting.get() !== empty) { |
- newValue = newValue || {}; |
- newValue.vertical = {}; |
- newValue.vertical.size = oldSetting.get(); |
- oldSetting.remove(); |
- } |
- var oldSettingH = WebInspector.settings.createSetting(oldNameH, empty); |
- if (oldSettingH.get() !== empty) { |
- newValue = newValue || {}; |
- newValue.horizontal = {}; |
- newValue.horizontal.size = oldSettingH.get(); |
- oldSettingH.remove(); |
- } |
- if (newValue) |
- WebInspector.settings.createSetting(newName, {}).set(newValue); |
- } |
- }, |
- |
- _updateVersionFrom5To6: function() |
- { |
- var settingNames = { |
- "debuggerSidebarHidden": "sourcesPanelSplitViewState", |
- "navigatorHidden": "sourcesPanelNavigatorSplitViewState", |
- "WebInspector.Drawer.showOnLoad": "Inspector.drawerSplitViewState" |
- }; |
- |
- for (var oldName in settingNames) { |
- var oldSetting = WebInspector.settings.createSetting(oldName, null); |
- if (oldSetting.get() === null) { |
- oldSetting.remove(); |
- continue; |
- } |
- |
- var newName = settingNames[oldName]; |
- var invert = oldName === "WebInspector.Drawer.showOnLoad"; |
- var hidden = oldSetting.get() !== invert; |
- oldSetting.remove(); |
- var showMode = hidden ? "OnlyMain" : "Both"; |
- |
- var newSetting = WebInspector.settings.createSetting(newName, {}); |
- var newValue = newSetting.get() || {}; |
- newValue.vertical = newValue.vertical || {}; |
- newValue.vertical.showMode = showMode; |
- newValue.horizontal = newValue.horizontal || {}; |
- newValue.horizontal.showMode = showMode; |
- newSetting.set(newValue); |
- } |
- }, |
- |
- _updateVersionFrom6To7: function() |
- { |
- var settingNames = { |
- "sourcesPanelNavigatorSplitViewState": "sourcesPanelNavigatorSplitViewState", |
- "elementsPanelSplitViewState": "elementsPanelSplitViewState", |
- "stylesPaneSplitViewState": "stylesPaneSplitViewState", |
- "sourcesPanelDebuggerSidebarSplitViewState": "sourcesPanelDebuggerSidebarSplitViewState" |
- }; |
- |
- var empty = {}; |
- for (var name in settingNames) { |
- var setting = WebInspector.settings.createSetting(name, empty); |
- var value = setting.get(); |
- if (value === empty) |
- continue; |
- // Zero out saved percentage sizes, and they will be restored to defaults. |
- if (value.vertical && value.vertical.size && value.vertical.size < 1) |
- value.vertical.size = 0; |
- if (value.horizontal && value.horizontal.size && value.horizontal.size < 1) |
- value.horizontal.size = 0; |
- setting.set(value); |
- } |
- }, |
- |
- _updateVersionFrom7To8: function() |
- { |
- }, |
- |
- _updateVersionFrom8To9: function() |
- { |
- var settingNames = [ |
- "skipStackFramesPattern", |
- "workspaceFolderExcludePattern" |
- ]; |
- |
- for (var i = 0; i < settingNames.length; ++i) { |
- var setting = WebInspector.settings.createSetting(settingNames[i], ""); |
- var value = setting.get(); |
- if (!value) |
- return; |
- if (typeof value === "string") |
- value = [value]; |
- for (var j = 0; j < value.length; ++j) { |
- if (typeof value[j] === "string") |
- value[j] = { pattern: value[j] }; |
- } |
- setting.set(value); |
- } |
- }, |
- |
- _updateVersionFrom9To10: function() |
- { |
- // This one is localStorage specific, which is fine. |
- if (!window.localStorage) |
- return; |
- for (var key in window.localStorage) { |
- if (key.startsWith("revision-history")) |
- window.localStorage.removeItem(key); |
- } |
- }, |
- |
- _updateVersionFrom10To11: function() |
- { |
- var oldSettingName = "customDevicePresets"; |
- var newSettingName = "customEmulatedDeviceList"; |
- var oldSetting = WebInspector.settings.createSetting(oldSettingName, undefined); |
- var list = oldSetting.get(); |
- if (!Array.isArray(list)) |
- return; |
- var newList = []; |
- for (var i = 0; i < list.length; ++i) { |
- var value = list[i]; |
- var device = {}; |
- device["title"] = value["title"]; |
- device["type"] = "unknown"; |
- device["user-agent"] = value["userAgent"]; |
- device["capabilities"] = []; |
- if (value["touch"]) |
- device["capabilities"].push("touch"); |
- if (value["mobile"]) |
- device["capabilities"].push("mobile"); |
- device["screen"] = {}; |
- device["screen"]["vertical"] = {width: value["width"], height: value["height"]}; |
- device["screen"]["horizontal"] = {width: value["height"], height: value["width"]}; |
- device["screen"]["device-pixel-ratio"] = value["deviceScaleFactor"]; |
- device["modes"] = []; |
- device["show-by-default"] = true; |
- device["show"] = "Default"; |
- newList.push(device); |
- } |
- if (newList.length) |
- WebInspector.settings.createSetting(newSettingName, []).set(newList); |
+WebInspector.VersionController = class { |
+ updateVersion() { |
+ var localStorageVersion = |
+ window.localStorage ? window.localStorage[WebInspector.VersionController._currentVersionName] : 0; |
+ var versionSetting = WebInspector.settings.createSetting(WebInspector.VersionController._currentVersionName, 0); |
+ var currentVersion = WebInspector.VersionController.currentVersion; |
+ var oldVersion = versionSetting.get() || parseInt(localStorageVersion || '0', 10); |
+ if (oldVersion === 0) { |
+ // First run, no need to do anything. |
+ versionSetting.set(currentVersion); |
+ return; |
+ } |
+ var methodsToRun = this._methodsToRunToUpdateVersion(oldVersion, currentVersion); |
+ for (var i = 0; i < methodsToRun.length; ++i) |
+ this[methodsToRun[i]].call(this); |
+ versionSetting.set(currentVersion); |
+ } |
+ |
+ /** |
+ * @param {number} oldVersion |
+ * @param {number} currentVersion |
+ */ |
+ _methodsToRunToUpdateVersion(oldVersion, currentVersion) { |
+ var result = []; |
+ for (var i = oldVersion; i < currentVersion; ++i) |
+ result.push('_updateVersionFrom' + i + 'To' + (i + 1)); |
+ return result; |
+ } |
+ |
+ _updateVersionFrom0To1() { |
+ this._clearBreakpointsWhenTooMany(WebInspector.settings.createLocalSetting('breakpoints', []), 500000); |
+ } |
+ |
+ _updateVersionFrom1To2() { |
+ WebInspector.settings.createSetting('previouslyViewedFiles', []).set([]); |
+ } |
+ |
+ _updateVersionFrom2To3() { |
+ WebInspector.settings.createSetting('fileSystemMapping', {}).set({}); |
+ WebInspector.settings.createSetting('fileMappingEntries', []).remove(); |
+ } |
+ |
+ _updateVersionFrom3To4() { |
+ var advancedMode = WebInspector.settings.createSetting('showHeaSnapshotObjectsHiddenProperties', false); |
+ WebInspector.moduleSetting('showAdvancedHeapSnapshotProperties').set(advancedMode.get()); |
+ advancedMode.remove(); |
+ } |
+ |
+ _updateVersionFrom4To5() { |
+ var settingNames = { |
+ 'FileSystemViewSidebarWidth': 'fileSystemViewSplitViewState', |
+ 'elementsSidebarWidth': 'elementsPanelSplitViewState', |
+ 'StylesPaneSplitRatio': 'stylesPaneSplitViewState', |
+ 'heapSnapshotRetainersViewSize': 'heapSnapshotSplitViewState', |
+ 'InspectorView.splitView': 'InspectorView.splitViewState', |
+ 'InspectorView.screencastSplitView': 'InspectorView.screencastSplitViewState', |
+ 'Inspector.drawerSplitView': 'Inspector.drawerSplitViewState', |
+ 'layerDetailsSplitView': 'layerDetailsSplitViewState', |
+ 'networkSidebarWidth': 'networkPanelSplitViewState', |
+ 'sourcesSidebarWidth': 'sourcesPanelSplitViewState', |
+ 'scriptsPanelNavigatorSidebarWidth': 'sourcesPanelNavigatorSplitViewState', |
+ 'sourcesPanelSplitSidebarRatio': 'sourcesPanelDebuggerSidebarSplitViewState', |
+ 'timeline-details': 'timelinePanelDetailsSplitViewState', |
+ 'timeline-split': 'timelinePanelRecorsSplitViewState', |
+ 'timeline-view': 'timelinePanelTimelineStackSplitViewState', |
+ 'auditsSidebarWidth': 'auditsPanelSplitViewState', |
+ 'layersSidebarWidth': 'layersPanelSplitViewState', |
+ 'profilesSidebarWidth': 'profilesPanelSplitViewState', |
+ 'resourcesSidebarWidth': 'resourcesPanelSplitViewState' |
+ }; |
+ var empty = {}; |
+ for (var oldName in settingNames) { |
+ var newName = settingNames[oldName]; |
+ var oldNameH = oldName + 'H'; |
+ |
+ var newValue = null; |
+ var oldSetting = WebInspector.settings.createSetting(oldName, empty); |
+ if (oldSetting.get() !== empty) { |
+ newValue = newValue || {}; |
+ newValue.vertical = {}; |
+ newValue.vertical.size = oldSetting.get(); |
oldSetting.remove(); |
- }, |
- |
- _updateVersionFrom11To12: function() |
- { |
- this._migrateSettingsFromLocalStorage(); |
- }, |
- |
- _updateVersionFrom12To13: function() |
- { |
- this._migrateSettingsFromLocalStorage(); |
- WebInspector.settings.createSetting("timelineOverviewMode", "").remove(); |
- }, |
- |
- _updateVersionFrom13To14: function() |
- { |
- var defaultValue = { "throughput": -1, "latency": 0 }; |
- WebInspector.settings.createSetting("networkConditions", defaultValue).set(defaultValue); |
- }, |
- |
- _updateVersionFrom14To15: function() |
- { |
- var setting = WebInspector.settings.createLocalSetting("workspaceExcludedFolders", {}); |
- var oldValue = setting.get(); |
- var newValue = {}; |
- for (var fileSystemPath in oldValue) { |
- newValue[fileSystemPath] = []; |
- for (var entry of oldValue[fileSystemPath]) |
- newValue[fileSystemPath].push(entry.path); |
- } |
- setting.set(newValue); |
- }, |
- |
- _updateVersionFrom15To16: function() |
- { |
- var setting = WebInspector.settings.createSetting("InspectorView.panelOrder", {}); |
- var tabOrders = setting.get(); |
- for (var key of Object.keys(tabOrders)) |
- tabOrders[key] = (tabOrders[key] + 1) * 10; |
- setting.set(tabOrders); |
- }, |
- |
- _updateVersionFrom16To17: function() |
- { |
- var setting = WebInspector.settings.createSetting("networkConditionsCustomProfiles", []); |
- var oldValue = setting.get(); |
- var newValue = []; |
- if (Array.isArray(oldValue)) { |
- for (var preset of oldValue) { |
- if (typeof preset.title === "string" && typeof preset.value === "object" && typeof preset.value.throughput === "number" && typeof preset.value.latency === "number") |
- newValue.push({title: preset.title, value: {download: preset.value.throughput, upload: preset.value.throughput, latency: preset.value.latency}}); |
- } |
- } |
- setting.set(newValue); |
- }, |
- |
- _updateVersionFrom17To18: function() |
- { |
- var setting = WebInspector.settings.createLocalSetting("workspaceExcludedFolders", {}); |
- var oldValue = setting.get(); |
- var newValue = {}; |
- for (var oldKey in oldValue) { |
- var newKey = oldKey.replace(/\\/g, "/"); |
- if (!newKey.startsWith("file://")) { |
- if (newKey.startsWith("/")) |
- newKey = "file://" + newKey; |
- else |
- newKey = "file:///" + newKey; |
- } |
- newValue[newKey] = oldValue[oldKey]; |
- } |
- setting.set(newValue); |
- }, |
- |
- _updateVersionFrom18To19: function() |
- { |
- var defaultColumns = { |
- status: true, |
- type: true, |
- initiator: true, |
- size: true, |
- time: true |
- }; |
- var visibleColumnSettings = WebInspector.settings.createSetting("networkLogColumnsVisibility", defaultColumns); |
- var visibleColumns = visibleColumnSettings.get(); |
- visibleColumns.name = true; |
- visibleColumns.timeline = true; |
- |
- var configs = {}; |
- for (var columnId in visibleColumns) { |
- if (!visibleColumns.hasOwnProperty(columnId)) |
- continue; |
- configs[columnId.toLowerCase()] = { |
- visible: visibleColumns[columnId] |
- }; |
- } |
- var newSetting = WebInspector.settings.createSetting("networkLogColumns", {}); |
- newSetting.set(configs); |
- visibleColumnSettings.remove(); |
- }, |
- |
- _updateVersionFrom19To20: function() |
- { |
- var oldSetting = WebInspector.settings.createSetting("InspectorView.panelOrder", {}); |
- var newSetting = WebInspector.settings.createSetting("panel-tabOrder", {}); |
- newSetting.set(oldSetting.get()); |
+ } |
+ var oldSettingH = WebInspector.settings.createSetting(oldNameH, empty); |
+ if (oldSettingH.get() !== empty) { |
+ newValue = newValue || {}; |
+ newValue.horizontal = {}; |
+ newValue.horizontal.size = oldSettingH.get(); |
+ oldSettingH.remove(); |
+ } |
+ if (newValue) |
+ WebInspector.settings.createSetting(newName, {}).set(newValue); |
+ } |
+ } |
+ |
+ _updateVersionFrom5To6() { |
+ var settingNames = { |
+ 'debuggerSidebarHidden': 'sourcesPanelSplitViewState', |
+ 'navigatorHidden': 'sourcesPanelNavigatorSplitViewState', |
+ 'WebInspector.Drawer.showOnLoad': 'Inspector.drawerSplitViewState' |
+ }; |
+ |
+ for (var oldName in settingNames) { |
+ var oldSetting = WebInspector.settings.createSetting(oldName, null); |
+ if (oldSetting.get() === null) { |
oldSetting.remove(); |
- }, |
- |
- _migrateSettingsFromLocalStorage: function() |
- { |
- // This step migrates all the settings except for the ones below into the browser profile. |
- var localSettings = new Set([ "advancedSearchConfig", "breakpoints", "consoleHistory", "domBreakpoints", "eventListenerBreakpoints", |
- "fileSystemMapping", "lastSelectedSourcesSidebarPaneTab", "previouslyViewedFiles", |
- "savedURLs", "watchExpressions", "workspaceExcludedFolders", "xhrBreakpoints" ]); |
- if (!window.localStorage) |
- return; |
- |
- for (var key in window.localStorage) { |
- if (localSettings.has(key)) |
- continue; |
- var value = window.localStorage[key]; |
- window.localStorage.removeItem(key); |
- WebInspector.settings._settingsStorage[key] = value; |
- } |
- }, |
- |
- /** |
- * @param {!WebInspector.Setting} breakpointsSetting |
- * @param {number} maxBreakpointsCount |
- */ |
- _clearBreakpointsWhenTooMany: function(breakpointsSetting, maxBreakpointsCount) |
- { |
- // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused |
- // periodical breakpoints duplication leading to inspector slowness. |
- if (breakpointsSetting.get().length > maxBreakpointsCount) |
- breakpointsSetting.set([]); |
+ continue; |
+ } |
+ |
+ var newName = settingNames[oldName]; |
+ var invert = oldName === 'WebInspector.Drawer.showOnLoad'; |
+ var hidden = oldSetting.get() !== invert; |
+ oldSetting.remove(); |
+ var showMode = hidden ? 'OnlyMain' : 'Both'; |
+ |
+ var newSetting = WebInspector.settings.createSetting(newName, {}); |
+ var newValue = newSetting.get() || {}; |
+ newValue.vertical = newValue.vertical || {}; |
+ newValue.vertical.showMode = showMode; |
+ newValue.horizontal = newValue.horizontal || {}; |
+ newValue.horizontal.showMode = showMode; |
+ newSetting.set(newValue); |
+ } |
+ } |
+ |
+ _updateVersionFrom6To7() { |
+ var settingNames = { |
+ 'sourcesPanelNavigatorSplitViewState': 'sourcesPanelNavigatorSplitViewState', |
+ 'elementsPanelSplitViewState': 'elementsPanelSplitViewState', |
+ 'stylesPaneSplitViewState': 'stylesPaneSplitViewState', |
+ 'sourcesPanelDebuggerSidebarSplitViewState': 'sourcesPanelDebuggerSidebarSplitViewState' |
+ }; |
+ |
+ var empty = {}; |
+ for (var name in settingNames) { |
+ var setting = WebInspector.settings.createSetting(name, empty); |
+ var value = setting.get(); |
+ if (value === empty) |
+ continue; |
+ // Zero out saved percentage sizes, and they will be restored to defaults. |
+ if (value.vertical && value.vertical.size && value.vertical.size < 1) |
+ value.vertical.size = 0; |
+ if (value.horizontal && value.horizontal.size && value.horizontal.size < 1) |
+ value.horizontal.size = 0; |
+ setting.set(value); |
+ } |
+ } |
+ |
+ _updateVersionFrom7To8() { |
+ } |
+ |
+ _updateVersionFrom8To9() { |
+ var settingNames = ['skipStackFramesPattern', 'workspaceFolderExcludePattern']; |
+ |
+ for (var i = 0; i < settingNames.length; ++i) { |
+ var setting = WebInspector.settings.createSetting(settingNames[i], ''); |
+ var value = setting.get(); |
+ if (!value) |
+ return; |
+ if (typeof value === 'string') |
+ value = [value]; |
+ for (var j = 0; j < value.length; ++j) { |
+ if (typeof value[j] === 'string') |
+ value[j] = {pattern: value[j]}; |
+ } |
+ setting.set(value); |
+ } |
+ } |
+ |
+ _updateVersionFrom9To10() { |
+ // This one is localStorage specific, which is fine. |
+ if (!window.localStorage) |
+ return; |
+ for (var key in window.localStorage) { |
+ if (key.startsWith('revision-history')) |
+ window.localStorage.removeItem(key); |
} |
+ } |
+ |
+ _updateVersionFrom10To11() { |
+ var oldSettingName = 'customDevicePresets'; |
+ var newSettingName = 'customEmulatedDeviceList'; |
+ var oldSetting = WebInspector.settings.createSetting(oldSettingName, undefined); |
+ var list = oldSetting.get(); |
+ if (!Array.isArray(list)) |
+ return; |
+ var newList = []; |
+ for (var i = 0; i < list.length; ++i) { |
+ var value = list[i]; |
+ var device = {}; |
+ device['title'] = value['title']; |
+ device['type'] = 'unknown'; |
+ device['user-agent'] = value['userAgent']; |
+ device['capabilities'] = []; |
+ if (value['touch']) |
+ device['capabilities'].push('touch'); |
+ if (value['mobile']) |
+ device['capabilities'].push('mobile'); |
+ device['screen'] = {}; |
+ device['screen']['vertical'] = {width: value['width'], height: value['height']}; |
+ device['screen']['horizontal'] = {width: value['height'], height: value['width']}; |
+ device['screen']['device-pixel-ratio'] = value['deviceScaleFactor']; |
+ device['modes'] = []; |
+ device['show-by-default'] = true; |
+ device['show'] = 'Default'; |
+ newList.push(device); |
+ } |
+ if (newList.length) |
+ WebInspector.settings.createSetting(newSettingName, []).set(newList); |
+ oldSetting.remove(); |
+ } |
+ |
+ _updateVersionFrom11To12() { |
+ this._migrateSettingsFromLocalStorage(); |
+ } |
+ |
+ _updateVersionFrom12To13() { |
+ this._migrateSettingsFromLocalStorage(); |
+ WebInspector.settings.createSetting('timelineOverviewMode', '').remove(); |
+ } |
+ |
+ _updateVersionFrom13To14() { |
+ var defaultValue = {'throughput': -1, 'latency': 0}; |
+ WebInspector.settings.createSetting('networkConditions', defaultValue).set(defaultValue); |
+ } |
+ |
+ _updateVersionFrom14To15() { |
+ var setting = WebInspector.settings.createLocalSetting('workspaceExcludedFolders', {}); |
+ var oldValue = setting.get(); |
+ var newValue = {}; |
+ for (var fileSystemPath in oldValue) { |
+ newValue[fileSystemPath] = []; |
+ for (var entry of oldValue[fileSystemPath]) |
+ newValue[fileSystemPath].push(entry.path); |
+ } |
+ setting.set(newValue); |
+ } |
+ |
+ _updateVersionFrom15To16() { |
+ var setting = WebInspector.settings.createSetting('InspectorView.panelOrder', {}); |
+ var tabOrders = setting.get(); |
+ for (var key of Object.keys(tabOrders)) |
+ tabOrders[key] = (tabOrders[key] + 1) * 10; |
+ setting.set(tabOrders); |
+ } |
+ |
+ _updateVersionFrom16To17() { |
+ var setting = WebInspector.settings.createSetting('networkConditionsCustomProfiles', []); |
+ var oldValue = setting.get(); |
+ var newValue = []; |
+ if (Array.isArray(oldValue)) { |
+ for (var preset of oldValue) { |
+ if (typeof preset.title === 'string' && typeof preset.value === 'object' && |
+ typeof preset.value.throughput === 'number' && typeof preset.value.latency === 'number') |
+ newValue.push({ |
+ title: preset.title, |
+ value: |
+ {download: preset.value.throughput, upload: preset.value.throughput, latency: preset.value.latency} |
+ }); |
+ } |
+ } |
+ setting.set(newValue); |
+ } |
+ |
+ _updateVersionFrom17To18() { |
+ var setting = WebInspector.settings.createLocalSetting('workspaceExcludedFolders', {}); |
+ var oldValue = setting.get(); |
+ var newValue = {}; |
+ for (var oldKey in oldValue) { |
+ var newKey = oldKey.replace(/\\/g, '/'); |
+ if (!newKey.startsWith('file://')) { |
+ if (newKey.startsWith('/')) |
+ newKey = 'file://' + newKey; |
+ else |
+ newKey = 'file:///' + newKey; |
+ } |
+ newValue[newKey] = oldValue[oldKey]; |
+ } |
+ setting.set(newValue); |
+ } |
+ |
+ _updateVersionFrom18To19() { |
+ var defaultColumns = {status: true, type: true, initiator: true, size: true, time: true}; |
+ var visibleColumnSettings = WebInspector.settings.createSetting('networkLogColumnsVisibility', defaultColumns); |
+ var visibleColumns = visibleColumnSettings.get(); |
+ visibleColumns.name = true; |
+ visibleColumns.timeline = true; |
+ |
+ var configs = {}; |
+ for (var columnId in visibleColumns) { |
+ if (!visibleColumns.hasOwnProperty(columnId)) |
+ continue; |
+ configs[columnId.toLowerCase()] = {visible: visibleColumns[columnId]}; |
+ } |
+ var newSetting = WebInspector.settings.createSetting('networkLogColumns', {}); |
+ newSetting.set(configs); |
+ visibleColumnSettings.remove(); |
+ } |
+ |
+ _updateVersionFrom19To20() { |
+ var oldSetting = WebInspector.settings.createSetting('InspectorView.panelOrder', {}); |
+ var newSetting = WebInspector.settings.createSetting('panel-tabOrder', {}); |
+ newSetting.set(oldSetting.get()); |
+ oldSetting.remove(); |
+ } |
+ |
+ _migrateSettingsFromLocalStorage() { |
+ // This step migrates all the settings except for the ones below into the browser profile. |
+ var localSettings = new Set([ |
+ 'advancedSearchConfig', 'breakpoints', 'consoleHistory', 'domBreakpoints', 'eventListenerBreakpoints', |
+ 'fileSystemMapping', 'lastSelectedSourcesSidebarPaneTab', 'previouslyViewedFiles', 'savedURLs', |
+ 'watchExpressions', 'workspaceExcludedFolders', 'xhrBreakpoints' |
+ ]); |
+ if (!window.localStorage) |
+ return; |
+ |
+ for (var key in window.localStorage) { |
+ if (localSettings.has(key)) |
+ continue; |
+ var value = window.localStorage[key]; |
+ window.localStorage.removeItem(key); |
+ WebInspector.settings._settingsStorage[key] = value; |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Setting} breakpointsSetting |
+ * @param {number} maxBreakpointsCount |
+ */ |
+ _clearBreakpointsWhenTooMany(breakpointsSetting, maxBreakpointsCount) { |
+ // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused |
+ // periodical breakpoints duplication leading to inspector slowness. |
+ if (breakpointsSetting.get().length > maxBreakpointsCount) |
+ breakpointsSetting.set([]); |
+ } |
}; |
+WebInspector.VersionController._currentVersionName = 'inspectorVersion'; |
+WebInspector.VersionController.currentVersion = 20; |
+ |
/** |
* @type {!WebInspector.Settings} |
*/ |
@@ -774,16 +725,14 @@ WebInspector.settings; |
* @param {string} settingName |
* @return {!WebInspector.Setting} |
*/ |
-WebInspector.moduleSetting = function(settingName) |
-{ |
- return WebInspector.settings.moduleSetting(settingName); |
+WebInspector.moduleSetting = function(settingName) { |
+ return WebInspector.settings.moduleSetting(settingName); |
}; |
/** |
* @param {string} settingName |
* @return {!WebInspector.Setting} |
*/ |
-WebInspector.settingForTest = function(settingName) |
-{ |
- return WebInspector.settings.settingForTest(settingName); |
+WebInspector.settingForTest = function(settingName) { |
+ return WebInspector.settings.settingForTest(settingName); |
}; |