#include "chrome/browser/chromeos/login/screens/screen_observer.h"
#include "chrome/browser/chromeos/login/screens/wizard_screen.h"
#include "chrome/browser/chromeos/policy/auto_enrollment_client.h"
-#include "content/public/common/geoposition.h"
#include "ui/gfx/rect.h"
#include "url/gurl.h"
class DictionaryValue;
}
-namespace content {
-struct Geoposition;
-}
-
namespace chromeos {
class AutoEnrollmentCheckStep;
class EnrollmentScreen;
class ErrorScreen;
class EulaScreen;
+class HIDDetectionScreen;
+struct Geoposition;
class KioskAutolaunchScreen;
class KioskEnableScreen;
class LocallyManagedUserCreationScreen;
class NetworkScreen;
class OobeDisplay;
class ResetScreen;
+class SimpleGeolocationProvider;
class TermsOfServiceScreen;
class TimeZoneProvider;
struct TimeZoneResponseData;
// Advances to screen defined by |screen_name| and shows it.
void AdvanceToScreen(const std::string& screen_name);
- // Advances to screen defined by |screen_name| and shows it.
- // Takes ownership of |screen_parameters|.
- void AdvanceToScreenWithParams(const std::string& first_screen_name,
- base::DictionaryValue* screen_parameters);
-
// Advances to login screen. Should be used in for testing only.
void SkipToLoginForTesting(const LoginScreenContext& context);
KioskEnableScreen* GetKioskEnableScreen();
TermsOfServiceScreen* GetTermsOfServiceScreen();
WrongHWIDScreen* GetWrongHWIDScreen();
+ HIDDetectionScreen* GetHIDDetectionScreen();
LocallyManagedUserCreationScreen* GetLocallyManagedUserCreationScreen();
// Returns a pointer to the current screen or NULL if there's no such
static const char kWrongHWIDScreenName[];
static const char kLocallyManagedUserCreationScreenName[];
static const char kAppLaunchSplashScreenName[];
+ static const char kHIDDetectionScreenName [];
// Volume percent at which spoken feedback is still audible.
static const int kMinAudibleOutputVolumePercent;
- // Called from LoginLocationMonitor when location is resolved.
- static void OnLocationUpdated(const content::Geoposition& position,
- base::TimeDelta elapsed);
-
private:
// Show specific screen.
void ShowNetworkScreen();
void ShowTermsOfServiceScreen();
void ShowWrongHWIDScreen();
void ShowLocallyManagedUserCreationScreen();
+ void ShowHIDDetectionScreen();
// Shows images login screen.
void ShowLoginScreen(const LoginScreenContext& context);
void ResumeLoginScreen();
// Exit handlers:
+ void OnHIDDetectionCompleted();
void OnNetworkConnected();
void OnNetworkOffline();
void OnConnectionFailed();
}
// Called when network is UP.
- void StartTimezoneResolve() const;
+ void StartTimezoneResolve();
// Creates provider on demand.
TimeZoneProvider* GetTimezoneProvider();
void OnTimezoneResolved(scoped_ptr<TimeZoneResponseData> timezone,
bool server_error);
+ // Called from SimpleGeolocationProvider when location is resolved.
+ void OnLocationResolved(const Geoposition& position,
+ bool server_error,
+ const base::TimeDelta elapsed);
+
// Whether to skip any screens that may normally be shown after login
// (registration, Terms of Service, user image selection).
static bool skip_post_login_screens_;
scoped_ptr<WrongHWIDScreen> wrong_hwid_screen_;
scoped_ptr<LocallyManagedUserCreationScreen>
locally_managed_user_creation_screen_;
+ scoped_ptr<HIDDetectionScreen> hid_detection_screen_;
// Screen that's currently active.
WizardScreen* current_screen_;
base::WeakPtrFactory<WizardController> weak_factory_;
+ scoped_ptr<SimpleGeolocationProvider> geolocation_provider_;
scoped_ptr<TimeZoneProvider> timezone_provider_;
DISALLOW_COPY_AND_ASSIGN(WizardController);