#include "components/update_client/unpacker.h"
#include <stdint.h>
#include <string>
#include <utility>
#include <vector>
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/logging.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
#include "base/task/sequenced_task_runner.h"
#include "components/crx_file/crx_verifier.h"
#include "components/update_client/unzipper.h"
#include "components/update_client/update_client.h"
#include "components/update_client/update_client_errors.h"
#include "components/update_client/utils.h"
#include "third_party/zlib/google/compression_utils.h"
namespace {
constexpr base::FilePath::CharType kMetadataFolder[] = …);
base::FilePath GetVerifiedContentsPath(const base::FilePath& extension_path) { … }
}
namespace update_client {
Unpacker::Result::Result() = default;
Unpacker::Unpacker(const base::FilePath& path,
std::unique_ptr<Unzipper> unzipper,
base::OnceCallback<void(const Result& result)> callback)
: … { … }
Unpacker::~Unpacker() = default;
void Unpacker::Unpack(const std::vector<uint8_t>& pk_hash,
const base::FilePath& path,
std::unique_ptr<Unzipper> unzipper,
crx_file::VerifierFormat crx_format,
base::OnceCallback<void(const Result& result)> callback) { … }
void Unpacker::Verify(const std::vector<uint8_t>& pk_hash,
crx_file::VerifierFormat crx_format) { … }
void Unpacker::BeginUnzipping() { … }
void Unpacker::EndUnzipping(bool result) { … }
void Unpacker::UncompressVerifiedContents() { … }
void Unpacker::StoreVerifiedContentsInExtensionDir(
const std::string& verified_contents) { … }
void Unpacker::EndUnpacking(UnpackerError error, int extended_error) { … }
}