| Index: chrome/browser/chromeos/arc/arc_support_host.cc
|
| diff --git a/chrome/browser/chromeos/arc/arc_support_host.cc b/chrome/browser/chromeos/arc/arc_support_host.cc
|
| index 3713eb058dab9ea26329320fbb9e032a40d6dcb9..97a1277aa847550946dfe14c88d04601806d4790 100644
|
| --- a/chrome/browser/chromeos/arc/arc_support_host.cc
|
| +++ b/chrome/browser/chromeos/arc/arc_support_host.cc
|
| @@ -19,6 +19,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
|
| #include "chrome/browser/ui/browser_commands.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "components/metrics/metrics_pref_names.h"
|
| #include "components/prefs/pref_service.h"
|
| @@ -28,13 +29,15 @@
|
|
|
| namespace {
|
| const char kAction[] = "action";
|
| -const char kCode[] = "code";
|
| +const char kBackupRestoreEnabled[] = "backupRestoreEnabled";
|
| const char kCanEnable[] = "canEnable";
|
| -const char kStatus[] = "status";
|
| +const char kCode[] = "code";
|
| const char kData[] = "data";
|
| const char kDeviceId[] = "deviceId";
|
| +const char kEnabled[] = "enabled";
|
| const char kOn[] = "on";
|
| const char kPage[] = "page";
|
| +const char kStatus[] = "status";
|
| const char kText[] = "text";
|
| const char kActionInitialize[] = "initialize";
|
| const char kActionSetMetricsMode[] = "setMetricsMode";
|
| @@ -43,6 +46,7 @@ const char kActionCancelAuthCode[] = "cancelAuthCode";
|
| const char kActionSetAuthCode[] = "setAuthCode";
|
| const char kActionEnableMetrics[] = "enableMetrics";
|
| const char kActionSendFeedback[] = "sendFeedback";
|
| +const char kActionSetBackupRestore[] = "setBackupRestore";
|
| const char kActionCloseUI[] = "closeUI";
|
| const char kActionShowPage[] = "showPage";
|
| } // namespace
|
| @@ -98,49 +102,54 @@ void ArcSupportHost::Start(Client* client) {
|
|
|
| void ArcSupportHost::Initialize() {
|
| DCHECK(client_);
|
| -
|
| - std::unique_ptr<base::DictionaryValue> localized_strings(
|
| + std::unique_ptr<base::DictionaryValue> loadtime_data(
|
| new base::DictionaryValue());
|
| base::string16 device_name = ash::GetChromeOSDeviceName();
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "greetingHeader",
|
| l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_HEADER, device_name));
|
| - localized_strings->SetString(
|
| - "greetingDescription",
|
| - l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_DESCRIPTION,
|
| - device_name));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString("greetingDescription",
|
| + l10n_util::GetStringFUTF16(
|
| + IDS_ARC_OPT_IN_DIALOG_DESCRIPTION, device_name));
|
| + loadtime_data->SetString(
|
| "buttonAgree",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BUTTON_AGREE));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "buttonCancel",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BUTTON_CANCEL));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "buttonSendFeedback",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BUTTON_SEND_FEEDBACK));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "buttonRetry",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BUTTON_RETRY));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "progressLsoLoading",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_LSO));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "progressAndroidLoading",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_ANDROID));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "authorizationFailed",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_AUTHORIZATION_FAILED));
|
| - localized_strings->SetString(
|
| + loadtime_data->SetString(
|
| "termsOfService",
|
| l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_TERMS_OF_SERVICE));
|
| + loadtime_data->SetString(
|
| + "textBackupRestore",
|
| + l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BACKUP_RESTORE));
|
|
|
| const std::string& app_locale = g_browser_process->GetApplicationLocale();
|
| const std::string& country_code = base::CountryCodeForCurrentTimezone();
|
| - localized_strings->SetString("countryCode", country_code);
|
| -
|
| - webui::SetLoadTimeDataDefaults(app_locale, localized_strings.get());
|
| + loadtime_data->SetString("countryCode", country_code);
|
|
|
| arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| +
|
| + loadtime_data->SetBoolean(kBackupRestoreEnabled,
|
| + arc_auth_service->profile()->GetPrefs()->GetBoolean(
|
| + prefs::kArcBackupRestoreEnabled));
|
| +
|
| + webui::SetLoadTimeDataDefaults(app_locale, loadtime_data.get());
|
| DCHECK(arc_auth_service);
|
| const std::string device_id = user_manager::known_user::GetDeviceId(
|
| multi_user_util::GetAccountIdFromProfile(arc_auth_service->profile()));
|
| @@ -149,7 +158,7 @@ void ArcSupportHost::Initialize() {
|
| base::DictionaryValue request;
|
| std::string request_string;
|
| request.SetString(kAction, kActionInitialize);
|
| - request.Set(kData, std::move(localized_strings));
|
| + request.Set(kData, std::move(loadtime_data));
|
| request.SetString(kDeviceId, device_id);
|
| base::JSONWriter::Write(request, &request_string);
|
| client_->PostMessageFromNativeHost(request_string);
|
| @@ -215,8 +224,13 @@ void ArcSupportHost::OnOptInUIShowPage(arc::ArcAuthService::UIPage page,
|
| client_->PostMessageFromNativeHost(response_string);
|
| }
|
|
|
| -void ArcSupportHost::EnableMetrics() {
|
| - InitiateMetricsReportingChange(true, OnMetricsReportingCallbackType());
|
| +void ArcSupportHost::EnableMetrics(bool is_enabled) {
|
| + InitiateMetricsReportingChange(is_enabled, OnMetricsReportingCallbackType());
|
| +}
|
| +
|
| +void ArcSupportHost::EnableBackupRestore(bool is_enabled) {
|
| + PrefService* pref_service = arc::ArcAuthService::Get()->profile()->GetPrefs();
|
| + pref_service->SetBoolean(prefs::kArcBackupRestoreEnabled, is_enabled);
|
| }
|
|
|
| void ArcSupportHost::OnMessage(const std::string& request_string) {
|
| @@ -249,9 +263,21 @@ void ArcSupportHost::OnMessage(const std::string& request_string) {
|
| } else if (action == kActionCancelAuthCode) {
|
| arc_auth_service->CancelAuthCode();
|
| } else if (action == kActionEnableMetrics) {
|
| - EnableMetrics();
|
| + bool is_enabled;
|
| + if (!request->GetBoolean(kEnabled, &is_enabled)) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + EnableMetrics(is_enabled);
|
| } else if (action == kActionSendFeedback) {
|
| chrome::OpenFeedbackDialog(nullptr);
|
| + } else if (action == kActionSetBackupRestore) {
|
| + bool is_enabled;
|
| + if (!request->GetBoolean(kEnabled, &is_enabled)) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + EnableBackupRestore(is_enabled);
|
| } else {
|
| NOTREACHED();
|
| }
|
|
|