| Index: Source/devtools/front_end/settings/SettingsScreen.js
|
| diff --git a/Source/devtools/front_end/settings/SettingsScreen.js b/Source/devtools/front_end/settings/SettingsScreen.js
|
| index 800320b99bcf8015a986320a37d0e9f77b7b0e85..86d4eed7ac9478100a07e3590ed6f20c1a6c86be 100644
|
| --- a/Source/devtools/front_end/settings/SettingsScreen.js
|
| +++ b/Source/devtools/front_end/settings/SettingsScreen.js
|
| @@ -201,18 +201,29 @@ WebInspector.GenericSettingsTab = function()
|
| }
|
| }
|
|
|
| +/**
|
| + * @param {!Runtime.Extension} extension
|
| + * @return {boolean}
|
| + */
|
| +WebInspector.GenericSettingsTab.isSettingVisible = function(extension)
|
| +{
|
| + var descriptor = extension.descriptor();
|
| + if (!("title" in descriptor))
|
| + return false;
|
| + if (!(("category" in descriptor) || ("parentSettingName" in descriptor)))
|
| + return false;
|
| + return true;
|
| +}
|
| +
|
| WebInspector.GenericSettingsTab.prototype = {
|
| /**
|
| * @param {!Runtime.Extension} extension
|
| */
|
| _addSetting: function(extension)
|
| {
|
| - var descriptor = extension.descriptor();
|
| - if (!("title" in descriptor))
|
| - return;
|
| - if (!(("category" in descriptor) || ("parentSettingName" in descriptor)))
|
| + if (!WebInspector.GenericSettingsTab.isSettingVisible(extension))
|
| return;
|
| -
|
| + var descriptor = extension.descriptor();
|
| var sectionName = descriptor["category"];
|
| var settingName = descriptor["settingName"];
|
| var setting = WebInspector.moduleSetting(settingName);
|
| @@ -608,6 +619,70 @@ WebInspector.SettingsController.ActionDelegate.prototype = {
|
|
|
| /**
|
| * @constructor
|
| + * @implements {WebInspector.Revealer}
|
| + */
|
| +WebInspector.SettingsController.Revealer = function() { }
|
| +
|
| +WebInspector.SettingsController.Revealer.prototype = {
|
| + /**
|
| + * @override
|
| + * @param {!Object} object
|
| + * @param {number=} lineNumber
|
| + * @return {!Promise}
|
| + */
|
| + reveal: function(object, lineNumber)
|
| + {
|
| + console.assert(object instanceof WebInspector.Setting);
|
| + var setting = /** @type {!WebInspector.Setting} */ (object);
|
| + var success = false;
|
| +
|
| + self.runtime.extensions("setting").forEach(revealModuleSetting);
|
| + self.runtime.extensions(WebInspector.SettingUI).forEach(revealSettingUI);
|
| + self.runtime.extensions("settings-view").forEach(revealSettingsView);
|
| +
|
| + return success ? Promise.resolve() : Promise.reject();
|
| +
|
| + /**
|
| + * @param {!Runtime.Extension} extension
|
| + */
|
| + function revealModuleSetting(extension)
|
| + {
|
| + if (!WebInspector.GenericSettingsTab.isSettingVisible(extension))
|
| + return;
|
| + if (extension.descriptor()["settingName"] === setting.name) {
|
| + WebInspector._settingsController.showSettingsScreen("general");
|
| + success = true;
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * @param {!Runtime.Extension} extension
|
| + */
|
| + function revealSettingUI(extension)
|
| + {
|
| + var settings = extension.descriptor()["settings"];
|
| + if (settings && settings.indexOf(setting.name) !== -1) {
|
| + WebInspector._settingsController.showSettingsScreen("general");
|
| + success = true;
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * @param {!Runtime.Extension} extension
|
| + */
|
| + function revealSettingsView(extension)
|
| + {
|
| + var settings = extension.descriptor()["settings"];
|
| + if (settings && settings.indexOf(setting.name) !== -1) {
|
| + WebInspector._settingsController.showSettingsScreen(extension.descriptor()["name"]);
|
| + success = true;
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * @constructor
|
| * @extends {WebInspector.Object}
|
| * @param {!Array.<{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}>} columns
|
| * @param {function(!Element, {id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}, ?string)} itemRenderer
|
|
|