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

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: Add comments 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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 OobeDisplay* oobe_display = GetOobeUI(); 619 OobeDisplay* oobe_display = GetOobeUI();
618 signin_screen_controller_.reset(new SignInScreenController( 620 signin_screen_controller_.reset(new SignInScreenController(
619 oobe_display, webui_login_display_->delegate())); 621 oobe_display, webui_login_display_->delegate()));
620 } 622 }
621 623
622 oobe_progress_bar_visible_ = !StartupUtils::IsDeviceRegistered(); 624 oobe_progress_bar_visible_ = !StartupUtils::IsDeviceRegistered();
623 SetOobeProgressBarVisible(oobe_progress_bar_visible_); 625 SetOobeProgressBarVisible(oobe_progress_bar_visible_);
624 SetStatusAreaVisible(true); 626 SetStatusAreaVisible(true);
625 existing_user_controller_->Init(users); 627 existing_user_controller_->Init(users);
626 628
629 // Validate user OAuth tokens.
630
631 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
Nikita (slow) 2015/03/20 18:06:50 Please also use StartupUtils::IsWebviewSigninEnabl
Denis Kuznetsov (DE-MUC) 2015/03/20 19:50:30 This feature does not depend on Webview signin.
632 switches::kEnableOAuthTokenHandlers)) {
633 token_handler_util_.reset(
634 new TokenHandlerUtil(user_manager::UserManager::Get()));
635 for (auto* user : users) {
636 auto user_id = user->GetUserID();
637 if (token_handler_util_->HasToken(user_id)) {
638 token_handler_util_->CheckToken(
639 user_id, base::Bind(&LoginDisplayHostImpl::OnTokenHandlerChecked,
640 pointer_factory_.GetWeakPtr()));
641 }
642 }
643 }
644
627 // We might be here after a reboot that was triggered after OOBE was complete, 645 // We might be here after a reboot that was triggered after OOBE was complete,
628 // so check for auto-enrollment again. This might catch a cached decision from 646 // so check for auto-enrollment again. This might catch a cached decision from
629 // a previous oobe flow, or might start a new check with the server. 647 // a previous oobe flow, or might start a new check with the server.
630 GetAutoEnrollmentController()->Start(); 648 GetAutoEnrollmentController()->Start();
631 649
632 // Initiate mobile config load. 650 // Initiate mobile config load.
633 MobileConfig::GetInstance(); 651 MobileConfig::GetInstance();
634 652
635 // Initiate device policy fetching. 653 // Initiate device policy fetching.
636 policy::BrowserPolicyConnectorChromeOS* connector = 654 policy::BrowserPolicyConnectorChromeOS* connector =
637 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 655 g_browser_process->platform_part()->browser_policy_connector_chromeos();
638 connector->ScheduleServiceInitialization( 656 connector->ScheduleServiceInitialization(
639 kPolicyServiceInitializationDelayMilliseconds); 657 kPolicyServiceInitializationDelayMilliseconds);
640 658
641 CHECK(webui_login_display_); 659 CHECK(webui_login_display_);
642 GetOobeUI()->ShowSigninScreen(context, 660 GetOobeUI()->ShowSigninScreen(context,
643 webui_login_display_, 661 webui_login_display_,
644 webui_login_display_); 662 webui_login_display_);
645 TRACE_EVENT_ASYNC_STEP_INTO0("ui", 663 TRACE_EVENT_ASYNC_STEP_INTO0("ui",
646 "ShowLoginWebUI", 664 "ShowLoginWebUI",
647 kShowLoginWebUIid, 665 kShowLoginWebUIid,
648 "WaitForScreenStateInitialize"); 666 "WaitForScreenStateInitialize");
649 BootTimesRecorder::Get()->RecordCurrentStats( 667 BootTimesRecorder::Get()->RecordCurrentStats(
650 "login-wait-for-signin-state-initialize"); 668 "login-wait-for-signin-state-initialize");
651 } 669 }
652 670
671 void LoginDisplayHostImpl::OnTokenHandlerChecked(
672 const user_manager::UserID& user_id,
673 TokenHandlerUtil::TokenHandleStatus token_status) {
674 if (token_status == TokenHandlerUtil::INVALID) {
675 user_manager::UserManager::Get()->SaveUserOAuthStatus(
676 user_id, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID);
677 token_handler_util_->DeleteToken(user_id);
678 }
679 }
680
653 void LoginDisplayHostImpl::OnPreferencesChanged() { 681 void LoginDisplayHostImpl::OnPreferencesChanged() {
654 if (is_showing_login_) 682 if (is_showing_login_)
655 webui_login_display_->OnPreferencesChanged(); 683 webui_login_display_->OnPreferencesChanged();
656 } 684 }
657 685
658 void LoginDisplayHostImpl::PrewarmAuthentication() { 686 void LoginDisplayHostImpl::PrewarmAuthentication() {
659 auth_prewarmer_.reset(new AuthPrewarmer()); 687 auth_prewarmer_.reset(new AuthPrewarmer());
660 auth_prewarmer_->PrewarmAuthentication( 688 auth_prewarmer_->PrewarmAuthentication(
661 base::Bind(&LoginDisplayHostImpl::OnAuthPrewarmDone, 689 base::Bind(&LoginDisplayHostImpl::OnAuthPrewarmDone,
662 pointer_factory_.GetWeakPtr())); 690 pointer_factory_.GetWeakPtr()));
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 1302
1275 locale_util::SwitchLanguageCallback callback( 1303 locale_util::SwitchLanguageCallback callback(
1276 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass()))); 1304 base::Bind(&OnLanguageSwitchedCallback, base::Passed(data.Pass())));
1277 1305
1278 // Load locale keyboards here. Hardware layout would be automatically enabled. 1306 // Load locale keyboards here. Hardware layout would be automatically enabled.
1279 locale_util::SwitchLanguage( 1307 locale_util::SwitchLanguage(
1280 locale, true, true /* login_layouts_only */, callback); 1308 locale, true, true /* login_layouts_only */, callback);
1281 } 1309 }
1282 1310
1283 } // namespace chromeos 1311 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698