Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: chrome/browser/ui/webui/options/advanced_options_handler.cc

Issue 6954001: Add "Keep chrome running in background" preference. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed problem that was making UI visible on Mac. Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/options/advanced_options_handler.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/options/advanced_options_handler.h" 5 #include "chrome/browser/ui/webui/options/advanced_options_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_LABEL }, 155 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_LABEL },
156 { "cloudPrintProxyDisabledButton", 156 { "cloudPrintProxyDisabledButton",
157 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_BUTTON }, 157 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_BUTTON },
158 { "cloudPrintProxyEnabledButton", 158 { "cloudPrintProxyEnabledButton",
159 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_BUTTON }, 159 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_BUTTON },
160 { "cloudPrintProxyEnabledManageButton", 160 { "cloudPrintProxyEnabledManageButton",
161 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_MANAGE_BUTTON }, 161 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_MANAGE_BUTTON },
162 { "cloudPrintProxyEnablingButton", 162 { "cloudPrintProxyEnablingButton",
163 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLING_BUTTON }, 163 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLING_BUTTON },
164 #endif 164 #endif
165 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
166 { "advancedSectionTitleBackground",
167 IDS_OPTIONS_ADVANCED_SECTION_TITLE_BACKGROUND },
168 { "backgroundModeCheckbox",
169 IDS_OPTIONS_BACKGROUND_ENABLE_BACKGROUND_MODE },
170 #endif
165 }; 171 };
166 172
167 RegisterStrings(localized_strings, resources, arraysize(resources)); 173 RegisterStrings(localized_strings, resources, arraysize(resources));
168 RegisterTitle(localized_strings, "advancedPage", 174 RegisterTitle(localized_strings, "advancedPage",
169 IDS_OPTIONS_ADVANCED_TAB_LABEL); 175 IDS_OPTIONS_ADVANCED_TAB_LABEL);
170 176
171 localized_strings->SetString("privacyLearnMoreURL", 177 localized_strings->SetString("privacyLearnMoreURL",
172 google_util::AppendGoogleLocaleParam( 178 google_util::AppendGoogleLocaleParam(
173 GURL(chrome::kPrivacyLearnMoreURL)).spec()); 179 GURL(chrome::kPrivacyLearnMoreURL)).spec());
174 } 180 }
175 181
176 void AdvancedOptionsHandler::Initialize() { 182 void AdvancedOptionsHandler::Initialize() {
177 DCHECK(web_ui_); 183 DCHECK(web_ui_);
178 SetupMetricsReportingCheckbox(); 184 SetupMetricsReportingCheckbox();
179 SetupMetricsReportingSettingVisibility(); 185 SetupMetricsReportingSettingVisibility();
180 SetupFontSizeLabel(); 186 SetupFontSizeLabel();
181 SetupDownloadLocationPath(); 187 SetupDownloadLocationPath();
182 SetupPromptForDownload(); 188 SetupPromptForDownload();
183 SetupAutoOpenFileTypesDisabledAttribute(); 189 SetupAutoOpenFileTypesDisabledAttribute();
184 SetupProxySettingsSection(); 190 SetupProxySettingsSection();
185 SetupSSLConfigSettings(); 191 SetupSSLConfigSettings();
186 #if !defined(OS_CHROMEOS) 192 #if !defined(OS_CHROMEOS)
187 if (cloud_print_proxy_ui_enabled_) { 193 if (cloud_print_proxy_ui_enabled_) {
188 SetupCloudPrintProxySection(); 194 SetupCloudPrintProxySection();
189 RefreshCloudPrintStatusFromService(); 195 RefreshCloudPrintStatusFromService();
190 } else { 196 } else {
191 RemoveCloudPrintProxySection(); 197 RemoveCloudPrintProxySection();
192 } 198 }
193 #endif 199 #endif
200 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
201 SetupBackgroundModeSettings();
202 #endif
194 203
195 banner_handler_.reset( 204 banner_handler_.reset(
196 new OptionsManagedBannerHandler(web_ui_, 205 new OptionsManagedBannerHandler(web_ui_,
197 ASCIIToUTF16("AdvancedOptions"), 206 ASCIIToUTF16("AdvancedOptions"),
198 OPTIONS_PAGE_ADVANCED)); 207 OPTIONS_PAGE_ADVANCED));
199 } 208 }
200 209
201 WebUIMessageHandler* AdvancedOptionsHandler::Attach(WebUI* web_ui) { 210 WebUIMessageHandler* AdvancedOptionsHandler::Attach(WebUI* web_ui) {
202 // Call through to superclass. 211 // Call through to superclass.
203 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui); 212 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui);
204 213
205 // Register for preferences that we need to observe manually. These have 214 // Register for preferences that we need to observe manually. These have
206 // special behaviors that aren't handled by the standard prefs UI. 215 // special behaviors that aren't handled by the standard prefs UI.
207 DCHECK(web_ui_); 216 DCHECK(web_ui_);
208 PrefService* prefs = web_ui_->GetProfile()->GetPrefs(); 217 PrefService* prefs = web_ui_->GetProfile()->GetPrefs();
209 #if !defined(OS_CHROMEOS) 218 #if !defined(OS_CHROMEOS)
210 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled, 219 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled,
211 g_browser_process->local_state(), this); 220 g_browser_process->local_state(), this);
212 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this); 221 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this);
213 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this); 222 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this);
214 #endif 223 #endif
215 224
216 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, 225 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled,
217 g_browser_process->local_state(), this); 226 g_browser_process->local_state(), this);
218 ssl3_enabled_.Init(prefs::kSSL3Enabled, g_browser_process->local_state(), 227 ssl3_enabled_.Init(prefs::kSSL3Enabled, g_browser_process->local_state(),
219 this); 228 this);
220 tls1_enabled_.Init(prefs::kTLS1Enabled, g_browser_process->local_state(), 229 tls1_enabled_.Init(prefs::kTLS1Enabled, g_browser_process->local_state(),
221 this); 230 this);
222 231
232 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
233 background_mode_enabled_.Init(prefs::kBackgroundModeEnabled,
234 g_browser_process->local_state(),
235 this);
236 #endif
237
223 default_download_location_.Init(prefs::kDownloadDefaultDirectory, 238 default_download_location_.Init(prefs::kDownloadDefaultDirectory,
224 prefs, this); 239 prefs, this);
225 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this); 240 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this);
226 allow_file_selection_dialogs_.Init(prefs::kAllowFileSelectionDialogs, 241 allow_file_selection_dialogs_.Init(prefs::kAllowFileSelectionDialogs,
227 g_browser_process->local_state(), this); 242 g_browser_process->local_state(), this);
228 auto_open_files_.Init(prefs::kDownloadExtensionsToOpen, prefs, this); 243 auto_open_files_.Init(prefs::kDownloadExtensionsToOpen, prefs, this);
229 default_font_size_.Init(prefs::kWebKitDefaultFontSize, prefs, this); 244 default_font_size_.Init(prefs::kWebKitDefaultFontSize, prefs, this);
230 proxy_prefs_.reset( 245 proxy_prefs_.reset(
231 PrefSetObserver::CreateProxyPrefSetObserver(prefs, this)); 246 PrefSetObserver::CreateProxyPrefSetObserver(prefs, this));
232 247
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 #endif 291 #endif
277 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction", 292 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction",
278 NewCallback(this, 293 NewCallback(this,
279 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox)); 294 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox));
280 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction", 295 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction",
281 NewCallback(this, 296 NewCallback(this,
282 &AdvancedOptionsHandler::HandleUseSSL3Checkbox)); 297 &AdvancedOptionsHandler::HandleUseSSL3Checkbox));
283 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction", 298 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction",
284 NewCallback(this, 299 NewCallback(this,
285 &AdvancedOptionsHandler::HandleUseTLS1Checkbox)); 300 &AdvancedOptionsHandler::HandleUseTLS1Checkbox));
301 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
302 web_ui_->RegisterMessageCallback("backgroundModeAction",
303 NewCallback(this,
304 &AdvancedOptionsHandler::HandleBackgroundModeCheckbox));
305 #endif
286 } 306 }
287 307
288 void AdvancedOptionsHandler::Observe(NotificationType type, 308 void AdvancedOptionsHandler::Observe(NotificationType type,
289 const NotificationSource& source, 309 const NotificationSource& source,
290 const NotificationDetails& details) { 310 const NotificationDetails& details) {
291 if (type == NotificationType::PREF_CHANGED) { 311 if (type == NotificationType::PREF_CHANGED) {
292 std::string* pref_name = Details<std::string>(details).ptr(); 312 std::string* pref_name = Details<std::string>(details).ptr();
293 if ((*pref_name == prefs::kDownloadDefaultDirectory) || 313 if ((*pref_name == prefs::kDownloadDefaultDirectory) ||
294 (*pref_name == prefs::kPromptForDownload) || 314 (*pref_name == prefs::kPromptForDownload) ||
295 (*pref_name == prefs::kAllowFileSelectionDialogs)) { 315 (*pref_name == prefs::kAllowFileSelectionDialogs)) {
296 SetupDownloadLocationPath(); 316 SetupDownloadLocationPath();
297 SetupPromptForDownload(); 317 SetupPromptForDownload();
298 } else if (*pref_name == prefs::kDownloadExtensionsToOpen) { 318 } else if (*pref_name == prefs::kDownloadExtensionsToOpen) {
299 SetupAutoOpenFileTypesDisabledAttribute(); 319 SetupAutoOpenFileTypesDisabledAttribute();
300 } else if (proxy_prefs_->IsObserved(*pref_name)) { 320 } else if (proxy_prefs_->IsObserved(*pref_name)) {
301 SetupProxySettingsSection(); 321 SetupProxySettingsSection();
302 } else if ((*pref_name == prefs::kCloudPrintEmail) || 322 } else if ((*pref_name == prefs::kCloudPrintEmail) ||
303 (*pref_name == prefs::kCloudPrintProxyEnabled)) { 323 (*pref_name == prefs::kCloudPrintProxyEnabled)) {
304 #if !defined(OS_CHROMEOS) 324 #if !defined(OS_CHROMEOS)
305 if (cloud_print_proxy_ui_enabled_) 325 if (cloud_print_proxy_ui_enabled_)
306 SetupCloudPrintProxySection(); 326 SetupCloudPrintProxySection();
307 #endif 327 #endif
308 } else if (*pref_name == prefs::kWebKitDefaultFontSize) { 328 } else if (*pref_name == prefs::kWebKitDefaultFontSize) {
309 SetupFontSizeLabel(); 329 SetupFontSizeLabel();
330 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
331 } else if (*pref_name == prefs::kBackgroundModeEnabled) {
332 SetupBackgroundModeSettings();
333 #endif
310 } 334 }
311 } 335 }
312 } 336 }
313 337
314 void AdvancedOptionsHandler::HandleSelectDownloadLocation( 338 void AdvancedOptionsHandler::HandleSelectDownloadLocation(
315 const ListValue* args) { 339 const ListValue* args) {
316 PrefService* pref_service = web_ui_->GetProfile()->GetPrefs(); 340 PrefService* pref_service = web_ui_->GetProfile()->GetPrefs();
317 select_folder_dialog_ = SelectFileDialog::Create(this); 341 select_folder_dialog_ = SelectFileDialog::Create(this);
318 select_folder_dialog_->SelectFile( 342 select_folder_dialog_->SelectFile(
319 SelectFileDialog::SELECT_FOLDER, 343 SelectFileDialog::SELECT_FOLDER,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 421
398 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) { 422 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) {
399 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); 423 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args));
400 bool enabled = checked_str == "true"; 424 bool enabled = checked_str == "true";
401 std::string metric = 425 std::string metric =
402 (enabled ? "Options_TLS1_Enable" : "Options_TLS1_Disable"); 426 (enabled ? "Options_TLS1_Enable" : "Options_TLS1_Disable");
403 UserMetricsRecordAction(UserMetricsAction(metric.c_str())); 427 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
404 tls1_enabled_.SetValue(enabled); 428 tls1_enabled_.SetValue(enabled);
405 } 429 }
406 430
431 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
432 void AdvancedOptionsHandler::HandleBackgroundModeCheckbox(
433 const ListValue* args) {
434 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args));
435 bool enabled = checked_str == "true";
436 std::string metric = enabled ? "Options_BackgroundMode_Enable" :
437 "Options_BackgroundMode_Disable";
438 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
439 background_mode_enabled_.SetValue(enabled);
440 }
441
442 void AdvancedOptionsHandler::SetupBackgroundModeSettings() {
443 FundamentalValue checked(background_mode_enabled_.GetValue());
444 web_ui_->CallJavascriptFunction(
445 "options.AdvancedOptions.SetBackgroundModeCheckboxState", checked);
446 }
447 #endif
448
407 #if !defined(OS_CHROMEOS) 449 #if !defined(OS_CHROMEOS)
408 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) { 450 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) {
409 UserMetricsRecordAction(UserMetricsAction("Options_ShowProxySettings")); 451 UserMetricsRecordAction(UserMetricsAction("Options_ShowProxySettings"));
410 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents()); 452 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents());
411 } 453 }
412 #endif 454 #endif
413 455
414 #if !defined(USE_NSS) && !defined(USE_OPENSSL) 456 #if !defined(USE_NSS) && !defined(USE_OPENSSL)
415 void AdvancedOptionsHandler::ShowManageSSLCertificates(const ListValue* args) { 457 void AdvancedOptionsHandler::ShowManageSSLCertificates(const ListValue* args) {
416 UserMetricsRecordAction(UserMetricsAction("Options_ManageSSLCertificates")); 458 UserMetricsRecordAction(UserMetricsAction("Options_ManageSSLCertificates"));
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 web_ui_->CallJavascriptFunction( 633 web_ui_->CallJavascriptFunction(
592 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled); 634 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled);
593 } 635 }
594 { 636 {
595 FundamentalValue checked(tls1_enabled_.GetValue()); 637 FundamentalValue checked(tls1_enabled_.GetValue());
596 FundamentalValue disabled(tls1_enabled_.IsManaged()); 638 FundamentalValue disabled(tls1_enabled_.IsManaged());
597 web_ui_->CallJavascriptFunction( 639 web_ui_->CallJavascriptFunction(
598 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled); 640 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled);
599 } 641 }
600 } 642 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/advanced_options_handler.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698