From d3817c1c2cf95f07a60e0f5020cc746e6a04b877 Mon Sep 17 00:00:00 2001 From: "miket@chromium.org" Date: Wed, 7 Sep 2011 22:52:56 +0000 Subject: Improve extension packaging by filtering more kinds of files. When packaging extensions, ignore files with Windows hidden-file attribute, as well as the special OS X file __MACOSX. These are in addition to the existing dotfile exclusion rule. BUG=27840 TEST=added chrome/browser/extensions/extension_creator_filter_unittest.cc Review URL: http://codereview.chromium.org/7839010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100039 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/extension_creator.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'chrome/browser/extensions/extension_creator.cc') diff --git a/chrome/browser/extensions/extension_creator.cc b/chrome/browser/extensions/extension_creator.cc index 6cf0f4f..1b7af2aef 100644 --- a/chrome/browser/extensions/extension_creator.cc +++ b/chrome/browser/extensions/extension_creator.cc @@ -7,10 +7,13 @@ #include #include +#include "base/bind.h" +#include "base/callback.h" #include "base/file_util.h" #include "base/memory/scoped_handle.h" #include "base/scoped_temp_dir.h" #include "base/string_util.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" @@ -153,7 +156,10 @@ bool ExtensionCreator::CreateZip(const FilePath& extension_dir, FilePath* zip_path) { *zip_path = temp_path.Append(FILE_PATH_LITERAL("extension.zip")); - if (!Zip(extension_dir, *zip_path, false)) { // no hidden files + scoped_refptr filter = new ExtensionCreatorFilter(); + const base::Callback& filter_cb = + base::Bind(&ExtensionCreatorFilter::ShouldPackageFile, filter.get()); + if (!Zip(extension_dir, *zip_path, filter_cb)) { error_message_ = l10n_util::GetStringUTF8(IDS_EXTENSION_FAILED_DURING_PACKAGING); return false; -- cgit v1.1