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

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

Issue 2708413003: DevTools: make disable javascript setting temporary (Closed)
Patch Set: a Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View 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 0c5f8d87a4aaacc4f917107aaf4aacd25450ef01..1c08d57919290624aa783a18aac575d9dd2f1ddc 100644
--- a/third_party/WebKit/Source/devtools/front_end/common/Settings.js
+++ b/third_party/WebKit/Source/devtools/front_end/common/Settings.js
@@ -35,10 +35,12 @@ Common.Settings = class {
/**
* @param {!Common.SettingsStorage} globalStorage
* @param {!Common.SettingsStorage} localStorage
+ * @param {!Common.SettingsStorage} sessionStorage
*/
- constructor(globalStorage, localStorage) {
+ constructor(globalStorage, localStorage, sessionStorage) {
this._settingsStorage = globalStorage;
pfeldman 2017/02/27 17:46:33 nit: rename this to this._globalStorage while you
luoe 2017/02/27 20:24:33 Done.
this._localStorage = localStorage;
+ this._sessionStorage = sessionStorage;
pfeldman 2017/02/27 17:46:33 You don't need to pass the session storage from ou
luoe 2017/02/27 20:24:33 Done.
this._eventSupport = new Common.Object();
/** @type {!Map<string, !Common.Setting>} */
@@ -54,11 +56,12 @@ Common.Settings = class {
_registerModuleSetting(extension) {
var descriptor = extension.descriptor();
var settingName = descriptor['settingName'];
- var settingType = descriptor['settingType'];
+ var isRegex = descriptor['settingType'] === 'regex';
var defaultValue = descriptor['defaultValue'];
- var isLocal = !!descriptor['local'];
- var setting = settingType === 'regex' ? this.createRegExpSetting(settingName, defaultValue, undefined, isLocal) :
- this.createSetting(settingName, defaultValue, isLocal);
+ var localType = !!descriptor['local'] ? Common.SettingStorageType.Local : Common.SettingStorageType.Global;
pfeldman 2017/02/27 17:46:33 Use a switch instead for readability.
luoe 2017/02/27 20:24:33 Done.
+ var storageType = !!descriptor['session'] ? Common.SettingStorageType.Session : localType;
+ var setting = isRegex ? this.createRegExpSetting(settingName, defaultValue, undefined, storageType) :
+ this.createSetting(settingName, defaultValue, storageType);
if (descriptor['title'])
setting.setTitle(descriptor['title']);
this._moduleSettings.set(settingName, setting);
@@ -89,15 +92,13 @@ Common.Settings = class {
/**
* @param {string} key
* @param {*} defaultValue
- * @param {boolean=} isLocal
+ * @param {!Common.SettingStorageType=} storageType
* @return {!Common.Setting}
*/
- createSetting(key, defaultValue, isLocal) {
- if (!this._registry.get(key)) {
- this._registry.set(
- key, new Common.Setting(
- this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage));
- }
+ createSetting(key, defaultValue, storageType) {
+ var storage = this._storageFromType(storageType);
+ if (!this._registry.get(key))
+ this._registry.set(key, new Common.Setting(this, key, defaultValue, this._eventSupport, storage));
return /** @type {!Common.Setting} */ (this._registry.get(key));
}
@@ -107,22 +108,21 @@ Common.Settings = class {
* @return {!Common.Setting}
*/
createLocalSetting(key, defaultValue) {
- return this.createSetting(key, defaultValue, true);
+ return this.createSetting(key, defaultValue, Common.SettingStorageType.Local);
}
/**
* @param {string} key
* @param {string} defaultValue
* @param {string=} regexFlags
- * @param {boolean=} isLocal
+ * @param {!Common.SettingStorageType=} storageType
* @return {!Common.RegExpSetting}
*/
- createRegExpSetting(key, defaultValue, regexFlags, isLocal) {
+ createRegExpSetting(key, defaultValue, regexFlags, storageType) {
if (!this._registry.get(key)) {
this._registry.set(
key, new Common.RegExpSetting(
- this, key, defaultValue, this._eventSupport, isLocal ? this._localStorage : this._settingsStorage,
- regexFlags));
+ this, key, defaultValue, this._eventSupport, this._storageFromType(storageType), regexFlags));
}
return /** @type {!Common.RegExpSetting} */ (this._registry.get(key));
}
@@ -133,6 +133,22 @@ Common.Settings = class {
var versionSetting = Common.settings.createSetting(Common.VersionController._currentVersionName, 0);
versionSetting.set(Common.VersionController.currentVersion);
}
+
+ /**
+ * @param {!Common.SettingStorageType=} storageType
+ * @return {!Common.SettingsStorage}
+ */
+ _storageFromType(storageType) {
+ switch (storageType) {
+ case (Common.SettingStorageType.Local):
+ return this._localStorage;
+ case (Common.SettingStorageType.Session):
+ return this._sessionStorage;
+ case (Common.SettingStorageType.Global):
+ default:
+ return this._settingsStorage;
+ }
+ }
};
/**
@@ -771,6 +787,15 @@ Common.VersionController.currentVersion = 23;
Common.settings;
/**
+ * @enum {symbol}
+ */
+Common.SettingStorageType = {
+ Global: Symbol('Global'),
+ Local: Symbol('Local'),
+ Session: Symbol('Session')
+};
+
+/**
* @param {string} settingName
* @return {!Common.Setting}
*/

Powered by Google App Engine
This is Rietveld 408576698