summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/content_settings_observer_browsertest.cc
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-02 18:14:21 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-02 18:14:21 +0000
commit134efc37e03e2d8da955f855533fbb5c7c6177f1 (patch)
tree307f5bfe28028059dceede57b82a11c94c65258f /chrome/renderer/content_settings_observer_browsertest.cc
parent99180a976cf6abec822c07be852973d83519edd7 (diff)
downloadchromium_src-134efc37e03e2d8da955f855533fbb5c7c6177f1.zip
chromium_src-134efc37e03e2d8da955f855533fbb5c7c6177f1.tar.gz
chromium_src-134efc37e03e2d8da955f855533fbb5c7c6177f1.tar.bz2
Don't reset blocked content for in-page navigations.
BUG=91335 TEST=see bug Review URL: http://codereview.chromium.org/7551007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95110 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/content_settings_observer_browsertest.cc')
-rw-r--r--chrome/renderer/content_settings_observer_browsertest.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/renderer/content_settings_observer_browsertest.cc b/chrome/renderer/content_settings_observer_browsertest.cc
index 2f1dd54..8fbea14 100644
--- a/chrome/renderer/content_settings_observer_browsertest.cc
+++ b/chrome/renderer/content_settings_observer_browsertest.cc
@@ -138,3 +138,34 @@ TEST_F(RenderViewTest, JSBlockSentAfterPageLoad) {
EXPECT_NE(-1, block_index);
EXPECT_LT(navigation_index, block_index);
}
+
+TEST_F(RenderViewTest, PluginsTemporarilyAllowed) {
+ // Load some HTML.
+ LoadHTML("<html>Foo</html>");
+
+ // Block plugins.
+ ContentSettings settings;
+ for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i)
+ settings.settings[i] = CONTENT_SETTING_ALLOW;
+ settings.settings[CONTENT_SETTINGS_TYPE_PLUGINS] = CONTENT_SETTING_BLOCK;
+ ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_);
+ observer->SetContentSettings(settings);
+ ContentSettingsObserver::SetDefaultContentSettings(settings);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS));
+
+ // Temporarily allow plugins.
+ view_->OnMessageReceived(ViewMsg_LoadBlockedPlugins(MSG_ROUTING_NONE));
+ EXPECT_EQ(CONTENT_SETTING_ALLOW,
+ observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS));
+
+ // Simulate a navigation within the page.
+ view_->didNavigateWithinPage(GetMainFrame(), true);
+ EXPECT_EQ(CONTENT_SETTING_ALLOW,
+ observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS));
+
+ // Navigate to a different page.
+ LoadHTML("<html>Bar</html>");
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ observer->GetContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS));
+}