Index: chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h |
diff --git a/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h |
index 5392c77fffc94eeeef0aea720d7905a15ea7cedb..71a30a092f7bfcb93f6c650f5281128fb216d0f3 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h |
+++ b/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h |
@@ -9,6 +9,7 @@ |
#include "base/time.h" |
#include "chrome/browser/chromeos/login/user_image_screen_actor.h" |
#include "chrome/browser/chromeos/options/take_photo_dialog.h" |
+#include "chrome/browser/image_decoder.h" |
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" |
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -25,7 +26,8 @@ namespace chromeos { |
// with JS page part allowing user to select avatar. |
class UserImageScreenHandler : public UserImageScreenActor, |
public BaseScreenHandler, |
- public TakePhotoDialog::Delegate { |
+ public TakePhotoDialog::Delegate, |
+ public ImageDecoder::Delegate { |
public: |
UserImageScreenHandler(); |
virtual ~UserImageScreenHandler(); |
@@ -63,6 +65,9 @@ class UserImageScreenHandler : public UserImageScreenActor, |
// Opens the camera capture dialog. |
void HandleTakePhoto(const base::ListValue* args); |
+ // Handles photo taken with WebRTC UI. |
+ void HandlePhotoTaken(const base::ListValue* args); |
+ |
// Handles clicking on default user image. |
void HandleSelectImage(const base::ListValue* args); |
@@ -75,6 +80,12 @@ class UserImageScreenHandler : public UserImageScreenActor, |
// Called when the camera presence check has been completed. |
void OnCameraPresenceCheckDone(); |
+ // Overriden from ImageDecoder::Delegate: |
+ virtual void OnImageDecoded(const ImageDecoder* decoder, |
+ const SkBitmap& decoded_image) OVERRIDE; |
+ virtual void OnDecodeImageFailed(const ImageDecoder* decoder) OVERRIDE; |
+ |
+ |
UserImageScreenActor::Delegate* screen_; |
// Keeps whether screen should be shown right after initialization. |
@@ -86,6 +97,15 @@ class UserImageScreenHandler : public UserImageScreenActor, |
// Last user photo, if taken. |
gfx::ImageSkia user_photo_; |
+ // Last ImageDecoder instance used to decode an image blob received by |
+ // HandlePhotoTaken. |
+ scoped_refptr<ImageDecoder> image_decoder_; |
+ |
+ // If |true|, decoded photo should be immediately accepeted (i.e., both |
+ // HandleTakePhoto and HandleImageAccepted have already been called but we're |
+ // still waiting for photo image decoding to finish. |
+ bool accept_photo_after_decoding_; |
+ |
// Data URL for |user_photo_|. |
std::string user_photo_data_url_; |