15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/chromeos/login/help_app_launcher.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/helper.h"
12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "chrome/browser/chromeos/login/screens/core_oobe_actor.h"
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/ui/login_web_dialog.h"
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/ui/webui_login_display.h"
1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/url_constants.h"
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/chromium_strings.h"
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/generated_resources.h"
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/locale_settings.h"
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "content/public/browser/web_contents.h"
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h"
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget.h"
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "url/gurl.h"
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace {
27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)const char kJsScreenPath[] = "login.EulaScreen";
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Helper class to tweak display details of credits pages in the context
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// of OOBE/EULA step.
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class CreditsWebDialog : public chromeos::LoginWebDialog {
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  CreditsWebDialog(Profile* profile,
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                   gfx::NativeWindow parent_window,
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                   int title_id,
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                   const GURL& url)
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      : chromeos::LoginWebDialog(profile, NULL, parent_window,
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                 l10n_util::GetStringUTF16(title_id),
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                 url,
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                 chromeos::LoginWebDialog::STYLE_BUBBLE) {
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void OnLoadingStateChanged(content::WebContents* source) OVERRIDE {
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    chromeos::LoginWebDialog::OnLoadingStateChanged(source);
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    // Remove visual elements that we can handle in EULA page.
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    bool is_loading = source->IsLoading();
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    if (!is_loading && source->GetWebUI()) {
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      source->GetWebUI()->CallJavascriptFunction(
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          "(function () {"
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          "  document.body.classList.toggle('dialog', true);"
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          "  keyboard.initializeKeyboardFlow();"
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          "})");
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    }
55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private:
58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(CreditsWebDialog);
59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void ShowCreditsDialog(Profile* profile,
62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                       gfx::NativeWindow parent_window,
63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                       int title_id,
64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                       const GURL& credits_url) {
65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  CreditsWebDialog* dialog = new CreditsWebDialog(profile,
66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                                  parent_window,
67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                                  title_id,
68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                                  credits_url);
69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(gfx::Size()));
70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  dialog->SetDialogSize(l10n_util::GetLocalizedContentsWidthInPixels(
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                            IDS_CREDITS_APP_DIALOG_WIDTH_PIXELS),
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                        l10n_util::GetLocalizedContentsWidthInPixels(
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                            IDS_CREDITS_APP_DIALOG_HEIGHT_PIXELS));
74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  dialog->Show();
75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // The dialog object will be deleted on dialog close.
76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
78a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}  // namespace
79a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos {
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)EulaScreenHandler::EulaScreenHandler(CoreOobeActor* core_oobe_actor)
83a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    : BaseScreenHandler(kJsScreenPath),
84a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)      delegate_(NULL),
85a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)      core_oobe_actor_(core_oobe_actor),
86a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)      show_on_init_(false) {
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EulaScreenHandler::~EulaScreenHandler() {
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (delegate_)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    delegate_->OnActorDestroyed(this);
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::PrepareToShow() {
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::Show() {
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!page_is_ready()) {
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    show_on_init_ = true;
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return;
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ShowScreen(OobeUI::kScreenOobeEula, NULL);
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::Hide() {
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::SetDelegate(Delegate* delegate) {
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  delegate_ = delegate;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (page_is_ready())
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Initialize();
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void EulaScreenHandler::DeclareLocalizedValues(
115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    LocalizedValuesBuilder* builder) {
116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaScreenTitle", IDS_EULA_SCREEN_TITLE);
117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder->Add("eulaScreenAccessibleTitle", IDS_EULA_SCREEN_ACCESSIBLE_TITLE);
118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("checkboxLogging", IDS_EULA_CHECKBOX_ENABLE_LOGGING);
119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("back", IDS_EULA_BACK_BUTTON);
120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("acceptAgreement", IDS_EULA_ACCEPT_AND_CONTINUE_BUTTON);
121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaSystemInstallationSettings",
122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)               IDS_EULA_SYSTEM_SECURITY_SETTING);
123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaTpmDesc", IDS_EULA_TPM_DESCRIPTION);
124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaTpmKeyDesc", IDS_EULA_TPM_KEY_DESCRIPTION);
125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaTpmDescPowerwash", IDS_EULA_TPM_KEY_DESCRIPTION_POWERWASH);
126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaTpmBusy", IDS_EULA_TPM_BUSY);
127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("eulaSystemInstallationSettingsOkButton", IDS_OK);
128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->Add("termsOfServiceLoading", IDS_TERMS_OF_SERVICE_SCREEN_LOADING);
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(ENABLE_RLZ)
130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->AddF("eulaRlzDesc",
131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                IDS_EULA_RLZ_DESCRIPTION,
132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                IDS_SHORT_PRODUCT_NAME,
133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                IDS_PRODUCT_NAME);
134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  builder->AddF("eulaRlzEnable",
135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                IDS_EULA_RLZ_ENABLE,
136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                IDS_SHORT_PRODUCT_OS_NAME);
137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
138cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
139cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  builder->Add("chromeCreditsLink", IDS_ABOUT_VERSION_LICENSE_EULA);
140cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  builder->Add("chromeosCreditsLink", IDS_ABOUT_CROS_VERSION_LICENSE_EULA);
141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void EulaScreenHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(ENABLE_RLZ)
145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dict->SetString("rlzEnabled", "enabled");
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  dict->SetString("rlzEnabled", "disabled");
1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::Initialize() {
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!page_is_ready() || !delegate_)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return;
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  core_oobe_actor_->SetUsageStats(delegate_->IsUsageStatsEnabled());
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // This OEM EULA is a file:// URL which we're unable to load in iframe.
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Instead if it's defined we use chrome://terms/oem that will load same file.
159a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  if (!delegate_->GetOemEulaUrl().is_empty())
160a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    core_oobe_actor_->SetOemEulaUrl(chrome::kChromeUITermsOemURL);
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (show_on_init_) {
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Show();
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    show_on_init_ = false;
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::RegisterMessages() {
169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  AddCallback("eulaOnExit", &EulaScreenHandler::HandleOnExit);
170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
171cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  AddCallback("eulaOnChromeOSCredits",
172cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)              &EulaScreenHandler::HandleOnChromeOSCredits);
173cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  AddCallback("eulaOnChromeCredits",
174cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)              &EulaScreenHandler::HandleOnChromeCredits);
175cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  AddCallback("eulaOnInstallationSettingsPopupOpened",
177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)              &EulaScreenHandler::HandleOnInstallationSettingsPopupOpened);
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EulaScreenHandler::OnPasswordFetched(const std::string& tpm_password) {
181a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  core_oobe_actor_->SetTpmPassword(tpm_password);
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void EulaScreenHandler::HandleOnExit(bool accepted, bool usage_stats_enabled) {
185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (delegate_)
186c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    delegate_->OnExit(accepted, usage_stats_enabled);
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void EulaScreenHandler::HandleOnLearnMore() {
190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (!help_app_.get())
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    help_app_ = new HelpAppLauncher(GetNativeWindow());
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  help_app_->ShowHelpTopic(HelpAppLauncher::HELP_STATS_USAGE);
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void EulaScreenHandler::HandleOnChromeOSCredits() {
196cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ShowCreditsDialog(
197cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      Profile::FromBrowserContext(
198cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          web_ui()->GetWebContents()->GetBrowserContext()),
199cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GetNativeWindow(),
200cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      IDS_ABOUT_CROS_VERSION_LICENSE_EULA,
201cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GURL(chrome::kChromeUIOSCreditsURL));
202cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
203cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
204cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void EulaScreenHandler::HandleOnChromeCredits() {
205cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ShowCreditsDialog(
206cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      Profile::FromBrowserContext(
207cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          web_ui()->GetWebContents()->GetBrowserContext()),
208cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GetNativeWindow(),
209cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      IDS_ABOUT_VERSION_LICENSE_EULA,
210cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GURL(chrome::kChromeUICreditsURL));
211cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
212cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void EulaScreenHandler::HandleOnInstallationSettingsPopupOpened() {
214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (delegate_)
215c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    delegate_->InitiatePasswordFetch();
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chromeos
219