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

Side by Side Diff: chrome/browser/chromeos/arc/arc_support_host.cc

Issue 2104893003: Adds a new checkbox for backup and restore in opt-in flow. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with ToT Created 4 years, 5 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/chromeos/arc/arc_support_host.h" 5 #include "chrome/browser/chromeos/arc/arc_support_host.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "ash/common/system/chromeos/devicetype_utils.h" 9 #include "ash/common/system/chromeos/devicetype_utils.h"
10 #include "base/i18n/timezone.h" 10 #include "base/i18n/timezone.h"
11 #include "base/json/json_reader.h" 11 #include "base/json/json_reader.h"
12 #include "base/json/json_writer.h" 12 #include "base/json/json_writer.h"
13 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "base/values.h" 14 #include "base/values.h"
15 #include "chrome/browser/browser_process.h" 15 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/chromeos/profiles/profile_helper.h" 16 #include "chrome/browser/chromeos/profiles/profile_helper.h"
17 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" 17 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
18 #include "chrome/browser/metrics/metrics_reporting_state.h" 18 #include "chrome/browser/metrics/metrics_reporting_state.h"
19 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
20 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" 20 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
21 #include "chrome/browser/ui/browser_commands.h" 21 #include "chrome/browser/ui/browser_commands.h"
22 #include "chrome/common/pref_names.h"
22 #include "chrome/grit/generated_resources.h" 23 #include "chrome/grit/generated_resources.h"
23 #include "components/metrics/metrics_pref_names.h" 24 #include "components/metrics/metrics_pref_names.h"
24 #include "components/prefs/pref_service.h" 25 #include "components/prefs/pref_service.h"
25 #include "components/user_manager/known_user.h" 26 #include "components/user_manager/known_user.h"
26 #include "ui/base/l10n/l10n_util.h" 27 #include "ui/base/l10n/l10n_util.h"
27 #include "ui/base/webui/web_ui_util.h" 28 #include "ui/base/webui/web_ui_util.h"
28 29
29 namespace { 30 namespace {
30 const char kAction[] = "action"; 31 const char kAction[] = "action";
31 const char kCanEnable[] = "canEnable"; 32 const char kCanEnable[] = "canEnable";
32 const char kCode[] = "code"; 33 const char kCode[] = "code";
33 const char kCountryCode[] = "countryCode"; 34 const char kCountryCode[] = "countryCode";
34 const char kData[] = "data"; 35 const char kData[] = "data";
35 const char kDeviceId[] = "deviceId"; 36 const char kDeviceId[] = "deviceId";
36 const char kOn[] = "on"; 37 const char kOn[] = "on";
37 const char kSilentMode[] = "silentMode"; 38 const char kSilentMode[] = "silentMode";
38 const char kStatus[] = "status"; 39 const char kStatus[] = "status";
39 const char kPage[] = "page"; 40 const char kPage[] = "page";
40 const char kText[] = "text"; 41 const char kText[] = "text";
41 const char kActionInitialize[] = "initialize"; 42 const char kActionInitialize[] = "initialize";
42 const char kActionSetMetricsMode[] = "setMetricsMode"; 43 const char kActionSetMetricsMode[] = "setMetricsMode";
43 const char kActionStartLso[] = "startLso"; 44 const char kActionStartLso[] = "startLso";
44 const char kActionCancelAuthCode[] = "cancelAuthCode"; 45 const char kActionCancelAuthCode[] = "cancelAuthCode";
45 const char kActionSetAuthCode[] = "setAuthCode"; 46 const char kActionSetAuthCode[] = "setAuthCode";
46 const char kActionEnableMetrics[] = "enableMetrics"; 47 const char kActionEnableMetrics[] = "enableMetrics";
47 const char kActionSendFeedback[] = "sendFeedback"; 48 const char kActionSendFeedback[] = "sendFeedback";
49 const char kActionEnableBackupRestore[] = "enableBackupRestore";
48 const char kActionCloseUI[] = "closeUI"; 50 const char kActionCloseUI[] = "closeUI";
49 const char kActionShowPage[] = "showPage"; 51 const char kActionShowPage[] = "showPage";
50 } // namespace 52 } // namespace
51 53
52 // static 54 // static
53 const char ArcSupportHost::kHostName[] = "com.google.arc_support"; 55 const char ArcSupportHost::kHostName[] = "com.google.arc_support";
54 56
55 // static 57 // static
56 const char ArcSupportHost::kHostAppId[] = "cnbgggchhmkkdmeppjobngjoejnihlei"; 58 const char ArcSupportHost::kHostAppId[] = "cnbgggchhmkkdmeppjobngjoejnihlei";
57 59
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 SendMetricsMode(); 95 SendMetricsMode();
94 96
95 arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get(); 97 arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
96 DCHECK(arc_auth_service); 98 DCHECK(arc_auth_service);
97 OnOptInUIShowPage(arc_auth_service->ui_page(), 99 OnOptInUIShowPage(arc_auth_service->ui_page(),
98 arc_auth_service->ui_page_status()); 100 arc_auth_service->ui_page_status());
99 } 101 }
100 102
101 void ArcSupportHost::Initialize() { 103 void ArcSupportHost::Initialize() {
102 DCHECK(client_); 104 DCHECK(client_);
103
104 std::unique_ptr<base::DictionaryValue> localized_strings( 105 std::unique_ptr<base::DictionaryValue> localized_strings(
105 new base::DictionaryValue()); 106 new base::DictionaryValue());
106 base::string16 device_name = ash::GetChromeOSDeviceName(); 107 base::string16 device_name = ash::GetChromeOSDeviceName();
107 localized_strings->SetString( 108 localized_strings->SetString(
108 "greetingHeader", 109 "greetingHeader",
109 l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_HEADER, device_name)); 110 l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_HEADER, device_name));
110 localized_strings->SetString( 111 localized_strings->SetString(
111 "greetingDescription", 112 "greetingDescription",
112 l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_DESCRIPTION, 113 l10n_util::GetStringFUTF16(IDS_ARC_OPT_IN_DIALOG_DESCRIPTION,
113 device_name)); 114 device_name));
(...skipping 14 matching lines...) Expand all
128 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_LSO)); 129 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_LSO));
129 localized_strings->SetString( 130 localized_strings->SetString(
130 "progressAndroidLoading", 131 "progressAndroidLoading",
131 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_ANDROID)); 132 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_PROGRESS_ANDROID));
132 localized_strings->SetString( 133 localized_strings->SetString(
133 "authorizationFailed", 134 "authorizationFailed",
134 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_AUTHORIZATION_FAILED)); 135 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_AUTHORIZATION_FAILED));
135 localized_strings->SetString( 136 localized_strings->SetString(
136 "termsOfService", 137 "termsOfService",
137 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_TERMS_OF_SERVICE)); 138 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_TERMS_OF_SERVICE));
139 localized_strings->SetString(
140 "textBackupRestore",
141 l10n_util::GetStringUTF16(IDS_ARC_OPT_IN_DIALOG_BACKUP_RESTORE));
138 142
139 const std::string& app_locale = g_browser_process->GetApplicationLocale(); 143 const std::string& app_locale = g_browser_process->GetApplicationLocale();
140 const std::string& country_code = base::CountryCodeForCurrentTimezone(); 144 const std::string& country_code = base::CountryCodeForCurrentTimezone();
141 localized_strings->SetString(kCountryCode, country_code); 145 localized_strings->SetString(kCountryCode, country_code);
142 146
143 webui::SetLoadTimeDataDefaults(app_locale, localized_strings.get()); 147 webui::SetLoadTimeDataDefaults(app_locale, localized_strings.get());
144 148
145 arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get(); 149 arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
146 DCHECK(arc_auth_service); 150 DCHECK(arc_auth_service);
147 const std::string device_id = user_manager::known_user::GetDeviceId( 151 const std::string device_id = user_manager::known_user::GetDeviceId(
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 response.SetString(kStatus, status); 220 response.SetString(kStatus, status);
217 std::string response_string; 221 std::string response_string;
218 base::JSONWriter::Write(response, &response_string); 222 base::JSONWriter::Write(response, &response_string);
219 client_->PostMessageFromNativeHost(response_string); 223 client_->PostMessageFromNativeHost(response_string);
220 } 224 }
221 225
222 void ArcSupportHost::EnableMetrics() { 226 void ArcSupportHost::EnableMetrics() {
223 InitiateMetricsReportingChange(true, OnMetricsReportingCallbackType()); 227 InitiateMetricsReportingChange(true, OnMetricsReportingCallbackType());
224 } 228 }
225 229
230 void ArcSupportHost::EnableBackupRestore() {
231 PrefService* pref_service = arc::ArcAuthService::Get()->profile()->GetPrefs();
232 pref_service->SetBoolean(prefs::kArcBackupRestoreEnabled, true);
233 }
234
226 void ArcSupportHost::OnMessage(const std::string& request_string) { 235 void ArcSupportHost::OnMessage(const std::string& request_string) {
227 std::unique_ptr<base::Value> request_value = 236 std::unique_ptr<base::Value> request_value =
228 base::JSONReader::Read(request_string); 237 base::JSONReader::Read(request_string);
229 base::DictionaryValue* request; 238 base::DictionaryValue* request;
230 if (!request_value || !request_value->GetAsDictionary(&request)) { 239 if (!request_value || !request_value->GetAsDictionary(&request)) {
231 NOTREACHED(); 240 NOTREACHED();
232 return; 241 return;
233 } 242 }
234 243
235 std::string action; 244 std::string action;
(...skipping 13 matching lines...) Expand all
249 NOTREACHED(); 258 NOTREACHED();
250 return; 259 return;
251 } 260 }
252 arc_auth_service->SetAuthCodeAndStartArc(code); 261 arc_auth_service->SetAuthCodeAndStartArc(code);
253 } else if (action == kActionCancelAuthCode) { 262 } else if (action == kActionCancelAuthCode) {
254 arc_auth_service->CancelAuthCode(); 263 arc_auth_service->CancelAuthCode();
255 } else if (action == kActionEnableMetrics) { 264 } else if (action == kActionEnableMetrics) {
256 EnableMetrics(); 265 EnableMetrics();
257 } else if (action == kActionSendFeedback) { 266 } else if (action == kActionSendFeedback) {
258 chrome::OpenFeedbackDialog(nullptr); 267 chrome::OpenFeedbackDialog(nullptr);
268 } else if (action == kActionEnableBackupRestore) {
269 EnableBackupRestore();
259 } else { 270 } else {
260 NOTREACHED(); 271 NOTREACHED();
261 } 272 }
262 } 273 }
263 274
264 scoped_refptr<base::SingleThreadTaskRunner> ArcSupportHost::task_runner() 275 scoped_refptr<base::SingleThreadTaskRunner> ArcSupportHost::task_runner()
265 const { 276 const {
266 return base::ThreadTaskRunnerHandle::Get(); 277 return base::ThreadTaskRunnerHandle::Get();
267 } 278 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698