| 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();
|
|
|