summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_creator.cc
diff options
context:
space:
mode:
authorpkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 10:19:41 +0000
committerpkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 10:19:41 +0000
commit802a30e2205ad612ca928fe7c59e24a12f05f857 (patch)
treeff09ee7756e6248a229012e6d13d81a91fc1f1d3 /chrome/browser/extensions/extension_creator.cc
parent0753816e5dcffb085f6c57a7214342029f6cadd1 (diff)
downloadchromium_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.cc18
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(),