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

Unified Diff: chrome/browser/chromeos/login/login_display_host_impl.h

Issue 286933002: [cros login] Split login related classes into subfolders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix includes in new tests Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/login_display_host_impl.h
diff --git a/chrome/browser/chromeos/login/login_display_host_impl.h b/chrome/browser/chromeos/login/login_display_host_impl.h
deleted file mode 100644
index 236e1f812afe0d9b70f89fe388321ac8355283a0..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/login/login_display_host_impl.h
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_IMPL_H_
-#define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_IMPL_H_
-
-#include <string>
-#include <vector>
-
-#include "ash/shell_delegate.h"
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/chromeos/login/app_launch_controller.h"
-#include "chrome/browser/chromeos/login/auth_prewarmer.h"
-#include "chrome/browser/chromeos/login/existing_user_controller.h"
-#include "chrome/browser/chromeos/login/login_display.h"
-#include "chrome/browser/chromeos/login/login_display_host.h"
-#include "chrome/browser/chromeos/login/wizard_controller.h"
-#include "chrome/browser/chromeos/settings/device_settings_service.h"
-#include "chromeos/audio/cras_audio_handler.h"
-#include "chromeos/dbus/session_manager_client.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/web_contents_observer.h"
-#include "ui/gfx/rect.h"
-#include "ui/keyboard/keyboard_controller_observer.h"
-
-class PrefService;
-
-namespace content {
-class RenderFrameHost;
-class WebContents;
-}
-
-namespace chromeos {
-
-class DemoAppLauncher;
-class FocusRingController;
-class KeyboardDrivenOobeKeyHandler;
-class OobeUI;
-class WebUILoginDisplay;
-class WebUILoginView;
-
-// An implementation class for OOBE/login WebUI screen host.
-// It encapsulates controllers, background integration and flow.
-class LoginDisplayHostImpl : public LoginDisplayHost,
- public content::NotificationObserver,
- public content::WebContentsObserver,
- public chromeos::SessionManagerClient::Observer,
- public chromeos::CrasAudioHandler::AudioObserver,
- public ash::VirtualKeyboardStateObserver,
- public keyboard::KeyboardControllerObserver {
- public:
- explicit LoginDisplayHostImpl(const gfx::Rect& background_bounds);
- virtual ~LoginDisplayHostImpl();
-
- // Returns the default LoginDisplayHost instance if it has been created.
- static LoginDisplayHost* default_host() {
- return default_host_;
- }
-
- // Gets the Gaia auth iframe within a WebContents.
- static content::RenderFrameHost* GetGaiaAuthIframe(
- content::WebContents* web_contents);
-
- // LoginDisplayHost implementation:
- virtual LoginDisplay* CreateLoginDisplay(
- LoginDisplay::Delegate* delegate) OVERRIDE;
- virtual gfx::NativeWindow GetNativeWindow() const OVERRIDE;
- virtual WebUILoginView* GetWebUILoginView() const OVERRIDE;
- virtual void BeforeSessionStart() OVERRIDE;
- virtual void Finalize() OVERRIDE;
- virtual void OnCompleteLogin() OVERRIDE;
- virtual void OpenProxySettings() OVERRIDE;
- virtual void SetStatusAreaVisible(bool visible) OVERRIDE;
- virtual AutoEnrollmentController* GetAutoEnrollmentController() OVERRIDE;
- virtual void StartWizard(
- const std::string& first_screen_name,
- scoped_ptr<base::DictionaryValue> screen_parameters) OVERRIDE;
- virtual WizardController* GetWizardController() OVERRIDE;
- virtual AppLaunchController* GetAppLaunchController() OVERRIDE;
- virtual void StartUserAdding(
- const base::Closure& completion_callback) OVERRIDE;
- virtual void StartSignInScreen(const LoginScreenContext& context) OVERRIDE;
- virtual void ResumeSignInScreen() OVERRIDE;
- virtual void OnPreferencesChanged() OVERRIDE;
- virtual void PrewarmAuthentication() OVERRIDE;
- virtual void StartAppLaunch(const std::string& app_id,
- bool diagnostic_mode) OVERRIDE;
- virtual void StartDemoAppLaunch() OVERRIDE;
-
- // Creates WizardController instance.
- WizardController* CreateWizardController();
-
- // Called when the first browser window is created, but before it's shown.
- void OnBrowserCreated();
-
- // Returns instance of the OOBE WebUI.
- OobeUI* GetOobeUI() const;
-
- const gfx::Rect& background_bounds() const { return background_bounds_; }
-
- // Trace id for ShowLoginWebUI event (since there exists at most one login
- // WebUI at a time).
- static const int kShowLoginWebUIid;
-
- views::Widget* login_window_for_test() { return login_window_; }
-
- protected:
- // content::NotificationObserver implementation:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- // Overridden from content::WebContentsObserver:
- virtual void RenderProcessGone(base::TerminationStatus status) OVERRIDE;
-
- // Overridden from chromeos::SessionManagerClient::Observer:
- virtual void EmitLoginPromptVisibleCalled() OVERRIDE;
-
- // Overridden from chromeos::CrasAudioHandler::AudioObserver:
- virtual void OnActiveOutputNodeChanged() OVERRIDE;
-
- // Overridden from ash::KeyboardStateObserver:
- virtual void OnVirtualKeyboardStateChanged(bool activated) OVERRIDE;
-
- // Overridden from keyboard::KeyboardControllerObserver:
- virtual void OnKeyboardBoundsChanging(const gfx::Rect& new_bounds) OVERRIDE;
-
- private:
- // Way to restore if renderer have crashed.
- enum RestorePath {
- RESTORE_UNKNOWN,
- RESTORE_WIZARD,
- RESTORE_SIGN_IN,
- RESTORE_ADD_USER_INTO_SESSION,
- };
-
- // Type of animations to run after the login screen.
- enum FinalizeAnimationType {
- ANIMATION_NONE, // No animation.
- ANIMATION_WORKSPACE, // Use initial workspace animation (drop and
- // and fade in workspace). Used for user login.
- ANIMATION_FADE_OUT, // Fade out login screen. Used for app launch.
- };
-
- // Marks display host for deletion.
- // If |post_quit_task| is true also posts Quit task to the MessageLoop.
- void ShutdownDisplayHost(bool post_quit_task);
-
- // Schedules workspace transition animation.
- void ScheduleWorkspaceAnimation();
-
- // Schedules fade out animation.
- void ScheduleFadeOutAnimation();
-
- // Progress callback registered with |auto_enrollment_controller_|.
- void OnAutoEnrollmentProgress(policy::AutoEnrollmentState state);
-
- // Loads given URL. Creates WebUILoginView if needed.
- void LoadURL(const GURL& url);
-
- // Shows OOBE/sign in WebUI that was previously initialized in hidden state.
- void ShowWebUI();
-
- // Starts postponed WebUI (OOBE/sign in) if it was waiting for
- // wallpaper animation end.
- void StartPostponedWebUI();
-
- // Initializes |login_window_| and |login_view_| fields if needed.
- void InitLoginWindowAndView();
-
- // Closes |login_window_| and resets |login_window_| and |login_view_| fields.
- void ResetLoginWindowAndView();
-
- // Deletes |auth_prewarmer_|.
- void OnAuthPrewarmDone();
-
- // Toggles OOBE progress bar visibility, the bar is hidden by default.
- void SetOobeProgressBarVisible(bool visible);
-
- // Tries to play startup sound. If sound can't be played right now,
- // for instance, because cras server is not initialized, playback
- // will be delayed.
- void TryToPlayStartupSound();
-
- // Called when login-prompt-visible signal is caught.
- void OnLoginPromptVisible();
-
- // Used to calculate position of the screens and background.
- gfx::Rect background_bounds_;
-
- content::NotificationRegistrar registrar_;
-
- base::WeakPtrFactory<LoginDisplayHostImpl> pointer_factory_;
-
- // Default LoginDisplayHost.
- static LoginDisplayHost* default_host_;
-
- // Sign in screen controller.
- scoped_ptr<ExistingUserController> sign_in_controller_;
-
- // OOBE and some screens (camera, recovery) controller.
- scoped_ptr<WizardController> wizard_controller_;
-
- // App launch controller.
- scoped_ptr<AppLaunchController> app_launch_controller_;
-
- // Demo app launcher.
- scoped_ptr<DemoAppLauncher> demo_app_launcher_;
-
- // The controller driving the auto-enrollment check.
- scoped_ptr<AutoEnrollmentController> auto_enrollment_controller_;
-
- // Subscription for progress callbacks from |auto_enrollement_controller_|.
- scoped_ptr<AutoEnrollmentController::ProgressCallbackList::Subscription>
- auto_enrollment_progress_subscription_;
-
- // Has ShutdownDisplayHost() already been called? Used to avoid posting our
- // own deletion to the message loop twice if the user logs out while we're
- // still in the process of cleaning up after login (http://crbug.com/134463).
- bool shutting_down_;
-
- // Whether progress bar is shown on the OOBE page.
- bool oobe_progress_bar_visible_;
-
- // True if session start is in progress.
- bool session_starting_;
-
- // Container of the screen we are displaying.
- views::Widget* login_window_;
-
- // Container of the view we are displaying.
- WebUILoginView* login_view_;
-
- // Login display we are using.
- WebUILoginDisplay* webui_login_display_;
-
- // True if the login display is the current screen.
- bool is_showing_login_;
-
- // True if NOTIFICATION_WALLPAPER_ANIMATION_FINISHED notification has been
- // received.
- bool is_wallpaper_loaded_;
-
- // Stores status area current visibility to be applied once login WebUI
- // is shown.
- bool status_area_saved_visibility_;
-
- // If true, WebUI is initialized in a hidden state and shown after the
- // wallpaper animation is finished (when it is enabled) or the user pods have
- // been loaded (otherwise).
- // By default is true. Could be used to tune performance if needed.
- bool initialize_webui_hidden_;
-
- // True if WebUI is initialized in hidden state and we're waiting for
- // wallpaper load animation to finish.
- bool waiting_for_wallpaper_load_;
-
- // True if WebUI is initialized in hidden state and we're waiting for user
- // pods to load.
- bool waiting_for_user_pods_;
-
- // How many times renderer has crashed.
- int crash_count_;
-
- // Way to restore if renderer have crashed.
- RestorePath restore_path_;
-
- // Stored parameters for StartWizard, required to restore in case of crash.
- std::string wizard_first_screen_name_;
- scoped_ptr<base::DictionaryValue> wizard_screen_parameters_;
-
- // Called before host deletion.
- base::Closure completion_callback_;
-
- // Active instance of authentication prewarmer.
- scoped_ptr<AuthPrewarmer> auth_prewarmer_;
-
- // A focus ring controller to draw focus ring around view for keyboard
- // driven oobe.
- scoped_ptr<FocusRingController> focus_ring_controller_;
-
- // Handles special keys for keyboard driven oobe.
- scoped_ptr<KeyboardDrivenOobeKeyHandler> keyboard_driven_oobe_key_handler_;
-
- FinalizeAnimationType finalize_animation_type_;
-
- base::WeakPtrFactory<LoginDisplayHostImpl> animation_weak_ptr_factory_;
-
- // Time when login prompt visible signal is received. Used for
- // calculations of delay before startup sound.
- base::TimeTicks login_prompt_visible_time_;
-
- // True when request to play startup sound was sent to
- // SoundsManager.
- bool startup_sound_played_;
-
- // When true, startup sound should be played only when spoken
- // feedback is enabled. Otherwise, startup sound should be played
- // in any case.
- bool startup_sound_honors_spoken_feedback_;
-
- // True is subscribed as keyboard controller observer.
- bool is_observing_keyboard_;
-
- // The bounds of the virtual keyboard.
- gfx::Rect keyboard_bounds_;
-
- DISALLOW_COPY_AND_ASSIGN(LoginDisplayHostImpl);
-};
-
-} // namespace chromeos
-
-#endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_IMPL_H_
« no previous file with comments | « chrome/browser/chromeos/login/login_display_host.h ('k') | chrome/browser/chromeos/login/login_display_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698