diff options
author | pkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 10:19:41 +0000 |
---|---|---|
committer | pkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 10:19:41 +0000 |
commit | 802a30e2205ad612ca928fe7c59e24a12f05f857 (patch) | |
tree | ff09ee7756e6248a229012e6d13d81a91fc1f1d3 /chrome/browser/extensions/extension_creator.cc | |
parent | 0753816e5dcffb085f6c57a7214342029f6cadd1 (diff) | |
download | chromium_src-802a30e2205ad612ca928fe7c59e24a12f05f857.zip chromium_src-802a30e2205ad612ca928fe7c59e24a12f05f857.tar.gz chromium_src-802a30e2205ad612ca928fe7c59e24a12f05f857.tar.bz2 |
Refactor CRX file header into SandboxedExtensionHeader.
Introduces a new class SandboxedExtensionHeader to manage the CRX
header format, magic string, and version checking. Also moves the
initialization of the magic string "Cr24" into SandboxedExtensionHeader.
No one should have a need to reference this magic string directly.
BUG=None
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10640020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144149 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_creator.cc')
-rw-r--r-- | chrome/browser/extensions/extension_creator.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/chrome/browser/extensions/extension_creator.cc b/chrome/browser/extensions/extension_creator.cc index 61e0134..0fbfd05 100644 --- a/chrome/browser/extensions/extension_creator.cc +++ b/chrome/browser/extensions/extension_creator.cc @@ -13,8 +13,8 @@ #include "base/memory/scoped_handle.h" #include "base/scoped_temp_dir.h" #include "base/string_util.h" +#include "chrome/browser/extensions/crx_file.h" #include "chrome/browser/extensions/extension_creator_filter.h" -#include "chrome/browser/extensions/sandboxed_extension_unpacker.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_file_util.h" #include "chrome/common/zip.h" @@ -241,15 +241,15 @@ bool ExtensionCreator::WriteCRX(const FilePath& zip_path, std::vector<uint8> public_key; CHECK(private_key->ExportPublicKey(&public_key)); - SandboxedExtensionUnpacker::ExtensionHeader header; - memcpy(&header.magic, SandboxedExtensionUnpacker::kExtensionHeaderMagic, - SandboxedExtensionUnpacker::kExtensionHeaderMagicSize); - header.version = SandboxedExtensionUnpacker::kCurrentVersion; - header.key_size = public_key.size(); - header.signature_size = signature.size(); + CrxFile::Error error; + scoped_ptr<CrxFile> crx( + CrxFile::Create(public_key.size(), signature.size(), &error)); + if (!crx.get()) { + LOG(ERROR) << "cannot create CrxFileHeader: " << error; + } + const CrxFile::Header header = crx->header(); - if (fwrite(&header, sizeof(SandboxedExtensionUnpacker::ExtensionHeader), 1, - crx_handle.get()) != 1) { + if (fwrite(&header, sizeof(header), 1, crx_handle.get()) != 1) { PLOG(ERROR) << "fwrite failed to write header"; } if (fwrite(&public_key.front(), sizeof(uint8), public_key.size(), |