| Index: chrome/browser/chromeos/policy/consumer_enrollment_handler.cc
|
| diff --git a/chrome/browser/chromeos/policy/consumer_enrollment_handler.cc b/chrome/browser/chromeos/policy/consumer_enrollment_handler.cc
|
| index 594123c4ea18fbbf16ff18fe2e01334eb067120e..3199d4d2a4e52c9fea02476b01544a8272bab239 100644
|
| --- a/chrome/browser/chromeos/policy/consumer_enrollment_handler.cc
|
| +++ b/chrome/browser/chromeos/policy/consumer_enrollment_handler.cc
|
| @@ -5,93 +5,25 @@
|
| #include "chrome/browser/chromeos/policy/consumer_enrollment_handler.h"
|
|
|
| #include "base/bind.h"
|
| -#include "base/callback.h"
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browser_process_platform_part.h"
|
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h"
|
| #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
|
| -#include "chrome/browser/notifications/notification.h"
|
| -#include "chrome/browser/notifications/notification_delegate.h"
|
| -#include "chrome/browser/notifications/notification_ui_manager.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/browser/ui/browser_navigator.h"
|
| -#include "chrome/common/url_constants.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| #include "components/signin/core/browser/signin_manager_base.h"
|
| #include "google_apis/gaia/gaia_constants.h"
|
| #include "google_apis/gaia/google_service_auth_error.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "grit/theme_resources.h"
|
| #include "policy/proto/device_management_backend.pb.h"
|
| -#include "third_party/WebKit/public/web/WebTextDirection.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -#include "ui/base/page_transition_types.h"
|
| -#include "ui/base/resource/resource_bundle.h"
|
| -#include "ui/base/window_open_disposition.h"
|
| -#include "ui/message_center/notification.h"
|
| -#include "ui/message_center/notification_types.h"
|
| -#include "ui/message_center/notifier_settings.h"
|
| -#include "url/gurl.h"
|
|
|
| namespace em = enterprise_management;
|
|
|
| -namespace {
|
| -
|
| -// Desktop notification constants.
|
| -const char kEnrollmentNotificationId[] = "consumer_management.enroll";
|
| -const char kEnrollmentNotificationUrl[] = "chrome://consumer-management/enroll";
|
| -
|
| -// The path to the consumer management enrollment/unenrollment confirmation
|
| -// overlay, relative to the settings page URL.
|
| -const char kConsumerManagementOverlay[] = "consumer-management-overlay";
|
| -
|
| -class DesktopNotificationDelegate : public NotificationDelegate {
|
| - public:
|
| - // |button_click_callback| is called when the button in the notification is
|
| - // clicked.
|
| - DesktopNotificationDelegate(const std::string& id,
|
| - const base::Closure& button_click_callback);
|
| -
|
| - // NotificationDelegate:
|
| - virtual std::string id() const override;
|
| - virtual void ButtonClick(int button_index) override;
|
| -
|
| - private:
|
| - virtual ~DesktopNotificationDelegate();
|
| -
|
| - std::string id_;
|
| - base::Closure button_click_callback_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DesktopNotificationDelegate);
|
| -};
|
| -
|
| -DesktopNotificationDelegate::DesktopNotificationDelegate(
|
| - const std::string& id,
|
| - const base::Closure& button_click_callback)
|
| - : id_(id), button_click_callback_(button_click_callback) {
|
| -}
|
| -
|
| -DesktopNotificationDelegate::~DesktopNotificationDelegate() {
|
| -}
|
| -
|
| -std::string DesktopNotificationDelegate::id() const {
|
| - return id_;
|
| -}
|
| -
|
| -void DesktopNotificationDelegate::ButtonClick(int button_index) {
|
| - button_click_callback_.Run();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| namespace policy {
|
|
|
| ConsumerEnrollmentHandler::ConsumerEnrollmentHandler(
|
| @@ -105,7 +37,7 @@ ConsumerEnrollmentHandler::ConsumerEnrollmentHandler(
|
| weak_ptr_factory_(this) {
|
| gaia_account_id_ = SigninManagerFactory::GetForProfile(profile)->
|
| GetAuthenticatedAccountId();
|
| - Start();
|
| + ContinueEnrollmentProcess();
|
| }
|
|
|
| ConsumerEnrollmentHandler::~ConsumerEnrollmentHandler() {
|
| @@ -147,33 +79,6 @@ void ConsumerEnrollmentHandler::OnGetTokenFailure(
|
| EndEnrollment(ConsumerManagementService::ENROLLMENT_STAGE_GET_TOKEN_FAILED);
|
| }
|
|
|
| -void ConsumerEnrollmentHandler::Start() {
|
| - const ConsumerManagementService::EnrollmentStage stage =
|
| - consumer_management_service_->GetEnrollmentStage();
|
| - switch (stage) {
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_NONE:
|
| - // Do nothing.
|
| - return;
|
| -
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED:
|
| - ContinueEnrollmentProcess();
|
| - return;
|
| -
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS:
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_CANCELED:
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_BOOT_LOCKBOX_FAILED:
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_DM_SERVER_FAILED:
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_GET_TOKEN_FAILED:
|
| - ShowDesktopNotificationAndResetStage(stage);
|
| - return;
|
| -
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED:
|
| - case ConsumerManagementService::ENROLLMENT_STAGE_LAST:
|
| - NOTREACHED() << "Unexpected enrollment stage " << stage;
|
| - return;
|
| - }
|
| -}
|
| -
|
| void ConsumerEnrollmentHandler::ContinueEnrollmentProcess() {
|
| // First, we need to ensure that the refresh token is available.
|
| ProfileOAuth2TokenService* token_service =
|
| @@ -235,76 +140,6 @@ void ConsumerEnrollmentHandler::OnEnrollmentCompleted(EnrollmentStatus status) {
|
| void ConsumerEnrollmentHandler::EndEnrollment(
|
| ConsumerManagementService::EnrollmentStage stage) {
|
| consumer_management_service_->SetEnrollmentStage(stage);
|
| - ShowDesktopNotificationAndResetStage(stage);
|
| -}
|
| -
|
| -void ConsumerEnrollmentHandler::ShowDesktopNotificationAndResetStage(
|
| - ConsumerManagementService::EnrollmentStage stage) {
|
| - base::string16 title;
|
| - base::string16 body;
|
| - base::string16 button_label;
|
| - base::Closure button_click_callback;
|
| -
|
| - if (stage == ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS) {
|
| - title = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_ENROLLMENT_NOTIFICATION_TITLE);
|
| - body = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_ENROLLMENT_NOTIFICATION_BODY);
|
| - button_label = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_NOTIFICATION_MODIFY_SETTINGS_BUTTON);
|
| - button_click_callback = base::Bind(
|
| - &ConsumerEnrollmentHandler::OpenSettingsPage,
|
| - weak_ptr_factory_.GetWeakPtr());
|
| - } else {
|
| - title = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_ENROLLMENT_FAILURE_NOTIFICATION_TITLE);
|
| - body = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_ENROLLMENT_FAILURE_NOTIFICATION_BODY);
|
| - button_label = l10n_util::GetStringUTF16(
|
| - IDS_CONSUMER_MANAGEMENT_NOTIFICATION_TRY_AGAIN_BUTTON);
|
| - button_click_callback = base::Bind(
|
| - &ConsumerEnrollmentHandler::TryEnrollmentAgain,
|
| - weak_ptr_factory_.GetWeakPtr());
|
| - }
|
| -
|
| - message_center::RichNotificationData optional_field;
|
| - optional_field.buttons.push_back(message_center::ButtonInfo(button_label));
|
| - Notification notification(
|
| - message_center::NOTIFICATION_TYPE_SIMPLE,
|
| - GURL(kEnrollmentNotificationUrl),
|
| - title,
|
| - body,
|
| - ui::ResourceBundle::GetSharedInstance().GetImageNamed(
|
| - IDR_CONSUMER_MANAGEMENT_NOTIFICATION_ICON),
|
| - blink::WebTextDirectionDefault,
|
| - message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT,
|
| - kEnrollmentNotificationId),
|
| - base::string16(), // display_source
|
| - base::UTF8ToUTF16(kEnrollmentNotificationId),
|
| - optional_field,
|
| - new DesktopNotificationDelegate(kEnrollmentNotificationId,
|
| - button_click_callback));
|
| - notification.SetSystemPriority();
|
| - g_browser_process->notification_ui_manager()->Add(notification, profile_);
|
| -
|
| - consumer_management_service_->SetEnrollmentStage(
|
| - ConsumerManagementService::ENROLLMENT_STAGE_NONE);
|
| -}
|
| -
|
| -void ConsumerEnrollmentHandler::OpenSettingsPage() const {
|
| - const GURL url(chrome::kChromeUISettingsURL);
|
| - chrome::NavigateParams params(profile_, url, ui::PAGE_TRANSITION_LINK);
|
| - params.disposition = NEW_FOREGROUND_TAB;
|
| - chrome::Navigate(¶ms);
|
| -}
|
| -
|
| -void ConsumerEnrollmentHandler::TryEnrollmentAgain() const {
|
| - const GURL base_url(chrome::kChromeUISettingsURL);
|
| - const GURL url = base_url.Resolve(kConsumerManagementOverlay);
|
| -
|
| - chrome::NavigateParams params(profile_, url, ui::PAGE_TRANSITION_LINK);
|
| - params.disposition = NEW_FOREGROUND_TAB;
|
| - chrome::Navigate(¶ms);
|
| }
|
|
|
| } // namespace policy
|
|
|