| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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/browser_options_handler.h" | 5 #include "chrome/browser/ui/webui/options/browser_options_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 1054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 SetupExtensionControlledIndicators(); | 1065 SetupExtensionControlledIndicators(); |
| 1066 | 1066 |
| 1067 #if defined(OS_CHROMEOS) | 1067 #if defined(OS_CHROMEOS) |
| 1068 SetupAccessibilityFeatures(); | 1068 SetupAccessibilityFeatures(); |
| 1069 policy::BrowserPolicyConnectorChromeOS* connector = | 1069 policy::BrowserPolicyConnectorChromeOS* connector = |
| 1070 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | 1070 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| 1071 enable_factory_reset_ = !connector->IsEnterpriseManaged() && | 1071 enable_factory_reset_ = !connector->IsEnterpriseManaged() && |
| 1072 !user_manager::UserManager::Get()->IsLoggedInAsGuest() && | 1072 !user_manager::UserManager::Get()->IsLoggedInAsGuest() && |
| 1073 !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser(); | 1073 !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser(); |
| 1074 if (enable_factory_reset_) { | 1074 if (enable_factory_reset_) { |
| 1075 web_ui()->CallJavascriptFunction( | 1075 web_ui()->CallJavascriptFunctionUnsafe( |
| 1076 "BrowserOptions.enableFactoryResetSection"); | 1076 "BrowserOptions.enableFactoryResetSection"); |
| 1077 } | 1077 } |
| 1078 | 1078 |
| 1079 Profile* const profile = Profile::FromWebUI(web_ui()); | 1079 Profile* const profile = Profile::FromWebUI(web_ui()); |
| 1080 user_manager::User const* const user = | 1080 user_manager::User const* const user = |
| 1081 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); | 1081 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
| 1082 | 1082 |
| 1083 OnAccountPictureManagedChanged( | 1083 OnAccountPictureManagedChanged( |
| 1084 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) | 1084 policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) |
| 1085 ->policy_service() | 1085 ->policy_service() |
| 1086 ->GetPolicies(policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, | 1086 ->GetPolicies(policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, |
| 1087 std::string())) | 1087 std::string())) |
| 1088 .Get(policy::key::kUserAvatarImage)); | 1088 .Get(policy::key::kUserAvatarImage)); |
| 1089 | 1089 |
| 1090 OnWallpaperManagedChanged( | 1090 OnWallpaperManagedChanged( |
| 1091 chromeos::WallpaperManager::Get()->IsPolicyControlled( | 1091 chromeos::WallpaperManager::Get()->IsPolicyControlled( |
| 1092 user->GetAccountId())); | 1092 user->GetAccountId())); |
| 1093 | 1093 |
| 1094 policy::ConsumerManagementService* consumer_management = | 1094 policy::ConsumerManagementService* consumer_management = |
| 1095 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> | 1095 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> |
| 1096 GetConsumerManagementService(); | 1096 GetConsumerManagementService(); |
| 1097 if (consumer_management) { | 1097 if (consumer_management) { |
| 1098 OnConsumerManagementStatusChanged(); | 1098 OnConsumerManagementStatusChanged(); |
| 1099 consumer_management->AddObserver(this); | 1099 consumer_management->AddObserver(this); |
| 1100 } | 1100 } |
| 1101 | 1101 |
| 1102 if (arc::ArcAuthService::IsAllowedForProfile(profile) && | 1102 if (arc::ArcAuthService::IsAllowedForProfile(profile) && |
| 1103 !arc::ArcAuthService::IsOptInVerificationDisabled()) { | 1103 !arc::ArcAuthService::IsOptInVerificationDisabled()) { |
| 1104 web_ui()->CallJavascriptFunction("BrowserOptions.showAndroidAppsSection"); | 1104 web_ui()->CallJavascriptFunctionUnsafe( |
| 1105 "BrowserOptions.showAndroidAppsSection"); |
| 1105 } | 1106 } |
| 1106 OnSystemTimezoneAutomaticDetectionPolicyChanged(); | 1107 OnSystemTimezoneAutomaticDetectionPolicyChanged(); |
| 1107 #endif | 1108 #endif |
| 1108 } | 1109 } |
| 1109 | 1110 |
| 1110 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { | 1111 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { |
| 1111 #if defined(OS_CHROMEOS) | 1112 #if defined(OS_CHROMEOS) |
| 1112 // We're always the default browser on ChromeOS. | 1113 // We're always the default browser on ChromeOS. |
| 1113 return false; | 1114 return false; |
| 1114 #else | 1115 #else |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1192 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); | 1193 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| 1193 | 1194 |
| 1194 base::FundamentalValue is_default( | 1195 base::FundamentalValue is_default( |
| 1195 status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT); | 1196 status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT); |
| 1196 | 1197 |
| 1197 base::FundamentalValue can_be_default( | 1198 base::FundamentalValue can_be_default( |
| 1198 !IsDisabledByPolicy(default_browser_policy_) && | 1199 !IsDisabledByPolicy(default_browser_policy_) && |
| 1199 (status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT || | 1200 (status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT || |
| 1200 status_string_id == IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT)); | 1201 status_string_id == IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT)); |
| 1201 | 1202 |
| 1202 web_ui()->CallJavascriptFunction( | 1203 web_ui()->CallJavascriptFunctionUnsafe( |
| 1203 "BrowserOptions.updateDefaultBrowserState", | 1204 "BrowserOptions.updateDefaultBrowserState", status_string, is_default, |
| 1204 status_string, is_default, can_be_default); | 1205 can_be_default); |
| 1205 } | 1206 } |
| 1206 #endif // !defined(OS_CHROMEOS) | 1207 #endif // !defined(OS_CHROMEOS) |
| 1207 | 1208 |
| 1208 void BrowserOptionsHandler::OnTemplateURLServiceChanged() { | 1209 void BrowserOptionsHandler::OnTemplateURLServiceChanged() { |
| 1209 if (!template_url_service_ || !template_url_service_->loaded()) | 1210 if (!template_url_service_ || !template_url_service_->loaded()) |
| 1210 return; | 1211 return; |
| 1211 | 1212 |
| 1212 const TemplateURL* default_url = | 1213 const TemplateURL* default_url = |
| 1213 template_url_service_->GetDefaultSearchProvider(); | 1214 template_url_service_->GetDefaultSearchProvider(); |
| 1214 | 1215 |
| 1215 int default_index = -1; | 1216 int default_index = -1; |
| 1216 base::ListValue search_engines; | 1217 base::ListValue search_engines; |
| 1217 TemplateURLService::TemplateURLVector model_urls( | 1218 TemplateURLService::TemplateURLVector model_urls( |
| 1218 template_url_service_->GetTemplateURLs()); | 1219 template_url_service_->GetTemplateURLs()); |
| 1219 for (size_t i = 0; i < model_urls.size(); ++i) { | 1220 for (size_t i = 0; i < model_urls.size(); ++i) { |
| 1220 if (!model_urls[i]->ShowInDefaultList( | 1221 if (!model_urls[i]->ShowInDefaultList( |
| 1221 template_url_service_->search_terms_data())) | 1222 template_url_service_->search_terms_data())) |
| 1222 continue; | 1223 continue; |
| 1223 | 1224 |
| 1224 base::DictionaryValue* entry = new base::DictionaryValue(); | 1225 base::DictionaryValue* entry = new base::DictionaryValue(); |
| 1225 entry->SetString("name", model_urls[i]->short_name()); | 1226 entry->SetString("name", model_urls[i]->short_name()); |
| 1226 entry->SetInteger("index", i); | 1227 entry->SetInteger("index", i); |
| 1227 search_engines.Append(entry); | 1228 search_engines.Append(entry); |
| 1228 if (model_urls[i] == default_url) | 1229 if (model_urls[i] == default_url) |
| 1229 default_index = i; | 1230 default_index = i; |
| 1230 } | 1231 } |
| 1231 | 1232 |
| 1232 web_ui()->CallJavascriptFunction( | 1233 web_ui()->CallJavascriptFunctionUnsafe( |
| 1233 "BrowserOptions.updateSearchEngines", | 1234 "BrowserOptions.updateSearchEngines", search_engines, |
| 1234 search_engines, | |
| 1235 base::FundamentalValue(default_index), | 1235 base::FundamentalValue(default_index), |
| 1236 base::FundamentalValue( | 1236 base::FundamentalValue( |
| 1237 template_url_service_->is_default_search_managed() || | 1237 template_url_service_->is_default_search_managed() || |
| 1238 template_url_service_->IsExtensionControlledDefaultSearch())); | 1238 template_url_service_->IsExtensionControlledDefaultSearch())); |
| 1239 | 1239 |
| 1240 SetupExtensionControlledIndicators(); | 1240 SetupExtensionControlledIndicators(); |
| 1241 | 1241 |
| 1242 HandleRequestHotwordAvailable(nullptr); | 1242 HandleRequestHotwordAvailable(nullptr); |
| 1243 HandleRequestGoogleNowAvailable(nullptr); | 1243 HandleRequestGoogleNowAvailable(nullptr); |
| 1244 } | 1244 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1367 | 1367 |
| 1368 profile_info_list->Append(profile_value); | 1368 profile_info_list->Append(profile_value); |
| 1369 } | 1369 } |
| 1370 | 1370 |
| 1371 return profile_info_list; | 1371 return profile_info_list; |
| 1372 } | 1372 } |
| 1373 | 1373 |
| 1374 void BrowserOptionsHandler::SendProfilesInfo() { | 1374 void BrowserOptionsHandler::SendProfilesInfo() { |
| 1375 if (!ShouldShowMultiProfilesUserList()) | 1375 if (!ShouldShowMultiProfilesUserList()) |
| 1376 return; | 1376 return; |
| 1377 web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesInfo", | 1377 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setProfilesInfo", |
| 1378 *GetProfilesInfoList()); | 1378 *GetProfilesInfoList()); |
| 1379 } | 1379 } |
| 1380 | 1380 |
| 1381 void BrowserOptionsHandler::DeleteProfile(const base::ListValue* args) { | 1381 void BrowserOptionsHandler::DeleteProfile(const base::ListValue* args) { |
| 1382 DCHECK(args); | 1382 DCHECK(args); |
| 1383 const base::Value* file_path_value; | 1383 const base::Value* file_path_value; |
| 1384 if (!args->Get(0, &file_path_value)) { | 1384 if (!args->Get(0, &file_path_value)) { |
| 1385 NOTREACHED(); | 1385 NOTREACHED(); |
| 1386 return; | 1386 return; |
| 1387 } | 1387 } |
| 1388 | 1388 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1400 void BrowserOptionsHandler::ObserveThemeChanged() { | 1400 void BrowserOptionsHandler::ObserveThemeChanged() { |
| 1401 Profile* profile = Profile::FromWebUI(web_ui()); | 1401 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1402 ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile); | 1402 ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile); |
| 1403 bool is_system_theme = false; | 1403 bool is_system_theme = false; |
| 1404 | 1404 |
| 1405 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 1405 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 1406 bool profile_is_supervised = profile->IsSupervised(); | 1406 bool profile_is_supervised = profile->IsSupervised(); |
| 1407 is_system_theme = theme_service->UsingSystemTheme(); | 1407 is_system_theme = theme_service->UsingSystemTheme(); |
| 1408 base::FundamentalValue native_theme_enabled(!is_system_theme && | 1408 base::FundamentalValue native_theme_enabled(!is_system_theme && |
| 1409 !profile_is_supervised); | 1409 !profile_is_supervised); |
| 1410 web_ui()->CallJavascriptFunction("BrowserOptions.setNativeThemeButtonEnabled", | 1410 web_ui()->CallJavascriptFunctionUnsafe( |
| 1411 native_theme_enabled); | 1411 "BrowserOptions.setNativeThemeButtonEnabled", native_theme_enabled); |
| 1412 #endif | 1412 #endif |
| 1413 | 1413 |
| 1414 bool is_classic_theme = !is_system_theme && | 1414 bool is_classic_theme = !is_system_theme && |
| 1415 theme_service->UsingDefaultTheme(); | 1415 theme_service->UsingDefaultTheme(); |
| 1416 base::FundamentalValue enabled(!is_classic_theme); | 1416 base::FundamentalValue enabled(!is_classic_theme); |
| 1417 web_ui()->CallJavascriptFunction("BrowserOptions.setThemesResetButtonEnabled", | 1417 web_ui()->CallJavascriptFunctionUnsafe( |
| 1418 enabled); | 1418 "BrowserOptions.setThemesResetButtonEnabled", enabled); |
| 1419 } | 1419 } |
| 1420 | 1420 |
| 1421 void BrowserOptionsHandler::ThemesReset(const base::ListValue* args) { | 1421 void BrowserOptionsHandler::ThemesReset(const base::ListValue* args) { |
| 1422 Profile* profile = Profile::FromWebUI(web_ui()); | 1422 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1423 content::RecordAction(UserMetricsAction("Options_ThemesReset")); | 1423 content::RecordAction(UserMetricsAction("Options_ThemesReset")); |
| 1424 ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme(); | 1424 ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme(); |
| 1425 } | 1425 } |
| 1426 | 1426 |
| 1427 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 1427 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 1428 void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) { | 1428 void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) { |
| 1429 content::RecordAction(UserMetricsAction("Options_GtkThemeSet")); | 1429 content::RecordAction(UserMetricsAction("Options_GtkThemeSet")); |
| 1430 Profile* profile = Profile::FromWebUI(web_ui()); | 1430 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1431 ThemeServiceFactory::GetForProfile(profile)->UseSystemTheme(); | 1431 ThemeServiceFactory::GetForProfile(profile)->UseSystemTheme(); |
| 1432 } | 1432 } |
| 1433 #endif | 1433 #endif |
| 1434 | 1434 |
| 1435 #if defined(OS_CHROMEOS) | 1435 #if defined(OS_CHROMEOS) |
| 1436 void BrowserOptionsHandler::UpdateAccountPicture() { | 1436 void BrowserOptionsHandler::UpdateAccountPicture() { |
| 1437 std::string email = | 1437 std::string email = |
| 1438 user_manager::UserManager::Get()->GetLoggedInUser()->email(); | 1438 user_manager::UserManager::Get()->GetLoggedInUser()->email(); |
| 1439 if (!email.empty()) { | 1439 if (!email.empty()) { |
| 1440 web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture"); | 1440 web_ui()->CallJavascriptFunctionUnsafe( |
| 1441 "BrowserOptions.updateAccountPicture"); |
| 1441 base::StringValue email_value(email); | 1442 base::StringValue email_value(email); |
| 1442 web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture", | 1443 web_ui()->CallJavascriptFunctionUnsafe( |
| 1443 email_value); | 1444 "BrowserOptions.updateAccountPicture", email_value); |
| 1444 web_ui()->CallJavascriptFunction( | 1445 web_ui()->CallJavascriptFunctionUnsafe( |
| 1445 "AccountsOptions.getInstance().updateAccountPicture", | 1446 "AccountsOptions.getInstance().updateAccountPicture", email_value); |
| 1446 email_value); | |
| 1447 } | 1447 } |
| 1448 } | 1448 } |
| 1449 | 1449 |
| 1450 void BrowserOptionsHandler::OnAccountPictureManagedChanged(bool managed) { | 1450 void BrowserOptionsHandler::OnAccountPictureManagedChanged(bool managed) { |
| 1451 web_ui()->CallJavascriptFunction("BrowserOptions.setAccountPictureManaged", | 1451 web_ui()->CallJavascriptFunctionUnsafe( |
| 1452 base::FundamentalValue(managed)); | 1452 "BrowserOptions.setAccountPictureManaged", |
| 1453 base::FundamentalValue(managed)); |
| 1453 } | 1454 } |
| 1454 | 1455 |
| 1455 void BrowserOptionsHandler::OnWallpaperManagedChanged(bool managed) { | 1456 void BrowserOptionsHandler::OnWallpaperManagedChanged(bool managed) { |
| 1456 web_ui()->CallJavascriptFunction("BrowserOptions.setWallpaperManaged", | 1457 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setWallpaperManaged", |
| 1457 base::FundamentalValue(managed)); | 1458 base::FundamentalValue(managed)); |
| 1458 } | 1459 } |
| 1459 | 1460 |
| 1460 void BrowserOptionsHandler::OnSystemTimezonePolicyChanged() { | 1461 void BrowserOptionsHandler::OnSystemTimezonePolicyChanged() { |
| 1461 web_ui()->CallJavascriptFunction( | 1462 web_ui()->CallJavascriptFunctionUnsafe( |
| 1462 "BrowserOptions.setSystemTimezoneManaged", | 1463 "BrowserOptions.setSystemTimezoneManaged", |
| 1463 base::FundamentalValue(chromeos::system::HasSystemTimezonePolicy())); | 1464 base::FundamentalValue(chromeos::system::HasSystemTimezonePolicy())); |
| 1464 } | 1465 } |
| 1465 | 1466 |
| 1466 void BrowserOptionsHandler::OnSystemTimezoneAutomaticDetectionPolicyChanged() { | 1467 void BrowserOptionsHandler::OnSystemTimezoneAutomaticDetectionPolicyChanged() { |
| 1467 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 1468 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1468 chromeos::switches::kEnableSystemTimezoneAutomaticDetectionPolicy)) { | 1469 chromeos::switches::kEnableSystemTimezoneAutomaticDetectionPolicy)) { |
| 1469 return; | 1470 return; |
| 1470 } | 1471 } |
| 1471 | 1472 |
| 1472 PrefService* prefs = g_browser_process->local_state(); | 1473 PrefService* prefs = g_browser_process->local_state(); |
| 1473 const bool is_managed = prefs->IsManagedPreference( | 1474 const bool is_managed = prefs->IsManagedPreference( |
| 1474 prefs::kSystemTimezoneAutomaticDetectionPolicy); | 1475 prefs::kSystemTimezoneAutomaticDetectionPolicy); |
| 1475 const int value = | 1476 const int value = |
| 1476 prefs->GetInteger(prefs::kSystemTimezoneAutomaticDetectionPolicy); | 1477 prefs->GetInteger(prefs::kSystemTimezoneAutomaticDetectionPolicy); |
| 1477 web_ui()->CallJavascriptFunction( | 1478 web_ui()->CallJavascriptFunctionUnsafe( |
| 1478 "BrowserOptions.setSystemTimezoneAutomaticDetectionManaged", | 1479 "BrowserOptions.setSystemTimezoneAutomaticDetectionManaged", |
| 1479 base::FundamentalValue(is_managed), base::FundamentalValue(value)); | 1480 base::FundamentalValue(is_managed), base::FundamentalValue(value)); |
| 1480 } | 1481 } |
| 1481 #endif | 1482 #endif |
| 1482 | 1483 |
| 1483 std::unique_ptr<base::DictionaryValue> | 1484 std::unique_ptr<base::DictionaryValue> |
| 1484 BrowserOptionsHandler::GetSyncStateDictionary() { | 1485 BrowserOptionsHandler::GetSyncStateDictionary() { |
| 1485 // The items which are to be written into |sync_status| are also described in | 1486 // The items which are to be written into |sync_status| are also described in |
| 1486 // chrome/browser/resources/options/browser_options.js in @typedef | 1487 // chrome/browser/resources/options/browser_options.js in @typedef |
| 1487 // for SyncStatus. Please update it whenever you add or remove any keys here. | 1488 // for SyncStatus. Please update it whenever you add or remove any keys here. |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1556 void* params) { | 1557 void* params) { |
| 1557 content::RecordAction(UserMetricsAction("Options_SetDownloadDirectory")); | 1558 content::RecordAction(UserMetricsAction("Options_SetDownloadDirectory")); |
| 1558 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 1559 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1559 pref_service->SetFilePath(prefs::kDownloadDefaultDirectory, path); | 1560 pref_service->SetFilePath(prefs::kDownloadDefaultDirectory, path); |
| 1560 pref_service->SetFilePath(prefs::kSaveFileDefaultDirectory, path); | 1561 pref_service->SetFilePath(prefs::kSaveFileDefaultDirectory, path); |
| 1561 } | 1562 } |
| 1562 | 1563 |
| 1563 #if defined(OS_CHROMEOS) | 1564 #if defined(OS_CHROMEOS) |
| 1564 void BrowserOptionsHandler::TouchpadExists(bool exists) { | 1565 void BrowserOptionsHandler::TouchpadExists(bool exists) { |
| 1565 base::FundamentalValue val(exists); | 1566 base::FundamentalValue val(exists); |
| 1566 web_ui()->CallJavascriptFunction("BrowserOptions.showTouchpadControls", val); | 1567 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.showTouchpadControls", |
| 1568 val); |
| 1567 } | 1569 } |
| 1568 | 1570 |
| 1569 void BrowserOptionsHandler::MouseExists(bool exists) { | 1571 void BrowserOptionsHandler::MouseExists(bool exists) { |
| 1570 base::FundamentalValue val(exists); | 1572 base::FundamentalValue val(exists); |
| 1571 web_ui()->CallJavascriptFunction("BrowserOptions.showMouseControls", val); | 1573 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.showMouseControls", |
| 1574 val); |
| 1572 } | 1575 } |
| 1573 | 1576 |
| 1574 void BrowserOptionsHandler::OnUserImagePolicyChanged( | 1577 void BrowserOptionsHandler::OnUserImagePolicyChanged( |
| 1575 const base::Value* previous_policy, | 1578 const base::Value* previous_policy, |
| 1576 const base::Value* current_policy) { | 1579 const base::Value* current_policy) { |
| 1577 const bool had_policy = previous_policy; | 1580 const bool had_policy = previous_policy; |
| 1578 const bool has_policy = current_policy; | 1581 const bool has_policy = current_policy; |
| 1579 if (had_policy != has_policy) | 1582 if (had_policy != has_policy) |
| 1580 OnAccountPictureManagedChanged(has_policy); | 1583 OnAccountPictureManagedChanged(has_policy); |
| 1581 } | 1584 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1594 UMA_HISTOGRAM_ENUMERATION( | 1597 UMA_HISTOGRAM_ENUMERATION( |
| 1595 "Reset.ChromeOS.PowerwashDialogShown", | 1598 "Reset.ChromeOS.PowerwashDialogShown", |
| 1596 chromeos::reset::DIALOG_FROM_OPTIONS, | 1599 chromeos::reset::DIALOG_FROM_OPTIONS, |
| 1597 chromeos::reset::DIALOG_VIEW_TYPE_SIZE); | 1600 chromeos::reset::DIALOG_VIEW_TYPE_SIZE); |
| 1598 } | 1601 } |
| 1599 | 1602 |
| 1600 void BrowserOptionsHandler::OnConsumerManagementStatusChanged() { | 1603 void BrowserOptionsHandler::OnConsumerManagementStatusChanged() { |
| 1601 const std::string& status = g_browser_process->platform_part()-> | 1604 const std::string& status = g_browser_process->platform_part()-> |
| 1602 browser_policy_connector_chromeos()->GetConsumerManagementService()-> | 1605 browser_policy_connector_chromeos()->GetConsumerManagementService()-> |
| 1603 GetStatusString(); | 1606 GetStatusString(); |
| 1604 web_ui()->CallJavascriptFunction( | 1607 web_ui()->CallJavascriptFunctionUnsafe( |
| 1605 "BrowserOptions.setConsumerManagementStatus", base::StringValue(status)); | 1608 "BrowserOptions.setConsumerManagementStatus", base::StringValue(status)); |
| 1606 } | 1609 } |
| 1607 | 1610 |
| 1608 #endif // defined(OS_CHROMEOS) | 1611 #endif // defined(OS_CHROMEOS) |
| 1609 | 1612 |
| 1610 void BrowserOptionsHandler::UpdateSyncState() { | 1613 void BrowserOptionsHandler::UpdateSyncState() { |
| 1611 web_ui()->CallJavascriptFunction("BrowserOptions.updateSyncState", | 1614 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateSyncState", |
| 1612 *GetSyncStateDictionary()); | 1615 *GetSyncStateDictionary()); |
| 1613 | 1616 |
| 1614 // A change in sign-in state also affects how hotwording and audio history are | 1617 // A change in sign-in state also affects how hotwording and audio history are |
| 1615 // displayed. Hide all hotwording and re-display properly. | 1618 // displayed. Hide all hotwording and re-display properly. |
| 1616 web_ui()->CallJavascriptFunction( | 1619 web_ui()->CallJavascriptFunctionUnsafe( |
| 1617 "BrowserOptions.setAllHotwordSectionsVisible", | 1620 "BrowserOptions.setAllHotwordSectionsVisible", |
| 1618 base::FundamentalValue(false)); | 1621 base::FundamentalValue(false)); |
| 1619 HandleRequestHotwordAvailable(nullptr); | 1622 HandleRequestHotwordAvailable(nullptr); |
| 1620 } | 1623 } |
| 1621 | 1624 |
| 1622 void BrowserOptionsHandler::OnSigninAllowedPrefChange() { | 1625 void BrowserOptionsHandler::OnSigninAllowedPrefChange() { |
| 1623 UpdateSyncState(); | 1626 UpdateSyncState(); |
| 1624 } | 1627 } |
| 1625 | 1628 |
| 1626 void BrowserOptionsHandler::HandleAutoOpenButton(const base::ListValue* args) { | 1629 void BrowserOptionsHandler::HandleAutoOpenButton(const base::ListValue* args) { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1707 CURRENT_TAB, ui::PAGE_TRANSITION_LINK, false); | 1710 CURRENT_TAB, ui::PAGE_TRANSITION_LINK, false); |
| 1708 web_ui()->GetWebContents()->OpenURL(params); | 1711 web_ui()->GetWebContents()->OpenURL(params); |
| 1709 } | 1712 } |
| 1710 | 1713 |
| 1711 #endif | 1714 #endif |
| 1712 | 1715 |
| 1713 void BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible( | 1716 void BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible( |
| 1714 const base::string16& audio_history_state, | 1717 const base::string16& audio_history_state, |
| 1715 bool success, bool logging_enabled) { | 1718 bool success, bool logging_enabled) { |
| 1716 bool visible = logging_enabled && success; | 1719 bool visible = logging_enabled && success; |
| 1717 web_ui()->CallJavascriptFunction( | 1720 web_ui()->CallJavascriptFunctionUnsafe( |
| 1718 "BrowserOptions.setAudioHistorySectionVisible", | 1721 "BrowserOptions.setAudioHistorySectionVisible", |
| 1719 base::FundamentalValue(visible), | 1722 base::FundamentalValue(visible), base::StringValue(audio_history_state)); |
| 1720 base::StringValue(audio_history_state)); | |
| 1721 } | 1723 } |
| 1722 | 1724 |
| 1723 void BrowserOptionsHandler::HandleRequestGoogleNowAvailable( | 1725 void BrowserOptionsHandler::HandleRequestGoogleNowAvailable( |
| 1724 const base::ListValue* args) { | 1726 const base::ListValue* args) { |
| 1725 bool is_search_provider_google = false; | 1727 bool is_search_provider_google = false; |
| 1726 if (template_url_service_ && template_url_service_->loaded()) { | 1728 if (template_url_service_ && template_url_service_->loaded()) { |
| 1727 const TemplateURL* default_url = | 1729 const TemplateURL* default_url = |
| 1728 template_url_service_->GetDefaultSearchProvider(); | 1730 template_url_service_->GetDefaultSearchProvider(); |
| 1729 if (default_url && default_url->HasGoogleBaseURLs( | 1731 if (default_url && default_url->HasGoogleBaseURLs( |
| 1730 template_url_service_->search_terms_data())) { | 1732 template_url_service_->search_terms_data())) { |
| 1731 is_search_provider_google = true; | 1733 is_search_provider_google = true; |
| 1732 } | 1734 } |
| 1733 } | 1735 } |
| 1734 | 1736 |
| 1735 std::string group = base::FieldTrialList::FindFullName("GoogleNowExtension"); | 1737 std::string group = base::FieldTrialList::FindFullName("GoogleNowExtension"); |
| 1736 bool has_field_trial = !group.empty() && group != "Disabled"; | 1738 bool has_field_trial = !group.empty() && group != "Disabled"; |
| 1737 | 1739 |
| 1738 bool should_show = is_search_provider_google && has_field_trial; | 1740 bool should_show = is_search_provider_google && has_field_trial; |
| 1739 web_ui()->CallJavascriptFunction( | 1741 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setNowSectionVisible", |
| 1740 "BrowserOptions.setNowSectionVisible", | 1742 base::FundamentalValue(should_show)); |
| 1741 base::FundamentalValue(should_show)); | |
| 1742 } | 1743 } |
| 1743 | 1744 |
| 1744 void BrowserOptionsHandler::HandleRequestHotwordAvailable( | 1745 void BrowserOptionsHandler::HandleRequestHotwordAvailable( |
| 1745 const base::ListValue* args) { | 1746 const base::ListValue* args) { |
| 1746 Profile* profile = Profile::FromWebUI(web_ui()); | 1747 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1747 | 1748 |
| 1748 bool is_search_provider_google = false; | 1749 bool is_search_provider_google = false; |
| 1749 // The check for default search provider is only valid if the | 1750 // The check for default search provider is only valid if the |
| 1750 // |template_url_service_| has loaded already. | 1751 // |template_url_service_| has loaded already. |
| 1751 if (template_url_service_ && template_url_service_->loaded()) { | 1752 if (template_url_service_ && template_url_service_->loaded()) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1762 if (hotword_service) | 1763 if (hotword_service) |
| 1763 hotword_service->DisableHotwordPreferences(); | 1764 hotword_service->DisableHotwordPreferences(); |
| 1764 } | 1765 } |
| 1765 } | 1766 } |
| 1766 | 1767 |
| 1767 // |is_search_provider_google| may be false because |template_url_service_| | 1768 // |is_search_provider_google| may be false because |template_url_service_| |
| 1768 // does not exist yet or because the user selected a different search | 1769 // does not exist yet or because the user selected a different search |
| 1769 // provider. In either case it does not make sense to show the hotwording | 1770 // provider. In either case it does not make sense to show the hotwording |
| 1770 // options. | 1771 // options. |
| 1771 if (!is_search_provider_google) { | 1772 if (!is_search_provider_google) { |
| 1772 web_ui()->CallJavascriptFunction( | 1773 web_ui()->CallJavascriptFunctionUnsafe( |
| 1773 "BrowserOptions.setAllHotwordSectionsVisible", | 1774 "BrowserOptions.setAllHotwordSectionsVisible", |
| 1774 base::FundamentalValue(false)); | 1775 base::FundamentalValue(false)); |
| 1775 return; | 1776 return; |
| 1776 } | 1777 } |
| 1777 | 1778 |
| 1778 // Don't need to check the field trial here since |IsHotwordAllowed| also | 1779 // Don't need to check the field trial here since |IsHotwordAllowed| also |
| 1779 // checks it. | 1780 // checks it. |
| 1780 if (HotwordServiceFactory::IsHotwordAllowed(profile)) { | 1781 if (HotwordServiceFactory::IsHotwordAllowed(profile)) { |
| 1781 // Update the current error value. | 1782 // Update the current error value. |
| 1782 HotwordServiceFactory::IsServiceAvailable(profile); | 1783 HotwordServiceFactory::IsServiceAvailable(profile); |
| 1783 int error = HotwordServiceFactory::GetCurrentError(profile); | 1784 int error = HotwordServiceFactory::GetCurrentError(profile); |
| 1784 | 1785 |
| 1785 std::string function_name; | 1786 std::string function_name; |
| 1786 bool always_on = false; | 1787 bool always_on = false; |
| 1787 SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile); | 1788 SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile); |
| 1788 bool authenticated = signin && signin->IsAuthenticated(); | 1789 bool authenticated = signin && signin->IsAuthenticated(); |
| 1789 if (HotwordServiceFactory::IsAlwaysOnAvailable() && authenticated) { | 1790 if (HotwordServiceFactory::IsAlwaysOnAvailable() && authenticated) { |
| 1790 function_name = "BrowserOptions.showHotwordAlwaysOnSection"; | 1791 function_name = "BrowserOptions.showHotwordAlwaysOnSection"; |
| 1791 always_on = true; | 1792 always_on = true; |
| 1792 // Show the retrain link if always-on is enabled. | 1793 // Show the retrain link if always-on is enabled. |
| 1793 if (profile->GetPrefs()->GetBoolean( | 1794 if (profile->GetPrefs()->GetBoolean( |
| 1794 prefs::kHotwordAlwaysOnSearchEnabled)) { | 1795 prefs::kHotwordAlwaysOnSearchEnabled)) { |
| 1795 web_ui()->CallJavascriptFunction( | 1796 web_ui()->CallJavascriptFunctionUnsafe( |
| 1796 "BrowserOptions.setHotwordRetrainLinkVisible", | 1797 "BrowserOptions.setHotwordRetrainLinkVisible", |
| 1797 base::FundamentalValue(true)); | 1798 base::FundamentalValue(true)); |
| 1798 } | 1799 } |
| 1799 } else { | 1800 } else { |
| 1800 function_name = "BrowserOptions.showHotwordNoDspSection"; | 1801 function_name = "BrowserOptions.showHotwordNoDspSection"; |
| 1801 } | 1802 } |
| 1802 | 1803 |
| 1803 // Audio history should be displayed if it's enabled regardless of the | 1804 // Audio history should be displayed if it's enabled regardless of the |
| 1804 // hotword error state if the user is signed in. If the user is not signed | 1805 // hotword error state if the user is signed in. If the user is not signed |
| 1805 // in, audio history is meaningless. This is only displayed if always-on | 1806 // in, audio history is meaningless. This is only displayed if always-on |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1816 if (hotword_service) { | 1817 if (hotword_service) { |
| 1817 hotword_service->GetAudioHistoryHandler()->GetAudioHistoryEnabled( | 1818 hotword_service->GetAudioHistoryHandler()->GetAudioHistoryEnabled( |
| 1818 base::Bind( | 1819 base::Bind( |
| 1819 &BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible, | 1820 &BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible, |
| 1820 weak_ptr_factory_.GetWeakPtr(), | 1821 weak_ptr_factory_.GetWeakPtr(), |
| 1821 audio_history_state)); | 1822 audio_history_state)); |
| 1822 } | 1823 } |
| 1823 } | 1824 } |
| 1824 | 1825 |
| 1825 if (!error) { | 1826 if (!error) { |
| 1826 web_ui()->CallJavascriptFunction(function_name); | 1827 web_ui()->CallJavascriptFunctionUnsafe(function_name); |
| 1827 } else { | 1828 } else { |
| 1828 base::string16 hotword_help_url = | 1829 base::string16 hotword_help_url = |
| 1829 base::ASCIIToUTF16(chrome::kHotwordLearnMoreURL); | 1830 base::ASCIIToUTF16(chrome::kHotwordLearnMoreURL); |
| 1830 base::StringValue error_message(l10n_util::GetStringUTF16(error)); | 1831 base::StringValue error_message(l10n_util::GetStringUTF16(error)); |
| 1831 if (error == IDS_HOTWORD_GENERIC_ERROR_MESSAGE) { | 1832 if (error == IDS_HOTWORD_GENERIC_ERROR_MESSAGE) { |
| 1832 error_message = base::StringValue( | 1833 error_message = base::StringValue( |
| 1833 l10n_util::GetStringFUTF16(error, hotword_help_url)); | 1834 l10n_util::GetStringFUTF16(error, hotword_help_url)); |
| 1834 } | 1835 } |
| 1835 web_ui()->CallJavascriptFunction(function_name, error_message); | 1836 web_ui()->CallJavascriptFunctionUnsafe(function_name, error_message); |
| 1836 } | 1837 } |
| 1837 } | 1838 } |
| 1838 } | 1839 } |
| 1839 | 1840 |
| 1840 void BrowserOptionsHandler::HandleLaunchHotwordAudioVerificationApp( | 1841 void BrowserOptionsHandler::HandleLaunchHotwordAudioVerificationApp( |
| 1841 const base::ListValue* args) { | 1842 const base::ListValue* args) { |
| 1842 Profile* profile = Profile::FromWebUI(web_ui()); | 1843 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1843 | 1844 |
| 1844 bool retrain = false; | 1845 bool retrain = false; |
| 1845 bool success = args->GetBoolean(0, &retrain); | 1846 bool success = args->GetBoolean(0, &retrain); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1907 | 1908 |
| 1908 // Perform sign out. Current chrome process will then terminate, new one will | 1909 // Perform sign out. Current chrome process will then terminate, new one will |
| 1909 // be launched (as if it was a restart). | 1910 // be launched (as if it was a restart). |
| 1910 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 1911 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 1911 } | 1912 } |
| 1912 | 1913 |
| 1913 void BrowserOptionsHandler::SetupAccessibilityFeatures() { | 1914 void BrowserOptionsHandler::SetupAccessibilityFeatures() { |
| 1914 PrefService* pref_service = g_browser_process->local_state(); | 1915 PrefService* pref_service = g_browser_process->local_state(); |
| 1915 base::FundamentalValue virtual_keyboard_enabled( | 1916 base::FundamentalValue virtual_keyboard_enabled( |
| 1916 pref_service->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled)); | 1917 pref_service->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled)); |
| 1917 web_ui()->CallJavascriptFunction( | 1918 web_ui()->CallJavascriptFunctionUnsafe( |
| 1918 "BrowserOptions.setVirtualKeyboardCheckboxState", | 1919 "BrowserOptions.setVirtualKeyboardCheckboxState", |
| 1919 virtual_keyboard_enabled); | 1920 virtual_keyboard_enabled); |
| 1920 } | 1921 } |
| 1921 #endif | 1922 #endif |
| 1922 | 1923 |
| 1923 void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() { | 1924 void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() { |
| 1924 #if defined(GOOGLE_CHROME_BUILD) | 1925 #if defined(GOOGLE_CHROME_BUILD) |
| 1925 // Don't show the reporting setting if we are in the guest mode. | 1926 // Don't show the reporting setting if we are in the guest mode. |
| 1926 if (Profile::FromWebUI(web_ui())->IsGuestSession()) { | 1927 if (Profile::FromWebUI(web_ui())->IsGuestSession()) { |
| 1927 base::FundamentalValue visible(false); | 1928 base::FundamentalValue visible(false); |
| 1928 web_ui()->CallJavascriptFunction( | 1929 web_ui()->CallJavascriptFunctionUnsafe( |
| 1929 "BrowserOptions.setMetricsReportingSettingVisibility", visible); | 1930 "BrowserOptions.setMetricsReportingSettingVisibility", visible); |
| 1930 } | 1931 } |
| 1931 #endif | 1932 #endif |
| 1932 } | 1933 } |
| 1933 | 1934 |
| 1934 void BrowserOptionsHandler::SetupNetworkPredictionControl() { | 1935 void BrowserOptionsHandler::SetupNetworkPredictionControl() { |
| 1935 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 1936 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1936 | 1937 |
| 1937 base::DictionaryValue dict; | 1938 base::DictionaryValue dict; |
| 1938 dict.SetInteger("value", | 1939 dict.SetInteger("value", |
| 1939 pref_service->GetInteger(prefs::kNetworkPredictionOptions)); | 1940 pref_service->GetInteger(prefs::kNetworkPredictionOptions)); |
| 1940 dict.SetBoolean("disabled", | 1941 dict.SetBoolean("disabled", |
| 1941 !pref_service->IsUserModifiablePreference( | 1942 !pref_service->IsUserModifiablePreference( |
| 1942 prefs::kNetworkPredictionOptions)); | 1943 prefs::kNetworkPredictionOptions)); |
| 1943 | 1944 |
| 1944 web_ui()->CallJavascriptFunction("BrowserOptions.setNetworkPredictionValue", | 1945 web_ui()->CallJavascriptFunctionUnsafe( |
| 1945 dict); | 1946 "BrowserOptions.setNetworkPredictionValue", dict); |
| 1946 } | 1947 } |
| 1947 | 1948 |
| 1948 void BrowserOptionsHandler::SetupFontSizeSelector() { | 1949 void BrowserOptionsHandler::SetupFontSizeSelector() { |
| 1949 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 1950 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1950 const PrefService::Preference* default_font_size = | 1951 const PrefService::Preference* default_font_size = |
| 1951 pref_service->FindPreference(prefs::kWebKitDefaultFontSize); | 1952 pref_service->FindPreference(prefs::kWebKitDefaultFontSize); |
| 1952 const PrefService::Preference* default_fixed_font_size = | 1953 const PrefService::Preference* default_fixed_font_size = |
| 1953 pref_service->FindPreference(prefs::kWebKitDefaultFixedFontSize); | 1954 pref_service->FindPreference(prefs::kWebKitDefaultFixedFontSize); |
| 1954 | 1955 |
| 1955 base::DictionaryValue dict; | 1956 base::DictionaryValue dict; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1967 // This is a poor man's version of CoreOptionsHandler::CreateValueForPref, | 1968 // This is a poor man's version of CoreOptionsHandler::CreateValueForPref, |
| 1968 // adapted to consider two prefs. It may be better to refactor | 1969 // adapted to consider two prefs. It may be better to refactor |
| 1969 // CreateValueForPref so it can be called from here. | 1970 // CreateValueForPref so it can be called from here. |
| 1970 if (default_font_size->IsManaged() || default_fixed_font_size->IsManaged()) { | 1971 if (default_font_size->IsManaged() || default_fixed_font_size->IsManaged()) { |
| 1971 dict.SetString("controlledBy", "policy"); | 1972 dict.SetString("controlledBy", "policy"); |
| 1972 } else if (default_font_size->IsExtensionControlled() || | 1973 } else if (default_font_size->IsExtensionControlled() || |
| 1973 default_fixed_font_size->IsExtensionControlled()) { | 1974 default_fixed_font_size->IsExtensionControlled()) { |
| 1974 dict.SetString("controlledBy", "extension"); | 1975 dict.SetString("controlledBy", "extension"); |
| 1975 } | 1976 } |
| 1976 | 1977 |
| 1977 web_ui()->CallJavascriptFunction("BrowserOptions.setFontSize", dict); | 1978 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setFontSize", dict); |
| 1978 } | 1979 } |
| 1979 | 1980 |
| 1980 void BrowserOptionsHandler::SetupPageZoomSelector() { | 1981 void BrowserOptionsHandler::SetupPageZoomSelector() { |
| 1981 double default_zoom_level = | 1982 double default_zoom_level = |
| 1982 content::HostZoomMap::GetDefaultForBrowserContext( | 1983 content::HostZoomMap::GetDefaultForBrowserContext( |
| 1983 Profile::FromWebUI(web_ui()))->GetDefaultZoomLevel(); | 1984 Profile::FromWebUI(web_ui()))->GetDefaultZoomLevel(); |
| 1984 double default_zoom_factor = | 1985 double default_zoom_factor = |
| 1985 content::ZoomLevelToZoomFactor(default_zoom_level); | 1986 content::ZoomLevelToZoomFactor(default_zoom_level); |
| 1986 | 1987 |
| 1987 // Generate a vector of zoom factors from an array of known presets along with | 1988 // Generate a vector of zoom factors from an array of known presets along with |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2001 base::ListValue* option = new base::ListValue(); | 2002 base::ListValue* option = new base::ListValue(); |
| 2002 double factor = *i; | 2003 double factor = *i; |
| 2003 int percent = static_cast<int>(factor * 100 + 0.5); | 2004 int percent = static_cast<int>(factor * 100 + 0.5); |
| 2004 option->AppendString(base::FormatPercent(percent)); | 2005 option->AppendString(base::FormatPercent(percent)); |
| 2005 option->AppendDouble(factor); | 2006 option->AppendDouble(factor); |
| 2006 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor); | 2007 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor); |
| 2007 option->AppendBoolean(selected); | 2008 option->AppendBoolean(selected); |
| 2008 zoom_factors_value.Append(option); | 2009 zoom_factors_value.Append(option); |
| 2009 } | 2010 } |
| 2010 | 2011 |
| 2011 web_ui()->CallJavascriptFunction( | 2012 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setupPageZoomSelector", |
| 2012 "BrowserOptions.setupPageZoomSelector", zoom_factors_value); | 2013 zoom_factors_value); |
| 2013 } | 2014 } |
| 2014 | 2015 |
| 2015 void BrowserOptionsHandler::SetupAutoOpenFileTypes() { | 2016 void BrowserOptionsHandler::SetupAutoOpenFileTypes() { |
| 2016 // Set the hidden state for the AutoOpenFileTypesResetToDefault button. | 2017 // Set the hidden state for the AutoOpenFileTypesResetToDefault button. |
| 2017 // We show the button if the user has any auto-open file types registered. | 2018 // We show the button if the user has any auto-open file types registered. |
| 2018 DownloadManager* manager = BrowserContext::GetDownloadManager( | 2019 DownloadManager* manager = BrowserContext::GetDownloadManager( |
| 2019 web_ui()->GetWebContents()->GetBrowserContext()); | 2020 web_ui()->GetWebContents()->GetBrowserContext()); |
| 2020 bool display = manager && | 2021 bool display = manager && |
| 2021 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed(); | 2022 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed(); |
| 2022 base::FundamentalValue value(display); | 2023 base::FundamentalValue value(display); |
| 2023 web_ui()->CallJavascriptFunction( | 2024 web_ui()->CallJavascriptFunctionUnsafe( |
| 2024 "BrowserOptions.setAutoOpenFileTypesDisplayed", value); | 2025 "BrowserOptions.setAutoOpenFileTypesDisplayed", value); |
| 2025 } | 2026 } |
| 2026 | 2027 |
| 2027 void BrowserOptionsHandler::SetupProxySettingsSection() { | 2028 void BrowserOptionsHandler::SetupProxySettingsSection() { |
| 2028 #if !defined(OS_CHROMEOS) | 2029 #if !defined(OS_CHROMEOS) |
| 2029 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 2030 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 2030 const PrefService::Preference* proxy_config = | 2031 const PrefService::Preference* proxy_config = |
| 2031 pref_service->FindPreference(proxy_config::prefs::kProxy); | 2032 pref_service->FindPreference(proxy_config::prefs::kProxy); |
| 2032 bool is_extension_controlled = (proxy_config && | 2033 bool is_extension_controlled = (proxy_config && |
| 2033 proxy_config->IsExtensionControlled()); | 2034 proxy_config->IsExtensionControlled()); |
| 2034 | 2035 |
| 2035 base::FundamentalValue disabled(proxy_config && | 2036 base::FundamentalValue disabled(proxy_config && |
| 2036 !proxy_config->IsUserModifiable()); | 2037 !proxy_config->IsUserModifiable()); |
| 2037 base::FundamentalValue extension_controlled(is_extension_controlled); | 2038 base::FundamentalValue extension_controlled(is_extension_controlled); |
| 2038 web_ui()->CallJavascriptFunction("BrowserOptions.setupProxySettingsButton", | 2039 web_ui()->CallJavascriptFunctionUnsafe( |
| 2039 disabled, extension_controlled); | 2040 "BrowserOptions.setupProxySettingsButton", disabled, |
| 2041 extension_controlled); |
| 2040 | 2042 |
| 2041 #if defined(OS_WIN) | 2043 #if defined(OS_WIN) |
| 2042 SetupExtensionControlledIndicators(); | 2044 SetupExtensionControlledIndicators(); |
| 2043 #endif // defined(OS_WIN) | 2045 #endif // defined(OS_WIN) |
| 2044 | 2046 |
| 2045 #endif // !defined(OS_CHROMEOS) | 2047 #endif // !defined(OS_CHROMEOS) |
| 2046 } | 2048 } |
| 2047 | 2049 |
| 2048 void BrowserOptionsHandler::SetupManagingSupervisedUsers() { | 2050 void BrowserOptionsHandler::SetupManagingSupervisedUsers() { |
| 2049 bool has_users = !Profile::FromWebUI(web_ui())-> | 2051 bool has_users = !Profile::FromWebUI(web_ui())-> |
| 2050 GetPrefs()->GetDictionary(prefs::kSupervisedUsers)->empty(); | 2052 GetPrefs()->GetDictionary(prefs::kSupervisedUsers)->empty(); |
| 2051 base::FundamentalValue has_users_value(has_users); | 2053 base::FundamentalValue has_users_value(has_users); |
| 2052 web_ui()->CallJavascriptFunction( | 2054 web_ui()->CallJavascriptFunctionUnsafe( |
| 2053 "BrowserOptions.updateManagesSupervisedUsers", | 2055 "BrowserOptions.updateManagesSupervisedUsers", has_users_value); |
| 2054 has_users_value); | |
| 2055 } | 2056 } |
| 2056 | 2057 |
| 2057 void BrowserOptionsHandler::SetupEasyUnlock() { | 2058 void BrowserOptionsHandler::SetupEasyUnlock() { |
| 2058 base::FundamentalValue is_enabled( | 2059 base::FundamentalValue is_enabled( |
| 2059 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled()); | 2060 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled()); |
| 2060 web_ui()->CallJavascriptFunction( | 2061 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateEasyUnlock", |
| 2061 "BrowserOptions.updateEasyUnlock", | 2062 is_enabled); |
| 2062 is_enabled); | |
| 2063 } | 2063 } |
| 2064 | 2064 |
| 2065 void BrowserOptionsHandler::SetupExtensionControlledIndicators() { | 2065 void BrowserOptionsHandler::SetupExtensionControlledIndicators() { |
| 2066 #if defined(OS_WIN) | 2066 #if defined(OS_WIN) |
| 2067 base::DictionaryValue extension_controlled; | 2067 base::DictionaryValue extension_controlled; |
| 2068 | 2068 |
| 2069 // Check if an extension is overriding the Search Engine. | 2069 // Check if an extension is overriding the Search Engine. |
| 2070 const extensions::Extension* extension = | 2070 const extensions::Extension* extension = |
| 2071 extensions::GetExtensionOverridingSearchEngine( | 2071 extensions::GetExtensionOverridingSearchEngine( |
| 2072 Profile::FromWebUI(web_ui())); | 2072 Profile::FromWebUI(web_ui())); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2097 extension = registry->GetExtensionById(ntp_url.host(), | 2097 extension = registry->GetExtensionById(ntp_url.host(), |
| 2098 ExtensionRegistry::ENABLED); | 2098 ExtensionRegistry::ENABLED); |
| 2099 } | 2099 } |
| 2100 AppendExtensionData("newTabPage", extension, &extension_controlled); | 2100 AppendExtensionData("newTabPage", extension, &extension_controlled); |
| 2101 | 2101 |
| 2102 // Check if an extension is overwriting the proxy setting. | 2102 // Check if an extension is overwriting the proxy setting. |
| 2103 extension = extensions::GetExtensionOverridingProxy( | 2103 extension = extensions::GetExtensionOverridingProxy( |
| 2104 Profile::FromWebUI(web_ui())); | 2104 Profile::FromWebUI(web_ui())); |
| 2105 AppendExtensionData("proxy", extension, &extension_controlled); | 2105 AppendExtensionData("proxy", extension, &extension_controlled); |
| 2106 | 2106 |
| 2107 web_ui()->CallJavascriptFunction("BrowserOptions.toggleExtensionIndicators", | 2107 web_ui()->CallJavascriptFunctionUnsafe( |
| 2108 extension_controlled); | 2108 "BrowserOptions.toggleExtensionIndicators", extension_controlled); |
| 2109 #endif // defined(OS_WIN) | 2109 #endif // defined(OS_WIN) |
| 2110 } | 2110 } |
| 2111 | 2111 |
| 2112 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() { | 2112 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() { |
| 2113 // As the metrics and crash reporting checkbox only exists for official builds | 2113 // As the metrics and crash reporting checkbox only exists for official builds |
| 2114 // it doesn't need to be set up for non-official builds. | 2114 // it doesn't need to be set up for non-official builds. |
| 2115 #if defined(GOOGLE_CHROME_BUILD) | 2115 #if defined(GOOGLE_CHROME_BUILD) |
| 2116 bool checked = | 2116 bool checked = |
| 2117 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled(); | 2117 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled(); |
| 2118 bool policy_managed = IsMetricsReportingPolicyManaged(); | 2118 bool policy_managed = IsMetricsReportingPolicyManaged(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2155 } | 2155 } |
| 2156 | 2156 |
| 2157 void BrowserOptionsHandler::NotifyUIOfMetricsReportingChange(bool enabled) { | 2157 void BrowserOptionsHandler::NotifyUIOfMetricsReportingChange(bool enabled) { |
| 2158 SetMetricsReportingCheckbox(enabled, IsMetricsReportingPolicyManaged(), | 2158 SetMetricsReportingCheckbox(enabled, IsMetricsReportingPolicyManaged(), |
| 2159 !IsDeviceOwnerProfile()); | 2159 !IsDeviceOwnerProfile()); |
| 2160 } | 2160 } |
| 2161 | 2161 |
| 2162 void BrowserOptionsHandler::SetMetricsReportingCheckbox(bool checked, | 2162 void BrowserOptionsHandler::SetMetricsReportingCheckbox(bool checked, |
| 2163 bool policy_managed, | 2163 bool policy_managed, |
| 2164 bool owner_managed) { | 2164 bool owner_managed) { |
| 2165 web_ui()->CallJavascriptFunction( | 2165 web_ui()->CallJavascriptFunctionUnsafe( |
| 2166 "BrowserOptions.setMetricsReportingCheckboxState", | 2166 "BrowserOptions.setMetricsReportingCheckboxState", |
| 2167 base::FundamentalValue(checked), base::FundamentalValue(policy_managed), | 2167 base::FundamentalValue(checked), base::FundamentalValue(policy_managed), |
| 2168 base::FundamentalValue(owner_managed)); | 2168 base::FundamentalValue(owner_managed)); |
| 2169 } | 2169 } |
| 2170 | 2170 |
| 2171 void BrowserOptionsHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns, | 2171 void BrowserOptionsHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns, |
| 2172 const policy::PolicyMap& previous, | 2172 const policy::PolicyMap& previous, |
| 2173 const policy::PolicyMap& current) { | 2173 const policy::PolicyMap& current) { |
| 2174 std::set<std::string> different_keys; | 2174 std::set<std::string> different_keys; |
| 2175 current.GetDifferingKeys(previous, &different_keys); | 2175 current.GetDifferingKeys(previous, &different_keys); |
| 2176 if (ContainsKey(different_keys, policy::key::kMetricsReportingEnabled)) | 2176 if (ContainsKey(different_keys, policy::key::kMetricsReportingEnabled)) |
| 2177 SetupMetricsReportingCheckbox(); | 2177 SetupMetricsReportingCheckbox(); |
| 2178 } | 2178 } |
| 2179 | 2179 |
| 2180 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { | 2180 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { |
| 2181 #if defined(OS_CHROMEOS) | 2181 #if defined(OS_CHROMEOS) |
| 2182 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); | 2182 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); |
| 2183 #else | 2183 #else |
| 2184 return true; | 2184 return true; |
| 2185 #endif | 2185 #endif |
| 2186 } | 2186 } |
| 2187 | 2187 |
| 2188 } // namespace options | 2188 } // namespace options |
| OLD | NEW |