summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 18:41:11 +0000
committergspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 18:41:11 +0000
commit413a8e22c2ff986d335cdc9b86f78a6716a52975 (patch)
treefb5b4d1e986c69c8f9bd18812f40e2d231c4ec6d
parentcddbebf53b7c7bcbc72e6c0e920525768913f823 (diff)
downloadchromium_src-413a8e22c2ff986d335cdc9b86f78a6716a52975.zip
chromium_src-413a8e22c2ff986d335cdc9b86f78a6716a52975.tar.gz
chromium_src-413a8e22c2ff986d335cdc9b86f78a6716a52975.tar.bz2
This fixes a fairly obscure bug in the plugin selection policy code.
BUG=64384 TEST=Ran new unit test. Review URL: http://codereview.chromium.org/6713042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81276 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/plugin_selection_policy.cc8
-rw-r--r--chrome/browser/chromeos/plugin_selection_policy_unittest.cc15
2 files changed, 18 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/plugin_selection_policy.cc b/chrome/browser/chromeos/plugin_selection_policy.cc
index 128e1cd..f07b6b4 100644
--- a/chrome/browser/chromeos/plugin_selection_policy.cc
+++ b/chrome/browser/chromeos/plugin_selection_policy.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -83,7 +83,7 @@ bool PluginSelectionPolicy::InitFromFile(const FilePath& policy_file) {
init_from_file_finished_ = true;
return false;
}
- line = line.substr(6);
+ line = line.substr(5);
TrimWhitespaceASCII(line, TRIM_ALL, &line);
line = StringToLowerASCII(line);
policy.push_back(make_pair(true, line));
@@ -95,13 +95,13 @@ bool PluginSelectionPolicy::InitFromFile(const FilePath& policy_file) {
init_from_file_finished_ = true;
return false;
}
- line = line.substr(5);
+ line = line.substr(4);
TrimWhitespaceASCII(line, TRIM_ALL, &line);
line = StringToLowerASCII(line);
policy.push_back(make_pair(false, line));
}
if (line.find("plugin") == 0) {
- line = line.substr(7);
+ line = line.substr(6);
TrimWhitespaceASCII(line, TRIM_ALL, &line);
if (!policy.empty() && !last_plugin.empty())
policies.insert(make_pair(last_plugin, policy));
diff --git a/chrome/browser/chromeos/plugin_selection_policy_unittest.cc b/chrome/browser/chromeos/plugin_selection_policy_unittest.cc
index 3fa8a75..7e7140e 100644
--- a/chrome/browser/chromeos/plugin_selection_policy_unittest.cc
+++ b/chrome/browser/chromeos/plugin_selection_policy_unittest.cc
@@ -39,6 +39,12 @@ const char kNoRulesPolicy[] = "# This is a policy with no rules\n"
const char kEmptyPolicy[] = "# This is an empty policy\n";
+const char kGlobalPolicy[] = "# This is a test with global deny/allow\n"
+ "plugin test.so\n"
+ "deny\n"
+ "plugin test1.so\n"
+ "allow\n";
+
const char kCommentTestPolicy[] = "# This is a policy with inline comments.\n"
"plugin test.so# like this\n"
"allow foo.com # and this\n"
@@ -138,6 +144,13 @@ TEST_F(PluginSelectionPolicyTest, InitFromFile) {
{
FilePath path;
+ ASSERT_TRUE(CreatePolicy("global", kGlobalPolicy, &path));
+ scoped_refptr<PluginSelectionPolicy> policy = new PluginSelectionPolicy;
+ EXPECT_TRUE(policy->InitFromFile(path));
+ }
+
+ {
+ FilePath path;
ASSERT_TRUE(CreatePolicy("comment", kCommentTestPolicy, &path));
scoped_refptr<PluginSelectionPolicy> policy = new PluginSelectionPolicy;
EXPECT_TRUE(policy->InitFromFile(path));
@@ -145,7 +158,7 @@ TEST_F(PluginSelectionPolicyTest, InitFromFile) {
{
FilePath path;
- ASSERT_TRUE(CreatePolicy("comment", kMultiPluginTestPolicy, &path));
+ ASSERT_TRUE(CreatePolicy("multi_plugin", kMultiPluginTestPolicy, &path));
scoped_refptr<PluginSelectionPolicy> policy = new PluginSelectionPolicy;
EXPECT_TRUE(policy->InitFromFile(path));
}