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

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

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done 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 side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698