Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2999)

Unified Diff: chrome/renderer/content_settings_observer_browsertest.cc

Issue 1904183002: Revert of DocumentLoader should commit the load before creating a DocumentWriter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/loader/DocumentLoader.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/content_settings_observer_browsertest.cc
diff --git a/chrome/renderer/content_settings_observer_browsertest.cc b/chrome/renderer/content_settings_observer_browsertest.cc
index ece00c3fff476f47a6fe3babdc98925564866436..d57647d7f56cd9e51d711fe62060a5b9a332d137 100644
--- a/chrome/renderer/content_settings_observer_browsertest.cc
+++ b/chrome/renderer/content_settings_observer_browsertest.cc
@@ -13,7 +13,6 @@
#include "ipc/ipc_message_macros.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/public/web/WebFrameContentDumper.h"
#include "third_party/WebKit/public/web/WebView.h"
using testing::_;
@@ -89,16 +88,15 @@
// Regression test for http://crbug.com/35011
TEST_F(ChromeRenderViewTest, JSBlockSentAfterPageLoad) {
// 1. Load page with JS.
- const char kHtml[] =
- "<html>"
- "<head>"
- "<script>document.createElement('div');</script>"
- "</head>"
- "<body>"
- "</body>"
- "</html>";
+ std::string html = "<html>"
+ "<head>"
+ "<script>document.createElement('div');</script>"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>";
render_thread_->sink().ClearMessages();
- LoadHTML(kHtml);
+ LoadHTML(html.c_str());
// 2. Block JavaScript.
RendererContentSettingRules content_setting_rules;
@@ -120,7 +118,7 @@
// 3. Reload page.
std::string url_str = "data:text/html;charset=utf-8,";
- url_str.append(kHtml);
+ url_str.append(html);
GURL url(url_str);
Reload(url);
ProcessPendingMessages();
@@ -271,15 +269,14 @@
observer->SetContentSettingRules(&content_setting_rules);
// Load a page which contains a script.
- const char kHtml[] =
- "<html>"
- "<head>"
- "<script src='data:foo'></script>"
- "</head>"
- "<body>"
- "</body>"
- "</html>";
- LoadHTML(kHtml);
+ std::string html = "<html>"
+ "<head>"
+ "<script src='data:foo'></script>"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>";
+ LoadHTML(html.c_str());
// Verify that the script was blocked.
bool was_blocked = false;
@@ -308,15 +305,14 @@
observer->SetContentSettingRules(&content_setting_rules);
// Load a page which contains a script.
- const char kHtml[] =
- "<html>"
- "<head>"
- "<script src='data:foo'></script>"
- "</head>"
- "<body>"
- "</body>"
- "</html>";
- LoadHTML(kHtml);
+ std::string html = "<html>"
+ "<head>"
+ "<script src='data:foo'></script>"
+ "</head>"
+ "<body>"
+ "</body>"
+ "</html>";
+ LoadHTML(html.c_str());
// Verify that the script was not blocked.
bool was_blocked = false;
@@ -328,110 +324,6 @@
EXPECT_FALSE(was_blocked);
}
-// Regression test for crbug.com/232410: Load a page with JS blocked. Then,
-// allow JS and reload the page. In each case, only one of noscript or script
-// tags should be enabled, but never both.
-TEST_F(ChromeRenderViewTest, ContentSettingsNoscriptTag) {
- // 1. Block JavaScript.
- 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, std::string(), false));
-
- ContentSettingsObserver* observer =
- ContentSettingsObserver::Get(view_->GetMainRenderFrame());
- observer->SetContentSettingRules(&content_setting_rules);
-
- // 2. Load a page which contains a noscript tag and a script tag. Note that
- // the page doesn't have a body tag.
- const char kHtml[] =
- "<html>"
- "<noscript>JS_DISABLED</noscript>"
- "<script>document.write('JS_ENABLED');</script>"
- "</html>";
- LoadHTML(kHtml);
- EXPECT_NE(
- std::string::npos,
- blink::WebFrameContentDumper::dumpLayoutTreeAsText(
- GetMainFrame(), blink::WebFrameContentDumper::LayoutAsTextNormal)
- .utf8()
- .find("JS_DISABLED"));
- EXPECT_EQ(
- std::string::npos,
- blink::WebFrameContentDumper::dumpLayoutTreeAsText(
- GetMainFrame(), blink::WebFrameContentDumper::LayoutAsTextNormal)
- .utf8()
- .find("JS_ENABLED"));
-
- // 3. Allow JavaScript.
- script_setting_rules.clear();
- script_setting_rules.push_back(ContentSettingPatternSource(
- ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(),
- CONTENT_SETTING_ALLOW, std::string(), false));
- observer->SetContentSettingRules(&content_setting_rules);
-
- // 4. Reload the page.
- std::string url_str = "data:text/html;charset=utf-8,";
- url_str.append(kHtml);
- GURL url(url_str);
- Reload(url);
- EXPECT_NE(
- std::string::npos,
- blink::WebFrameContentDumper::dumpLayoutTreeAsText(
- GetMainFrame(), blink::WebFrameContentDumper::LayoutAsTextNormal)
- .utf8()
- .find("JS_ENABLED"));
- EXPECT_EQ(
- std::string::npos,
- blink::WebFrameContentDumper::dumpLayoutTreeAsText(
- GetMainFrame(), blink::WebFrameContentDumper::LayoutAsTextNormal)
- .utf8()
- .find("JS_DISABLED"));
-}
-
-// Checks that same page navigations don't update content settings for the page.
-TEST_F(ChromeRenderViewTest, ContentSettingsSamePageNavigation) {
- MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame());
- // Load a page which contains a script.
- const char kHtml[] =
- "<html>"
- "<head>"
- "<script src='data:foo'></script>"
- "</head>"
- "<body>"
- "</body>"
- "</html>";
- LoadHTML(kHtml);
-
- // Verify that the script was not blocked.
- 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);
-
- // Block JavaScript.
- 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, std::string(), false));
-
- ContentSettingsObserver* observer =
- ContentSettingsObserver::Get(view_->GetMainRenderFrame());
- observer->SetContentSettingRules(&content_setting_rules);
-
- // The page shouldn't see the change to script blocking setting after a
- // same page navigation.
- DidNavigateWithinPage(GetMainFrame(), true);
- EXPECT_TRUE(observer->allowScript(true));
-}
-
TEST_F(ChromeRenderViewTest, ContentSettingsInterstitialPages) {
MockContentSettingsObserver mock_observer(view_->GetMainRenderFrame());
// Block scripts.
@@ -460,15 +352,14 @@
observer->OnSetAsInterstitial();
// Load a page which contains a script.
- const char kHtml[] =
- "<html>"
- "<head>"
- "<script src='data:foo'></script>"
- "</head>"
- "<body>"
- "</body>"
- "</html>";
- LoadHTML(kHtml);
+ 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;
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/loader/DocumentLoader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698