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

Unified Diff: chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc

Issue 2561023002: arc: ARC loading progress should not be shown when started from OOBE. (Closed)
Patch Set: refactored Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
index a0916534bfeef859cc9cd542a1cefc330c2add8c..0e914a5a8b8cb735470557f491afedf7e0ee5950 100644
--- a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
@@ -6,11 +6,14 @@
#include "base/i18n/timezone.h"
#include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler.h"
+#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor_observer.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "components/login/localized_values_builder.h"
+#include "components/prefs/pref_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "ui/base/l10n/l10n_util.h"
@@ -30,8 +33,8 @@ ArcTermsOfServiceScreenHandler::ArcTermsOfServiceScreenHandler()
ArcTermsOfServiceScreenHandler::~ArcTermsOfServiceScreenHandler() {
system::TimezoneSettings::GetInstance()->RemoveObserver(this);
- if (screen_)
- screen_->OnActorDestroyed(this);
+ for (auto& observer : observer_list_)
+ observer.OnActorDestroyed(this);
}
void ArcTermsOfServiceScreenHandler::RegisterMessages() {
@@ -113,8 +116,14 @@ void ArcTermsOfServiceScreenHandler::OnLocationServicesModeChanged(
CallJS("setLocationServicesMode", enabled, managed);
}
-void ArcTermsOfServiceScreenHandler::SetDelegate(Delegate* screen) {
- screen_ = screen;
+void ArcTermsOfServiceScreenHandler::AddObserver(
+ ArcTermsOfServiceScreenActorObserver* observer) {
+ observer_list_.AddObserver(observer);
+}
+
+void ArcTermsOfServiceScreenHandler::RemoveObserver(
+ ArcTermsOfServiceScreenActorObserver* observer) {
+ observer_list_.RemoveObserver(observer);
}
void ArcTermsOfServiceScreenHandler::Show() {
@@ -142,6 +151,9 @@ void ArcTermsOfServiceScreenHandler::Initialize() {
void ArcTermsOfServiceScreenHandler::DoShow() {
Profile* profile = ProfileManager::GetActiveUserProfile();
CHECK(profile);
+
+ // Enable ARC to match ArcSessionManager logic.
hidehiko 2017/01/30 10:12:36 Could you add more detailed comment? E.g., - listi
khmel 2017/01/31 02:47:09 Done.
+ profile->GetPrefs()->SetBoolean(prefs::kArcEnabled, true);
pref_handler_.reset(new arc::ArcOptInPreferenceHandler(
this, profile->GetPrefs()));
pref_handler_->Start();
@@ -153,18 +165,17 @@ void ArcTermsOfServiceScreenHandler::DoShow() {
}
void ArcTermsOfServiceScreenHandler::HandleSkip() {
- if (screen_)
- screen_->OnSkip();
+ for (auto& observer : observer_list_)
+ observer.OnSkip();
}
void ArcTermsOfServiceScreenHandler::HandleAccept(
bool enable_backup_restore,
bool enable_location_services) {
- if (screen_) {
- pref_handler_->EnableBackupRestore(enable_backup_restore);
- pref_handler_->EnableLocationService(enable_location_services);
- screen_->OnAccept();
- }
+ pref_handler_->EnableBackupRestore(enable_backup_restore);
+ pref_handler_->EnableLocationService(enable_location_services);
+ for (auto& observer : observer_list_)
+ observer.OnAccept();
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698