| 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_;
|
|
|
|
|