Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.h

Issue 10532048: [cros] Initial WebRTC-enabled implementation of user image picker on OOBE. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Revert ImageDecoder changes. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698