| 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 10 matching lines...) Expand all Loading... |
| 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 /** | 30 /** |
| 31 * @implements {WebInspector.ViewLocationResolver} | 31 * @implements {UI.ViewLocationResolver} |
| 32 * @unrestricted | 32 * @unrestricted |
| 33 */ | 33 */ |
| 34 WebInspector.SettingsScreen = class extends WebInspector.VBox { | 34 Settings.SettingsScreen = class extends UI.VBox { |
| 35 constructor() { | 35 constructor() { |
| 36 super(true); | 36 super(true); |
| 37 this.registerRequiredCSS('settings/settingsScreen.css'); | 37 this.registerRequiredCSS('settings/settingsScreen.css'); |
| 38 | 38 |
| 39 this.contentElement.tabIndex = 0; | 39 this.contentElement.tabIndex = 0; |
| 40 this.contentElement.classList.add('help-window-main'); | 40 this.contentElement.classList.add('help-window-main'); |
| 41 this.contentElement.classList.add('vbox'); | 41 this.contentElement.classList.add('vbox'); |
| 42 | 42 |
| 43 var settingsLabelElement = createElement('div'); | 43 var settingsLabelElement = createElement('div'); |
| 44 WebInspector.createShadowRootWithCoreStyles(settingsLabelElement, 'settings/
settingsScreen.css') | 44 UI.createShadowRootWithCoreStyles(settingsLabelElement, 'settings/settingsSc
reen.css') |
| 45 .createChild('div', 'settings-window-title') | 45 .createChild('div', 'settings-window-title') |
| 46 .textContent = WebInspector.UIString('Settings'); | 46 .textContent = Common.UIString('Settings'); |
| 47 | 47 |
| 48 this._tabbedLocation = WebInspector.viewManager.createTabbedLocation( | 48 this._tabbedLocation = UI.viewManager.createTabbedLocation( |
| 49 () => WebInspector.SettingsScreen._showSettingsScreen(), 'settings-view'
); | 49 () => Settings.SettingsScreen._showSettingsScreen(), 'settings-view'); |
| 50 var tabbedPane = this._tabbedLocation.tabbedPane(); | 50 var tabbedPane = this._tabbedLocation.tabbedPane(); |
| 51 tabbedPane.leftToolbar().appendToolbarItem(new WebInspector.ToolbarItem(sett
ingsLabelElement)); | 51 tabbedPane.leftToolbar().appendToolbarItem(new UI.ToolbarItem(settingsLabelE
lement)); |
| 52 tabbedPane.setShrinkableTabs(false); | 52 tabbedPane.setShrinkableTabs(false); |
| 53 tabbedPane.setVerticalTabLayout(true); | 53 tabbedPane.setVerticalTabLayout(true); |
| 54 var shortcutsView = new WebInspector.SimpleView(WebInspector.UIString('Short
cuts')); | 54 var shortcutsView = new UI.SimpleView(Common.UIString('Shortcuts')); |
| 55 WebInspector.shortcutsScreen.createShortcutsTabView().show(shortcutsView.ele
ment); | 55 Components.shortcutsScreen.createShortcutsTabView().show(shortcutsView.eleme
nt); |
| 56 this._tabbedLocation.appendView(shortcutsView); | 56 this._tabbedLocation.appendView(shortcutsView); |
| 57 tabbedPane.show(this.contentElement); | 57 tabbedPane.show(this.contentElement); |
| 58 | 58 |
| 59 this.element.addEventListener('keydown', this._keyDown.bind(this), false); | 59 this.element.addEventListener('keydown', this._keyDown.bind(this), false); |
| 60 this._developerModeCounter = 0; | 60 this._developerModeCounter = 0; |
| 61 this.setDefaultFocusedElement(this.contentElement); | 61 this.setDefaultFocusedElement(this.contentElement); |
| 62 } | 62 } |
| 63 | 63 |
| 64 /** | 64 /** |
| 65 * @param {string=} name | 65 * @param {string=} name |
| 66 */ | 66 */ |
| 67 static _showSettingsScreen(name) { | 67 static _showSettingsScreen(name) { |
| 68 var settingsScreen = | 68 var settingsScreen = |
| 69 /** @type {!WebInspector.SettingsScreen} */ (self.runtime.sharedInstance
(WebInspector.SettingsScreen)); | 69 /** @type {!Settings.SettingsScreen} */ (self.runtime.sharedInstance(Set
tings.SettingsScreen)); |
| 70 if (settingsScreen.isShowing()) | 70 if (settingsScreen.isShowing()) |
| 71 return; | 71 return; |
| 72 var dialog = new WebInspector.Dialog(); | 72 var dialog = new UI.Dialog(); |
| 73 dialog.addCloseButton(); | 73 dialog.addCloseButton(); |
| 74 settingsScreen.show(dialog.element); | 74 settingsScreen.show(dialog.element); |
| 75 dialog.show(); | 75 dialog.show(); |
| 76 settingsScreen._selectTab(name || 'preferences'); | 76 settingsScreen._selectTab(name || 'preferences'); |
| 77 } | 77 } |
| 78 | 78 |
| 79 /** | 79 /** |
| 80 * @override | 80 * @override |
| 81 * @param {string} locationName | 81 * @param {string} locationName |
| 82 * @return {?WebInspector.ViewLocation} | 82 * @return {?UI.ViewLocation} |
| 83 */ | 83 */ |
| 84 resolveLocation(locationName) { | 84 resolveLocation(locationName) { |
| 85 return this._tabbedLocation; | 85 return this._tabbedLocation; |
| 86 } | 86 } |
| 87 | 87 |
| 88 /** | 88 /** |
| 89 * @param {string} name | 89 * @param {string} name |
| 90 */ | 90 */ |
| 91 _selectTab(name) { | 91 _selectTab(name) { |
| 92 WebInspector.viewManager.showView(name); | 92 UI.viewManager.showView(name); |
| 93 } | 93 } |
| 94 | 94 |
| 95 /** | 95 /** |
| 96 * @param {!Event} event | 96 * @param {!Event} event |
| 97 */ | 97 */ |
| 98 _keyDown(event) { | 98 _keyDown(event) { |
| 99 var shiftKeyCode = 16; | 99 var shiftKeyCode = 16; |
| 100 if (event.keyCode === shiftKeyCode && ++this._developerModeCounter > 5) | 100 if (event.keyCode === shiftKeyCode && ++this._developerModeCounter > 5) |
| 101 this.contentElement.classList.add('settings-developer-mode'); | 101 this.contentElement.classList.add('settings-developer-mode'); |
| 102 } | 102 } |
| 103 }; | 103 }; |
| 104 | 104 |
| 105 | 105 |
| 106 /** | 106 /** |
| 107 * @unrestricted | 107 * @unrestricted |
| 108 */ | 108 */ |
| 109 WebInspector.SettingsTab = class extends WebInspector.VBox { | 109 Settings.SettingsTab = class extends UI.VBox { |
| 110 /** | 110 /** |
| 111 * @param {string} name | 111 * @param {string} name |
| 112 * @param {string=} id | 112 * @param {string=} id |
| 113 */ | 113 */ |
| 114 constructor(name, id) { | 114 constructor(name, id) { |
| 115 super(); | 115 super(); |
| 116 this.element.classList.add('settings-tab-container'); | 116 this.element.classList.add('settings-tab-container'); |
| 117 if (id) | 117 if (id) |
| 118 this.element.id = id; | 118 this.element.id = id; |
| 119 var header = this.element.createChild('header'); | 119 var header = this.element.createChild('header'); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 } | 153 } |
| 154 | 154 |
| 155 select.addEventListener('change', changeListener, false); | 155 select.addEventListener('change', changeListener, false); |
| 156 return p; | 156 return p; |
| 157 } | 157 } |
| 158 }; | 158 }; |
| 159 | 159 |
| 160 /** | 160 /** |
| 161 * @unrestricted | 161 * @unrestricted |
| 162 */ | 162 */ |
| 163 WebInspector.GenericSettingsTab = class extends WebInspector.SettingsTab { | 163 Settings.GenericSettingsTab = class extends Settings.SettingsTab { |
| 164 constructor() { | 164 constructor() { |
| 165 super(WebInspector.UIString('Preferences'), 'preferences-tab-content'); | 165 super(Common.UIString('Preferences'), 'preferences-tab-content'); |
| 166 | 166 |
| 167 /** @const */ | 167 /** @const */ |
| 168 var explicitSectionOrder = | 168 var explicitSectionOrder = |
| 169 ['', 'Appearance', 'Elements', 'Sources', 'Network', 'Profiler', 'Consol
e', 'Extensions']; | 169 ['', 'Appearance', 'Elements', 'Sources', 'Network', 'Profiler', 'Consol
e', 'Extensions']; |
| 170 /** @type {!Map<string, !Element>} */ | 170 /** @type {!Map<string, !Element>} */ |
| 171 this._nameToSection = new Map(); | 171 this._nameToSection = new Map(); |
| 172 /** @type {!Map<string, !Element>} */ | 172 /** @type {!Map<string, !Element>} */ |
| 173 this._nameToSettingElement = new Map(); | 173 this._nameToSettingElement = new Map(); |
| 174 for (var sectionName of explicitSectionOrder) | 174 for (var sectionName of explicitSectionOrder) |
| 175 this._sectionElement(sectionName); | 175 this._sectionElement(sectionName); |
| 176 self.runtime.extensions('setting').forEach(this._addSetting.bind(this)); | 176 self.runtime.extensions('setting').forEach(this._addSetting.bind(this)); |
| 177 self.runtime.extensions(WebInspector.SettingUI).forEach(this._addSettingUI.b
ind(this)); | 177 self.runtime.extensions(UI.SettingUI).forEach(this._addSettingUI.bind(this))
; |
| 178 | 178 |
| 179 this._appendSection().appendChild( | 179 this._appendSection().appendChild( |
| 180 createTextButton(WebInspector.UIString('Restore defaults and reload'), r
estoreAndReload)); | 180 createTextButton(Common.UIString('Restore defaults and reload'), restore
AndReload)); |
| 181 | 181 |
| 182 function restoreAndReload() { | 182 function restoreAndReload() { |
| 183 WebInspector.settings.clearAll(); | 183 Common.settings.clearAll(); |
| 184 WebInspector.reload(); | 184 Components.reload(); |
| 185 } | 185 } |
| 186 } | 186 } |
| 187 | 187 |
| 188 /** | 188 /** |
| 189 * @param {!Runtime.Extension} extension | 189 * @param {!Runtime.Extension} extension |
| 190 * @return {boolean} | 190 * @return {boolean} |
| 191 */ | 191 */ |
| 192 static isSettingVisible(extension) { | 192 static isSettingVisible(extension) { |
| 193 var descriptor = extension.descriptor(); | 193 var descriptor = extension.descriptor(); |
| 194 if (!('title' in descriptor)) | 194 if (!('title' in descriptor)) |
| 195 return false; | 195 return false; |
| 196 if (!('category' in descriptor)) | 196 if (!('category' in descriptor)) |
| 197 return false; | 197 return false; |
| 198 return true; | 198 return true; |
| 199 } | 199 } |
| 200 | 200 |
| 201 /** | 201 /** |
| 202 * @param {!Runtime.Extension} extension | 202 * @param {!Runtime.Extension} extension |
| 203 */ | 203 */ |
| 204 _addSetting(extension) { | 204 _addSetting(extension) { |
| 205 if (!WebInspector.GenericSettingsTab.isSettingVisible(extension)) | 205 if (!Settings.GenericSettingsTab.isSettingVisible(extension)) |
| 206 return; | 206 return; |
| 207 var descriptor = extension.descriptor(); | 207 var descriptor = extension.descriptor(); |
| 208 var sectionName = descriptor['category']; | 208 var sectionName = descriptor['category']; |
| 209 var settingName = descriptor['settingName']; | 209 var settingName = descriptor['settingName']; |
| 210 var setting = WebInspector.moduleSetting(settingName); | 210 var setting = Common.moduleSetting(settingName); |
| 211 var uiTitle = WebInspector.UIString(extension.title()); | 211 var uiTitle = Common.UIString(extension.title()); |
| 212 | 212 |
| 213 var sectionElement = this._sectionElement(sectionName); | 213 var sectionElement = this._sectionElement(sectionName); |
| 214 var settingControl; | 214 var settingControl; |
| 215 | 215 |
| 216 switch (descriptor['settingType']) { | 216 switch (descriptor['settingType']) { |
| 217 case 'boolean': | 217 case 'boolean': |
| 218 settingControl = WebInspector.SettingsUI.createSettingCheckbox(uiTitle,
setting); | 218 settingControl = UI.SettingsUI.createSettingCheckbox(uiTitle, setting); |
| 219 break; | 219 break; |
| 220 case 'enum': | 220 case 'enum': |
| 221 var descriptorOptions = descriptor['options']; | 221 var descriptorOptions = descriptor['options']; |
| 222 var options = new Array(descriptorOptions.length); | 222 var options = new Array(descriptorOptions.length); |
| 223 for (var i = 0; i < options.length; ++i) { | 223 for (var i = 0; i < options.length; ++i) { |
| 224 // The "raw" flag indicates text is non-i18n-izable. | 224 // The "raw" flag indicates text is non-i18n-izable. |
| 225 var optionName = descriptorOptions[i]['raw'] ? descriptorOptions[i]['t
ext'] : | 225 var optionName = descriptorOptions[i]['raw'] ? descriptorOptions[i]['t
ext'] : |
| 226 WebInspector.UIString(d
escriptorOptions[i]['text']); | 226 Common.UIString(descrip
torOptions[i]['text']); |
| 227 options[i] = [optionName, descriptorOptions[i]['value']]; | 227 options[i] = [optionName, descriptorOptions[i]['value']]; |
| 228 } | 228 } |
| 229 settingControl = this._createSelectSetting(uiTitle, options, setting); | 229 settingControl = this._createSelectSetting(uiTitle, options, setting); |
| 230 break; | 230 break; |
| 231 default: | 231 default: |
| 232 console.error('Invalid setting type: ' + descriptor['settingType']); | 232 console.error('Invalid setting type: ' + descriptor['settingType']); |
| 233 return; | 233 return; |
| 234 } | 234 } |
| 235 this._nameToSettingElement.set(settingName, settingControl); | 235 this._nameToSettingElement.set(settingName, settingControl); |
| 236 sectionElement.appendChild(/** @type {!Element} */ (settingControl)); | 236 sectionElement.appendChild(/** @type {!Element} */ (settingControl)); |
| 237 } | 237 } |
| 238 | 238 |
| 239 /** | 239 /** |
| 240 * @param {!Runtime.Extension} extension | 240 * @param {!Runtime.Extension} extension |
| 241 */ | 241 */ |
| 242 _addSettingUI(extension) { | 242 _addSettingUI(extension) { |
| 243 var descriptor = extension.descriptor(); | 243 var descriptor = extension.descriptor(); |
| 244 var sectionName = descriptor['category'] || ''; | 244 var sectionName = descriptor['category'] || ''; |
| 245 extension.instance().then(appendCustomSetting.bind(this)); | 245 extension.instance().then(appendCustomSetting.bind(this)); |
| 246 | 246 |
| 247 /** | 247 /** |
| 248 * @param {!Object} object | 248 * @param {!Object} object |
| 249 * @this {WebInspector.GenericSettingsTab} | 249 * @this {Settings.GenericSettingsTab} |
| 250 */ | 250 */ |
| 251 function appendCustomSetting(object) { | 251 function appendCustomSetting(object) { |
| 252 var settingUI = /** @type {!WebInspector.SettingUI} */ (object); | 252 var settingUI = /** @type {!UI.SettingUI} */ (object); |
| 253 var element = settingUI.settingElement(); | 253 var element = settingUI.settingElement(); |
| 254 if (element) | 254 if (element) |
| 255 this._sectionElement(sectionName).appendChild(element); | 255 this._sectionElement(sectionName).appendChild(element); |
| 256 } | 256 } |
| 257 } | 257 } |
| 258 | 258 |
| 259 /** | 259 /** |
| 260 * @param {string} sectionName | 260 * @param {string} sectionName |
| 261 * @return {!Element} | 261 * @return {!Element} |
| 262 */ | 262 */ |
| 263 _sectionElement(sectionName) { | 263 _sectionElement(sectionName) { |
| 264 var sectionElement = this._nameToSection.get(sectionName); | 264 var sectionElement = this._nameToSection.get(sectionName); |
| 265 if (!sectionElement) { | 265 if (!sectionElement) { |
| 266 var uiSectionName = sectionName && WebInspector.UIString(sectionName); | 266 var uiSectionName = sectionName && Common.UIString(sectionName); |
| 267 sectionElement = this._appendSection(uiSectionName); | 267 sectionElement = this._appendSection(uiSectionName); |
| 268 this._nameToSection.set(sectionName, sectionElement); | 268 this._nameToSection.set(sectionName, sectionElement); |
| 269 } | 269 } |
| 270 return sectionElement; | 270 return sectionElement; |
| 271 } | 271 } |
| 272 }; | 272 }; |
| 273 | 273 |
| 274 | 274 |
| 275 /** | 275 /** |
| 276 * @unrestricted | 276 * @unrestricted |
| 277 */ | 277 */ |
| 278 WebInspector.WorkspaceSettingsTab = class extends WebInspector.SettingsTab { | 278 Settings.WorkspaceSettingsTab = class extends Settings.SettingsTab { |
| 279 constructor() { | 279 constructor() { |
| 280 super(WebInspector.UIString('Workspace'), 'workspace-tab-content'); | 280 super(Common.UIString('Workspace'), 'workspace-tab-content'); |
| 281 WebInspector.isolatedFileSystemManager.addEventListener( | 281 Workspace.isolatedFileSystemManager.addEventListener( |
| 282 WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, this._fil
eSystemAdded, this); | 282 Workspace.IsolatedFileSystemManager.Events.FileSystemAdded, this._fileSy
stemAdded, this); |
| 283 WebInspector.isolatedFileSystemManager.addEventListener( | 283 Workspace.isolatedFileSystemManager.addEventListener( |
| 284 WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved, this._f
ileSystemRemoved, this); | 284 Workspace.IsolatedFileSystemManager.Events.FileSystemRemoved, this._file
SystemRemoved, this); |
| 285 | 285 |
| 286 var folderExcludePatternInput = this._createFolderExcludePatternInput(); | 286 var folderExcludePatternInput = this._createFolderExcludePatternInput(); |
| 287 folderExcludePatternInput.classList.add('folder-exclude-pattern'); | 287 folderExcludePatternInput.classList.add('folder-exclude-pattern'); |
| 288 this.containerElement.appendChild(folderExcludePatternInput); | 288 this.containerElement.appendChild(folderExcludePatternInput); |
| 289 | 289 |
| 290 this._fileSystemsListContainer = this.containerElement.createChild('div', ''
); | 290 this._fileSystemsListContainer = this.containerElement.createChild('div', ''
); |
| 291 | 291 |
| 292 this.containerElement.appendChild( | 292 this.containerElement.appendChild( |
| 293 createTextButton(WebInspector.UIString('Add folder\u2026'), this._addFil
eSystemClicked.bind(this))); | 293 createTextButton(Common.UIString('Add folder\u2026'), this._addFileSyste
mClicked.bind(this))); |
| 294 | 294 |
| 295 /** @type {!Map<string, !Element>} */ | 295 /** @type {!Map<string, !Element>} */ |
| 296 this._elementByPath = new Map(); | 296 this._elementByPath = new Map(); |
| 297 | 297 |
| 298 /** @type {!Map<string, !WebInspector.EditFileSystemView>} */ | 298 /** @type {!Map<string, !Settings.EditFileSystemView>} */ |
| 299 this._mappingViewByPath = new Map(); | 299 this._mappingViewByPath = new Map(); |
| 300 | 300 |
| 301 var fileSystems = WebInspector.isolatedFileSystemManager.fileSystems(); | 301 var fileSystems = Workspace.isolatedFileSystemManager.fileSystems(); |
| 302 for (var i = 0; i < fileSystems.length; ++i) | 302 for (var i = 0; i < fileSystems.length; ++i) |
| 303 this._addItem(fileSystems[i]); | 303 this._addItem(fileSystems[i]); |
| 304 } | 304 } |
| 305 | 305 |
| 306 /** | 306 /** |
| 307 * @return {!Element} | 307 * @return {!Element} |
| 308 */ | 308 */ |
| 309 _createFolderExcludePatternInput() { | 309 _createFolderExcludePatternInput() { |
| 310 var p = createElement('p'); | 310 var p = createElement('p'); |
| 311 var labelElement = p.createChild('label'); | 311 var labelElement = p.createChild('label'); |
| 312 labelElement.textContent = WebInspector.UIString('Folder exclude pattern'); | 312 labelElement.textContent = Common.UIString('Folder exclude pattern'); |
| 313 var inputElement = p.createChild('input'); | 313 var inputElement = p.createChild('input'); |
| 314 inputElement.type = 'text'; | 314 inputElement.type = 'text'; |
| 315 inputElement.style.width = '270px'; | 315 inputElement.style.width = '270px'; |
| 316 var folderExcludeSetting = WebInspector.isolatedFileSystemManager.workspaceF
olderExcludePatternSetting(); | 316 var folderExcludeSetting = Workspace.isolatedFileSystemManager.workspaceFold
erExcludePatternSetting(); |
| 317 var setValue = WebInspector.bindInput( | 317 var setValue = UI.bindInput( |
| 318 inputElement, folderExcludeSetting.set.bind(folderExcludeSetting), regex
Validator, false); | 318 inputElement, folderExcludeSetting.set.bind(folderExcludeSetting), regex
Validator, false); |
| 319 folderExcludeSetting.addChangeListener(() => setValue.call(null, folderExclu
deSetting.get())); | 319 folderExcludeSetting.addChangeListener(() => setValue.call(null, folderExclu
deSetting.get())); |
| 320 setValue(folderExcludeSetting.get()); | 320 setValue(folderExcludeSetting.get()); |
| 321 return p; | 321 return p; |
| 322 | 322 |
| 323 /** | 323 /** |
| 324 * @param {string} value | 324 * @param {string} value |
| 325 * @return {boolean} | 325 * @return {boolean} |
| 326 */ | 326 */ |
| 327 function regexValidator(value) { | 327 function regexValidator(value) { |
| 328 var regex; | 328 var regex; |
| 329 try { | 329 try { |
| 330 regex = new RegExp(value); | 330 regex = new RegExp(value); |
| 331 } catch (e) { | 331 } catch (e) { |
| 332 } | 332 } |
| 333 return !!regex; | 333 return !!regex; |
| 334 } | 334 } |
| 335 } | 335 } |
| 336 | 336 |
| 337 /** | 337 /** |
| 338 * @param {!WebInspector.IsolatedFileSystem} fileSystem | 338 * @param {!Workspace.IsolatedFileSystem} fileSystem |
| 339 */ | 339 */ |
| 340 _addItem(fileSystem) { | 340 _addItem(fileSystem) { |
| 341 var element = this._renderFileSystem(fileSystem); | 341 var element = this._renderFileSystem(fileSystem); |
| 342 this._elementByPath.set(fileSystem.path(), element); | 342 this._elementByPath.set(fileSystem.path(), element); |
| 343 | 343 |
| 344 this._fileSystemsListContainer.appendChild(element); | 344 this._fileSystemsListContainer.appendChild(element); |
| 345 | 345 |
| 346 var mappingView = new WebInspector.EditFileSystemView(fileSystem.path()); | 346 var mappingView = new Settings.EditFileSystemView(fileSystem.path()); |
| 347 this._mappingViewByPath.set(fileSystem.path(), mappingView); | 347 this._mappingViewByPath.set(fileSystem.path(), mappingView); |
| 348 mappingView.element.classList.add('file-system-mapping-view'); | 348 mappingView.element.classList.add('file-system-mapping-view'); |
| 349 mappingView.show(element); | 349 mappingView.show(element); |
| 350 } | 350 } |
| 351 | 351 |
| 352 /** | 352 /** |
| 353 * @param {!WebInspector.IsolatedFileSystem} fileSystem | 353 * @param {!Workspace.IsolatedFileSystem} fileSystem |
| 354 * @return {!Element} | 354 * @return {!Element} |
| 355 */ | 355 */ |
| 356 _renderFileSystem(fileSystem) { | 356 _renderFileSystem(fileSystem) { |
| 357 var fileSystemPath = fileSystem.path(); | 357 var fileSystemPath = fileSystem.path(); |
| 358 var lastIndexOfSlash = fileSystemPath.lastIndexOf(WebInspector.isWin() ? '\\
' : '/'); | 358 var lastIndexOfSlash = fileSystemPath.lastIndexOf(Host.isWin() ? '\\' : '/')
; |
| 359 var folderName = fileSystemPath.substr(lastIndexOfSlash + 1); | 359 var folderName = fileSystemPath.substr(lastIndexOfSlash + 1); |
| 360 | 360 |
| 361 var element = createElementWithClass('div', 'file-system-container'); | 361 var element = createElementWithClass('div', 'file-system-container'); |
| 362 var header = element.createChild('div', 'file-system-header'); | 362 var header = element.createChild('div', 'file-system-header'); |
| 363 | 363 |
| 364 header.createChild('div', 'file-system-name').textContent = folderName; | 364 header.createChild('div', 'file-system-name').textContent = folderName; |
| 365 var path = header.createChild('div', 'file-system-path'); | 365 var path = header.createChild('div', 'file-system-path'); |
| 366 path.textContent = fileSystemPath; | 366 path.textContent = fileSystemPath; |
| 367 path.title = fileSystemPath; | 367 path.title = fileSystemPath; |
| 368 | 368 |
| 369 var toolbar = new WebInspector.Toolbar(''); | 369 var toolbar = new UI.Toolbar(''); |
| 370 var button = new WebInspector.ToolbarButton(WebInspector.UIString('Remove'),
'largeicon-delete'); | 370 var button = new UI.ToolbarButton(Common.UIString('Remove'), 'largeicon-dele
te'); |
| 371 button.addEventListener('click', this._removeFileSystemClicked.bind(this, fi
leSystem)); | 371 button.addEventListener('click', this._removeFileSystemClicked.bind(this, fi
leSystem)); |
| 372 toolbar.appendToolbarItem(button); | 372 toolbar.appendToolbarItem(button); |
| 373 header.appendChild(toolbar.element); | 373 header.appendChild(toolbar.element); |
| 374 | 374 |
| 375 return element; | 375 return element; |
| 376 } | 376 } |
| 377 | 377 |
| 378 /** | 378 /** |
| 379 * @param {!WebInspector.IsolatedFileSystem} fileSystem | 379 * @param {!Workspace.IsolatedFileSystem} fileSystem |
| 380 */ | 380 */ |
| 381 _removeFileSystemClicked(fileSystem) { | 381 _removeFileSystemClicked(fileSystem) { |
| 382 WebInspector.isolatedFileSystemManager.removeFileSystem(fileSystem); | 382 Workspace.isolatedFileSystemManager.removeFileSystem(fileSystem); |
| 383 } | 383 } |
| 384 | 384 |
| 385 _addFileSystemClicked() { | 385 _addFileSystemClicked() { |
| 386 WebInspector.isolatedFileSystemManager.addFileSystem(); | 386 Workspace.isolatedFileSystemManager.addFileSystem(); |
| 387 } | 387 } |
| 388 | 388 |
| 389 _fileSystemAdded(event) { | 389 _fileSystemAdded(event) { |
| 390 var fileSystem = /** @type {!WebInspector.IsolatedFileSystem} */ (event.data
); | 390 var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); |
| 391 this._addItem(fileSystem); | 391 this._addItem(fileSystem); |
| 392 } | 392 } |
| 393 | 393 |
| 394 _fileSystemRemoved(event) { | 394 _fileSystemRemoved(event) { |
| 395 var fileSystem = /** @type {!WebInspector.IsolatedFileSystem} */ (event.data
); | 395 var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); |
| 396 | 396 |
| 397 var mappingView = this._mappingViewByPath.get(fileSystem.path()); | 397 var mappingView = this._mappingViewByPath.get(fileSystem.path()); |
| 398 if (mappingView) { | 398 if (mappingView) { |
| 399 mappingView.dispose(); | 399 mappingView.dispose(); |
| 400 this._mappingViewByPath.delete(fileSystem.path()); | 400 this._mappingViewByPath.delete(fileSystem.path()); |
| 401 } | 401 } |
| 402 | 402 |
| 403 var element = this._elementByPath.get(fileSystem.path()); | 403 var element = this._elementByPath.get(fileSystem.path()); |
| 404 if (element) { | 404 if (element) { |
| 405 this._elementByPath.delete(fileSystem.path()); | 405 this._elementByPath.delete(fileSystem.path()); |
| 406 element.remove(); | 406 element.remove(); |
| 407 } | 407 } |
| 408 } | 408 } |
| 409 }; | 409 }; |
| 410 | 410 |
| 411 /** | 411 /** |
| 412 * @unrestricted | 412 * @unrestricted |
| 413 */ | 413 */ |
| 414 WebInspector.ExperimentsSettingsTab = class extends WebInspector.SettingsTab { | 414 Settings.ExperimentsSettingsTab = class extends Settings.SettingsTab { |
| 415 constructor() { | 415 constructor() { |
| 416 super(WebInspector.UIString('Experiments'), 'experiments-tab-content'); | 416 super(Common.UIString('Experiments'), 'experiments-tab-content'); |
| 417 | 417 |
| 418 var experiments = Runtime.experiments.allConfigurableExperiments(); | 418 var experiments = Runtime.experiments.allConfigurableExperiments(); |
| 419 if (experiments.length) { | 419 if (experiments.length) { |
| 420 var experimentsSection = this._appendSection(); | 420 var experimentsSection = this._appendSection(); |
| 421 experimentsSection.appendChild(this._createExperimentsWarningSubsection())
; | 421 experimentsSection.appendChild(this._createExperimentsWarningSubsection())
; |
| 422 for (var i = 0; i < experiments.length; ++i) | 422 for (var i = 0; i < experiments.length; ++i) |
| 423 experimentsSection.appendChild(this._createExperimentCheckbox(experiment
s[i])); | 423 experimentsSection.appendChild(this._createExperimentCheckbox(experiment
s[i])); |
| 424 } | 424 } |
| 425 } | 425 } |
| 426 | 426 |
| 427 /** | 427 /** |
| 428 * @return {!Element} element | 428 * @return {!Element} element |
| 429 */ | 429 */ |
| 430 _createExperimentsWarningSubsection() { | 430 _createExperimentsWarningSubsection() { |
| 431 var subsection = createElement('div'); | 431 var subsection = createElement('div'); |
| 432 var warning = subsection.createChild('span', 'settings-experiments-warning-s
ubsection-warning'); | 432 var warning = subsection.createChild('span', 'settings-experiments-warning-s
ubsection-warning'); |
| 433 warning.textContent = WebInspector.UIString('WARNING:'); | 433 warning.textContent = Common.UIString('WARNING:'); |
| 434 subsection.createTextChild(' '); | 434 subsection.createTextChild(' '); |
| 435 var message = subsection.createChild('span', 'settings-experiments-warning-s
ubsection-message'); | 435 var message = subsection.createChild('span', 'settings-experiments-warning-s
ubsection-message'); |
| 436 message.textContent = WebInspector.UIString('These experiments could be dang
erous and may require restart.'); | 436 message.textContent = Common.UIString('These experiments could be dangerous
and may require restart.'); |
| 437 return subsection; | 437 return subsection; |
| 438 } | 438 } |
| 439 | 439 |
| 440 _createExperimentCheckbox(experiment) { | 440 _createExperimentCheckbox(experiment) { |
| 441 var label = createCheckboxLabel(WebInspector.UIString(experiment.title), exp
eriment.isEnabled()); | 441 var label = createCheckboxLabel(Common.UIString(experiment.title), experimen
t.isEnabled()); |
| 442 var input = label.checkboxElement; | 442 var input = label.checkboxElement; |
| 443 input.name = experiment.name; | 443 input.name = experiment.name; |
| 444 function listener() { | 444 function listener() { |
| 445 experiment.setEnabled(input.checked); | 445 experiment.setEnabled(input.checked); |
| 446 } | 446 } |
| 447 input.addEventListener('click', listener, false); | 447 input.addEventListener('click', listener, false); |
| 448 | 448 |
| 449 var p = createElement('p'); | 449 var p = createElement('p'); |
| 450 p.className = experiment.hidden && !experiment.isEnabled() ? 'settings-exper
iment-hidden' : ''; | 450 p.className = experiment.hidden && !experiment.isEnabled() ? 'settings-exper
iment-hidden' : ''; |
| 451 p.appendChild(label); | 451 p.appendChild(label); |
| 452 return p; | 452 return p; |
| 453 } | 453 } |
| 454 }; | 454 }; |
| 455 | 455 |
| 456 /** | 456 /** |
| 457 * @implements {WebInspector.ActionDelegate} | 457 * @implements {UI.ActionDelegate} |
| 458 * @unrestricted | 458 * @unrestricted |
| 459 */ | 459 */ |
| 460 WebInspector.SettingsScreen.ActionDelegate = class { | 460 Settings.SettingsScreen.ActionDelegate = class { |
| 461 /** | 461 /** |
| 462 * @override | 462 * @override |
| 463 * @param {!WebInspector.Context} context | 463 * @param {!UI.Context} context |
| 464 * @param {string} actionId | 464 * @param {string} actionId |
| 465 * @return {boolean} | 465 * @return {boolean} |
| 466 */ | 466 */ |
| 467 handleAction(context, actionId) { | 467 handleAction(context, actionId) { |
| 468 switch (actionId) { | 468 switch (actionId) { |
| 469 case 'settings.show': | 469 case 'settings.show': |
| 470 WebInspector.SettingsScreen._showSettingsScreen(); | 470 Settings.SettingsScreen._showSettingsScreen(); |
| 471 return true; | 471 return true; |
| 472 case 'settings.help': | 472 case 'settings.help': |
| 473 InspectorFrontendHost.openInNewTab('https://developers.google.com/web/to
ols/chrome-devtools/'); | 473 InspectorFrontendHost.openInNewTab('https://developers.google.com/web/to
ols/chrome-devtools/'); |
| 474 return true; | 474 return true; |
| 475 case 'settings.shortcuts': | 475 case 'settings.shortcuts': |
| 476 WebInspector.SettingsScreen._showSettingsScreen(WebInspector.UIString('S
hortcuts')); | 476 Settings.SettingsScreen._showSettingsScreen(Common.UIString('Shortcuts')
); |
| 477 return true; | 477 return true; |
| 478 } | 478 } |
| 479 return false; | 479 return false; |
| 480 } | 480 } |
| 481 }; | 481 }; |
| 482 | 482 |
| 483 /** | 483 /** |
| 484 * @implements {WebInspector.Revealer} | 484 * @implements {Common.Revealer} |
| 485 * @unrestricted | 485 * @unrestricted |
| 486 */ | 486 */ |
| 487 WebInspector.SettingsScreen.Revealer = class { | 487 Settings.SettingsScreen.Revealer = class { |
| 488 /** | 488 /** |
| 489 * @override | 489 * @override |
| 490 * @param {!Object} object | 490 * @param {!Object} object |
| 491 * @return {!Promise} | 491 * @return {!Promise} |
| 492 */ | 492 */ |
| 493 reveal(object) { | 493 reveal(object) { |
| 494 console.assert(object instanceof WebInspector.Setting); | 494 console.assert(object instanceof Common.Setting); |
| 495 var setting = /** @type {!WebInspector.Setting} */ (object); | 495 var setting = /** @type {!Common.Setting} */ (object); |
| 496 var success = false; | 496 var success = false; |
| 497 | 497 |
| 498 self.runtime.extensions('setting').forEach(revealModuleSetting); | 498 self.runtime.extensions('setting').forEach(revealModuleSetting); |
| 499 self.runtime.extensions(WebInspector.SettingUI).forEach(revealSettingUI); | 499 self.runtime.extensions(UI.SettingUI).forEach(revealSettingUI); |
| 500 self.runtime.extensions('view').forEach(revealSettingsView); | 500 self.runtime.extensions('view').forEach(revealSettingsView); |
| 501 | 501 |
| 502 return success ? Promise.resolve() : Promise.reject(); | 502 return success ? Promise.resolve() : Promise.reject(); |
| 503 | 503 |
| 504 /** | 504 /** |
| 505 * @param {!Runtime.Extension} extension | 505 * @param {!Runtime.Extension} extension |
| 506 */ | 506 */ |
| 507 function revealModuleSetting(extension) { | 507 function revealModuleSetting(extension) { |
| 508 if (!WebInspector.GenericSettingsTab.isSettingVisible(extension)) | 508 if (!Settings.GenericSettingsTab.isSettingVisible(extension)) |
| 509 return; | 509 return; |
| 510 if (extension.descriptor()['settingName'] === setting.name) { | 510 if (extension.descriptor()['settingName'] === setting.name) { |
| 511 InspectorFrontendHost.bringToFront(); | 511 InspectorFrontendHost.bringToFront(); |
| 512 WebInspector.SettingsScreen._showSettingsScreen(); | 512 Settings.SettingsScreen._showSettingsScreen(); |
| 513 success = true; | 513 success = true; |
| 514 } | 514 } |
| 515 } | 515 } |
| 516 | 516 |
| 517 /** | 517 /** |
| 518 * @param {!Runtime.Extension} extension | 518 * @param {!Runtime.Extension} extension |
| 519 */ | 519 */ |
| 520 function revealSettingUI(extension) { | 520 function revealSettingUI(extension) { |
| 521 var settings = extension.descriptor()['settings']; | 521 var settings = extension.descriptor()['settings']; |
| 522 if (settings && settings.indexOf(setting.name) !== -1) { | 522 if (settings && settings.indexOf(setting.name) !== -1) { |
| 523 InspectorFrontendHost.bringToFront(); | 523 InspectorFrontendHost.bringToFront(); |
| 524 WebInspector.SettingsScreen._showSettingsScreen(); | 524 Settings.SettingsScreen._showSettingsScreen(); |
| 525 success = true; | 525 success = true; |
| 526 } | 526 } |
| 527 } | 527 } |
| 528 | 528 |
| 529 /** | 529 /** |
| 530 * @param {!Runtime.Extension} extension | 530 * @param {!Runtime.Extension} extension |
| 531 */ | 531 */ |
| 532 function revealSettingsView(extension) { | 532 function revealSettingsView(extension) { |
| 533 var location = extension.descriptor()['location']; | 533 var location = extension.descriptor()['location']; |
| 534 if (location !== 'settings-view') | 534 if (location !== 'settings-view') |
| 535 return; | 535 return; |
| 536 var settings = extension.descriptor()['settings']; | 536 var settings = extension.descriptor()['settings']; |
| 537 if (settings && settings.indexOf(setting.name) !== -1) { | 537 if (settings && settings.indexOf(setting.name) !== -1) { |
| 538 InspectorFrontendHost.bringToFront(); | 538 InspectorFrontendHost.bringToFront(); |
| 539 WebInspector.SettingsScreen._showSettingsScreen(extension.descriptor()['
id']); | 539 Settings.SettingsScreen._showSettingsScreen(extension.descriptor()['id']
); |
| 540 success = true; | 540 success = true; |
| 541 } | 541 } |
| 542 } | 542 } |
| 543 } | 543 } |
| 544 }; | 544 }; |
| OLD | NEW |