Index: chrome/browser/chromeos/login/screens/user_image_screen.cc |
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
index 73e22029e5f41b17836e0ce28f60344d4d0f0a5f..d69278dea482f826d73ed4ac001312f6936fd6b2 100644 |
--- a/chrome/browser/chromeos/login/screens/user_image_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc |
@@ -48,6 +48,12 @@ namespace chromeos { |
namespace { |
+constexpr const char kContextKeyIsCameraPresent[] = "isCameraPresent"; |
+constexpr const char kContextKeyProfilePictureDataURL[] = |
+ "profilePictureDataURL"; |
+constexpr const char kContextKeySelectedImageURL[] = "selectedImageURL"; |
+constexpr const char kContextKeyHasGaiaAccount[] = "hasGaiaAccount"; |
+ |
// Time histogram suffix for profile image download. |
const char kProfileDownloadReason[] = "OOBE"; |
@@ -65,14 +71,10 @@ UserImageScreen* UserImageScreen::Get(ScreenManager* manager) { |
UserImageScreen::UserImageScreen(BaseScreenDelegate* base_screen_delegate, |
UserImageView* view) |
- : UserImageModel(base_screen_delegate), |
- view_(view), |
- accept_photo_after_decoding_(false), |
- selected_image_(user_manager::User::USER_IMAGE_INVALID), |
- is_screen_ready_(false), |
- user_has_selected_image_(false) { |
+ : BaseScreen(base_screen_delegate, OobeScreen::SCREEN_USER_IMAGE_PICKER), |
+ view_(view) { |
if (view_) |
- view_->Bind(*this); |
+ view_->Bind(this); |
user_manager::UserManager::Get()->AddObserver(this); |
GetContextEditor().SetString(kContextKeyProfilePictureDataURL, std::string()); |
} |
@@ -97,64 +99,6 @@ void UserImageScreen::OnPhotoTaken(const std::string& raw_data) { |
ImageDecoder::Start(this, raw_data); |
} |
-void UserImageScreen::OnCameraPresenceCheckDone(bool is_camera_present) { |
- GetContextEditor().SetBoolean(kContextKeyIsCameraPresent, is_camera_present); |
-} |
- |
-void UserImageScreen::HideCurtain() { |
- // Skip user image selection for ephemeral users. |
- if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( |
- GetUser()->GetAccountId())) { |
- ExitScreen(); |
- } |
- if (view_) |
- view_->HideCurtain(); |
-} |
- |
-void UserImageScreen::OnImageDecoded(const SkBitmap& decoded_image) { |
- user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
- if (accept_photo_after_decoding_) |
- OnImageAccepted(); |
-} |
- |
-void UserImageScreen::OnDecodeImageFailed() { |
- NOTREACHED() << "Failed to decode PNG image from WebUI"; |
-} |
- |
-void UserImageScreen::OnInitialSync(bool local_image_updated) { |
- DCHECK(sync_timer_); |
- ReportSyncResult(SyncResult::SUCCEEDED); |
- if (!local_image_updated) { |
- sync_timer_.reset(); |
- GetSyncObserver()->RemoveObserver(this); |
- if (is_screen_ready_) |
- HideCurtain(); |
- return; |
- } |
- ExitScreen(); |
-} |
- |
-void UserImageScreen::OnSyncTimeout() { |
- ReportSyncResult(SyncResult::TIMED_OUT); |
- sync_timer_.reset(); |
- GetSyncObserver()->RemoveObserver(this); |
- if (is_screen_ready_) |
- HideCurtain(); |
-} |
- |
-bool UserImageScreen::IsWaitingForSync() const { |
- return sync_timer_.get() && sync_timer_->IsRunning(); |
-} |
- |
-void UserImageScreen::OnUserImagePolicyChanged(const base::Value* previous, |
- const base::Value* current) { |
- if (current) { |
- base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
- FROM_HERE, policy_registrar_.release()); |
- ExitScreen(); |
- } |
-} |
- |
void UserImageScreen::OnImageSelected(const std::string& image_type, |
const std::string& image_url, |
bool is_user_selection) { |
@@ -209,17 +153,9 @@ void UserImageScreen::OnImageAccepted() { |
ExitScreen(); |
} |
-const user_manager::User* UserImageScreen::GetUser() { |
- return user_manager::UserManager::Get()->GetActiveUser(); |
-} |
- |
-UserImageManager* UserImageScreen::GetUserImageManager() { |
- return ChromeUserManager::Get()->GetUserImageManager( |
- GetUser()->GetAccountId()); |
-} |
- |
-UserImageSyncObserver* UserImageScreen::GetSyncObserver() { |
- return GetUserImageManager()->GetSyncObserver(); |
+void UserImageScreen::OnViewDestroyed(UserImageView* view) { |
+ if (view_ == view) |
+ view_ = nullptr; |
} |
void UserImageScreen::Show() { |
@@ -301,9 +237,18 @@ void UserImageScreen::Hide() { |
view_->Hide(); |
} |
-void UserImageScreen::OnViewDestroyed(UserImageView* view) { |
- if (view_ == view) |
- view_ = nullptr; |
+void UserImageScreen::OnCameraPresenceCheckDone(bool is_camera_present) { |
+ GetContextEditor().SetBoolean(kContextKeyIsCameraPresent, is_camera_present); |
+} |
+ |
+void UserImageScreen::OnImageDecoded(const SkBitmap& decoded_image) { |
+ user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
+ if (accept_photo_after_decoding_) |
+ OnImageAccepted(); |
+} |
+ |
+void UserImageScreen::OnDecodeImageFailed() { |
+ NOTREACHED() << "Failed to decode PNG image from WebUI"; |
} |
void UserImageScreen::OnUserImageChanged(const user_manager::User& user) { |
@@ -327,6 +272,63 @@ void UserImageScreen::OnUserProfileImageUpdated( |
webui::GetBitmapDataUrl(*profile_image.bitmap())); |
} |
+void UserImageScreen::OnInitialSync(bool local_image_updated) { |
+ DCHECK(sync_timer_); |
+ ReportSyncResult(SyncResult::SUCCEEDED); |
+ if (!local_image_updated) { |
+ sync_timer_.reset(); |
+ GetSyncObserver()->RemoveObserver(this); |
+ if (is_screen_ready_) |
+ HideCurtain(); |
+ return; |
+ } |
+ ExitScreen(); |
+} |
+ |
+void UserImageScreen::OnSyncTimeout() { |
+ ReportSyncResult(SyncResult::TIMED_OUT); |
+ sync_timer_.reset(); |
+ GetSyncObserver()->RemoveObserver(this); |
+ if (is_screen_ready_) |
+ HideCurtain(); |
+} |
+ |
+bool UserImageScreen::IsWaitingForSync() const { |
+ return sync_timer_.get() && sync_timer_->IsRunning(); |
+} |
+ |
+void UserImageScreen::OnUserImagePolicyChanged(const base::Value* previous, |
+ const base::Value* current) { |
+ if (current) { |
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
+ FROM_HERE, policy_registrar_.release()); |
+ ExitScreen(); |
+ } |
+} |
+ |
+const user_manager::User* UserImageScreen::GetUser() { |
+ return user_manager::UserManager::Get()->GetActiveUser(); |
+} |
+ |
+UserImageManager* UserImageScreen::GetUserImageManager() { |
+ return ChromeUserManager::Get()->GetUserImageManager( |
+ GetUser()->GetAccountId()); |
+} |
+ |
+UserImageSyncObserver* UserImageScreen::GetSyncObserver() { |
+ return GetUserImageManager()->GetSyncObserver(); |
+} |
+ |
+void UserImageScreen::HideCurtain() { |
+ // Skip user image selection for ephemeral users. |
+ if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral( |
+ GetUser()->GetAccountId())) { |
+ ExitScreen(); |
+ } |
+ if (view_) |
+ view_->HideCurtain(); |
+} |
+ |
void UserImageScreen::ExitScreen() { |
policy_registrar_.reset(); |
sync_timer_.reset(); |