| Index: chrome/browser/chromeos/login/screens/eula_screen.cc
|
| diff --git a/chrome/browser/chromeos/login/screens/eula_screen.cc b/chrome/browser/chromeos/login/screens/eula_screen.cc
|
| index d28d47b201ac43ff3e81f68d7edd878358e3cd9a..115d227f36c6f433a04604beb8fcb146315de1b9 100644
|
| --- a/chrome/browser/chromeos/login/screens/eula_screen.cc
|
| +++ b/chrome/browser/chromeos/login/screens/eula_screen.cc
|
| @@ -8,6 +8,7 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chromeos/customization_document.h"
|
| #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h"
|
| +#include "chrome/browser/chromeos/login/screens/eula_view.h"
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| #include "chromeos/dbus/cryptohome_client.h"
|
| #include "chromeos/dbus/dbus_method_call_status.h"
|
| @@ -15,40 +16,51 @@
|
|
|
| namespace chromeos {
|
|
|
| +namespace {
|
| +
|
| +const char kContextKeyUsageStatsEnabled[] = "usageStatsEnabled";
|
| +
|
| +} // namespace
|
| +
|
| EulaScreen::EulaScreen(BaseScreenDelegate* base_screen_delegate,
|
| Delegate* delegate,
|
| - EulaScreenActor* actor)
|
| - : BaseScreen(base_screen_delegate),
|
| + EulaView* view)
|
| + : EulaModel(base_screen_delegate),
|
| delegate_(delegate),
|
| - actor_(actor),
|
| + view_(view),
|
| password_fetcher_(this) {
|
| - DCHECK(actor_);
|
| + DCHECK(view_);
|
| DCHECK(delegate_);
|
| - if (actor_)
|
| - actor_->SetDelegate(this);
|
| + if (view_)
|
| + view_->SetModel(this);
|
| +
|
| + subscription_ = context_.AddKeyObserver(
|
| + kContextKeyUsageStatsEnabled,
|
| + base::Bind(&EulaScreen::OnUsageStatisticsReportingChanged,
|
| + base::Unretained(this)));
|
| }
|
|
|
| EulaScreen::~EulaScreen() {
|
| - if (actor_)
|
| - actor_->SetDelegate(NULL);
|
| + if (view_)
|
| + view_->SetModel(nullptr);
|
| }
|
|
|
| void EulaScreen::PrepareToShow() {
|
| - if (actor_)
|
| - actor_->PrepareToShow();
|
| + if (view_)
|
| + view_->PrepareToShow();
|
| }
|
|
|
| void EulaScreen::Show() {
|
| // Command to own the TPM.
|
| DBusThreadManager::Get()->GetCryptohomeClient()->TpmCanAttemptOwnership(
|
| EmptyVoidDBusMethodCallback());
|
| - if (actor_)
|
| - actor_->Show();
|
| + if (view_)
|
| + view_->Show();
|
| }
|
|
|
| void EulaScreen::Hide() {
|
| - if (actor_)
|
| - actor_->Hide();
|
| + if (view_)
|
| + view_->Hide();
|
| }
|
|
|
| std::string EulaScreen::GetName() const {
|
| @@ -73,35 +85,48 @@ GURL EulaScreen::GetOemEulaUrl() const {
|
| return GURL();
|
| }
|
|
|
| -void EulaScreen::OnExit(bool accepted, bool usage_stats_enabled) {
|
| - if (delegate_)
|
| - delegate_->SetUsageStatisticsReporting(usage_stats_enabled);
|
| - Finish(accepted ? BaseScreenDelegate::EULA_ACCEPTED
|
| - : BaseScreenDelegate::EULA_BACK);
|
| +void EulaScreen::OnAcceptButtonClicked() {
|
| + Finish(BaseScreenDelegate::EULA_ACCEPTED);
|
| +}
|
| +
|
| +void EulaScreen::OnBackButtonClicked() {
|
| + Finish(BaseScreenDelegate::EULA_BACK);
|
| }
|
|
|
| void EulaScreen::InitiatePasswordFetch() {
|
| if (tpm_password_.empty()) {
|
| password_fetcher_.Fetch();
|
| - // Will call actor after password has been fetched.
|
| - } else if (actor_) {
|
| - actor_->OnPasswordFetched(tpm_password_);
|
| + // Will call view after password has been fetched.
|
| + } else if (view_) {
|
| + view_->OnPasswordFetched(tpm_password_);
|
| }
|
| }
|
|
|
| void EulaScreen::OnPasswordFetched(const std::string& tpm_password) {
|
| tpm_password_ = tpm_password;
|
| - if (actor_)
|
| - actor_->OnPasswordFetched(tpm_password_);
|
| + if (view_)
|
| + view_->OnPasswordFetched(tpm_password_);
|
| }
|
|
|
| bool EulaScreen::IsUsageStatsEnabled() const {
|
| return delegate_ && delegate_->GetUsageStatisticsReporting();
|
| }
|
|
|
| -void EulaScreen::OnActorDestroyed(EulaScreenActor* actor) {
|
| - if (actor_ == actor)
|
| - actor_ = NULL;
|
| +void EulaScreen::OnViewDestroyed(EulaView* view) {
|
| + if (view_ == view)
|
| + view_ = NULL;
|
| +}
|
| +
|
| +void EulaScreen::OnUsageStatisticsReportingChanged(
|
| + const ::login::ScreenContext::KeyType& key,
|
| + const base::Value& value) {
|
| + bool usage_stats_enabled = false;
|
| + if (!value.GetAsBoolean(&usage_stats_enabled)) {
|
| + LOG(ERROR) << "Wrong type for " << kContextKeyUsageStatsEnabled
|
| + << " context value";
|
| + } else if (delegate_) {
|
| + delegate_->SetUsageStatisticsReporting(usage_stats_enabled);
|
| + }
|
| }
|
|
|
| } // namespace chromeos
|
|
|