| 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 97a1277aa847550946dfe14c88d04601806d4790..c67280ff9481bf82759ed68582e9ecef6eb0116e 100644
|
| --- a/chrome/browser/chromeos/arc/arc_support_host.cc
|
| +++ b/chrome/browser/chromeos/arc/arc_support_host.cc
|
| @@ -72,6 +72,10 @@ std::unique_ptr<extensions::NativeMessageHost> ArcSupportHost::Create() {
|
| ArcSupportHost::ArcSupportHost() {
|
| arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| DCHECK(arc_auth_service);
|
| +
|
| + if (!arc_auth_service->IsAllowed())
|
| + return;
|
| +
|
| arc_auth_service->AddObserver(this);
|
|
|
| pref_change_registrar_.Init(g_browser_process->local_state());
|
| @@ -91,7 +95,11 @@ void ArcSupportHost::Start(Client* client) {
|
| DCHECK(!client_);
|
| client_ = client;
|
|
|
| - Initialize();
|
| + if (!Initialize()) {
|
| + OnOptInUIClose();
|
| + return;
|
| + }
|
| +
|
| SendMetricsMode();
|
|
|
| arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| @@ -100,8 +108,12 @@ void ArcSupportHost::Start(Client* client) {
|
| arc_auth_service->ui_page_status());
|
| }
|
|
|
| -void ArcSupportHost::Initialize() {
|
| +bool ArcSupportHost::Initialize() {
|
| DCHECK(client_);
|
| + arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| + if (!arc_auth_service->IsAllowed())
|
| + return false;
|
| +
|
| std::unique_ptr<base::DictionaryValue> loadtime_data(
|
| new base::DictionaryValue());
|
| base::string16 device_name = ash::GetChromeOSDeviceName();
|
| @@ -143,8 +155,6 @@ void ArcSupportHost::Initialize() {
|
| const std::string& country_code = base::CountryCodeForCurrentTimezone();
|
| 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));
|
| @@ -162,6 +172,8 @@ void ArcSupportHost::Initialize() {
|
| request.SetString(kDeviceId, device_id);
|
| base::JSONWriter::Write(request, &request_string);
|
| client_->PostMessageFromNativeHost(request_string);
|
| +
|
| + return true;
|
| }
|
|
|
| void ArcSupportHost::OnMetricsPreferenceChanged() {
|
| @@ -170,7 +182,7 @@ void ArcSupportHost::OnMetricsPreferenceChanged() {
|
|
|
| void ArcSupportHost::SendMetricsMode() {
|
| arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| - DCHECK(arc_auth_service);
|
| + DCHECK(arc_auth_service && arc_auth_service->IsAllowed());
|
| const Profile* profile = arc_auth_service->profile();
|
|
|
| const bool metrics_managed = IsMetricsReportingPolicyManaged();
|
| @@ -229,7 +241,9 @@ void ArcSupportHost::EnableMetrics(bool is_enabled) {
|
| }
|
|
|
| void ArcSupportHost::EnableBackupRestore(bool is_enabled) {
|
| - PrefService* pref_service = arc::ArcAuthService::Get()->profile()->GetPrefs();
|
| + arc::ArcAuthService* arc_auth_service = arc::ArcAuthService::Get();
|
| + DCHECK(arc_auth_service && arc_auth_service->IsAllowed());
|
| + PrefService* pref_service = arc_auth_service->profile()->GetPrefs();
|
| pref_service->SetBoolean(prefs::kArcBackupRestoreEnabled, is_enabled);
|
| }
|
|
|
|
|