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

Side by Side Diff: chrome/browser/chromeos/login/ui/login_display_host_impl.cc

Issue 1025663002: Implement oauth token external handler checking. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update fake user manager Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" 5 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/audio/sounds.h" 9 #include "ash/audio/sounds.h"
10 #include "ash/desktop_background/desktop_background_controller.h" 10 #include "ash/desktop_background/desktop_background_controller.h"
(...skipping 19 matching lines...) Expand all
30 #include "chrome/browser/chromeos/first_run/drive_first_run_controller.h" 30 #include "chrome/browser/chromeos/first_run/drive_first_run_controller.h"
31 #include "chrome/browser/chromeos/first_run/first_run.h" 31 #include "chrome/browser/chromeos/first_run/first_run.h"
32 #include "chrome/browser/chromeos/input_method/input_method_util.h" 32 #include "chrome/browser/chromeos/input_method/input_method_util.h"
33 #include "chrome/browser/chromeos/language_preferences.h" 33 #include "chrome/browser/chromeos/language_preferences.h"
34 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" 34 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h"
35 #include "chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h" 35 #include "chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h"
36 #include "chrome/browser/chromeos/login/existing_user_controller.h" 36 #include "chrome/browser/chromeos/login/existing_user_controller.h"
37 #include "chrome/browser/chromeos/login/helper.h" 37 #include "chrome/browser/chromeos/login/helper.h"
38 #include "chrome/browser/chromeos/login/login_wizard.h" 38 #include "chrome/browser/chromeos/login/login_wizard.h"
39 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" 39 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h"
40 #include "chrome/browser/chromeos/login/signin/token_handler_util.h"
40 #include "chrome/browser/chromeos/login/startup_utils.h" 41 #include "chrome/browser/chromeos/login/startup_utils.h"
41 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" 42 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h"
42 #include "chrome/browser/chromeos/login/ui/keyboard_driven_oobe_key_handler.h" 43 #include "chrome/browser/chromeos/login/ui/keyboard_driven_oobe_key_handler.h"
43 #include "chrome/browser/chromeos/login/ui/oobe_display.h" 44 #include "chrome/browser/chromeos/login/ui/oobe_display.h"
44 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" 45 #include "chrome/browser/chromeos/login/ui/webui_login_display.h"
45 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" 46 #include "chrome/browser/chromeos/login/ui/webui_login_view.h"
46 #include "chrome/browser/chromeos/login/wizard_controller.h" 47 #include "chrome/browser/chromeos/login/wizard_controller.h"
47 #include "chrome/browser/chromeos/mobile_config.h" 48 #include "chrome/browser/chromeos/mobile_config.h"
48 #include "chrome/browser/chromeos/net/delay_network_call.h" 49 #include "chrome/browser/chromeos/net/delay_network_call.h"
49 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 50 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
(...skipping 14 matching lines...) Expand all
64 #include "chromeos/chromeos_constants.h" 65 #include "chromeos/chromeos_constants.h"
65 #include "chromeos/chromeos_switches.h" 66 #include "chromeos/chromeos_switches.h"
66 #include "chromeos/dbus/dbus_thread_manager.h" 67 #include "chromeos/dbus/dbus_thread_manager.h"
67 #include "chromeos/dbus/session_manager_client.h" 68 #include "chromeos/dbus/session_manager_client.h"
68 #include "chromeos/login/login_state.h" 69 #include "chromeos/login/login_state.h"
69 #include "chromeos/settings/cros_settings_names.h" 70 #include "chromeos/settings/cros_settings_names.h"
70 #include "chromeos/settings/cros_settings_provider.h" 71 #include "chromeos/settings/cros_settings_provider.h"
71 #include "chromeos/settings/timezone_settings.h" 72 #include "chromeos/settings/timezone_settings.h"
72 #include "chromeos/timezone/timezone_resolver.h" 73 #include "chromeos/timezone/timezone_resolver.h"
73 #include "components/session_manager/core/session_manager.h" 74 #include "components/session_manager/core/session_manager.h"
75 #include "components/user_manager/user.h"
74 #include "components/user_manager/user_manager.h" 76 #include "components/user_manager/user_manager.h"
75 #include "content/public/browser/notification_service.h" 77 #include "content/public/browser/notification_service.h"
76 #include "content/public/browser/notification_types.h" 78 #include "content/public/browser/notification_types.h"
77 #include "content/public/browser/web_contents.h" 79 #include "content/public/browser/web_contents.h"
78 #include "content/public/browser/web_ui.h" 80 #include "content/public/browser/web_ui.h"
79 #include "media/audio/sounds/sounds_manager.h" 81 #include "media/audio/sounds/sounds_manager.h"
80 #include "ui/aura/window.h" 82 #include "ui/aura/window.h"
81 #include "ui/base/ime/chromeos/extension_ime_util.h" 83 #include "ui/base/ime/chromeos/extension_ime_util.h"
82 #include "ui/base/ime/chromeos/input_method_manager.h" 84 #include "ui/base/ime/chromeos/input_method_manager.h"
83 #include "ui/base/resource/resource_bundle.h" 85 #include "ui/base/resource/resource_bundle.h"
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 OobeDisplay* oobe_display = GetOobeUI(); 623 OobeDisplay* oobe_display = GetOobeUI();
622 signin_screen_controller_.reset(new SignInScreenController( 624 signin_screen_controller_.reset(new SignInScreenController(
623 oobe_display, webui_login_display_->delegate())); 625 oobe_display, webui_login_display_->delegate()));
624 } 626 }
625 627
626 oobe_progress_bar_visible_ = !StartupUtils::IsDeviceRegistered(); 628 oobe_progress_bar_visible_ = !StartupUtils::IsDeviceRegistered();
627 SetOobeProgressBarVisible(oobe_progress_bar_visible_); 629 SetOobeProgressBarVisible(oobe_progress_bar_visible_);
628 SetStatusAreaVisible(true); 630 SetStatusAreaVisible(true);
629 existing_user_controller_->Init(users); 631 existing_user_controller_->Init(users);
630 632
633 // Validate user OAuth tokens.
634
635 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
636 switches::kEnableOAuthTokenHandlers)) {
637 token_handler_util_.reset(
638 new TokenHandlerUtil(user_manager::UserManager::Get()));
639 for (auto* user : users) {
640 auto user_id = user->GetUserID();
641 if (token_handler_util_->HasToken(user_id)) {
642 token_handler_util_->CheckToken(
643 user_id, base::Bind(&LoginDisplayHostImpl::OnTokenHandlerChecked,
644 pointer_factory_.GetWeakPtr()));
645 }
646 }
647 }
648
631 // We might be here after a reboot that was triggered after OOBE was complete, 649 // We might be here after a reboot that was triggered after OOBE was complete,
632 // so check for auto-enrollment again. This might catch a cached decision from 650 // so check for auto-enrollment again. This might catch a cached decision from
633 // a previous oobe flow, or might start a new check with the server. 651 // a previous oobe flow, or might start a new check with the server.
634 GetAutoEnrollmentController()->Start(); 652 GetAutoEnrollmentController()->Start();
635 653
636 // Initiate mobile config load. 654 // Initiate mobile config load.
637 MobileConfig::GetInstance(); 655 MobileConfig::GetInstance();
638 656
639 // Initiate device policy fetching. 657 // Initiate device policy fetching.
640 policy::BrowserPolicyConnectorChromeOS* connector = 658 policy::BrowserPolicyConnectorChromeOS* connector =
641 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 659 g_browser_process->platform_part()->browser_policy_connector_chromeos();
642 connector->ScheduleServiceInitialization( 660 connector->ScheduleServiceInitialization(
643 kPolicyServiceInitializationDelayMilliseconds); 661 kPolicyServiceInitializationDelayMilliseconds);
644 662
645 CHECK(webui_login_display_); 663 CHECK(webui_login_display_);
646 GetOobeUI()->ShowSigninScreen(context, 664 GetOobeUI()->ShowSigninScreen(context,
647 webui_login_display_, 665 webui_login_display_,
648 webui_login_display_); 666 webui_login_display_);
649 TRACE_EVENT_ASYNC_STEP_INTO0("ui", 667 TRACE_EVENT_ASYNC_STEP_INTO0("ui",
650 "ShowLoginWebUI", 668 "ShowLoginWebUI",
651 kShowLoginWebUIid, 669 kShowLoginWebUIid,
652 "WaitForScreenStateInitialize"); 670 "WaitForScreenStateInitialize");
653 BootTimesRecorder::Get()->RecordCurrentStats( 671 BootTimesRecorder::Get()->RecordCurrentStats(
654 "login-wait-for-signin-state-initialize"); 672 "login-wait-for-signin-state-initialize");
655 } 673 }
656 674
675 void LoginDisplayHostImpl::OnTokenHandlerChecked(
676 const user_manager::UserID& user_id,
677 TokenHandlerUtil::TokenHandleStatus token_status) {
678 if (token_status == TokenHandlerUtil::INVALID) {
679 user_manager::UserManager::Get()->SaveUserOAuthStatus(
680 user_id, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID);
681 token_handler_util_->DeleteToken(user_id);
682 }
683 }
684
657 void LoginDisplayHostImpl::OnPreferencesChanged() { 685 void LoginDisplayHostImpl::OnPreferencesChanged() {
658 if (is_showing_login_) 686 if (is_showing_login_)
659 webui_login_display_->OnPreferencesChanged(); 687 webui_login_display_->OnPreferencesChanged();
660 } 688 }
661 689
662 void LoginDisplayHostImpl::PrewarmAuthentication() { 690 void LoginDisplayHostImpl::PrewarmAuthentication() {
663 auth_prewarmer_.reset(new AuthPrewarmer()); 691 auth_prewarmer_.reset(new AuthPrewarmer());
664 auth_prewarmer_->PrewarmAuthentication( 692 auth_prewarmer_->PrewarmAuthentication(
665 base::Bind(&LoginDisplayHostImpl::OnAuthPrewarmDone, 693 base::Bind(&LoginDisplayHostImpl::OnAuthPrewarmDone,
666 pointer_factory_.GetWeakPtr())); 694 pointer_factory_.GetWeakPtr()));
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 1306
1279 locale_util::SwitchLanguageCallback callback( 1307 locale_util::SwitchLanguageCallback callback(
1280 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass()))); 1308 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass())));
1281 1309
1282 // Load locale keyboards here. Hardware layout would be automatically enabled. 1310 // Load locale keyboards here. Hardware layout would be automatically enabled.
1283 locale_util::SwitchLanguage( 1311 locale_util::SwitchLanguage(
1284 locale, true, true /* login_layouts_only */, callback); 1312 locale, true, true /* login_layouts_only */, callback);
1285 } 1313 }
1286 1314
1287 } // namespace chromeos 1315 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698