| 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 <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" | 37 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" |
| 38 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" | 38 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" |
| 39 #include "chrome/browser/profiles/profile.h" | 39 #include "chrome/browser/profiles/profile.h" |
| 40 #include "chrome/browser/profiles/profile_avatar_icon_util.h" | 40 #include "chrome/browser/profiles/profile_avatar_icon_util.h" |
| 41 #include "chrome/browser/profiles/profile_info_cache.h" | 41 #include "chrome/browser/profiles/profile_info_cache.h" |
| 42 #include "chrome/browser/profiles/profile_manager.h" | 42 #include "chrome/browser/profiles/profile_manager.h" |
| 43 #include "chrome/browser/profiles/profile_metrics.h" | 43 #include "chrome/browser/profiles/profile_metrics.h" |
| 44 #include "chrome/browser/profiles/profile_shortcut_manager.h" | 44 #include "chrome/browser/profiles/profile_shortcut_manager.h" |
| 45 #include "chrome/browser/profiles/profile_window.h" | 45 #include "chrome/browser/profiles/profile_window.h" |
| 46 #include "chrome/browser/profiles/profiles_state.h" | 46 #include "chrome/browser/profiles/profiles_state.h" |
| 47 #include "chrome/browser/search/hotword_audio_history_handler.h" |
| 47 #include "chrome/browser/search/hotword_service.h" | 48 #include "chrome/browser/search/hotword_service.h" |
| 48 #include "chrome/browser/search/hotword_service_factory.h" | 49 #include "chrome/browser/search/hotword_service_factory.h" |
| 49 #include "chrome/browser/search/search.h" | 50 #include "chrome/browser/search/search.h" |
| 50 #include "chrome/browser/search_engines/template_url_service_factory.h" | 51 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 51 #include "chrome/browser/signin/easy_unlock_service.h" | 52 #include "chrome/browser/signin/easy_unlock_service.h" |
| 52 #include "chrome/browser/signin/signin_manager_factory.h" | 53 #include "chrome/browser/signin/signin_manager_factory.h" |
| 53 #include "chrome/browser/sync/profile_sync_service.h" | 54 #include "chrome/browser/sync/profile_sync_service.h" |
| 54 #include "chrome/browser/sync/profile_sync_service_factory.h" | 55 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 55 #include "chrome/browser/sync/sync_ui_util.h" | 56 #include "chrome/browser/sync/sync_ui_util.h" |
| 56 #include "chrome/browser/themes/theme_service.h" | 57 #include "chrome/browser/themes/theme_service.h" |
| (...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 user_manager::User* user = | 547 user_manager::User* user = |
| 547 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); | 548 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
| 548 if (user && (user->GetType() != user_manager::USER_TYPE_GUEST)) | 549 if (user && (user->GetType() != user_manager::USER_TYPE_GUEST)) |
| 549 username = user->email(); | 550 username = user->email(); |
| 550 } | 551 } |
| 551 if (!username.empty()) | 552 if (!username.empty()) |
| 552 username = gaia::SanitizeEmail(gaia::CanonicalizeEmail(username)); | 553 username = gaia::SanitizeEmail(gaia::CanonicalizeEmail(username)); |
| 553 | 554 |
| 554 values->SetString("username", username); | 555 values->SetString("username", username); |
| 555 #endif | 556 #endif |
| 556 | |
| 557 // Pass along sync status early so it will be available during page init. | 557 // Pass along sync status early so it will be available during page init. |
| 558 values->Set("syncData", GetSyncStateDictionary().release()); | 558 values->Set("syncData", GetSyncStateDictionary().release()); |
| 559 | 559 |
| 560 values->SetString("privacyLearnMoreURL", chrome::kPrivacyLearnMoreURL); | 560 values->SetString("privacyLearnMoreURL", chrome::kPrivacyLearnMoreURL); |
| 561 values->SetString("doNotTrackLearnMoreURL", chrome::kDoNotTrackLearnMoreURL); | 561 values->SetString("doNotTrackLearnMoreURL", chrome::kDoNotTrackLearnMoreURL); |
| 562 | 562 |
| 563 #if !defined(OS_CHROMEOS) | 563 #if !defined(OS_CHROMEOS) |
| 564 values->SetBoolean("metricsReportingEnabledAtStart", | 564 values->SetBoolean("metricsReportingEnabledAtStart", |
| 565 ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()); | 565 ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()); |
| 566 #endif | 566 #endif |
| (...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1660 content::RecordAction(UserMetricsAction("Options_CloudPrintDevicesPage")); | 1660 content::RecordAction(UserMetricsAction("Options_CloudPrintDevicesPage")); |
| 1661 // Navigate in current tab to devices page. | 1661 // Navigate in current tab to devices page. |
| 1662 OpenURLParams params( | 1662 OpenURLParams params( |
| 1663 GURL(chrome::kChromeUIDevicesURL), Referrer(), | 1663 GURL(chrome::kChromeUIDevicesURL), Referrer(), |
| 1664 CURRENT_TAB, ui::PAGE_TRANSITION_LINK, false); | 1664 CURRENT_TAB, ui::PAGE_TRANSITION_LINK, false); |
| 1665 web_ui()->GetWebContents()->OpenURL(params); | 1665 web_ui()->GetWebContents()->OpenURL(params); |
| 1666 } | 1666 } |
| 1667 | 1667 |
| 1668 #endif | 1668 #endif |
| 1669 | 1669 |
| 1670 void BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible( |
| 1671 bool always_on, const base::string16& audio_history_state, |
| 1672 bool success, bool logging_enabled) { |
| 1673 web_ui()->CallJavascriptFunction( |
| 1674 "BrowserOptions.setAudioHistorySectionVisible", |
| 1675 base::FundamentalValue(logging_enabled), |
| 1676 base::FundamentalValue(always_on), |
| 1677 base::StringValue(audio_history_state)); |
| 1678 |
| 1679 // TODO(rlp): Add version with error display if !success. |
| 1680 } |
| 1681 |
| 1670 void BrowserOptionsHandler::HandleRequestHotwordAvailable( | 1682 void BrowserOptionsHandler::HandleRequestHotwordAvailable( |
| 1671 const base::ListValue* args) { | 1683 const base::ListValue* args) { |
| 1672 Profile* profile = Profile::FromWebUI(web_ui()); | 1684 Profile* profile = Profile::FromWebUI(web_ui()); |
| 1673 std::string group = base::FieldTrialList::FindFullName("VoiceTrigger"); | 1685 std::string group = base::FieldTrialList::FindFullName("VoiceTrigger"); |
| 1674 if (group != "" && group != "Disabled" && | 1686 if (group != "" && group != "Disabled" && |
| 1675 HotwordServiceFactory::IsHotwordAllowed(profile)) { | 1687 HotwordServiceFactory::IsHotwordAllowed(profile)) { |
| 1676 // Update the current error value. | 1688 // Update the current error value. |
| 1677 HotwordServiceFactory::IsServiceAvailable(profile); | 1689 HotwordServiceFactory::IsServiceAvailable(profile); |
| 1678 int error = HotwordServiceFactory::GetCurrentError(profile); | 1690 int error = HotwordServiceFactory::GetCurrentError(profile); |
| 1679 | 1691 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1697 function_name = "BrowserOptions.showHotwordNoDspSection"; | 1709 function_name = "BrowserOptions.showHotwordNoDspSection"; |
| 1698 } | 1710 } |
| 1699 } else { | 1711 } else { |
| 1700 function_name = "BrowserOptions.showHotwordSection"; | 1712 function_name = "BrowserOptions.showHotwordSection"; |
| 1701 } | 1713 } |
| 1702 | 1714 |
| 1703 // Audio history should be displayed if it's enabled regardless of the | 1715 // Audio history should be displayed if it's enabled regardless of the |
| 1704 // hotword error state if the user is signed in. If the user is not signed | 1716 // hotword error state if the user is signed in. If the user is not signed |
| 1705 // in, audio history is meaningless. An additional message is displayed if | 1717 // in, audio history is meaningless. An additional message is displayed if |
| 1706 // always-on hotwording is enabled. | 1718 // always-on hotwording is enabled. |
| 1707 if (profile->GetPrefs()->GetBoolean(prefs::kHotwordAudioLoggingEnabled) && | 1719 if (HotwordService::IsExperimentalHotwordingEnabled() && |
| 1708 HotwordService::IsExperimentalHotwordingEnabled() && | |
| 1709 authenticated) { | 1720 authenticated) { |
| 1710 std::string user_display_name = signin->GetAuthenticatedUsername(); | 1721 std::string user_display_name = signin->GetAuthenticatedUsername(); |
| 1711 DCHECK(!user_display_name.empty()); | 1722 DCHECK(!user_display_name.empty()); |
| 1712 | |
| 1713 base::string16 audio_history_state = | 1723 base::string16 audio_history_state = |
| 1714 l10n_util::GetStringFUTF16(IDS_HOTWORD_AUDIO_HISTORY_ENABLED, | 1724 l10n_util::GetStringFUTF16(IDS_HOTWORD_AUDIO_HISTORY_ENABLED, |
| 1715 base::ASCIIToUTF16(user_display_name)); | 1725 base::ASCIIToUTF16(user_display_name)); |
| 1716 web_ui()->CallJavascriptFunction("BrowserOptions.showAudioHistorySection", | 1726 HotwordService* hotword_service = |
| 1717 base::FundamentalValue(always_on), | 1727 HotwordServiceFactory::GetForProfile(profile); |
| 1718 base::StringValue(audio_history_state)); | 1728 if (hotword_service) { |
| 1729 hotword_service->GetAudioHistoryHandler()->GetAudioHistoryEnabled( |
| 1730 base::Bind( |
| 1731 &BrowserOptionsHandler::SetHotwordAudioHistorySectionVisible, |
| 1732 weak_ptr_factory_.GetWeakPtr(), |
| 1733 always_on, audio_history_state)); |
| 1734 } |
| 1719 } | 1735 } |
| 1720 | 1736 |
| 1721 if (!error) { | 1737 if (!error) { |
| 1722 web_ui()->CallJavascriptFunction(function_name); | 1738 web_ui()->CallJavascriptFunction(function_name); |
| 1723 } else { | 1739 } else { |
| 1724 base::string16 hotword_help_url = | 1740 base::string16 hotword_help_url = |
| 1725 base::ASCIIToUTF16(chrome::kHotwordLearnMoreURL); | 1741 base::ASCIIToUTF16(chrome::kHotwordLearnMoreURL); |
| 1726 base::StringValue error_message(l10n_util::GetStringUTF16(error)); | 1742 base::StringValue error_message(l10n_util::GetStringUTF16(error)); |
| 1727 if (error == IDS_HOTWORD_GENERIC_ERROR_MESSAGE) { | 1743 if (error == IDS_HOTWORD_GENERIC_ERROR_MESSAGE) { |
| 1728 error_message = base::StringValue( | 1744 error_message = base::StringValue( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1743 HotwordService::LaunchMode launch_mode = | 1759 HotwordService::LaunchMode launch_mode = |
| 1744 HotwordService::HOTWORD_AND_AUDIO_HISTORY; | 1760 HotwordService::HOTWORD_AND_AUDIO_HISTORY; |
| 1745 | 1761 |
| 1746 if (retrain) { | 1762 if (retrain) { |
| 1747 DCHECK(profile->GetPrefs()->GetBoolean( | 1763 DCHECK(profile->GetPrefs()->GetBoolean( |
| 1748 prefs::kHotwordAlwaysOnSearchEnabled)); | 1764 prefs::kHotwordAlwaysOnSearchEnabled)); |
| 1749 DCHECK(profile->GetPrefs()->GetBoolean( | 1765 DCHECK(profile->GetPrefs()->GetBoolean( |
| 1750 prefs::kHotwordAudioLoggingEnabled)); | 1766 prefs::kHotwordAudioLoggingEnabled)); |
| 1751 | 1767 |
| 1752 launch_mode = HotwordService::RETRAIN; | 1768 launch_mode = HotwordService::RETRAIN; |
| 1753 // TODO(rlp): Make sure the Chrome Audio History pref is synced | |
| 1754 // to the account-level Audio History setting from footprints. | |
| 1755 } else if (profile->GetPrefs()->GetBoolean( | 1769 } else if (profile->GetPrefs()->GetBoolean( |
| 1756 prefs::kHotwordAudioLoggingEnabled)) { | 1770 prefs::kHotwordAudioLoggingEnabled)) { |
| 1757 DCHECK(!profile->GetPrefs()->GetBoolean( | 1771 DCHECK(!profile->GetPrefs()->GetBoolean( |
| 1758 prefs::kHotwordAlwaysOnSearchEnabled)); | 1772 prefs::kHotwordAlwaysOnSearchEnabled)); |
| 1759 launch_mode = HotwordService::HOTWORD_ONLY; | 1773 launch_mode = HotwordService::HOTWORD_ONLY; |
| 1760 } else { | 1774 } else { |
| 1761 DCHECK(!profile->GetPrefs()->GetBoolean( | 1775 DCHECK(!profile->GetPrefs()->GetBoolean( |
| 1762 prefs::kHotwordAlwaysOnSearchEnabled)); | 1776 prefs::kHotwordAlwaysOnSearchEnabled)); |
| 1763 } | 1777 } |
| 1764 | 1778 |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2076 void BrowserOptionsHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns, | 2090 void BrowserOptionsHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns, |
| 2077 const policy::PolicyMap& previous, | 2091 const policy::PolicyMap& previous, |
| 2078 const policy::PolicyMap& current) { | 2092 const policy::PolicyMap& current) { |
| 2079 std::set<std::string> different_keys; | 2093 std::set<std::string> different_keys; |
| 2080 current.GetDifferingKeys(previous, &different_keys); | 2094 current.GetDifferingKeys(previous, &different_keys); |
| 2081 if (ContainsKey(different_keys, policy::key::kMetricsReportingEnabled)) | 2095 if (ContainsKey(different_keys, policy::key::kMetricsReportingEnabled)) |
| 2082 SetupMetricsReportingCheckbox(); | 2096 SetupMetricsReportingCheckbox(); |
| 2083 } | 2097 } |
| 2084 | 2098 |
| 2085 } // namespace options | 2099 } // namespace options |
| OLD | NEW |