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

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

Issue 3353015: Implement gallery install API (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: erik comments Created 10 years, 3 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
« no previous file with comments | « chrome/browser/download/download_util.cc ('k') | chrome/browser/extensions/crx_installer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_CRX_INSTALLER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_
6 #define CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 26 matching lines...) Expand all
37 // working with it, eg: 37 // working with it, eg:
38 // 38 //
39 // scoped_refptr<CrxInstaller> installer(new CrxInstaller(...)); 39 // scoped_refptr<CrxInstaller> installer(new CrxInstaller(...));
40 // installer->set_foo(); 40 // installer->set_foo();
41 // installer->set_bar(); 41 // installer->set_bar();
42 // installer->InstallCrx(...); 42 // installer->InstallCrx(...);
43 class CrxInstaller 43 class CrxInstaller
44 : public SandboxedExtensionUnpackerClient, 44 : public SandboxedExtensionUnpackerClient,
45 public ExtensionInstallUI::Delegate { 45 public ExtensionInstallUI::Delegate {
46 public: 46 public:
47
48 // This is pretty lame, but given the difficulty of connecting a particular
49 // ExtensionFunction to a resulting download in the download manager, it's
50 // currently necessary. This is the |id| of an extension to be installed
51 // *by the web store only* which should not get the permissions install
52 // prompt.
53 // crbug.com/54916
54 static void SetWhitelistedInstallId(const std::string& id);
55
56 // Returns whether |id| was found and removed (was whitelisted).
57 static bool ClearWhitelistedInstallId(const std::string& id);
58
47 // Constructor. Extensions will be unpacked to |install_directory|. 59 // Constructor. Extensions will be unpacked to |install_directory|.
48 // Extension objects will be sent to |frontend|, and any UI will be shown 60 // Extension objects will be sent to |frontend|, and any UI will be shown
49 // via |client|. For silent install, pass NULL for |client|. 61 // via |client|. For silent install, pass NULL for |client|.
50 CrxInstaller(const FilePath& install_directory, 62 CrxInstaller(const FilePath& install_directory,
51 ExtensionsService* frontend, 63 ExtensionsService* frontend,
52 ExtensionInstallUI* client); 64 ExtensionInstallUI* client);
53 65
54 // Install the crx in |source_file|. Note that this will most likely 66 // Install the crx in |source_file|. Note that this will most likely
55 // complete asynchronously. 67 // complete asynchronously.
56 void InstallCrx(const FilePath& source_file); 68 void InstallCrx(const FilePath& source_file);
(...skipping 19 matching lines...) Expand all
76 void set_expected_id(const std::string& val) { expected_id_ = val; } 88 void set_expected_id(const std::string& val) { expected_id_ = val; }
77 89
78 bool delete_source() const { return delete_source_; } 90 bool delete_source() const { return delete_source_; }
79 void set_delete_source(bool val) { delete_source_ = val; } 91 void set_delete_source(bool val) { delete_source_ = val; }
80 92
81 bool allow_privilege_increase() const { return allow_privilege_increase_; } 93 bool allow_privilege_increase() const { return allow_privilege_increase_; }
82 void set_allow_privilege_increase(bool val) { 94 void set_allow_privilege_increase(bool val) {
83 allow_privilege_increase_ = val; 95 allow_privilege_increase_ = val;
84 } 96 }
85 97
98 bool allow_silent_install() const { return allow_silent_install_; }
99 void set_allow_silent_install(bool val) { allow_silent_install_ = val; }
100
86 bool limit_web_extent_to_download_host() const { 101 bool limit_web_extent_to_download_host() const {
87 return limit_web_extent_to_download_host_; 102 return limit_web_extent_to_download_host_;
88 } 103 }
89 void set_limit_web_extent_to_download_host(bool val) { 104 void set_limit_web_extent_to_download_host(bool val) {
90 limit_web_extent_to_download_host_ = val; 105 limit_web_extent_to_download_host_ = val;
91 } 106 }
92 107
93 // If |apps_require_extension_mime_type_| is set to true, be sure to set 108 // If |apps_require_extension_mime_type_| is set to true, be sure to set
94 // |original_mime_type_| as well. 109 // |original_mime_type_| as well.
95 void set_apps_require_extension_mime_type( 110 void set_apps_require_extension_mime_type(
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 ExtensionInstallUI* client_; 211 ExtensionInstallUI* client_;
197 212
198 // The root of the unpacked extension directory. This is a subdirectory of 213 // The root of the unpacked extension directory. This is a subdirectory of
199 // temp_dir_, so we don't have to delete it explicitly. 214 // temp_dir_, so we don't have to delete it explicitly.
200 FilePath unpacked_extension_root_; 215 FilePath unpacked_extension_root_;
201 216
202 // True when the CRX being installed was just downloaded. 217 // True when the CRX being installed was just downloaded.
203 // Used to trigger extra checks before installing. 218 // Used to trigger extra checks before installing.
204 bool apps_require_extension_mime_type_; 219 bool apps_require_extension_mime_type_;
205 220
221 // Allows for the possibility of a normal install (one in which a |client|
222 // is provided in the ctor) to procede without showing the permissions prompt
223 // dialog. Note that this will only take place if |allow_silent_install_|
224 // is true AND the unpacked id of the extension is whitelisted with
225 // SetWhitelistedInstallId().
226 bool allow_silent_install_;
227
206 // The value of the content type header sent with the CRX. 228 // The value of the content type header sent with the CRX.
207 // Ignorred unless |require_extension_mime_type_| is true. 229 // Ignorred unless |require_extension_mime_type_| is true.
208 std::string original_mime_type_; 230 std::string original_mime_type_;
209 231
210 DISALLOW_COPY_AND_ASSIGN(CrxInstaller); 232 DISALLOW_COPY_AND_ASSIGN(CrxInstaller);
211 }; 233 };
212 234
213 #endif // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_ 235 #endif // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/download/download_util.cc ('k') | chrome/browser/extensions/crx_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698