| 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 #include <utility> | 10 #include <utility> |
| 11 | 11 |
| 12 #include "base/bind.h" | 12 #include "base/bind.h" |
| 13 #include "base/bind_helpers.h" | 13 #include "base/bind_helpers.h" |
| 14 #include "base/command_line.h" | 14 #include "base/command_line.h" |
| 15 #include "base/environment.h" | 15 #include "base/environment.h" |
| 16 #include "base/i18n/number_formatting.h" | 16 #include "base/i18n/number_formatting.h" |
| 17 #include "base/macros.h" | 17 #include "base/macros.h" |
| 18 #include "base/memory/singleton.h" | 18 #include "base/memory/singleton.h" |
| 19 #include "base/metrics/field_trial.h" | 19 #include "base/metrics/field_trial.h" |
| 20 #include "base/metrics/histogram_macros.h" | 20 #include "base/metrics/histogram_macros.h" |
| 21 #include "base/metrics/user_metrics.h" |
| 21 #include "base/stl_util.h" | 22 #include "base/stl_util.h" |
| 22 #include "base/strings/string_number_conversions.h" | 23 #include "base/strings/string_number_conversions.h" |
| 23 #include "base/strings/utf_string_conversions.h" | 24 #include "base/strings/utf_string_conversions.h" |
| 24 #include "base/value_conversions.h" | 25 #include "base/value_conversions.h" |
| 25 #include "base/values.h" | 26 #include "base/values.h" |
| 26 #include "build/build_config.h" | 27 #include "build/build_config.h" |
| 27 #include "chrome/browser/browser_process.h" | 28 #include "chrome/browser/browser_process.h" |
| 28 #include "chrome/browser/chrome_notification_types.h" | 29 #include "chrome/browser/chrome_notification_types.h" |
| 29 #include "chrome/browser/custom_home_pages_table_model.h" | 30 #include "chrome/browser/custom_home_pages_table_model.h" |
| 30 #include "chrome/browser/download/download_prefs.h" | 31 #include "chrome/browser/download/download_prefs.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 #include "components/zoom/page_zoom.h" | 95 #include "components/zoom/page_zoom.h" |
| 95 #include "content/public/browser/browser_thread.h" | 96 #include "content/public/browser/browser_thread.h" |
| 96 #include "content/public/browser/browser_url_handler.h" | 97 #include "content/public/browser/browser_url_handler.h" |
| 97 #include "content/public/browser/download_manager.h" | 98 #include "content/public/browser/download_manager.h" |
| 98 #include "content/public/browser/navigation_controller.h" | 99 #include "content/public/browser/navigation_controller.h" |
| 99 #include "content/public/browser/notification_details.h" | 100 #include "content/public/browser/notification_details.h" |
| 100 #include "content/public/browser/notification_service.h" | 101 #include "content/public/browser/notification_service.h" |
| 101 #include "content/public/browser/notification_source.h" | 102 #include "content/public/browser/notification_source.h" |
| 102 #include "content/public/browser/notification_types.h" | 103 #include "content/public/browser/notification_types.h" |
| 103 #include "content/public/browser/url_data_source.h" | 104 #include "content/public/browser/url_data_source.h" |
| 104 #include "content/public/browser/user_metrics.h" | |
| 105 #include "content/public/browser/web_contents.h" | 105 #include "content/public/browser/web_contents.h" |
| 106 #include "content/public/common/page_zoom.h" | 106 #include "content/public/common/page_zoom.h" |
| 107 #include "extensions/browser/extension_registry.h" | 107 #include "extensions/browser/extension_registry.h" |
| 108 #include "google_apis/gaia/gaia_auth_util.h" | 108 #include "google_apis/gaia/gaia_auth_util.h" |
| 109 #include "google_apis/gaia/google_service_auth_error.h" | 109 #include "google_apis/gaia/google_service_auth_error.h" |
| 110 #include "printing/features/features.h" | 110 #include "printing/features/features.h" |
| 111 #include "third_party/skia/include/core/SkBitmap.h" | 111 #include "third_party/skia/include/core/SkBitmap.h" |
| 112 #include "ui/base/l10n/l10n_util.h" | 112 #include "ui/base/l10n/l10n_util.h" |
| 113 #include "ui/base/webui/web_ui_util.h" | 113 #include "ui/base/webui/web_ui_util.h" |
| 114 | 114 |
| (...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 void BrowserOptionsHandler::UpdateDefaultBrowserState() { | 1272 void BrowserOptionsHandler::UpdateDefaultBrowserState() { |
| 1273 default_browser_worker_->StartCheckIsDefault(); | 1273 default_browser_worker_->StartCheckIsDefault(); |
| 1274 } | 1274 } |
| 1275 | 1275 |
| 1276 void BrowserOptionsHandler::BecomeDefaultBrowser(const base::ListValue* args) { | 1276 void BrowserOptionsHandler::BecomeDefaultBrowser(const base::ListValue* args) { |
| 1277 // If the default browser setting is managed then we should not be able to | 1277 // If the default browser setting is managed then we should not be able to |
| 1278 // call this function. | 1278 // call this function. |
| 1279 if (IsDisabledByPolicy(default_browser_policy_)) | 1279 if (IsDisabledByPolicy(default_browser_policy_)) |
| 1280 return; | 1280 return; |
| 1281 | 1281 |
| 1282 content::RecordAction(UserMetricsAction("Options_SetAsDefaultBrowser")); | 1282 base::RecordAction(UserMetricsAction("Options_SetAsDefaultBrowser")); |
| 1283 UMA_HISTOGRAM_COUNTS("Settings.StartSetAsDefault", true); | 1283 UMA_HISTOGRAM_COUNTS("Settings.StartSetAsDefault", true); |
| 1284 | 1284 |
| 1285 // Callback takes care of updating UI. | 1285 // Callback takes care of updating UI. |
| 1286 default_browser_worker_->StartSetAsDefault(); | 1286 default_browser_worker_->StartSetAsDefault(); |
| 1287 | 1287 |
| 1288 // If the user attempted to make Chrome the default browser, notify | 1288 // If the user attempted to make Chrome the default browser, notify |
| 1289 // them when this changes. | 1289 // them when this changes. |
| 1290 chrome::ResetDefaultBrowserPrompt(Profile::FromWebUI(web_ui())); | 1290 chrome::ResetDefaultBrowserPrompt(Profile::FromWebUI(web_ui())); |
| 1291 } | 1291 } |
| 1292 | 1292 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1377 return; | 1377 return; |
| 1378 } | 1378 } |
| 1379 | 1379 |
| 1380 TemplateURLService::TemplateURLVector model_urls( | 1380 TemplateURLService::TemplateURLVector model_urls( |
| 1381 template_url_service_->GetTemplateURLs()); | 1381 template_url_service_->GetTemplateURLs()); |
| 1382 if (selected_index >= 0 && | 1382 if (selected_index >= 0 && |
| 1383 selected_index < static_cast<int>(model_urls.size())) | 1383 selected_index < static_cast<int>(model_urls.size())) |
| 1384 template_url_service_->SetUserSelectedDefaultSearchProvider( | 1384 template_url_service_->SetUserSelectedDefaultSearchProvider( |
| 1385 model_urls[selected_index]); | 1385 model_urls[selected_index]); |
| 1386 | 1386 |
| 1387 content::RecordAction(UserMetricsAction("Options_SearchEngineChanged")); | 1387 base::RecordAction(UserMetricsAction("Options_SearchEngineChanged")); |
| 1388 } | 1388 } |
| 1389 | 1389 |
| 1390 void BrowserOptionsHandler::AddTemplateUrlServiceObserver() { | 1390 void BrowserOptionsHandler::AddTemplateUrlServiceObserver() { |
| 1391 template_url_service_ = | 1391 template_url_service_ = |
| 1392 TemplateURLServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); | 1392 TemplateURLServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); |
| 1393 if (template_url_service_) { | 1393 if (template_url_service_) { |
| 1394 template_url_service_->Load(); | 1394 template_url_service_->Load(); |
| 1395 template_url_service_->AddObserver(this); | 1395 template_url_service_->AddObserver(this); |
| 1396 } | 1396 } |
| 1397 } | 1397 } |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1534 | 1534 |
| 1535 bool is_classic_theme = !is_system_theme && | 1535 bool is_classic_theme = !is_system_theme && |
| 1536 theme_service->UsingDefaultTheme(); | 1536 theme_service->UsingDefaultTheme(); |
| 1537 base::Value enabled(!is_classic_theme); | 1537 base::Value enabled(!is_classic_theme); |
| 1538 web_ui()->CallJavascriptFunctionUnsafe( | 1538 web_ui()->CallJavascriptFunctionUnsafe( |
| 1539 "BrowserOptions.setThemesResetButtonEnabled", enabled); | 1539 "BrowserOptions.setThemesResetButtonEnabled", enabled); |
| 1540 } | 1540 } |
| 1541 | 1541 |
| 1542 void BrowserOptionsHandler::ThemesReset(const base::ListValue* args) { | 1542 void BrowserOptionsHandler::ThemesReset(const base::ListValue* args) { |
| 1543 Profile* profile = Profile::FromWebUI(web_ui()); | 1543 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1544 content::RecordAction(UserMetricsAction("Options_ThemesReset")); | 1544 base::RecordAction(UserMetricsAction("Options_ThemesReset")); |
| 1545 ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme(); | 1545 ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme(); |
| 1546 } | 1546 } |
| 1547 | 1547 |
| 1548 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 1548 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 1549 void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) { | 1549 void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) { |
| 1550 content::RecordAction(UserMetricsAction("Options_GtkThemeSet")); | 1550 base::RecordAction(UserMetricsAction("Options_GtkThemeSet")); |
| 1551 Profile* profile = Profile::FromWebUI(web_ui()); | 1551 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1552 ThemeServiceFactory::GetForProfile(profile)->UseSystemTheme(); | 1552 ThemeServiceFactory::GetForProfile(profile)->UseSystemTheme(); |
| 1553 } | 1553 } |
| 1554 #endif | 1554 #endif |
| 1555 | 1555 |
| 1556 #if defined(OS_CHROMEOS) | 1556 #if defined(OS_CHROMEOS) |
| 1557 void BrowserOptionsHandler::UpdateAccountPicture() { | 1557 void BrowserOptionsHandler::UpdateAccountPicture() { |
| 1558 std::string email = user_manager::UserManager::Get() | 1558 std::string email = user_manager::UserManager::Get() |
| 1559 ->GetActiveUser() | 1559 ->GetActiveUser() |
| 1560 ->GetAccountId() | 1560 ->GetAccountId() |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1676 pref_service->GetFilePath(prefs::kDownloadDefaultDirectory), | 1676 pref_service->GetFilePath(prefs::kDownloadDefaultDirectory), |
| 1677 &info, | 1677 &info, |
| 1678 0, | 1678 0, |
| 1679 base::FilePath::StringType(), | 1679 base::FilePath::StringType(), |
| 1680 web_ui()->GetWebContents()->GetTopLevelNativeWindow(), | 1680 web_ui()->GetWebContents()->GetTopLevelNativeWindow(), |
| 1681 NULL); | 1681 NULL); |
| 1682 } | 1682 } |
| 1683 | 1683 |
| 1684 void BrowserOptionsHandler::FileSelected(const base::FilePath& path, int index, | 1684 void BrowserOptionsHandler::FileSelected(const base::FilePath& path, int index, |
| 1685 void* params) { | 1685 void* params) { |
| 1686 content::RecordAction(UserMetricsAction("Options_SetDownloadDirectory")); | 1686 base::RecordAction(UserMetricsAction("Options_SetDownloadDirectory")); |
| 1687 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 1687 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1688 pref_service->SetFilePath(prefs::kDownloadDefaultDirectory, path); | 1688 pref_service->SetFilePath(prefs::kDownloadDefaultDirectory, path); |
| 1689 pref_service->SetFilePath(prefs::kSaveFileDefaultDirectory, path); | 1689 pref_service->SetFilePath(prefs::kSaveFileDefaultDirectory, path); |
| 1690 } | 1690 } |
| 1691 | 1691 |
| 1692 #if defined(OS_CHROMEOS) | 1692 #if defined(OS_CHROMEOS) |
| 1693 void BrowserOptionsHandler::TouchpadExists(bool exists) { | 1693 void BrowserOptionsHandler::TouchpadExists(bool exists) { |
| 1694 base::Value val(exists); | 1694 base::Value val(exists); |
| 1695 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.showTouchpadControls", | 1695 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.showTouchpadControls", |
| 1696 val); | 1696 val); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1739 web_ui()->CallJavascriptFunctionUnsafe( | 1739 web_ui()->CallJavascriptFunctionUnsafe( |
| 1740 "BrowserOptions.setAllHotwordSectionsVisible", base::Value(false)); | 1740 "BrowserOptions.setAllHotwordSectionsVisible", base::Value(false)); |
| 1741 HandleRequestHotwordAvailable(nullptr); | 1741 HandleRequestHotwordAvailable(nullptr); |
| 1742 } | 1742 } |
| 1743 | 1743 |
| 1744 void BrowserOptionsHandler::OnSigninAllowedPrefChange() { | 1744 void BrowserOptionsHandler::OnSigninAllowedPrefChange() { |
| 1745 UpdateSyncState(); | 1745 UpdateSyncState(); |
| 1746 } | 1746 } |
| 1747 | 1747 |
| 1748 void BrowserOptionsHandler::HandleAutoOpenButton(const base::ListValue* args) { | 1748 void BrowserOptionsHandler::HandleAutoOpenButton(const base::ListValue* args) { |
| 1749 content::RecordAction(UserMetricsAction("Options_ResetAutoOpenFiles")); | 1749 base::RecordAction(UserMetricsAction("Options_ResetAutoOpenFiles")); |
| 1750 DownloadManager* manager = BrowserContext::GetDownloadManager( | 1750 DownloadManager* manager = BrowserContext::GetDownloadManager( |
| 1751 web_ui()->GetWebContents()->GetBrowserContext()); | 1751 web_ui()->GetWebContents()->GetBrowserContext()); |
| 1752 if (manager) | 1752 if (manager) |
| 1753 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); | 1753 DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); |
| 1754 } | 1754 } |
| 1755 | 1755 |
| 1756 void BrowserOptionsHandler::HandleDefaultFontSize(const base::ListValue* args) { | 1756 void BrowserOptionsHandler::HandleDefaultFontSize(const base::ListValue* args) { |
| 1757 int font_size; | 1757 int font_size; |
| 1758 if (ExtractIntegerValue(args, &font_size)) { | 1758 if (ExtractIntegerValue(args, &font_size)) { |
| 1759 if (font_size > 0) { | 1759 if (font_size > 0) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1781 } | 1781 } |
| 1782 | 1782 |
| 1783 void BrowserOptionsHandler::HandleRequestProfilesInfo( | 1783 void BrowserOptionsHandler::HandleRequestProfilesInfo( |
| 1784 const base::ListValue* args) { | 1784 const base::ListValue* args) { |
| 1785 SendProfilesInfo(); | 1785 SendProfilesInfo(); |
| 1786 } | 1786 } |
| 1787 | 1787 |
| 1788 #if !defined(OS_CHROMEOS) | 1788 #if !defined(OS_CHROMEOS) |
| 1789 void BrowserOptionsHandler::ShowNetworkProxySettings( | 1789 void BrowserOptionsHandler::ShowNetworkProxySettings( |
| 1790 const base::ListValue* args) { | 1790 const base::ListValue* args) { |
| 1791 content::RecordAction(UserMetricsAction("Options_ShowProxySettings")); | 1791 base::RecordAction(UserMetricsAction("Options_ShowProxySettings")); |
| 1792 settings_utils::ShowNetworkProxySettings(web_ui()->GetWebContents()); | 1792 settings_utils::ShowNetworkProxySettings(web_ui()->GetWebContents()); |
| 1793 } | 1793 } |
| 1794 #endif | 1794 #endif |
| 1795 | 1795 |
| 1796 #if defined(OS_WIN) || defined(OS_MACOSX) | 1796 #if defined(OS_WIN) || defined(OS_MACOSX) |
| 1797 void BrowserOptionsHandler::ShowManageSSLCertificates( | 1797 void BrowserOptionsHandler::ShowManageSSLCertificates( |
| 1798 const base::ListValue* args) { | 1798 const base::ListValue* args) { |
| 1799 content::RecordAction(UserMetricsAction("Options_ManageSSLCertificates")); | 1799 base::RecordAction(UserMetricsAction("Options_ManageSSLCertificates")); |
| 1800 settings_utils::ShowManageSSLCertificates(web_ui()->GetWebContents()); | 1800 settings_utils::ShowManageSSLCertificates(web_ui()->GetWebContents()); |
| 1801 } | 1801 } |
| 1802 #endif | 1802 #endif |
| 1803 | 1803 |
| 1804 #if defined(OS_CHROMEOS) | 1804 #if defined(OS_CHROMEOS) |
| 1805 void BrowserOptionsHandler::ShowCupsPrintDevicesPage( | 1805 void BrowserOptionsHandler::ShowCupsPrintDevicesPage( |
| 1806 const base::ListValue* args) { | 1806 const base::ListValue* args) { |
| 1807 // Navigate in current tab to CUPS printers management page. | 1807 // Navigate in current tab to CUPS printers management page. |
| 1808 OpenURLParams params(GURL(chrome::kChromeUIMdCupsSettingsURL), Referrer(), | 1808 OpenURLParams params(GURL(chrome::kChromeUIMdCupsSettingsURL), Referrer(), |
| 1809 WindowOpenDisposition::NEW_FOREGROUND_TAB, | 1809 WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 1810 ui::PAGE_TRANSITION_LINK, false); | 1810 ui::PAGE_TRANSITION_LINK, false); |
| 1811 web_ui()->GetWebContents()->OpenURL(params); | 1811 web_ui()->GetWebContents()->OpenURL(params); |
| 1812 } | 1812 } |
| 1813 #endif // defined(OS_CHROMEOS) | 1813 #endif // defined(OS_CHROMEOS) |
| 1814 | 1814 |
| 1815 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) | 1815 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) |
| 1816 void BrowserOptionsHandler::ShowCloudPrintDevicesPage( | 1816 void BrowserOptionsHandler::ShowCloudPrintDevicesPage( |
| 1817 const base::ListValue* args) { | 1817 const base::ListValue* args) { |
| 1818 content::RecordAction(UserMetricsAction("Options_CloudPrintDevicesPage")); | 1818 base::RecordAction(UserMetricsAction("Options_CloudPrintDevicesPage")); |
| 1819 // Navigate in current tab to devices page. | 1819 // Navigate in current tab to devices page. |
| 1820 OpenURLParams params(GURL(chrome::kChromeUIDevicesURL), Referrer(), | 1820 OpenURLParams params(GURL(chrome::kChromeUIDevicesURL), Referrer(), |
| 1821 WindowOpenDisposition::CURRENT_TAB, | 1821 WindowOpenDisposition::CURRENT_TAB, |
| 1822 ui::PAGE_TRANSITION_LINK, false); | 1822 ui::PAGE_TRANSITION_LINK, false); |
| 1823 web_ui()->GetWebContents()->OpenURL(params); | 1823 web_ui()->GetWebContents()->OpenURL(params); |
| 1824 } | 1824 } |
| 1825 #endif | 1825 #endif |
| 1826 | 1826 |
| 1827 void BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible( | 1827 void BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible( |
| 1828 const base::string16& audio_history_state, | 1828 const base::string16& audio_history_state, |
| (...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2364 | 2364 |
| 2365 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { | 2365 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { |
| 2366 #if defined(OS_CHROMEOS) | 2366 #if defined(OS_CHROMEOS) |
| 2367 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); | 2367 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); |
| 2368 #else | 2368 #else |
| 2369 return true; | 2369 return true; |
| 2370 #endif | 2370 #endif |
| 2371 } | 2371 } |
| 2372 | 2372 |
| 2373 } // namespace options | 2373 } // namespace options |
| OLD | NEW |