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

Side by Side Diff: content/renderer/render_view_browsertest.cc

Issue 6873040: Move the content settings code out of RenderView, since it belongs in the Chrome layer. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/shared_memory.h" 8 #include "base/shared_memory.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/common/autofill_messages.h" 11 #include "chrome/common/autofill_messages.h"
12 #include "chrome/common/content_settings.h"
13 #include "chrome/common/render_messages.h" 12 #include "chrome/common/render_messages.h"
14 #include "chrome/renderer/print_web_view_helper.h" 13 #include "chrome/renderer/print_web_view_helper.h"
15 #include "chrome/test/render_view_test.h" 14 #include "chrome/test/render_view_test.h"
16 #include "content/common/native_web_keyboard_event.h" 15 #include "content/common/native_web_keyboard_event.h"
17 #include "content/common/view_messages.h" 16 #include "content/common/view_messages.h"
18 #include "net/base/net_errors.h" 17 #include "net/base/net_errors.h"
19 #include "printing/image.h" 18 #include "printing/image.h"
20 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
22 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h" 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h"
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 error.domain.fromUTF8("test_domain"); 963 error.domain.fromUTF8("test_domain");
965 error.reason = net::ERR_ABORTED; 964 error.reason = net::ERR_ABORTED;
966 error.unreachableURL = GURL("http://foo"); 965 error.unreachableURL = GURL("http://foo");
967 WebFrame* web_frame = GetMainFrame(); 966 WebFrame* web_frame = GetMainFrame();
968 // A cancellation occurred. 967 // A cancellation occurred.
969 view_->didFailProvisionalLoad(web_frame, error); 968 view_->didFailProvisionalLoad(web_frame, error);
970 // Frame should stay in view-source mode. 969 // Frame should stay in view-source mode.
971 EXPECT_TRUE(web_frame->isViewSourceModeEnabled()); 970 EXPECT_TRUE(web_frame->isViewSourceModeEnabled());
972 } 971 }
973 972
974 // Regression test for http://crbug.com/35011
975 TEST_F(RenderViewTest, JSBlockSentAfterPageLoad) {
976 // 1. Load page with JS.
977 std::string html = "<html>"
978 "<head>"
979 "<script>document.createElement('div');</script>"
980 "</head>"
981 "<body>"
982 "</body>"
983 "</html>";
984 render_thread_.sink().ClearMessages();
985 LoadHTML(html.c_str());
986
987 // 2. Block JavaScript.
988 ContentSettings settings;
989 for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i)
990 settings.settings[i] = CONTENT_SETTING_ALLOW;
991 settings.settings[CONTENT_SETTINGS_TYPE_JAVASCRIPT] = CONTENT_SETTING_BLOCK;
992 view_->SetContentSettings(settings);
993
994 // Make sure no pending messages are in the queue.
995 ProcessPendingMessages();
996 render_thread_.sink().ClearMessages();
997
998 // 3. Reload page.
999 ViewMsg_Navigate_Params params;
1000 std::string url_str = "data:text/html;charset=utf-8,";
1001 url_str.append(html);
1002 GURL url(url_str);
1003 params.url = url;
1004 params.navigation_type = ViewMsg_Navigate_Type::RELOAD;
1005 view_->OnNavigate(params);
1006 ProcessPendingMessages();
1007
1008 // 4. Verify that the notification that javascript was blocked is sent after
1009 // the navigation notifiction is sent.
1010 int navigation_index = -1;
1011 int block_index = -1;
1012 for (size_t i = 0; i < render_thread_.sink().message_count(); ++i) {
1013 const IPC::Message* msg = render_thread_.sink().GetMessageAt(i);
1014 if (msg->type() == ViewHostMsg_FrameNavigate::ID)
1015 navigation_index = i;
1016 if (msg->type() == ViewHostMsg_ContentBlocked::ID)
1017 block_index = i;
1018 }
1019 EXPECT_NE(-1, navigation_index);
1020 EXPECT_NE(-1, block_index);
1021 EXPECT_LT(navigation_index, block_index);
1022 }
1023
1024 // Regression test for http://crbug.com/41562 973 // Regression test for http://crbug.com/41562
1025 TEST_F(RenderViewTest, UpdateTargetURLWithInvalidURL) { 974 TEST_F(RenderViewTest, UpdateTargetURLWithInvalidURL) {
1026 const GURL invalid_gurl("http://"); 975 const GURL invalid_gurl("http://");
1027 view_->setMouseOverURL(WebKit::WebURL(invalid_gurl)); 976 view_->setMouseOverURL(WebKit::WebURL(invalid_gurl));
1028 EXPECT_EQ(invalid_gurl, view_->target_url_); 977 EXPECT_EQ(invalid_gurl, view_->target_url_);
1029 } 978 }
1030 979
1031 TEST_F(RenderViewTest, SendForms) { 980 TEST_F(RenderViewTest, SendForms) {
1032 // Don't want any delay for form state sync changes. This will still post a 981 // Don't want any delay for form state sync changes. This will still post a
1033 // message so updates will get coalesced, but as soon as we spin the message 982 // message so updates will get coalesced, but as soon as we spin the message
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 LoadHTML("<html><head><meta http-equiv=\"content-language\" " 1179 LoadHTML("<html><head><meta http-equiv=\"content-language\" "
1231 "content=\" fr , es,en \">" 1180 "content=\" fr , es,en \">"
1232 "</head><body>A random page with random content.</body></html>"); 1181 "</head><body>A random page with random content.</body></html>");
1233 ProcessPendingMessages(); 1182 ProcessPendingMessages();
1234 message = render_thread_.sink().GetUniqueMessageMatching( 1183 message = render_thread_.sink().GetUniqueMessageMatching(
1235 ViewHostMsg_TranslateLanguageDetermined::ID); 1184 ViewHostMsg_TranslateLanguageDetermined::ID);
1236 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 1185 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
1237 ViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 1186 ViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
1238 EXPECT_EQ("fr", params.a); 1187 EXPECT_EQ("fr", params.a);
1239 } 1188 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698