OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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 AlertOverlay = options.AlertOverlay; | |
7 var AutofillEditAddressOverlay = options.AutofillEditAddressOverlay; | |
8 var AutofillEditCreditCardOverlay = options.AutofillEditCreditCardOverlay; | |
9 var AutofillOptions = options.AutofillOptions; | |
10 var BrowserOptions = options.BrowserOptions; | |
11 var ClearBrowserDataOverlay = options.ClearBrowserDataOverlay; | |
12 var ContentSettings = options.ContentSettings; | |
13 var ContentSettingsExceptionsArea = | |
14 options.contentSettings.ContentSettingsExceptionsArea; | |
15 var CookiesView = options.CookiesView; | |
16 var CookiesViewApp = options.CookiesViewApp; | |
17 var FontSettings = options.FontSettings; | |
18 var HandlerOptions = options.HandlerOptions; | |
19 var HomePageOverlay = options.HomePageOverlay; | |
20 var ImportDataOverlay = options.ImportDataOverlay; | |
21 var InstantConfirmOverlay = options.InstantConfirmOverlay; | |
22 var LanguageOptions = options.LanguageOptions; | |
23 var MediaGalleriesManager = options.MediaGalleriesManager; | |
24 var OptionsFocusManager = options.OptionsFocusManager; | |
25 var OptionsPage = options.OptionsPage; | |
26 var PasswordManager = options.PasswordManager; | |
27 var Preferences = options.Preferences; | |
28 var PreferredNetworks = options.PreferredNetworks; | |
29 var ManageProfileOverlay = options.ManageProfileOverlay; | |
30 var SearchEngineManager = options.SearchEngineManager; | |
31 var SearchPage = options.SearchPage; | |
32 var SpellingConfirmOverlay = options.SpellingConfirmOverlay; | |
33 var StartupOverlay = options.StartupOverlay; | |
34 var SyncSetupOverlay = options.SyncSetupOverlay; | |
35 | |
36 /** | |
37 * DOMContentLoaded handler, sets up the page. | |
38 */ | |
39 function load() { | |
40 // Decorate the existing elements in the document. | |
41 cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox); | |
42 cr.ui.decorate('input[pref][type=number]', options.PrefNumber); | |
43 cr.ui.decorate('input[pref][type=radio]', options.PrefRadio); | |
44 cr.ui.decorate('input[pref][type=range]', options.PrefRange); | |
45 cr.ui.decorate('select[pref]', options.PrefSelect); | |
46 cr.ui.decorate('input[pref][type=text]', options.PrefTextField); | |
47 cr.ui.decorate('input[pref][type=url]', options.PrefTextField); | |
48 cr.ui.decorate('button[pref]', options.PrefButton); | |
49 cr.ui.decorate('#content-settings-page input[type=radio]:not(.handler-radio)', | |
50 options.ContentSettingsRadio); | |
51 cr.ui.decorate('#content-settings-page input[type=radio].handler-radio', | |
52 options.HandlersEnabledRadio); | |
53 cr.ui.decorate('span.controlled-setting-indicator', | |
54 options.ControlledSettingIndicator); | |
55 | |
56 // Top level pages. | |
57 OptionsPage.register(SearchPage.getInstance()); | |
58 OptionsPage.register(BrowserOptions.getInstance()); | |
59 | |
60 // Overlays. | |
61 OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(), | |
62 LanguageOptions.getInstance()); | |
63 OptionsPage.registerOverlay(AlertOverlay.getInstance()); | |
64 OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(), | |
65 AutofillOptions.getInstance()); | |
66 OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(), | |
67 AutofillOptions.getInstance()); | |
68 OptionsPage.registerOverlay(AutofillOptions.getInstance(), | |
69 BrowserOptions.getInstance(), | |
70 [$('autofill-settings')]); | |
71 OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(), | |
72 BrowserOptions.getInstance(), | |
73 [$('privacyClearDataButton')]); | |
74 OptionsPage.registerOverlay(ContentSettings.getInstance(), | |
75 BrowserOptions.getInstance(), | |
76 [$('privacyContentSettingsButton')]); | |
77 OptionsPage.registerOverlay(ContentSettingsExceptionsArea.getInstance(), | |
78 ContentSettings.getInstance()); | |
79 OptionsPage.registerOverlay(CookiesView.getInstance(), | |
80 ContentSettings.getInstance(), | |
81 [$('privacyContentSettingsButton'), | |
82 $('show-cookies-button')]); | |
83 OptionsPage.registerOverlay(CookiesViewApp.getInstance(), | |
84 ContentSettings.getInstance(), | |
85 [$('privacyContentSettingsButton'), | |
86 $('show-app-cookies-button')]); | |
87 OptionsPage.registerOverlay(FontSettings.getInstance(), | |
88 BrowserOptions.getInstance(), | |
89 [$('fontSettingsCustomizeFontsButton')]); | |
90 if (HandlerOptions && $('manage-handlers-button')) { | |
91 OptionsPage.registerOverlay(HandlerOptions.getInstance(), | |
92 ContentSettings.getInstance(), | |
93 [$('manage-handlers-button')]); | |
94 } | |
95 OptionsPage.registerOverlay(HomePageOverlay.getInstance(), | |
96 BrowserOptions.getInstance(), | |
97 [$('change-home-page')]); | |
98 OptionsPage.registerOverlay(ImportDataOverlay.getInstance(), | |
99 BrowserOptions.getInstance()); | |
100 OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(), | |
101 BrowserOptions.getInstance()); | |
102 OptionsPage.registerOverlay(LanguageOptions.getInstance(), | |
103 BrowserOptions.getInstance(), | |
104 [$('language-button')]); | |
105 OptionsPage.registerOverlay(ManageProfileOverlay.getInstance(), | |
106 BrowserOptions.getInstance()); | |
107 OptionsPage.registerOverlay(MediaGalleriesManager.getInstance(), | |
108 ContentSettings.getInstance(), | |
109 [$('manage-galleries-button')]); | |
110 OptionsPage.registerOverlay(PasswordManager.getInstance(), | |
111 BrowserOptions.getInstance(), | |
112 [$('manage-passwords')]); | |
113 OptionsPage.registerOverlay(SearchEngineManager.getInstance(), | |
114 BrowserOptions.getInstance(), | |
115 [$('manage-default-search-engines')]); | |
116 OptionsPage.registerOverlay(SpellingConfirmOverlay.getInstance(), | |
117 BrowserOptions.getInstance()); | |
118 OptionsPage.registerOverlay(StartupOverlay.getInstance(), | |
119 BrowserOptions.getInstance()); | |
120 OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(), | |
121 BrowserOptions.getInstance()); | |
122 if (cr.isChromeOS) { | |
123 OptionsPage.registerOverlay(AccountsOptions.getInstance(), | |
124 BrowserOptions.getInstance(), | |
125 [$('manage-accounts-button')]); | |
126 OptionsPage.registerOverlay(BluetoothOptions.getInstance(), | |
127 BrowserOptions.getInstance(), | |
128 [$('bluetooth-add-device')]); | |
129 OptionsPage.registerOverlay(BluetoothPairing.getInstance(), | |
130 BrowserOptions.getInstance()); | |
131 OptionsPage.registerOverlay(ChangePictureOptions.getInstance(), | |
132 BrowserOptions.getInstance(), | |
133 [$('account-picture')]); | |
134 OptionsPage.registerOverlay(DetailsInternetPage.getInstance(), | |
135 BrowserOptions.getInstance()); | |
136 OptionsPage.registerOverlay(DisplayOptions.getInstance(), | |
137 BrowserOptions.getInstance(), | |
138 [$('display-options-button')]); | |
139 OptionsPage.registerOverlay(KeyboardOverlay.getInstance(), | |
140 BrowserOptions.getInstance(), | |
141 [$('keyboard-settings-button')]); | |
142 OptionsPage.registerOverlay(PointerOverlay.getInstance(), | |
143 BrowserOptions.getInstance(), | |
144 [$('pointer-settings-button')]); | |
145 OptionsPage.registerOverlay(PreferredNetworks.getInstance(), | |
146 BrowserOptions.getInstance()); | |
147 OptionsPage.registerOverlay( | |
148 new OptionsPage('languageChewing', | |
149 loadTimeData.getString('languageChewingPageTabTitle'), | |
150 'languageChewingPage'), | |
151 LanguageOptions.getInstance()); | |
152 OptionsPage.registerOverlay( | |
153 new OptionsPage('languageHangul', | |
154 loadTimeData.getString('languageHangulPageTabTitle'), | |
155 'languageHangulPage'), | |
156 LanguageOptions.getInstance()); | |
157 OptionsPage.registerOverlay( | |
158 new OptionsPage('languageMozc', | |
159 loadTimeData.getString('languageMozcPageTabTitle'), | |
160 'languageMozcPage'), | |
161 LanguageOptions.getInstance()); | |
162 OptionsPage.registerOverlay( | |
163 new OptionsPage('languagePinyin', | |
164 loadTimeData.getString('languagePinyinPageTabTitle'), | |
165 'languagePinyinPage'), | |
166 LanguageOptions.getInstance()); | |
167 } | |
168 | |
169 <if expr="pp_ifdef('chromeos') and pp_ifdef('use_ash')"> | |
170 if (SetWallpaperOptions) { | |
171 OptionsPage.registerOverlay(SetWallpaperOptions.getInstance(), | |
172 BrowserOptions.getInstance(), | |
173 [$('set-wallpaper')]); | |
174 } | |
175 </if> | |
176 | |
177 if (!cr.isWindows && !cr.isMac) { | |
178 OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(), | |
179 CertificateManager.getInstance()); | |
180 OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(), | |
181 CertificateManager.getInstance()); | |
182 OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(), | |
183 CertificateManager.getInstance()); | |
184 OptionsPage.registerOverlay(CertificateManager.getInstance(), | |
185 BrowserOptions.getInstance(), | |
186 [$('certificatesManageButton')]); | |
187 OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(), | |
188 CertificateManager.getInstance()); | |
189 } | |
190 | |
191 OptionsFocusManager.getInstance().initialize(); | |
192 Preferences.getInstance().initialize(); | |
193 OptionsPage.initialize(); | |
194 | |
195 var path = document.location.pathname; | |
196 | |
197 if (path.length > 1) { | |
198 // Skip starting slash and remove trailing slash (if any). | |
199 var pageName = path.slice(1).replace(/\/$/, ''); | |
200 OptionsPage.showPageByName(pageName, true, {replaceState: true}); | |
201 } else { | |
202 OptionsPage.showDefaultPage(); | |
203 } | |
204 | |
205 var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs'); | |
206 for (var i = 0; i < subpagesNavTabs.length; i++) { | |
207 subpagesNavTabs[i].onclick = function(event) { | |
208 OptionsPage.showTab(event.srcElement); | |
209 }; | |
210 } | |
211 | |
212 if (navigator.plugins['Shockwave Flash']) | |
213 document.documentElement.setAttribute('hasFlashPlugin', ''); | |
214 | |
215 window.setTimeout(function() { | |
216 document.documentElement.classList.remove('loading'); | |
217 }); | |
218 } | |
219 | |
220 document.documentElement.classList.add('loading'); | |
221 document.addEventListener('DOMContentLoaded', load); | |
222 | |
223 /** | |
224 * Listener for the |beforeunload| event. | |
225 */ | |
226 window.onbeforeunload = function() { | |
227 options.OptionsPage.willClose(); | |
228 }; | |
229 | |
230 /** | |
231 * Listener for the |popstate| event. | |
232 * @param {Event} e The |popstate| event. | |
233 */ | |
234 window.onpopstate = function(e) { | |
235 options.OptionsPage.setState(e.state); | |
236 }; | |
OLD | NEW |