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

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

Issue 14063017: Move logic in UserImageScreen from UserImageScreenHandler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_ 5 #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "base/time.h" 11 #include "base/time.h"
12 #include "chrome/browser/chromeos/login/screens/user_image_screen_actor.h" 12 #include "chrome/browser/chromeos/login/screens/user_image_screen_actor.h"
13 #include "chrome/browser/image_decoder.h"
14 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 13 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
15 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 14 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
16 #include "third_party/skia/include/core/SkBitmap.h"
17 #include "ui/gfx/image/image_skia.h" 15 #include "ui/gfx/image/image_skia.h"
18 #include "ui/gfx/native_widget_types.h" 16 #include "ui/gfx/native_widget_types.h"
19 17
20 namespace chromeos { 18 namespace chromeos {
21 19
22 // WebUI implementation of UserImageScreenActor. It is used to interact 20 // WebUI implementation of UserImageScreenActor. It is used to interact
23 // with JS page part allowing user to select avatar. 21 // with JS page part allowing user to select avatar.
24 class UserImageScreenHandler : public UserImageScreenActor, 22 class UserImageScreenHandler : public UserImageScreenActor,
25 public BaseScreenHandler, 23 public BaseScreenHandler {
26 public ImageDecoder::Delegate {
27 public: 24 public:
28 UserImageScreenHandler(); 25 UserImageScreenHandler();
29 virtual ~UserImageScreenHandler(); 26 virtual ~UserImageScreenHandler();
30 27
31 // BaseScreenHandler implementation: 28 // BaseScreenHandler implementation:
29 virtual void Initialize() OVERRIDE;
32 virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE; 30 virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE;
33 virtual void Initialize() OVERRIDE; 31
32 // WebUIMessageHandler implementation:
33 virtual void RegisterMessages() OVERRIDE;
34 34
35 // UserImageScreenActor implementation: 35 // UserImageScreenActor implementation:
36 virtual void SetDelegate( 36 virtual void SetDelegate(
37 UserImageScreenActor::Delegate* screen) OVERRIDE; 37 UserImageScreenActor::Delegate* screen) OVERRIDE;
38 virtual void Show() OVERRIDE; 38 virtual void Show() OVERRIDE;
39 virtual void Hide() OVERRIDE; 39 virtual void Hide() OVERRIDE;
40 virtual void PrepareToShow() OVERRIDE; 40 virtual void PrepareToShow() OVERRIDE;
41
41 virtual void SelectImage(int index) OVERRIDE; 42 virtual void SelectImage(int index) OVERRIDE;
42 virtual void CheckCameraPresence() OVERRIDE; 43 virtual void SendProfileImage(const std::string& data_url) OVERRIDE;
43 virtual void AddProfileImage(const gfx::ImageSkia& image) OVERRIDE;
44 virtual void OnProfileImageAbsent() OVERRIDE; 44 virtual void OnProfileImageAbsent() OVERRIDE;
45
45 virtual void SetProfilePictureEnabled(bool enabled) OVERRIDE; 46 virtual void SetProfilePictureEnabled(bool enabled) OVERRIDE;
46 47
47 // WebUIMessageHandler implementation: 48 virtual void SetCameraPresent(bool enabled) OVERRIDE;
48 virtual void RegisterMessages() OVERRIDE;
49 49
50 private: 50 private:
51 // Sends profile image as a data URL to the page.
52 void SendProfileImage(const std::string& data_url);
53 51
54 // Sends image data to the page. 52 // Sends image data to the page.
55 void HandleGetImages(); 53 void HandleGetImages();
56 54
57 // Handles photo taken with WebRTC UI. 55 // Handles photo taken with WebRTC UI.
58 void HandlePhotoTaken(const std::string& image_url); 56 void HandlePhotoTaken(const std::string& image_url);
59 57
60 // Handles camera presence check request. 58 // Handles camera presence check request.
61 void HandleCheckCameraPresence(); 59 void HandleCheckCameraPresence();
62 60
63 // Handles clicking on default user image. 61 // Handles clicking on default user image.
64 void HandleSelectImage(const std::string& image_url, 62 void HandleSelectImage(const std::string& image_url,
65 const std::string& image_type); 63 const std::string& image_type);
66 64
67 // Called when user accept the image closing the screen. 65 // Called when user accept the image closing the screen.
68 void HandleImageAccepted(); 66 void HandleImageAccepted();
69 67
70 // Called when the user image screen has been loaded and shown. 68 // Called when the user image screen has been loaded and shown.
71 void HandleScreenShown(); 69 void HandleScreenShown();
72 70
73 // Called when the camera presence check has been completed.
74 void OnCameraPresenceCheckDone();
75
76 // Overriden from ImageDecoder::Delegate:
77 virtual void OnImageDecoded(const ImageDecoder* decoder,
78 const SkBitmap& decoded_image) OVERRIDE;
79 virtual void OnDecodeImageFailed(const ImageDecoder* decoder) OVERRIDE;
80
81
82 UserImageScreenActor::Delegate* screen_; 71 UserImageScreenActor::Delegate* screen_;
83 72
84 // Keeps whether screen should be shown right after initialization. 73 // Keeps whether screen should be shown right after initialization.
85 bool show_on_init_; 74 bool show_on_init_;
86 75
87 // Index of the selected user image.
88 int selected_image_;
89
90 // Last user photo, if taken.
91 gfx::ImageSkia user_photo_;
92
93 // Last ImageDecoder instance used to decode an image blob received by
94 // HandlePhotoTaken.
95 scoped_refptr<ImageDecoder> image_decoder_;
96
97 // If |true|, decoded photo should be immediately accepeted (i.e., both
98 // HandleTakePhoto and HandleImageAccepted have already been called but we're
99 // still waiting for photo image decoding to finish.
100 bool accept_photo_after_decoding_;
101
102 // Data URL for |user_photo_|.
103 std::string user_photo_data_url_;
104
105 // Data URL of the profile picture;
106 std::string profile_picture_data_url_;
107
108 // True if user has no custom profile picture.
109 bool profile_picture_absent_;
110
111 base::WeakPtrFactory<UserImageScreenHandler> weak_factory_;
112
113 base::Time screen_show_time_; 76 base::Time screen_show_time_;
114 77
115 DISALLOW_COPY_AND_ASSIGN(UserImageScreenHandler); 78 DISALLOW_COPY_AND_ASSIGN(UserImageScreenHandler);
116 }; 79 };
117 80
118 } // namespace chromeos 81 } // namespace chromeos
119 82
120 #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_ 83 #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_HANDLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698