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

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

Issue 2844383006: Turn ArcSupportHost from Observer model to Delegate (Closed)
Patch Set: addressed comments Created 3 years, 7 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..57cda88e6c0c98e8e5e2a3bf2c6daf13614b8bdc 100644
--- a/chrome/browser/chromeos/arc/arc_support_host.cc
+++ b/chrome/browser/chromeos/arc/arc_support_host.cc
@@ -22,7 +22,9 @@
#include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
#include "chrome/browser/ui/extensions/app_launch_params.h"
#include "chrome/browser/ui/extensions/application_launch.h"
+#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
+#include "components/prefs/pref_service.h"
#include "components/user_manager/known_user.h"
#include "extensions/browser/extension_registry.h"
#include "ui/base/l10n/l10n_util.h"
@@ -165,6 +167,11 @@ ArcSupportHost::ArcSupportHost(Profile* profile)
}
ArcSupportHost::~ArcSupportHost() {
+ // Delegates should have been reset to nullptr at this point.
+ DCHECK(!auth_delegate_);
+ DCHECK(!tos_delegate_);
+ DCHECK(!error_delegate_);
+
if (message_host_)
DisconnectMessageHost();
}
@@ -181,6 +188,19 @@ bool ArcSupportHost::HasObserver(Observer* observer) {
return observer_list_.HasObserver(observer);
}
+void ArcSupportHost::SetAuthDelegate(AuthDelegate* delegate) {
+ auth_delegate_ = delegate;
hidehiko 2017/05/15 09:05:44 Maybe. if (delegate) DCHECK(!tos_delegate_); (
victorhsieh0 2017/05/15 22:31:53 Done.
+}
+
+void ArcSupportHost::SetTermsOfServiceDelegate(
+ TermsOfServiceDelegate* delegate) {
+ tos_delegate_ = delegate;
hidehiko 2017/05/15 09:05:44 Ditto.
victorhsieh0 2017/05/15 22:31:53 Done.
+}
+
+void ArcSupportHost::SetErrorDelegate(ErrorDelegate* delegate) {
+ error_delegate_ = delegate;
+}
+
void ArcSupportHost::SetArcManaged(bool is_arc_managed) {
DCHECK(!message_host_);
is_arc_managed_ = is_arc_managed;
@@ -521,19 +541,24 @@ void ArcSupportHost::OnMessage(const base::DictionaryValue& message) {
}
if (event == kEventOnWindowClosed) {
- for (auto& observer : observer_list_)
- observer.OnWindowClosed();
+ // If ToS negotiation is ongoing, call the specific function.
+ if (tos_delegate_) {
+ tos_delegate_->OnTermsRejected();
+ } else {
+ DCHECK(error_delegate_);
+ error_delegate_->OnOptInAborted();
+ }
} else if (event == kEventOnAuthSucceeded) {
std::string code;
if (message.GetString(kCode, &code)) {
- for (auto& observer : observer_list_)
- observer.OnAuthSucceeded(code);
+ DCHECK(auth_delegate_);
hidehiko 2017/05/15 09:05:44 Could you move DCHECK to L552? On anytime this eve
victorhsieh0 2017/05/15 22:31:53 Done.
+ auth_delegate_->OnAuthSucceeded(code);
} else {
NOTREACHED();
}
} else if (event == kEventOnAuthFailed) {
- for (auto& observer : observer_list_)
- observer.OnAuthFailed();
+ DCHECK(auth_delegate_);
+ auth_delegate_->OnAuthFailed();
} else if (event == kEventOnAgreed) {
bool is_metrics_enabled;
bool is_backup_restore_enabled;
@@ -543,19 +568,27 @@ 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);
- }
+ DCHECK(tos_delegate_);
hidehiko 2017/05/15 09:05:44 Ditto. Move to L563?
victorhsieh0 2017/05/15 22:31:53 Done.
+ tos_delegate_->OnTermsAgreed(is_metrics_enabled,
+ is_backup_restore_enabled,
+ is_location_service_enabled);
} else {
NOTREACHED();
}
} else if (event == kEventOnRetryClicked) {
- for (auto& observer : observer_list_)
- observer.OnRetryClicked();
+ // If ToS negotiation or manual authentication is ongoing, call the
+ // corresponding delegate. Otherwise, call the general retry function.
+ if (tos_delegate_) {
+ tos_delegate_->OnTermsRetryClicked();
+ } else if (auth_delegate_) {
+ auth_delegate_->OnAuthRetryClicked();
+ } else {
+ DCHECK(error_delegate_);
+ error_delegate_->OnRetryClicked();
+ }
} else if (event == kEventOnSendFeedbackClicked) {
- for (auto& observer : observer_list_)
- observer.OnSendFeedbackClicked();
+ DCHECK(error_delegate_);
+ error_delegate_->OnSendFeedbackClicked();
} else {
LOG(ERROR) << "Unknown message: " << event;
NOTREACHED();

Powered by Google App Engine
This is Rietveld 408576698