OLD | NEW |
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/supervised/supervised_user_creation_scre
en.h" | 5 #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_scre
en.h" |
6 | 6 |
7 #include "ash/desktop_background/desktop_background_controller.h" | 7 #include "ash/desktop_background/desktop_background_controller.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 SupervisedUserCreationScreen* SupervisedUserCreationScreen::Get( | 93 SupervisedUserCreationScreen* SupervisedUserCreationScreen::Get( |
94 ScreenManager* manager) { | 94 ScreenManager* manager) { |
95 return static_cast<SupervisedUserCreationScreen*>( | 95 return static_cast<SupervisedUserCreationScreen*>( |
96 manager->GetScreen(WizardController::kSupervisedUserCreationScreenName)); | 96 manager->GetScreen(WizardController::kSupervisedUserCreationScreenName)); |
97 } | 97 } |
98 | 98 |
99 SupervisedUserCreationScreen::SupervisedUserCreationScreen( | 99 SupervisedUserCreationScreen::SupervisedUserCreationScreen( |
100 BaseScreenDelegate* base_screen_delegate, | 100 BaseScreenDelegate* base_screen_delegate, |
101 SupervisedUserCreationScreenHandler* actor) | 101 SupervisedUserCreationScreenHandler* actor) |
102 : BaseScreen(base_screen_delegate), | 102 : BaseScreen(base_screen_delegate), |
| 103 ImageRequest(content::BrowserThread::GetMessageLoopProxyForThread( |
| 104 content::BrowserThread::UI)), |
103 actor_(actor), | 105 actor_(actor), |
104 on_error_screen_(false), | 106 on_error_screen_(false), |
105 manager_signin_in_progress_(false), | 107 manager_signin_in_progress_(false), |
106 last_page_(kNameOfIntroScreen), | 108 last_page_(kNameOfIntroScreen), |
107 sync_service_(NULL), | 109 sync_service_(NULL), |
108 image_decoder_(NULL), | |
109 apply_photo_after_decoding_(false), | 110 apply_photo_after_decoding_(false), |
110 selected_image_(0), | 111 selected_image_(0), |
111 histogram_helper_(new ErrorScreensHistogramHelper("Supervised")), | 112 histogram_helper_(new ErrorScreensHistogramHelper("Supervised")), |
112 weak_factory_(this) { | 113 weak_factory_(this) { |
113 DCHECK(actor_); | 114 DCHECK(actor_); |
114 if (actor_) | 115 if (actor_) |
115 actor_->SetDelegate(this); | 116 actor_->SetDelegate(this); |
116 } | 117 } |
117 | 118 |
118 SupervisedUserCreationScreen::~SupervisedUserCreationScreen() { | 119 SupervisedUserCreationScreen::~SupervisedUserCreationScreen() { |
119 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); | 120 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
120 if (sync_service_) | 121 if (sync_service_) |
121 sync_service_->RemoveObserver(this); | 122 sync_service_->RemoveObserver(this); |
122 if (actor_) | 123 if (actor_) |
123 actor_->SetDelegate(NULL); | 124 actor_->SetDelegate(NULL); |
124 if (image_decoder_.get()) | |
125 image_decoder_->set_delegate(NULL); | |
126 NetworkPortalDetector::Get()->RemoveObserver(this); | 125 NetworkPortalDetector::Get()->RemoveObserver(this); |
127 } | 126 } |
128 | 127 |
129 void SupervisedUserCreationScreen::PrepareToShow() { | 128 void SupervisedUserCreationScreen::PrepareToShow() { |
130 if (actor_) | 129 if (actor_) |
131 actor_->PrepareToShow(); | 130 actor_->PrepareToShow(); |
132 } | 131 } |
133 | 132 |
134 void SupervisedUserCreationScreen::Show() { | 133 void SupervisedUserCreationScreen::Show() { |
135 CameraPresenceNotifier::GetInstance()->AddObserver(this); | 134 CameraPresenceNotifier::GetInstance()->AddObserver(this); |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 existing_users_->Set(it.key(), local_copy); | 584 existing_users_->Set(it.key(), local_copy); |
586 ui_users->Append(ui_copy); | 585 ui_users->Append(ui_copy); |
587 } | 586 } |
588 actor_->ShowExistingSupervisedUsers(ui_users.get()); | 587 actor_->ShowExistingSupervisedUsers(ui_users.get()); |
589 } | 588 } |
590 | 589 |
591 void SupervisedUserCreationScreen::OnPhotoTaken( | 590 void SupervisedUserCreationScreen::OnPhotoTaken( |
592 const std::string& raw_data) { | 591 const std::string& raw_data) { |
593 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 592 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
594 user_photo_ = gfx::ImageSkia(); | 593 user_photo_ = gfx::ImageSkia(); |
595 if (image_decoder_.get()) | 594 ImageDecoder::Cancel(this); |
596 image_decoder_->set_delegate(NULL); | 595 ImageDecoder::Start(this, raw_data, ImageDecoder::DEFAULT_CODEC, false); |
597 image_decoder_ = new ImageDecoder(this, raw_data, | |
598 ImageDecoder::DEFAULT_CODEC); | |
599 scoped_refptr<base::MessageLoopProxy> task_runner = | |
600 content::BrowserThread::GetMessageLoopProxyForThread( | |
601 content::BrowserThread::UI); | |
602 image_decoder_->Start(task_runner); | |
603 } | 596 } |
604 | 597 |
605 void SupervisedUserCreationScreen::OnImageDecoded( | 598 void SupervisedUserCreationScreen::OnImageDecoded( |
606 const ImageDecoder* decoder, | |
607 const SkBitmap& decoded_image) { | 599 const SkBitmap& decoded_image) { |
608 DCHECK_EQ(image_decoder_.get(), decoder); | |
609 user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); | 600 user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
610 if (apply_photo_after_decoding_) | 601 if (apply_photo_after_decoding_) |
611 ApplyPicture(); | 602 ApplyPicture(); |
612 } | 603 } |
613 | 604 |
614 void SupervisedUserCreationScreen::OnDecodeImageFailed( | 605 void SupervisedUserCreationScreen::OnDecodeImageFailed() { |
615 const ImageDecoder* decoder) { | |
616 NOTREACHED() << "Failed to decode PNG image from WebUI"; | 606 NOTREACHED() << "Failed to decode PNG image from WebUI"; |
617 } | 607 } |
618 | 608 |
619 void SupervisedUserCreationScreen::OnImageSelected( | 609 void SupervisedUserCreationScreen::OnImageSelected( |
620 const std::string& image_type, | 610 const std::string& image_type, |
621 const std::string& image_url) { | 611 const std::string& image_url) { |
622 if (image_url.empty()) | 612 if (image_url.empty()) |
623 return; | 613 return; |
624 int user_image_index = user_manager::User::USER_IMAGE_INVALID; | 614 int user_image_index = user_manager::User::USER_IMAGE_INVALID; |
625 if (image_type == "default" && | 615 if (image_type == "default" && |
626 user_manager::IsDefaultImageUrl(image_url, &user_image_index)) { | 616 user_manager::IsDefaultImageUrl(image_url, &user_image_index)) { |
627 selected_image_ = user_image_index; | 617 selected_image_ = user_image_index; |
628 } else if (image_type == "camera") { | 618 } else if (image_type == "camera") { |
629 selected_image_ = user_manager::User::USER_IMAGE_EXTERNAL; | 619 selected_image_ = user_manager::User::USER_IMAGE_EXTERNAL; |
630 } else { | 620 } else { |
631 NOTREACHED() << "Unexpected image type: " << image_type; | 621 NOTREACHED() << "Unexpected image type: " << image_type; |
632 } | 622 } |
633 } | 623 } |
634 | 624 |
635 void SupervisedUserCreationScreen::OnImageAccepted() { | 625 void SupervisedUserCreationScreen::OnImageAccepted() { |
636 } | 626 } |
637 | 627 |
638 } // namespace chromeos | 628 } // namespace chromeos |
OLD | NEW |