| Index: chrome/browser/extensions/sandboxed_extension_unpacker.cc
|
| diff --git a/chrome/browser/extensions/sandboxed_extension_unpacker.cc b/chrome/browser/extensions/sandboxed_extension_unpacker.cc
|
| index 987eb8b731faefda7766e3ba0e441f9e15230389..69dd6f91ce071844784f97e688a42d8b959d57b7 100644
|
| --- a/chrome/browser/extensions/sandboxed_extension_unpacker.cc
|
| +++ b/chrome/browser/extensions/sandboxed_extension_unpacker.cc
|
| @@ -20,7 +20,6 @@
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/chrome_utility_messages.h"
|
| -#include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/extensions/extension_file_util.h"
|
| #include "chrome/common/extensions/extension_l10n_util.h"
|
| @@ -112,12 +111,13 @@ void RecordSuccessfulUnpackTimeHistograms(
|
| SandboxedExtensionUnpacker::SandboxedExtensionUnpacker(
|
| const FilePath& crx_path,
|
| ResourceDispatcherHost* rdh,
|
| + Extension::Location location,
|
| int creation_flags,
|
| SandboxedExtensionUnpackerClient* client)
|
| : crx_path_(crx_path),
|
| thread_identifier_(BrowserThread::ID_COUNT),
|
| rdh_(rdh), client_(client), got_response_(false),
|
| - creation_flags_(creation_flags) {
|
| + location_(location), creation_flags_(creation_flags) {
|
| }
|
|
|
| bool SandboxedExtensionUnpacker::CreateTempDirectory() {
|
| @@ -214,7 +214,7 @@ void SandboxedExtensionUnpacker::Start() {
|
| link_free_crx_path));
|
| } else {
|
| // Otherwise, unpack the extension in this process.
|
| - ExtensionUnpacker unpacker(temp_crx_path);
|
| + ExtensionUnpacker unpacker(temp_crx_path, location_, creation_flags_);
|
| if (unpacker.Run() && unpacker.DumpImagesToFile() &&
|
| unpacker.DumpMessageCatalogsToFile()) {
|
| OnUnpackExtensionSucceeded(*unpacker.parsed_manifest());
|
| @@ -262,7 +262,9 @@ void SandboxedExtensionUnpacker::StartProcessOnIOThread(
|
| // Grant the subprocess access to the entire subdir the extension file is
|
| // in, so that it can unpack to that dir.
|
| host->set_exposed_dir(temp_crx_path.DirName());
|
| - host->Send(new ChromeUtilityMsg_UnpackExtension(temp_crx_path));
|
| + host->Send(
|
| + new ChromeUtilityMsg_UnpackExtension(
|
| + temp_crx_path, location_, creation_flags_));
|
| }
|
|
|
| void SandboxedExtensionUnpacker::OnUnpackExtensionSucceeded(
|
| @@ -296,7 +298,7 @@ void SandboxedExtensionUnpacker::OnUnpackExtensionSucceeded(
|
|
|
| extension_ = Extension::Create(
|
| extension_root_,
|
| - Extension::INTERNAL,
|
| + location_,
|
| *final_manifest,
|
| Extension::REQUIRE_KEY | creation_flags_,
|
| &error);
|
|
|