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 { |