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

Unified Diff: chrome/browser/chromeos/arc/arc_support_host.cc

Issue 2844383006: Turn ArcSupportHost from Observer model to Delegate (Closed)
Patch Set: Created 3 years, 8 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/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 a5de66be12ff7d8aea1c128bc798da70730fe519..90771ffabc1e8382c9fb5749e048d6eb520785a0 100644
--- a/chrome/browser/chromeos/arc/arc_support_host.cc
+++ b/chrome/browser/chromeos/arc/arc_support_host.cc
@@ -181,6 +181,36 @@ bool ArcSupportHost::HasObserver(Observer* observer) {
return observer_list_.HasObserver(observer);
}
+void ArcSupportHost::SetAuthHandler(AuthHandler* handler) {
+ DCHECK(!auth_handler_);
+ auth_handler_ = handler;
+}
+
+void ArcSupportHost::UnsetAuthHandler() {
+ DCHECK(auth_handler_);
+ auth_handler_ = nullptr;
+}
+
+void ArcSupportHost::SetTosHandler(TosHandler* handler) {
+ DCHECK(!tos_handler_);
+ tos_handler_ = handler;
+}
+
+void ArcSupportHost::UnsetTosHandler() {
+ DCHECK(tos_handler_);
+ tos_handler_ = nullptr;
+}
+
+void ArcSupportHost::SetErrorHandler(ErrorHandler* handler) {
+ DCHECK(!error_handler_);
+ error_handler_ = handler;
+}
+
+void ArcSupportHost::UnsetErrorHandler() {
+ DCHECK(error_handler_);
+ error_handler_ = nullptr;
+}
+
void ArcSupportHost::SetArcManaged(bool is_arc_managed) {
DCHECK(!message_host_);
is_arc_managed_ = is_arc_managed;
@@ -521,19 +551,30 @@ void ArcSupportHost::OnMessage(const base::DictionaryValue& message) {
}
if (event == kEventOnWindowClosed) {
- for (auto& observer : observer_list_)
- observer.OnWindowClosed();
+ if (tos_handler_) {
+ tos_handler_->OnTermsRejected();
+ } else {
+ //DCHECK(error_handler_);
+ if (error_handler_)
+ error_handler_->OnWindowClosed();
+ }
} else if (event == kEventOnAuthSucceeded) {
std::string code;
if (message.GetString(kCode, &code)) {
- for (auto& observer : observer_list_)
- observer.OnAuthSucceeded(code);
+ if (auth_handler_) {
+ auth_handler_->OnAuthSucceeded(code);
+ } else {
+ LOG(ERROR) << "auth_handler_ is not set";
+ }
} else {
NOTREACHED();
}
} else if (event == kEventOnAuthFailed) {
- for (auto& observer : observer_list_)
- observer.OnAuthFailed();
+ if (auth_handler_) {
+ auth_handler_->OnAuthFailed();
+ } else {
+ LOG(ERROR) << "auth_handler_ is not set";
+ }
} else if (event == kEventOnAgreed) {
bool is_metrics_enabled;
bool is_backup_restore_enabled;
@@ -543,19 +584,33 @@ void ArcSupportHost::OnMessage(const base::DictionaryValue& message) {
&is_backup_restore_enabled) &&
message.GetBoolean(kIsLocationServiceEnabled,
&is_location_service_enabled)) {
- for (auto& observer : observer_list_) {
- observer.OnTermsAgreed(is_metrics_enabled, is_backup_restore_enabled,
- is_location_service_enabled);
+ if (tos_handler_) {
+ tos_handler_->OnTermsAgreed(is_metrics_enabled,
+ is_backup_restore_enabled,
+ is_location_service_enabled);
+ } else {
+ LOG(ERROR) << "tos_handler_ is not set";
}
} else {
NOTREACHED();
}
} else if (event == kEventOnRetryClicked) {
- for (auto& observer : observer_list_)
- observer.OnRetryClicked();
+ if (!tos_handler_) {
+ tos_handler_->OnTermsError();
+ } else {
+ if (error_handler_)
+ error_handler_->OnRetryClicked();
+ }
+ //DCHECK(auth_handler_);
+ if (auth_handler_)
+ auth_handler_->OnAuthRetry();
+
} else if (event == kEventOnSendFeedbackClicked) {
- for (auto& observer : observer_list_)
- observer.OnSendFeedbackClicked();
+ if (error_handler_) {
+ error_handler_->OnSendFeedbackClicked();
+ } else {
+ LOG(ERROR) << "error_handler_ is not set";
+ }
} else {
LOG(ERROR) << "Unknown message: " << event;
NOTREACHED();

Powered by Google App Engine
This is Rietveld 408576698