summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/content_settings_observer_browsertest.cc
diff options
context:
space:
mode:
authordgozman@chromium.org <dgozman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-08 12:13:34 +0000
committerdgozman@chromium.org <dgozman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-08 12:13:34 +0000
commit6f9f7d8e3b8b6ab52d568a3fb0ec1d5620d207e7 (patch)
tree93856104bbd593704c3950eff8fd3090ff6cea50 /chrome/renderer/content_settings_observer_browsertest.cc
parent1464ce1eaa7154c5c8b3541c11481cecadeb0e83 (diff)
downloadchromium_src-6f9f7d8e3b8b6ab52d568a3fb0ec1d5620d207e7.zip
chromium_src-6f9f7d8e3b8b6ab52d568a3fb0ec1d5620d207e7.tar.gz
chromium_src-6f9f7d8e3b8b6ab52d568a3fb0ec1d5620d207e7.tar.bz2
Revert 113591 - Revert 113579 - Content settings: allow scripts on interstitial pages even if JavaScript is blocked.
BUG=104700 TEST=ChromeRenderViewTest.ContentSettingsInterstitialPages Review URL: http://codereview.chromium.org/8773035 TBR=marja@chromium.org Review URL: http://codereview.chromium.org/8889008 TBR=dgozman@chromium.org Review URL: http://codereview.chromium.org/8873015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/content_settings_observer_browsertest.cc')
-rw-r--r--chrome/renderer/content_settings_observer_browsertest.cc52
1 files changed, 52 insertions, 0 deletions
diff --git a/chrome/renderer/content_settings_observer_browsertest.cc b/chrome/renderer/content_settings_observer_browsertest.cc
index d05df62..db720f5 100644
--- a/chrome/renderer/content_settings_observer_browsertest.cc
+++ b/chrome/renderer/content_settings_observer_browsertest.cc
@@ -322,3 +322,55 @@ TEST_F(ChromeRenderViewTest, ContentSettingsAllowScripts) {
}
EXPECT_FALSE(was_blocked);
}
+
+TEST_F(ChromeRenderViewTest, ContentSettingsInterstitialPages) {
+ MockContentSettingsObserver mock_observer(view_);
+ // Block scripts.
+ RendererContentSettingRules content_setting_rules;
+ ContentSettingsForOneType& script_setting_rules =
+ content_setting_rules.script_rules;
+ script_setting_rules.push_back(
+ ContentSettingPatternSource(
+ ContentSettingsPattern::Wildcard(),
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTING_BLOCK, "", false));
+ // Block images.
+ ContentSettingsForOneType& image_setting_rules =
+ content_setting_rules.image_rules;
+ image_setting_rules.push_back(
+ ContentSettingPatternSource(
+ ContentSettingsPattern::Wildcard(),
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTING_BLOCK, "", false));
+
+ ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_);
+ observer->SetContentSettingRules(&content_setting_rules);
+ observer->SetAsInterstitial();
+
+ // Load a page which contains a script.
+ std::string html = "<html>"
+ "<head>"
+ "<script src='data:foo'></script>"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>";
+ LoadHTML(html.c_str());
+
+ // Verify that the script was allowed.
+ bool was_blocked = false;
+ for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) {
+ const IPC::Message* msg = render_thread_->sink().GetMessageAt(i);
+ if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID)
+ was_blocked = true;
+ }
+ EXPECT_FALSE(was_blocked);
+
+ // Verify that images are allowed.
+ EXPECT_CALL(
+ mock_observer,
+ OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())).Times(0);
+ EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true,
+ mock_observer.image_url_));
+ ::testing::Mock::VerifyAndClearExpectations(&observer);
+}