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

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

Issue 345023: Get rid of MessageLoop* caching in extensions code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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
« no previous file with comments | « chrome/browser/download/download_manager.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')
Property Changes:
Added: svn:eol-style
+ LF
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 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/message_loop.h"
12 #include "base/ref_counted.h" 11 #include "base/ref_counted.h"
13 #include "base/task.h" 12 #include "base/task.h"
14 #include "chrome/browser/extensions/extension_install_ui.h" 13 #include "chrome/browser/extensions/extension_install_ui.h"
15 #include "chrome/browser/extensions/extensions_service.h" 14 #include "chrome/browser/extensions/extensions_service.h"
16 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h" 15 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h"
17 #include "chrome/common/extensions/extension.h" 16 #include "chrome/common/extensions/extension.h"
18 17
19 class SkBitmap; 18 class SkBitmap;
20 19
21 // This class installs a crx file into a profile. 20 // This class installs a crx file into a profile.
(...skipping 19 matching lines...) Expand all
41 public: 40 public:
42 // Starts the installation of the crx file in |crx_path| into 41 // Starts the installation of the crx file in |crx_path| into
43 // |install_directory|. 42 // |install_directory|.
44 // 43 //
45 // Other params: 44 // Other params:
46 // install_source: The source of the install (external, --load-extension, etc 45 // install_source: The source of the install (external, --load-extension, etc
47 // expected_id: Optional. If the caller knows what the ID of this extension 46 // expected_id: Optional. If the caller knows what the ID of this extension
48 // should be after unpacking, it can be specified here as a 47 // should be after unpacking, it can be specified here as a
49 // sanity check. 48 // sanity check.
50 // delete_crx: Whether the crx should be deleted on completion. 49 // delete_crx: Whether the crx should be deleted on completion.
51 // file_loop: The message loop to do file IO on.
52 // frontend: The ExtensionsService to report the successfully installed 50 // frontend: The ExtensionsService to report the successfully installed
53 // extension to. 51 // extension to.
54 // client: Optional. If specified, will be used to confirm installation and 52 // client: Optional. If specified, will be used to confirm installation and
55 // also notified of success/fail. Note that we hold a reference to 53 // also notified of success/fail. Note that we hold a reference to
56 // this, so it can outlive its creator (eg the UI). 54 // this, so it can outlive its creator (eg the UI).
57 static void Start(const FilePath& crx_path, 55 static void Start(const FilePath& crx_path,
58 const FilePath& install_directory, 56 const FilePath& install_directory,
59 Extension::Location install_source, 57 Extension::Location install_source,
60 const std::string& expected_id, 58 const std::string& expected_id,
61 bool delete_crx, 59 bool delete_crx,
62 bool allow_privilege_increase, 60 bool allow_privilege_increase,
63 MessageLoop* file_loop,
64 ExtensionsService* frontend, 61 ExtensionsService* frontend,
65 ExtensionInstallUI* client); 62 ExtensionInstallUI* client);
66 63
67 // Given the path to the large icon from an extension, read it if present and 64 // Given the path to the large icon from an extension, read it if present and
68 // decode it into result. 65 // decode it into result.
69 static void DecodeInstallIcon(const FilePath& large_icon_path, 66 static void DecodeInstallIcon(const FilePath& large_icon_path,
70 scoped_ptr<SkBitmap>* result); 67 scoped_ptr<SkBitmap>* result);
71 68
72 // ExtensionInstallUI::Delegate 69 // ExtensionInstallUI::Delegate
73 virtual void ContinueInstall(); 70 virtual void ContinueInstall();
74 virtual void AbortInstall(); 71 virtual void AbortInstall();
75 72
76 private: 73 private:
77 CrxInstaller(const FilePath& crx_path, 74 CrxInstaller(const FilePath& crx_path,
78 const FilePath& install_directory, 75 const FilePath& install_directory,
79 Extension::Location install_source, 76 Extension::Location install_source,
80 const std::string& expected_id, 77 const std::string& expected_id,
81 bool delete_crx, 78 bool delete_crx,
82 bool allow_privilege_increase, 79 bool allow_privilege_increase,
83 MessageLoop* file_loop,
84 ExtensionsService* frontend, 80 ExtensionsService* frontend,
85 ExtensionInstallUI* client); 81 ExtensionInstallUI* client);
86 ~CrxInstaller(); 82 ~CrxInstaller();
87 83
88 // SandboxedExtensionUnpackerClient 84 // SandboxedExtensionUnpackerClient
89 virtual void OnUnpackFailure(const std::string& error_message); 85 virtual void OnUnpackFailure(const std::string& error_message);
90 virtual void OnUnpackSuccess(const FilePath& temp_dir, 86 virtual void OnUnpackSuccess(const FilePath& temp_dir,
91 const FilePath& extension_dir, 87 const FilePath& extension_dir,
92 Extension* extension); 88 Extension* extension);
93 89
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 // allowed. 123 // allowed.
128 bool extensions_enabled_; 124 bool extensions_enabled_;
129 125
130 // Whether we're supposed to delete the source crx file on destruction. 126 // Whether we're supposed to delete the source crx file on destruction.
131 bool delete_crx_; 127 bool delete_crx_;
132 128
133 // Whether privileges should be allowed to silently increaes from any 129 // Whether privileges should be allowed to silently increaes from any
134 // previously installed version of the extension. 130 // previously installed version of the extension.
135 bool allow_privilege_increase_; 131 bool allow_privilege_increase_;
136 132
137 // The message loop to use for file IO.
138 MessageLoop* file_loop_;
139
140 // The message loop the UI is running on.
141 MessageLoop* ui_loop_;
142
143 // The extension we're installing. We own this and either pass it off to 133 // The extension we're installing. We own this and either pass it off to
144 // ExtensionsService on success, or delete it on failure. 134 // ExtensionsService on success, or delete it on failure.
145 scoped_ptr<Extension> extension_; 135 scoped_ptr<Extension> extension_;
146 136
147 // If non-empty, contains the current version of the extension we're 137 // If non-empty, contains the current version of the extension we're
148 // installing (for upgrades). 138 // installing (for upgrades).
149 std::string current_version_; 139 std::string current_version_;
150 140
151 // The icon we will display in the installation UI, if any. 141 // The icon we will display in the installation UI, if any.
152 scoped_ptr<SkBitmap> install_icon_; 142 scoped_ptr<SkBitmap> install_icon_;
(...skipping 13 matching lines...) Expand all
166 // temp_dir_, so we don't have to delete it explicitly. 156 // temp_dir_, so we don't have to delete it explicitly.
167 FilePath unpacked_extension_root_; 157 FilePath unpacked_extension_root_;
168 158
169 // The unpacker we will use to unpack the extension. 159 // The unpacker we will use to unpack the extension.
170 SandboxedExtensionUnpacker* unpacker_; 160 SandboxedExtensionUnpacker* unpacker_;
171 161
172 DISALLOW_COPY_AND_ASSIGN(CrxInstaller); 162 DISALLOW_COPY_AND_ASSIGN(CrxInstaller);
173 }; 163 };
174 164
175 #endif // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_ 165 #endif // CHROME_BROWSER_EXTENSIONS_CRX_INSTALLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/download/download_manager.cc ('k') | chrome/browser/extensions/crx_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698