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

Side by Side Diff: chrome/browser/extensions/extension_install_ui.h

Issue 6721013: extensions: Refactor ExtensionInstallUI class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: indentation Created 9 years, 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_EXTENSIONS_EXTENSION_INSTALL_UI_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/string16.h" 12 #include "base/string16.h"
13 #include "chrome/browser/extensions/image_loading_tracker.h" 13 #include "chrome/browser/extensions/image_loading_tracker.h"
14 #include "chrome/common/extensions/url_pattern.h" 14 #include "chrome/common/extensions/url_pattern.h"
15 #include "third_party/skia/include/core/SkBitmap.h" 15 #include "third_party/skia/include/core/SkBitmap.h"
16 #include "ui/gfx/native_widget_types.h" 16 #include "ui/gfx/native_widget_types.h"
17 17
18 class Extension; 18 class Extension;
19 class MessageLoop; 19 class MessageLoop;
20 class Profile; 20 class Profile;
21 class InfoBarDelegate; 21 class InfoBarDelegate;
22 class TabContents; 22 class TabContents;
23 23
24 // Displays all the UI around extension installation and uninstallation. 24 // Displays all the UI around extension installation and uninstallation.
25 class ExtensionInstallUI : public ImageLoadingTracker::Observer { 25 class ExtensionInstallUI : public ImageLoadingTracker::Observer {
26 public: 26 public:
27 enum PromptType { 27 enum PromptType {
28 UNSET_PROMPT_TYPE = -1, 28 UNSET_PROMPT_TYPE = -1,
29 INSTALL_PROMPT = 0, 29 INSTALL_PROMPT = 0,
30 UNINSTALL_PROMPT,
31 RE_ENABLE_PROMPT, 30 RE_ENABLE_PROMPT,
32 NUM_PROMPT_TYPES 31 NUM_PROMPT_TYPES
33 }; 32 };
34 33
35 // A mapping from PromptType to message ID for various dialog content. 34 // A mapping from PromptType to message ID for various dialog content.
36 static const int kTitleIds[NUM_PROMPT_TYPES]; 35 static const int kTitleIds[NUM_PROMPT_TYPES];
37 static const int kHeadingIds[NUM_PROMPT_TYPES]; 36 static const int kHeadingIds[NUM_PROMPT_TYPES];
38 static const int kButtonIds[NUM_PROMPT_TYPES]; 37 static const int kButtonIds[NUM_PROMPT_TYPES];
39 static const int kWarningIds[NUM_PROMPT_TYPES]; 38 static const int kWarningIds[NUM_PROMPT_TYPES];
40 39
41 class Delegate { 40 class Delegate {
42 public: 41 public:
43 // We call this method after ConfirmInstall()/ConfirmUninstall() to signal 42 // We call this method to signal that the installation should continue.
44 // that the installation/uninstallation should continue.
45 virtual void InstallUIProceed() = 0; 43 virtual void InstallUIProceed() = 0;
46 44
47 // We call this method after ConfirmInstall()/ConfirmUninstall() to signal 45 // We call this method to signal that the installation should stop.
48 // that the installation/uninstallation should stop.
49 virtual void InstallUIAbort() = 0; 46 virtual void InstallUIAbort() = 0;
50 47
51 protected: 48 protected:
52 virtual ~Delegate() {} 49 virtual ~Delegate() {}
53 }; 50 };
54 51
55 explicit ExtensionInstallUI(Profile* profile); 52 explicit ExtensionInstallUI(Profile* profile);
56
57 virtual ~ExtensionInstallUI(); 53 virtual ~ExtensionInstallUI();
58 54
59 // This is called by the installer to verify whether the installation should 55 // This is called by the installer to verify whether the installation should
60 // proceed. This is declared virtual for testing. 56 // proceed. This is declared virtual for testing.
61 // 57 //
62 // We *MUST* eventually call either Proceed() or Abort() 58 // We *MUST* eventually call either Proceed() or Abort() on |delegate|.
63 // on |delegate|.
64 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension); 59 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension);
65 60
66 // This is called by the extensions management page to verify whether the
67 // uninstallation should proceed. This is declared virtual for testing.
68 //
69 // We *MUST* eventually call either Proceed() or Abort()
70 // on |delegate|.
71 virtual void ConfirmUninstall(Delegate* delegate, const Extension* extension);
72
73 // This is called by the app handler launcher to verify whether the app 61 // This is called by the app handler launcher to verify whether the app
74 // should be re-enabled. This is declared virtual for testing. 62 // should be re-enabled. This is declared virtual for testing.
75 // 63 //
76 // We *MUST* eventually call either Proceed() or Abort() on |delegate|. 64 // We *MUST* eventually call either Proceed() or Abort() on |delegate|.
77 virtual void ConfirmReEnable(Delegate* delegate, const Extension* extension); 65 virtual void ConfirmReEnable(Delegate* delegate, const Extension* extension);
78 66
79 // Installation was successful. This is declared virtual for testing. 67 // Installation was successful. This is declared virtual for testing.
80 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon); 68 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon);
81 69
82 // Installation failed. This is declared virtual for testing. 70 // Installation failed. This is declared virtual for testing.
83 virtual void OnInstallFailure(const std::string& error); 71 virtual void OnInstallFailure(const std::string& error);
84 72
85 // ImageLoadingTracker::Observer overrides. 73 // ImageLoadingTracker::Observer:
86 virtual void OnImageLoaded( 74 virtual void OnImageLoaded(
87 SkBitmap* image, const ExtensionResource& resource, int index); 75 SkBitmap* image, const ExtensionResource& resource, int index);
88 76
89 // Show an infobar for a newly-installed theme. previous_theme_id 77 // Show an infobar for a newly-installed theme. previous_theme_id
90 // should be empty if the previous theme was the system/default 78 // should be empty if the previous theme was the system/default
91 // theme. 79 // theme.
92 // 80 //
93 // TODO(akalin): Find a better home for this (and 81 // TODO(akalin): Find a better home for this (and
94 // GetNewThemeInstalledInfoBarDelegate()). 82 // GetNewThemeInstalledInfoBarDelegate()).
95 static void ShowThemeInfoBar( 83 static void ShowThemeInfoBar(
96 const std::string& previous_theme_id, bool previous_use_system_theme, 84 const std::string& previous_theme_id, bool previous_use_system_theme,
97 const Extension* new_theme, Profile* profile); 85 const Extension* new_theme, Profile* profile);
98 86
99 private: 87 private:
100 // Sets the icon that will be used in any UI. If |icon| is NULL, or contains 88 // Sets the icon that will be used in any UI. If |icon| is NULL, or contains
101 // an empty bitmap, then a default icon will be used instead. 89 // an empty bitmap, then a default icon will be used instead.
102 void SetIcon(SkBitmap* icon); 90 void SetIcon(SkBitmap* icon);
103 91
104 // Starts the process of showing a confirmation UI, which is split into two. 92 // Starts the process of showing a confirmation UI, which is split into two.
105 // 1) Set off a 'load icon' task. 93 // 1) Set off a 'load icon' task.
106 // 2) Handle the load icon response and show the UI (OnImageLoaded). 94 // 2) Handle the load icon response and show the UI (OnImageLoaded).
107 void ShowConfirmation(PromptType prompt_type); 95 void ShowConfirmation(PromptType prompt_type);
108 96
109 // Returns the delegate to control the browser's info bar. This is 97 // Returns the delegate to control the browser's info bar. This is
110 // within its own function due to its platform-specific nature. 98 // within its own function due to its platform-specific nature.
111 static InfoBarDelegate* GetNewThemeInstalledInfoBarDelegate( 99 static InfoBarDelegate* GetNewThemeInstalledInfoBarDelegate(
112 TabContents* tab_contents, const Extension* new_theme, 100 TabContents* tab_contents,
113 const std::string& previous_theme_id, bool previous_use_system_theme); 101 const Extension* new_theme,
102 const std::string& previous_theme_id,
103 bool previous_use_system_theme);
114 104
115 Profile* profile_; 105 Profile* profile_;
116 MessageLoop* ui_loop_; 106 MessageLoop* ui_loop_;
117 107
118 // Used to undo theme installation. 108 // Used to undo theme installation.
119 std::string previous_theme_id_; 109 std::string previous_theme_id_;
120 bool previous_use_system_theme_; 110 bool previous_use_system_theme_;
121 111
122 SkBitmap icon_; // The extensions installation icon. 112 // The extensions installation icon.
123 const Extension* extension_; // The extension we are showing the UI for. 113 SkBitmap icon_;
124 Delegate* delegate_; // The delegate we will call Proceed/Abort on after 114
125 // confirmation UI. 115 // The extension we are showing the UI for.
126 PromptType prompt_type_; // The type of prompt we are going to show. 116 const Extension* extension_;
117
118 // The delegate we will call Proceed/Abort on after confirmation UI.
119 Delegate* delegate_;
120
121 // The type of prompt we are going to show.
122 PromptType prompt_type_;
127 123
128 // Keeps track of extension images being loaded on the File thread for the 124 // Keeps track of extension images being loaded on the File thread for the
129 // purpose of showing the install UI. 125 // purpose of showing the install UI.
130 ImageLoadingTracker tracker_; 126 ImageLoadingTracker tracker_;
131 }; 127 };
132 128
133 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_ 129 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_install_dialog.h ('k') | chrome/browser/extensions/extension_install_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698