Chromium Code Reviews| Index: extensions/utility/utility_handler.cc |
| diff --git a/extensions/utility/utility_handler.cc b/extensions/utility/utility_handler.cc |
| index 4f4ce471204c81081cf4179185bc2e557c82112f..670c2948a89cb9e55aac4cb295a58996207f0fba 100644 |
| --- a/extensions/utility/utility_handler.cc |
| +++ b/extensions/utility/utility_handler.cc |
| @@ -17,6 +17,7 @@ |
| #include "extensions/common/manifest.h" |
| #include "extensions/common/update_manifest.h" |
| #include "extensions/strings/grit/extensions_strings.h" |
| +#include "extensions/utility/extension_extractor_filter.h" |
| #include "extensions/utility/unpacker.h" |
| #include "ipc/ipc_message.h" |
| #include "ipc/ipc_message_macros.h" |
| @@ -81,7 +82,11 @@ void UtilityHandler::OnParseUpdateManifest(const std::string& xml) { |
| void UtilityHandler::OnUnzipToDir(const base::FilePath& zip_path, |
| const base::FilePath& dir) { |
| - if (!zip::Unzip(zip_path, dir)) { |
| + scoped_refptr<ExtensionExtractorFilter> filter = |
| + new ExtensionExtractorFilter(); |
| + const base::Callback<bool(const base::FilePath&)>& filter_cb = |
| + base::Bind(&ExtensionExtractorFilter::ShouldExtractFile, filter); |
| + if (!zip::UnzipWithFilterCallback(zip_path, dir, filter_cb)) { |
|
Devlin
2016/09/08 21:10:16
This will silently ignore all .exe files. That's
meacer
2016/09/08 22:40:11
Done.
|
| Send(new ExtensionUtilityHostMsg_UnzipToDir_Failed( |
| std::string(kExtensionHandlerUnzipError))); |
| } else { |