summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_creator.cc
diff options
context:
space:
mode:
authormiket@chromium.org <miket@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-07 22:52:56 +0000
committermiket@chromium.org <miket@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-07 22:52:56 +0000
commitd3817c1c2cf95f07a60e0f5020cc746e6a04b877 (patch)
treee00d1de0f4f11ba7b58494d7521851ad451043e6 /chrome/browser/extensions/extension_creator.cc
parentcd8a2a07057919b91b3668e78f23d6d22201df76 (diff)
downloadchromium_src-d3817c1c2cf95f07a60e0f5020cc746e6a04b877.zip
chromium_src-d3817c1c2cf95f07a60e0f5020cc746e6a04b877.tar.gz
chromium_src-d3817c1c2cf95f07a60e0f5020cc746e6a04b877.tar.bz2
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
Diffstat (limited to 'chrome/browser/extensions/extension_creator.cc')
-rw-r--r--chrome/browser/extensions/extension_creator.cc8
1 files changed, 7 insertions, 1 deletions
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 <string>
#include <vector>
+#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<ExtensionCreatorFilter> filter = new ExtensionCreatorFilter();
+ const base::Callback<bool(const FilePath&)>& 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;