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

Unified Diff: chrome/browser/component_updater/component_unpacker.h

Issue 213923002: Revert of Use UtilityProcessHost to patch files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@nonblocking
Patch Set: Created 6 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/component_updater/component_unpacker.h
diff --git a/chrome/browser/component_updater/component_unpacker.h b/chrome/browser/component_updater/component_unpacker.h
index ffd69dd9c4adf21c1fa16a385dfdeb3c5d19207f..ce722807d8e38dbd630c852e79d22233606076dd 100644
--- a/chrome/browser/component_updater/component_unpacker.h
+++ b/chrome/browser/component_updater/component_unpacker.h
@@ -12,8 +12,8 @@
#include "base/callback.h"
#include "base/files/file_path.h"
#include "base/json/json_file_value_serializer.h"
-#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "base/sequenced_task_runner.h"
namespace component_updater {
@@ -63,7 +63,7 @@
//
// In both cases, if there is an error at any point, the remaining steps will
// be skipped and Finish will be called.
-class ComponentUnpacker : public base::RefCountedThreadSafe<ComponentUnpacker> {
+class ComponentUnpacker {
public:
// Possible error conditions.
// Add only to the bottom of this enum; the order must be kept stable.
@@ -88,27 +88,24 @@
kFingerprintWriteFailed,
};
- typedef base::Callback<void(Error, int)> Callback;
-
// Constructs an unpacker for a specific component unpacking operation.
// |pk_hash| is the expected/ public key SHA256 hash. |path| is the current
// location of the CRX.
ComponentUnpacker(const std::vector<uint8>& pk_hash,
const base::FilePath& path,
const std::string& fingerprint,
+ ComponentPatcher* patcher,
ComponentInstaller* installer,
- bool in_process,
scoped_refptr<base::SequencedTaskRunner> task_runner);
+
+ virtual ~ComponentUnpacker();
// Begins the actual unpacking of the files. May invoke a patcher if the
// package is a differential update. Calls |callback| with the result.
- void Unpack(const Callback& callback);
+ void Unpack(
+ const base::Callback<void(Error, int)>& callback);
private:
- friend class base::RefCountedThreadSafe<ComponentUnpacker>;
-
- virtual ~ComponentUnpacker();
-
bool UnpackInternal();
// The first step of unpacking is to verify the file. Returns false if an
@@ -138,18 +135,21 @@
// Finish is responsible for calling the callback provided in Start().
void Finish();
+ // Returns a weak pointer to this object.
+ base::WeakPtr<ComponentUnpacker> GetWeakPtr();
+
std::vector<uint8> pk_hash_;
base::FilePath path_;
base::FilePath unpack_path_;
base::FilePath unpack_diff_path_;
bool is_delta_;
std::string fingerprint_;
- scoped_refptr<ComponentPatcher> patcher_;
+ ComponentPatcher* patcher_;
ComponentInstaller* installer_;
- Callback callback_;
- const bool in_process_;
+ base::Callback<void(Error, int)> callback_;
Error error_;
int extended_error_;
+ base::WeakPtrFactory<ComponentUnpacker> ptr_factory_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
DISALLOW_COPY_AND_ASSIGN(ComponentUnpacker);
« no previous file with comments | « chrome/browser/component_updater/component_patcher_win.cc ('k') | chrome/browser/component_updater/component_unpacker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698