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

Unified Diff: chrome/browser/extensions/zipfile_installer.h

Issue 2697463002: Convert utility process extension Unpacker IPC to mojo (Closed)
Patch Set: Take #4, declare the IPC enum traits in the message file, try build fix. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/zipfile_installer.h
diff --git a/chrome/browser/extensions/zipfile_installer.h b/chrome/browser/extensions/zipfile_installer.h
index 39de6137ead07965cdb0a0fcd1f163074dfbad97..66ab1a1c9d9099ef8bc34a4029e7b19f232648f2 100644
--- a/chrome/browser/extensions/zipfile_installer.h
+++ b/chrome/browser/extensions/zipfile_installer.h
@@ -8,50 +8,53 @@
#include <memory>
#include <string>
-#include "base/callback.h"
#include "base/files/file_path.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
-#include "content/public/browser/utility_process_host_client.h"
+#include "content/public/browser/utility_process_mojo_client.h"
class ExtensionService;
-namespace IPC {
-class Message;
-}
-
namespace extensions {
-// ZipFileInstaller unzips an extension that is zipped up via a utility process.
-// The contents are then loaded via UnpackedInstaller.
-class ZipFileInstaller : public content::UtilityProcessHostClient {
+namespace mojom {
+class ExtensionUnpacker;
+}
+
+// ZipFileInstaller unzips an extension in a utility process. On success, the
+// extension content is loaded by an extensions::UnpackedInstaller.
+class ZipFileInstaller : public base::RefCountedThreadSafe<ZipFileInstaller> {
public:
- static scoped_refptr<ZipFileInstaller> Create(
- ExtensionService* extension_service);
+ static scoped_refptr<ZipFileInstaller> Create(ExtensionService* service);
- void LoadFromZipFile(const base::FilePath& path);
+ void LoadFromZipFile(const base::FilePath& zip_file);
void set_be_noisy_on_failure(bool value) { be_noisy_on_failure_ = value; }
- // UtilityProcessHostClient
- bool OnMessageReceived(const IPC::Message& message) override;
-
private:
- explicit ZipFileInstaller(ExtensionService* extension_service);
- ~ZipFileInstaller() override;
+ friend class base::RefCountedThreadSafe<ZipFileInstaller>;
- void PrepareTempDir();
- void StartWorkOnIOThread(const base::FilePath& temp_dir);
- void ReportSuccessOnUIThread(const base::FilePath& unzipped_path);
- void ReportErrorOnUIThread(const std::string& error);
+ explicit ZipFileInstaller(ExtensionService* service);
+ ~ZipFileInstaller();
- void OnUnzipSucceeded(const base::FilePath& unzipped_path);
- void OnUnzipFailed(const std::string& error);
+ void PrepareTempDir(const base::FilePath& zip_file);
+ void UnzipOnUIThread(const base::FilePath& unzip_dir);
+ void UnzipDone(bool success);
+ void ReportErrorOnUIThread(const std::string& error);
bool be_noisy_on_failure_;
base::WeakPtr<ExtensionService> extension_service_weak_;
- base::FilePath zip_path_;
+
+ // File containing the extension to unzip.
+ base::FilePath zip_file_;
+
+ // Temporary directory where |zip_file_| is unzipped.
+ base::FilePath temp_dir_;
+
+ // Utility process used to perform the unzip.
+ std::unique_ptr<content::UtilityProcessMojoClient<mojom::ExtensionUnpacker>>
+ utility_process_mojo_client_;
DISALLOW_COPY_AND_ASSIGN(ZipFileInstaller);
};

Powered by Google App Engine
This is Rietveld 408576698