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

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

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 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
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_EXTENSIONS_WEBSTORE_INSTALLER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_WEBSTORE_INSTALLER_H_
6 #define CHROME_BROWSER_EXTENSIONS_WEBSTORE_INSTALLER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_WEBSTORE_INSTALLER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <memory>
9 #include <string> 10 #include <string>
10 11
11 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
12 #include "base/gtest_prod_util.h" 13 #include "base/gtest_prod_util.h"
13 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h"
15 #include "base/scoped_observer.h" 15 #include "base/scoped_observer.h"
16 #include "base/supports_user_data.h" 16 #include "base/supports_user_data.h"
17 #include "base/timer/timer.h" 17 #include "base/timer/timer.h"
18 #include "base/values.h" 18 #include "base/values.h"
19 #include "base/version.h" 19 #include "base/version.h"
20 #include "chrome/browser/extensions/extension_install_prompt.h" 20 #include "chrome/browser/extensions/extension_install_prompt.h"
21 #include "content/public/browser/browser_thread.h" 21 #include "content/public/browser/browser_thread.h"
22 #include "content/public/browser/download_interrupt_reasons.h" 22 #include "content/public/browser/download_interrupt_reasons.h"
23 #include "content/public/browser/download_item.h" 23 #include "content/public/browser/download_item.h"
24 #include "content/public/browser/notification_observer.h" 24 #include "content/public/browser/notification_observer.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 protected: 96 protected:
97 virtual ~Delegate() {} 97 virtual ~Delegate() {}
98 }; 98 };
99 99
100 // Contains information about what parts of the extension install process can 100 // Contains information about what parts of the extension install process can
101 // be skipped or modified. If one of these is present, it means that a CRX 101 // be skipped or modified. If one of these is present, it means that a CRX
102 // download was initiated by WebstoreInstaller. The Approval instance should 102 // download was initiated by WebstoreInstaller. The Approval instance should
103 // be checked further for additional details. 103 // be checked further for additional details.
104 struct Approval : public base::SupportsUserData::Data { 104 struct Approval : public base::SupportsUserData::Data {
105 static scoped_ptr<Approval> CreateWithInstallPrompt(Profile* profile); 105 static std::unique_ptr<Approval> CreateWithInstallPrompt(Profile* profile);
106 106
107 // Creates an Approval for installing a shared module. 107 // Creates an Approval for installing a shared module.
108 static scoped_ptr<Approval> CreateForSharedModule(Profile* profile); 108 static std::unique_ptr<Approval> CreateForSharedModule(Profile* profile);
109 109
110 // Creates an Approval that will skip putting up an install confirmation 110 // Creates an Approval that will skip putting up an install confirmation
111 // prompt if the actual manifest from the extension to be installed matches 111 // prompt if the actual manifest from the extension to be installed matches
112 // |parsed_manifest|. The |strict_manifest_check| controls whether we want 112 // |parsed_manifest|. The |strict_manifest_check| controls whether we want
113 // to require an exact manifest match, or are willing to tolerate a looser 113 // to require an exact manifest match, or are willing to tolerate a looser
114 // check just that the effective permissions are the same. 114 // check just that the effective permissions are the same.
115 static scoped_ptr<Approval> CreateWithNoInstallPrompt( 115 static std::unique_ptr<Approval> CreateWithNoInstallPrompt(
116 Profile* profile, 116 Profile* profile,
117 const std::string& extension_id, 117 const std::string& extension_id,
118 scoped_ptr<base::DictionaryValue> parsed_manifest, 118 std::unique_ptr<base::DictionaryValue> parsed_manifest,
119 bool strict_manifest_check); 119 bool strict_manifest_check);
120 120
121 ~Approval() override; 121 ~Approval() override;
122 122
123 // The extension id that was approved for installation. 123 // The extension id that was approved for installation.
124 std::string extension_id; 124 std::string extension_id;
125 125
126 // The profile the extension should be installed into. 126 // The profile the extension should be installed into.
127 Profile* profile; 127 Profile* profile;
128 128
129 // The expected manifest, before localization. 129 // The expected manifest, before localization.
130 scoped_ptr<Manifest> manifest; 130 std::unique_ptr<Manifest> manifest;
131 131
132 // Whether to use a bubble notification when an app is installed, instead of 132 // Whether to use a bubble notification when an app is installed, instead of
133 // the default behavior of transitioning to the new tab page. 133 // the default behavior of transitioning to the new tab page.
134 bool use_app_installed_bubble; 134 bool use_app_installed_bubble;
135 135
136 // Whether to skip the post install UI like the extension installed bubble. 136 // Whether to skip the post install UI like the extension installed bubble.
137 bool skip_post_install_ui; 137 bool skip_post_install_ui;
138 138
139 // Whether to skip the install dialog once the extension has been downloaded 139 // Whether to skip the install dialog once the extension has been downloaded
140 // and unpacked. One reason this can be true is that in the normal webstore 140 // and unpacked. One reason this can be true is that in the normal webstore
(...skipping 11 matching lines...) Expand all
152 // Used to show the install dialog. 152 // Used to show the install dialog.
153 ExtensionInstallPrompt::ShowDialogCallback show_dialog_callback; 153 ExtensionInstallPrompt::ShowDialogCallback show_dialog_callback;
154 154
155 // The icon to use to display the extension while it is installing. 155 // The icon to use to display the extension while it is installing.
156 gfx::ImageSkia installing_icon; 156 gfx::ImageSkia installing_icon;
157 157
158 // A dummy extension created from |manifest|; 158 // A dummy extension created from |manifest|;
159 scoped_refptr<Extension> dummy_extension; 159 scoped_refptr<Extension> dummy_extension;
160 160
161 // Required minimum version. 161 // Required minimum version.
162 scoped_ptr<Version> minimum_version; 162 std::unique_ptr<Version> minimum_version;
163 163
164 // The authuser index required to download the item being installed. May be 164 // The authuser index required to download the item being installed. May be
165 // the empty string, in which case no authuser parameter is used. 165 // the empty string, in which case no authuser parameter is used.
166 std::string authuser; 166 std::string authuser;
167 167
168 private: 168 private:
169 Approval(); 169 Approval();
170 }; 170 };
171 171
172 // Gets the Approval associated with the |download|, or NULL if there's none. 172 // Gets the Approval associated with the |download|, or NULL if there's none.
173 // Note that the Approval is owned by |download|. 173 // Note that the Approval is owned by |download|.
174 static const Approval* GetAssociatedApproval( 174 static const Approval* GetAssociatedApproval(
175 const content::DownloadItem& download); 175 const content::DownloadItem& download);
176 176
177 // Creates a WebstoreInstaller for downloading and installing the extension 177 // Creates a WebstoreInstaller for downloading and installing the extension
178 // with the given |id| from the Chrome Web Store. If |delegate| is not NULL, 178 // with the given |id| from the Chrome Web Store. If |delegate| is not NULL,
179 // it will be notified when the install succeeds or fails. The installer will 179 // it will be notified when the install succeeds or fails. The installer will
180 // use the specified |controller| to download the extension. Only one 180 // use the specified |controller| to download the extension. Only one
181 // WebstoreInstaller can use a specific controller at any given time. This 181 // WebstoreInstaller can use a specific controller at any given time. This
182 // also associates the |approval| with this install. 182 // also associates the |approval| with this install.
183 // Note: the delegate should stay alive until being called back. 183 // Note: the delegate should stay alive until being called back.
184 WebstoreInstaller(Profile* profile, 184 WebstoreInstaller(Profile* profile,
185 Delegate* delegate, 185 Delegate* delegate,
186 content::WebContents* web_contents, 186 content::WebContents* web_contents,
187 const std::string& id, 187 const std::string& id,
188 scoped_ptr<Approval> approval, 188 std::unique_ptr<Approval> approval,
189 InstallSource source); 189 InstallSource source);
190 190
191 // Starts downloading and installing the extension. 191 // Starts downloading and installing the extension.
192 void Start(); 192 void Start();
193 193
194 // content::NotificationObserver. 194 // content::NotificationObserver.
195 void Observe(int type, 195 void Observe(int type,
196 const content::NotificationSource& source, 196 const content::NotificationSource& source,
197 const content::NotificationDetails& details) override; 197 const content::NotificationDetails& details) override;
198 198
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 Delegate* delegate_; 268 Delegate* delegate_;
269 std::string id_; 269 std::string id_;
270 InstallSource install_source_; 270 InstallSource install_source_;
271 // The DownloadItem is owned by the DownloadManager and is valid from when 271 // The DownloadItem is owned by the DownloadManager and is valid from when
272 // OnDownloadStarted is called (with no error) until OnDownloadDestroyed(). 272 // OnDownloadStarted is called (with no error) until OnDownloadDestroyed().
273 content::DownloadItem* download_item_; 273 content::DownloadItem* download_item_;
274 // Used to periodically update the extension's download status. This will 274 // Used to periodically update the extension's download status. This will
275 // trigger at least every second, though sometimes more frequently (depending 275 // trigger at least every second, though sometimes more frequently (depending
276 // on number of modules, etc). 276 // on number of modules, etc).
277 base::OneShotTimer download_progress_timer_; 277 base::OneShotTimer download_progress_timer_;
278 scoped_ptr<Approval> approval_; 278 std::unique_ptr<Approval> approval_;
279 GURL download_url_; 279 GURL download_url_;
280 scoped_refptr<CrxInstaller> crx_installer_; 280 scoped_refptr<CrxInstaller> crx_installer_;
281 281
282 // Pending modules. 282 // Pending modules.
283 std::list<SharedModuleInfo::ImportInfo> pending_modules_; 283 std::list<SharedModuleInfo::ImportInfo> pending_modules_;
284 // Total extension modules we need download and install (the main module and 284 // Total extension modules we need download and install (the main module and
285 // depedences). 285 // depedences).
286 int total_modules_; 286 int total_modules_;
287 bool download_started_; 287 bool download_started_;
288 }; 288 };
289 289
290 } // namespace extensions 290 } // namespace extensions
291 291
292 #endif // CHROME_BROWSER_EXTENSIONS_WEBSTORE_INSTALLER_H_ 292 #endif // CHROME_BROWSER_EXTENSIONS_WEBSTORE_INSTALLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/webstore_install_with_prompt.cc ('k') | chrome/browser/extensions/webstore_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698