| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 var AddLanguageOverlay = options.AddLanguageOverlay; | |
| 6 var AdvancedOptions = options.AdvancedOptions; | |
| 7 var AlertOverlay = options.AlertOverlay; | |
| 8 var AutofillEditAddressOverlay = options.AutofillEditAddressOverlay; | |
| 9 var AutofillEditCreditCardOverlay = options.AutofillEditCreditCardOverlay; | |
| 10 var AutofillOptions = options.AutofillOptions; | |
| 11 var BrowserOptions = options.BrowserOptions; | |
| 12 var ClearBrowserDataOverlay = options.ClearBrowserDataOverlay; | |
| 13 var ContentSettings = options.ContentSettings; | |
| 14 var ContentSettingsExceptionsArea = | |
| 15 options.contentSettings.ContentSettingsExceptionsArea; | |
| 16 var CookiesView = options.CookiesView; | |
| 17 var FontSettings = options.FontSettings; | |
| 18 var ImportDataOverlay = options.ImportDataOverlay; | |
| 19 var InstantConfirmOverlay = options.InstantConfirmOverlay; | |
| 20 var LanguageOptions = options.LanguageOptions; | |
| 21 var OptionsPage = options.OptionsPage; | |
| 22 var PasswordManager = options.PasswordManager; | |
| 23 var PersonalOptions = options.PersonalOptions; | |
| 24 var Preferences = options.Preferences; | |
| 25 var ProxyOptions = options.ProxyOptions; | |
| 26 var SearchEngineManager = options.SearchEngineManager; | |
| 27 var SearchPage = options.SearchPage; | |
| 28 var SyncSetupOverlay = options.SyncSetupOverlay; | |
| 29 | |
| 30 /** | |
| 31 * DOMContentLoaded handler, sets up the page. | |
| 32 */ | |
| 33 function load() { | |
| 34 // Decorate the existing elements in the document. | |
| 35 cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox); | |
| 36 cr.ui.decorate('input[pref][type=number]', options.PrefNumber); | |
| 37 cr.ui.decorate('input[pref][type=radio]', options.PrefRadio); | |
| 38 cr.ui.decorate('input[pref][type=range]', options.PrefRange); | |
| 39 cr.ui.decorate('select[pref]', options.PrefSelect); | |
| 40 cr.ui.decorate('input[pref][type=text]', options.PrefTextField); | |
| 41 cr.ui.decorate('input[pref][type=url]', options.PrefTextField); | |
| 42 cr.ui.decorate('#content-settings-page input[type=radio]', | |
| 43 options.ContentSettingsRadio); | |
| 44 | |
| 45 var menuOffPattern = /(^\?|&)menu=off($|&)/; | |
| 46 var menuDisabled = menuOffPattern.test(window.location.search); | |
| 47 // document.documentElement.setAttribute('hide-menu', menuDisabled); | |
| 48 // We can't use an attribute on the html element because of webkit bug | |
| 49 // 12519. Instead, we add a class. | |
| 50 if (menuDisabled) | |
| 51 document.documentElement.classList.add('hide-menu'); | |
| 52 | |
| 53 localStrings = new LocalStrings(); | |
| 54 | |
| 55 OptionsPage.register(SearchPage.getInstance()); | |
| 56 | |
| 57 OptionsPage.register(BrowserOptions.getInstance()); | |
| 58 OptionsPage.registerSubPage(SearchEngineManager.getInstance(), | |
| 59 BrowserOptions.getInstance(), | |
| 60 [$('defaultSearchManageEnginesButton')]); | |
| 61 OptionsPage.register(PersonalOptions.getInstance()); | |
| 62 OptionsPage.registerSubPage(AutofillOptions.getInstance(), | |
| 63 PersonalOptions.getInstance(), | |
| 64 [$('autofill-settings')]); | |
| 65 OptionsPage.registerSubPage(PasswordManager.getInstance(), | |
| 66 PersonalOptions.getInstance(), | |
| 67 [$('manage-passwords')]); | |
| 68 if (cr.isChromeOS) { | |
| 69 OptionsPage.register(SystemOptions.getInstance()); | |
| 70 OptionsPage.registerSubPage(AboutPage.getInstance(), | |
| 71 SystemOptions.getInstance()); | |
| 72 OptionsPage.registerSubPage(LanguageOptions.getInstance(), | |
| 73 SystemOptions.getInstance(), | |
| 74 [$('language-button')]); | |
| 75 OptionsPage.registerSubPage( | |
| 76 new OptionsPage('languageChewing', | |
| 77 templateData.languageChewingPageTabTitle, | |
| 78 'languageChewingPage'), | |
| 79 LanguageOptions.getInstance()); | |
| 80 OptionsPage.registerSubPage( | |
| 81 new OptionsPage('languageHangul', | |
| 82 templateData.languageHangulPageTabTitle, | |
| 83 'languageHangulPage'), | |
| 84 LanguageOptions.getInstance()); | |
| 85 OptionsPage.registerSubPage( | |
| 86 new OptionsPage('languageMozc', | |
| 87 templateData.languageMozcPageTabTitle, | |
| 88 'languageMozcPage'), | |
| 89 LanguageOptions.getInstance()); | |
| 90 OptionsPage.registerSubPage( | |
| 91 new OptionsPage('languagePinyin', | |
| 92 templateData.languagePinyinPageTabTitle, | |
| 93 'languagePinyinPage'), | |
| 94 LanguageOptions.getInstance()); | |
| 95 OptionsPage.register(InternetOptions.getInstance()); | |
| 96 } | |
| 97 OptionsPage.register(AdvancedOptions.getInstance()); | |
| 98 OptionsPage.registerSubPage(ContentSettings.getInstance(), | |
| 99 AdvancedOptions.getInstance(), | |
| 100 [$('privacyContentSettingsButton')]); | |
| 101 OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(), | |
| 102 ContentSettings.getInstance()); | |
| 103 OptionsPage.registerSubPage(CookiesView.getInstance(), | |
| 104 ContentSettings.getInstance(), | |
| 105 [$('privacyContentSettingsButton'), | |
| 106 $('show-cookies-button')]); | |
| 107 OptionsPage.registerSubPage(FontSettings.getInstance(), | |
| 108 AdvancedOptions.getInstance(), | |
| 109 [$('fontSettingsCustomizeFontsButton')]); | |
| 110 if (!cr.isChromeOS) { | |
| 111 OptionsPage.registerSubPage(LanguageOptions.getInstance(), | |
| 112 AdvancedOptions.getInstance(), | |
| 113 [$('language-button')]); | |
| 114 } | |
| 115 if (!cr.isWindows && !cr.isMac) { | |
| 116 OptionsPage.registerSubPage(CertificateManager.getInstance(), | |
| 117 AdvancedOptions.getInstance(), | |
| 118 [$('show-cookies-button')]); | |
| 119 OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(), | |
| 120 CertificateManager.getInstance()); | |
| 121 OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(), | |
| 122 CertificateManager.getInstance()); | |
| 123 OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(), | |
| 124 CertificateManager.getInstance()); | |
| 125 OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(), | |
| 126 CertificateManager.getInstance()); | |
| 127 } | |
| 128 OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(), | |
| 129 LanguageOptions.getInstance()); | |
| 130 OptionsPage.registerOverlay(AlertOverlay.getInstance()); | |
| 131 OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(), | |
| 132 AutofillOptions.getInstance()); | |
| 133 OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(), | |
| 134 AutofillOptions.getInstance()); | |
| 135 OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(), | |
| 136 AdvancedOptions.getInstance(), | |
| 137 [$('privacyClearDataButton')]); | |
| 138 OptionsPage.registerOverlay(ImportDataOverlay.getInstance(), | |
| 139 PersonalOptions.getInstance()); | |
| 140 OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(), | |
| 141 BrowserOptions.getInstance()); | |
| 142 OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(), | |
| 143 PersonalOptions.getInstance()); | |
| 144 | |
| 145 if (cr.isChromeOS) { | |
| 146 OptionsPage.register(AccountsOptions.getInstance()); | |
| 147 OptionsPage.registerSubPage(ProxyOptions.getInstance(), | |
| 148 AdvancedOptions.getInstance(), | |
| 149 [$('proxiesConfigureButton')]); | |
| 150 OptionsPage.registerSubPage(ChangePictureOptions.getInstance(), | |
| 151 PersonalOptions.getInstance(), | |
| 152 [$('change-picture-button')]); | |
| 153 OptionsPage.registerOverlay(new OptionsPage('detailsInternetPage', | |
| 154 'detailsInternetPage', | |
| 155 'detailsInternetPage'), | |
| 156 InternetOptions.getInstance()); | |
| 157 | |
| 158 var languageModifierKeysOverlay = new OptionsPage( | |
| 159 'languageCustomizeModifierKeysOverlay', | |
| 160 localStrings.getString('languageCustomizeModifierKeysOverlay'), | |
| 161 'languageCustomizeModifierKeysOverlay') | |
| 162 OptionsPage.registerOverlay(languageModifierKeysOverlay, | |
| 163 SystemOptions.getInstance(), | |
| 164 [$('modifier-keys-button')]); | |
| 165 } | |
| 166 | |
| 167 Preferences.getInstance().initialize(); | |
| 168 OptionsPage.initialize(); | |
| 169 | |
| 170 var path = document.location.pathname; | |
| 171 | |
| 172 if (path.length > 1) { | |
| 173 var pageName = path.slice(1); | |
| 174 // Show page, but don't update history (there's already an entry for it). | |
| 175 OptionsPage.showPageByName(pageName, false); | |
| 176 } else { | |
| 177 OptionsPage.showDefaultPage(); | |
| 178 } | |
| 179 | |
| 180 var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs'); | |
| 181 for(var i = 0; i < subpagesNavTabs.length; i++) { | |
| 182 subpagesNavTabs[i].onclick = function(event) { | |
| 183 OptionsPage.showTab(event.srcElement); | |
| 184 } | |
| 185 } | |
| 186 | |
| 187 // Allow platform specific CSS rules. | |
| 188 if (cr.isMac) | |
| 189 document.documentElement.setAttribute('os', 'mac'); | |
| 190 if (cr.isWindows) | |
| 191 document.documentElement.setAttribute('os', 'windows'); | |
| 192 if (cr.isChromeOS) | |
| 193 document.documentElement.setAttribute('os', 'chromeos'); | |
| 194 if (cr.isLinux) { | |
| 195 document.documentElement.setAttribute('os', 'linux'); | |
| 196 document.documentElement.setAttribute('toolkit', 'gtk'); | |
| 197 } | |
| 198 if (cr.isViews) | |
| 199 document.documentElement.setAttribute('toolkit', 'views'); | |
| 200 if (navigator.plugins['Shockwave Flash']) | |
| 201 document.documentElement.setAttribute('hasFlashPlugin', ''); | |
| 202 | |
| 203 // Clicking on the Settings title brings up the 'Basics' page. | |
| 204 $('settings-title').onclick = function() { | |
| 205 OptionsPage.navigateToPage(BrowserOptions.getInstance().name); | |
| 206 }; | |
| 207 } | |
| 208 | |
| 209 document.addEventListener('DOMContentLoaded', load); | |
| 210 | |
| 211 window.onpopstate = function(e) { | |
| 212 options.OptionsPage.setState(e.state); | |
| 213 }; | |
| OLD | NEW |