Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 173 __proto__: WebInspector.VBox.prototype | 173 __proto__: WebInspector.VBox.prototype |
| 174 } | 174 } |
| 175 | 175 |
| 176 /** | 176 /** |
| 177 * @constructor | 177 * @constructor |
| 178 * @extends {WebInspector.SettingsTab} | 178 * @extends {WebInspector.SettingsTab} |
| 179 */ | 179 */ |
| 180 WebInspector.GenericSettingsTab = function() | 180 WebInspector.GenericSettingsTab = function() |
| 181 { | 181 { |
| 182 WebInspector.SettingsTab.call(this, WebInspector.UIString("General"), "gener al-tab-content"); | 182 WebInspector.SettingsTab.call(this, WebInspector.UIString("General"), "gener al-tab-content"); |
| 183 WebInspector.GenericSettingsTab._instance = this; | |
| 183 | 184 |
| 184 /** @const */ | 185 /** @const */ |
| 185 var explicitSectionOrder = ["", "Appearance", "Elements", "Sources", "Networ k", "Profiler", "Console", "Extensions"]; | 186 var explicitSectionOrder = ["", "Appearance", "Elements", "Sources", "Networ k", "Profiler", "Console", "Extensions"]; |
| 186 /** @type {!Map<string, !Element>} */ | 187 /** @type {!Map<string, !Element>} */ |
| 187 this._nameToSection = new Map(); | 188 this._nameToSection = new Map(); |
| 188 /** @type {!Map<string, !Element>} */ | 189 /** @type {!Map<string, !Element>} */ |
| 189 this._nameToSettingElement = new Map(); | 190 this._nameToSettingElement = new Map(); |
| 190 for (var sectionName of explicitSectionOrder) | 191 for (var sectionName of explicitSectionOrder) |
| 191 this._sectionElement(sectionName); | 192 this._sectionElement(sectionName); |
| 192 self.runtime.extensions("setting").forEach(this._addSetting.bind(this)); | 193 self.runtime.extensions("setting").forEach(this._addSetting.bind(this)); |
| 193 self.runtime.extensions(WebInspector.SettingUI).forEach(this._addSettingUI.b ind(this)); | 194 self.runtime.extensions(WebInspector.SettingUI).forEach(this._addSettingUI.b ind(this)); |
| 194 | 195 |
| 195 this._appendSection().appendChild(createTextButton(WebInspector.UIString("Re store defaults and reload"), restoreAndReload)); | 196 this._appendSection().appendChild(createTextButton(WebInspector.UIString("Re store defaults and reload"), restoreAndReload)); |
| 196 | 197 |
| 197 function restoreAndReload() | 198 function restoreAndReload() |
| 198 { | 199 { |
| 199 WebInspector.settings.clearAll(); | 200 WebInspector.settings.clearAll(); |
| 200 WebInspector.reload(); | 201 WebInspector.reload(); |
| 201 } | 202 } |
| 202 } | 203 } |
| 203 | 204 |
| 205 /** @type {?WebInspector.GenericSettingsTab} */ | |
| 206 WebInspector.GenericSettingsTab._instance; | |
| 207 | |
| 208 /** | |
| 209 * @param {!Runtime.Extension} extension | |
| 210 * @return {boolean} | |
| 211 */ | |
| 212 WebInspector.GenericSettingsTab.isSettingVisible = function(extension) | |
| 213 { | |
| 214 var descriptor = extension.descriptor(); | |
| 215 if (!("title" in descriptor)) | |
| 216 return false; | |
| 217 if (!(("category" in descriptor) || ("parentSettingName" in descriptor))) | |
| 218 return false; | |
| 219 return true; | |
| 220 } | |
| 221 | |
| 204 WebInspector.GenericSettingsTab.prototype = { | 222 WebInspector.GenericSettingsTab.prototype = { |
| 205 /** | 223 /** |
| 206 * @param {!Runtime.Extension} extension | 224 * @param {!Runtime.Extension} extension |
| 207 */ | 225 */ |
| 208 _addSetting: function(extension) | 226 _addSetting: function(extension) |
| 209 { | 227 { |
| 228 if (!WebInspector.GenericSettingsTab.isSettingVisible(extension)) | |
| 229 return; | |
| 210 var descriptor = extension.descriptor(); | 230 var descriptor = extension.descriptor(); |
| 211 if (!("title" in descriptor)) | |
| 212 return; | |
| 213 if (!(("category" in descriptor) || ("parentSettingName" in descriptor)) ) | |
| 214 return; | |
| 215 | |
| 216 var sectionName = descriptor["category"]; | 231 var sectionName = descriptor["category"]; |
| 217 var settingName = descriptor["settingName"]; | 232 var settingName = descriptor["settingName"]; |
| 218 var setting = WebInspector.moduleSetting(settingName); | 233 var setting = WebInspector.moduleSetting(settingName); |
| 219 var uiTitle = WebInspector.UIString(extension.title(WebInspector.platfor m())); | 234 var uiTitle = WebInspector.UIString(extension.title(WebInspector.platfor m())); |
| 220 | 235 |
| 221 var sectionElement = this._sectionElement(sectionName); | 236 var sectionElement = this._sectionElement(sectionName); |
| 222 var parentSettingName = descriptor["parentSettingName"]; | 237 var parentSettingName = descriptor["parentSettingName"]; |
| 223 var parentSettingElement = parentSettingName ? this._nameToSettingElemen t.get(descriptor["parentSettingName"]) : null; | 238 var parentSettingElement = parentSettingName ? this._nameToSettingElemen t.get(descriptor["parentSettingName"]) : null; |
| 224 var parentFieldset = null; | 239 var parentFieldset = null; |
| 225 if (parentSettingElement) { | 240 if (parentSettingElement) { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 extension.instancePromise().then(appendCustomSetting.bind(this)); | 280 extension.instancePromise().then(appendCustomSetting.bind(this)); |
| 266 | 281 |
| 267 /** | 282 /** |
| 268 * @param {!Object} object | 283 * @param {!Object} object |
| 269 * @this {WebInspector.GenericSettingsTab} | 284 * @this {WebInspector.GenericSettingsTab} |
| 270 */ | 285 */ |
| 271 function appendCustomSetting(object) | 286 function appendCustomSetting(object) |
| 272 { | 287 { |
| 273 var settingUI = /** @type {!WebInspector.SettingUI} */ (object); | 288 var settingUI = /** @type {!WebInspector.SettingUI} */ (object); |
| 274 var element = settingUI.settingElement(); | 289 var element = settingUI.settingElement(); |
| 275 if (element) | 290 if (!element) |
| 276 this._sectionElement(sectionName).appendChild(element); | 291 return; |
| 292 this._sectionElement(sectionName).appendChild(element); | |
| 293 | |
| 294 var settingsList = descriptor["settings"]; | |
| 295 if (!settingsList) | |
| 296 return; | |
| 297 for (var settingName of settingsList) { | |
| 298 this._nameToSettingElement.set(settingName, element); | |
| 299 if (settingName === this._highlightedSettingName) | |
| 300 this._highlight(); | |
| 301 } | |
| 277 } | 302 } |
| 278 }, | 303 }, |
| 279 | 304 |
| 280 /** | 305 /** |
| 281 * @param {string} sectionName | 306 * @param {string} sectionName |
| 282 * @return {!Element} | 307 * @return {!Element} |
| 283 */ | 308 */ |
| 284 _sectionElement: function(sectionName) | 309 _sectionElement: function(sectionName) |
| 285 { | 310 { |
| 286 var sectionElement = this._nameToSection.get(sectionName); | 311 var sectionElement = this._nameToSection.get(sectionName); |
| 287 if (!sectionElement) { | 312 if (!sectionElement) { |
| 288 var uiSectionName = sectionName && WebInspector.UIString(sectionName ); | 313 var uiSectionName = sectionName && WebInspector.UIString(sectionName ); |
| 289 sectionElement = this._appendSection(uiSectionName); | 314 sectionElement = this._appendSection(uiSectionName); |
| 290 this._nameToSection.set(sectionName, sectionElement); | 315 this._nameToSection.set(sectionName, sectionElement); |
| 291 } | 316 } |
| 292 return sectionElement; | 317 return sectionElement; |
| 293 }, | 318 }, |
| 294 | 319 |
| 320 wasShown: function() | |
| 321 { | |
| 322 this._highlight(); | |
| 323 }, | |
| 324 | |
| 325 willHide: function() | |
| 326 { | |
| 327 this._hideHighlight(); | |
| 328 }, | |
| 329 | |
| 330 _hideHighlight: function() | |
| 331 { | |
| 332 var element = this._highlightedSettingElement(); | |
| 333 if (element) | |
| 334 element.classList.remove("highlighted-setting"); | |
| 335 delete this._highlightedSettingName; | |
| 336 }, | |
| 337 | |
| 338 /** | |
| 339 * @return {?Element} | |
| 340 */ | |
| 341 _highlightedSettingElement: function() | |
| 342 { | |
| 343 return this._highlightedSettingName ? (this._nameToSettingElement.get(th is._highlightedSettingName) || null) : null; | |
| 344 }, | |
| 345 | |
| 346 _highlight: function() | |
| 347 { | |
| 348 var element = this._highlightedSettingElement(); | |
| 349 if (element) { | |
| 350 element.classList.add("highlighted-setting"); | |
| 351 element.scrollIntoView(); | |
| 352 } | |
| 353 }, | |
| 354 | |
| 355 /** | |
| 356 * @param {!WebInspector.Setting} setting | |
| 357 */ | |
| 358 highlightSetting: function(setting) | |
| 359 { | |
| 360 this._hideHighlight(); | |
| 361 this._highlightedSettingName = setting.name; | |
|
pfeldman
2015/08/13 23:33:13
Lets highlight it when we know that it is on scree
| |
| 362 this._highlight(); | |
| 363 }, | |
| 364 | |
| 295 __proto__: WebInspector.SettingsTab.prototype | 365 __proto__: WebInspector.SettingsTab.prototype |
| 296 } | 366 } |
| 297 | 367 |
| 298 /** | 368 /** |
| 299 * @constructor | 369 * @constructor |
| 300 * @implements {WebInspector.SettingUI} | 370 * @implements {WebInspector.SettingUI} |
| 301 */ | 371 */ |
| 302 WebInspector.SettingsScreen.SkipStackFramePatternSettingUI = function() | 372 WebInspector.SettingsScreen.SkipStackFramePatternSettingUI = function() |
| 303 { | 373 { |
| 304 } | 374 } |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 601 WebInspector._settingsController.showSettingsScreen(); | 671 WebInspector._settingsController.showSettingsScreen(); |
| 602 else if (actionId === "settings.help") | 672 else if (actionId === "settings.help") |
| 603 InspectorFrontendHost.openInNewTab("https://developers.google.com/we b/tools/chrome-devtools/"); | 673 InspectorFrontendHost.openInNewTab("https://developers.google.com/we b/tools/chrome-devtools/"); |
| 604 else if (actionId === "settings.shortcuts") | 674 else if (actionId === "settings.shortcuts") |
| 605 WebInspector._settingsController.showSettingsScreen("shortcuts"); | 675 WebInspector._settingsController.showSettingsScreen("shortcuts"); |
| 606 } | 676 } |
| 607 } | 677 } |
| 608 | 678 |
| 609 /** | 679 /** |
| 610 * @constructor | 680 * @constructor |
| 681 * @implements {WebInspector.Revealer} | |
| 682 */ | |
| 683 WebInspector.SettingsController.Revealer = function() { } | |
| 684 | |
| 685 WebInspector.SettingsController.Revealer.prototype = { | |
| 686 /** | |
| 687 * @override | |
| 688 * @param {!Object} object | |
| 689 * @param {number=} lineNumber | |
| 690 * @return {!Promise} | |
| 691 */ | |
| 692 reveal: function(object, lineNumber) | |
| 693 { | |
| 694 console.assert(object instanceof WebInspector.Setting); | |
| 695 var setting = /** @type {!WebInspector.Setting} */ (object); | |
| 696 var success = false; | |
| 697 | |
| 698 self.runtime.extensions("setting").forEach(revealModuleSetting); | |
| 699 self.runtime.extensions(WebInspector.SettingUI).forEach(revealSettingUI) ; | |
| 700 self.runtime.extensions("settings-view").forEach(revealSettingsView); | |
| 701 | |
| 702 return success ? Promise.resolve() : Promise.reject(); | |
| 703 | |
| 704 /** | |
| 705 * @param {!Runtime.Extension} extension | |
| 706 */ | |
| 707 function revealModuleSetting(extension) | |
| 708 { | |
| 709 if (!WebInspector.GenericSettingsTab.isSettingVisible(extension)) | |
| 710 return; | |
| 711 if (extension.descriptor()["settingName"] === setting.name) { | |
| 712 WebInspector._settingsController.showSettingsScreen("general"); | |
| 713 WebInspector.GenericSettingsTab._instance.highlightSetting(setti ng); | |
| 714 success = true; | |
| 715 } | |
| 716 } | |
| 717 | |
| 718 /** | |
| 719 * @param {!Runtime.Extension} extension | |
| 720 */ | |
| 721 function revealSettingUI(extension) | |
| 722 { | |
| 723 var settings = extension.descriptor()["settings"]; | |
| 724 if (settings && settings.indexOf(setting.name) !== -1) { | |
| 725 WebInspector._settingsController.showSettingsScreen("general"); | |
| 726 WebInspector.GenericSettingsTab._instance.highlightSetting(setti ng); | |
| 727 success = true; | |
| 728 } | |
| 729 } | |
| 730 | |
| 731 /** | |
| 732 * @param {!Runtime.Extension} extension | |
| 733 */ | |
| 734 function revealSettingsView(extension) | |
| 735 { | |
| 736 var settings = extension.descriptor()["settings"]; | |
| 737 if (settings && settings.indexOf(setting.name) !== -1) { | |
| 738 WebInspector._settingsController.showSettingsScreen(extension.de scriptor()["name"]); | |
| 739 success = true; | |
| 740 } | |
| 741 } | |
| 742 } | |
| 743 } | |
| 744 | |
| 745 /** | |
| 746 * @constructor | |
| 611 * @extends {WebInspector.Object} | 747 * @extends {WebInspector.Object} |
| 612 * @param {!Array.<{id: string, placeholder: (string|undefined), options: (!Arra y.<string>|undefined)}>} columns | 748 * @param {!Array.<{id: string, placeholder: (string|undefined), options: (!Arra y.<string>|undefined)}>} columns |
| 613 * @param {function(!Element, {id: string, placeholder: (string|undefined), opti ons: (!Array.<string>|undefined)}, ?string)} itemRenderer | 749 * @param {function(!Element, {id: string, placeholder: (string|undefined), opti ons: (!Array.<string>|undefined)}, ?string)} itemRenderer |
| 614 */ | 750 */ |
| 615 WebInspector.SettingsList = function(columns, itemRenderer) | 751 WebInspector.SettingsList = function(columns, itemRenderer) |
| 616 { | 752 { |
| 617 this.element = createElementWithClass("div", "settings-list"); | 753 this.element = createElementWithClass("div", "settings-list"); |
| 618 this.element.tabIndex = -1; | 754 this.element.tabIndex = -1; |
| 619 this._itemRenderer = itemRenderer; | 755 this._itemRenderer = itemRenderer; |
| 620 /** @type {!Map.<string, !Element>} */ | 756 /** @type {!Map.<string, !Element>} */ |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1082 var columnId = columns[i]; | 1218 var columnId = columns[i]; |
| 1083 var editElement = this._addInputElements.get(columnId); | 1219 var editElement = this._addInputElements.get(columnId); |
| 1084 this._setEditElementValue(editElement, ""); | 1220 this._setEditElementValue(editElement, ""); |
| 1085 } | 1221 } |
| 1086 }, | 1222 }, |
| 1087 | 1223 |
| 1088 __proto__: WebInspector.SettingsList.prototype | 1224 __proto__: WebInspector.SettingsList.prototype |
| 1089 } | 1225 } |
| 1090 | 1226 |
| 1091 WebInspector._settingsController = new WebInspector.SettingsController(); | 1227 WebInspector._settingsController = new WebInspector.SettingsController(); |
| OLD | NEW |