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

Side by Side Diff: chrome/browser/apps/guest_view/web_view_browsertest.cc

Issue 2165523004: Force MimeHandlerView to always use BrowserPlugin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing creis@'s comments Created 4 years, 2 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <queue> 5 #include <queue>
6 #include <set> 6 #include <set>
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "components/guest_view/browser/test_guest_view_manager.h" 48 #include "components/guest_view/browser/test_guest_view_manager.h"
49 #include "content/public/browser/ax_event_notification_details.h" 49 #include "content/public/browser/ax_event_notification_details.h"
50 #include "content/public/browser/gpu_data_manager.h" 50 #include "content/public/browser/gpu_data_manager.h"
51 #include "content/public/browser/interstitial_page.h" 51 #include "content/public/browser/interstitial_page.h"
52 #include "content/public/browser/interstitial_page_delegate.h" 52 #include "content/public/browser/interstitial_page_delegate.h"
53 #include "content/public/browser/notification_service.h" 53 #include "content/public/browser/notification_service.h"
54 #include "content/public/browser/render_process_host.h" 54 #include "content/public/browser/render_process_host.h"
55 #include "content/public/browser/render_widget_host.h" 55 #include "content/public/browser/render_widget_host.h"
56 #include "content/public/browser/render_widget_host_view.h" 56 #include "content/public/browser/render_widget_host_view.h"
57 #include "content/public/browser/web_contents_delegate.h" 57 #include "content/public/browser/web_contents_delegate.h"
58 #include "content/public/common/browser_plugin_guest_mode.h"
59 #include "content/public/common/child_process_host.h" 58 #include "content/public/common/child_process_host.h"
60 #include "content/public/common/content_switches.h" 59 #include "content/public/common/content_switches.h"
61 #include "content/public/test/browser_test_utils.h" 60 #include "content/public/test/browser_test_utils.h"
62 #include "content/public/test/download_test_observer.h" 61 #include "content/public/test/download_test_observer.h"
63 #include "content/public/test/fake_speech_recognition_manager.h" 62 #include "content/public/test/fake_speech_recognition_manager.h"
64 #include "content/public/test/test_renderer_host.h" 63 #include "content/public/test/test_renderer_host.h"
65 #include "extensions/browser/api/declarative/rules_registry.h" 64 #include "extensions/browser/api/declarative/rules_registry.h"
66 #include "extensions/browser/api/declarative/rules_registry_service.h" 65 #include "extensions/browser/api/declarative/rules_registry_service.h"
67 #include "extensions/browser/api/declarative/test_rules_registry.h" 66 #include "extensions/browser/api/declarative/test_rules_registry.h"
68 #include "extensions/browser/api/declarative_webrequest/webrequest_constants.h" 67 #include "extensions/browser/api/declarative_webrequest/webrequest_constants.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 message_loop_runner_->Run(); 209 message_loop_runner_->Run();
211 } 210 }
212 211
213 private: 212 private:
214 bool terminated_; 213 bool terminated_;
215 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 214 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
216 215
217 DISALLOW_COPY_AND_ASSIGN(EmbedderWebContentsObserver); 216 DISALLOW_COPY_AND_ASSIGN(EmbedderWebContentsObserver);
218 }; 217 };
219 218
219 bool UseCrossProcessFramesForGuests() {
220 return base::CommandLine::ForCurrentProcess()->HasSwitch(
221 switches::kUseCrossProcessFramesForGuests);
222 }
223
220 void ExecuteScriptWaitForTitle(content::WebContents* web_contents, 224 void ExecuteScriptWaitForTitle(content::WebContents* web_contents,
221 const char* script, 225 const char* script,
222 const char* title) { 226 const char* title) {
223 base::string16 expected_title(base::ASCIIToUTF16(title)); 227 base::string16 expected_title(base::ASCIIToUTF16(title));
224 base::string16 error_title(base::ASCIIToUTF16("error")); 228 base::string16 error_title(base::ASCIIToUTF16("error"));
225 229
226 content::TitleWatcher title_watcher(web_contents, expected_title); 230 content::TitleWatcher title_watcher(web_contents, expected_title);
227 title_watcher.AlsoWaitForTitle(error_title); 231 title_watcher.AlsoWaitForTitle(error_title);
228 EXPECT_TRUE(content::ExecuteScript(web_contents, script)); 232 EXPECT_TRUE(content::ExecuteScript(web_contents, script));
229 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle()); 233 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
(...skipping 856 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 false); 1090 false);
1087 GetEmbedderWebContents()->GetController().Reload(false); 1091 GetEmbedderWebContents()->GetController().Reload(false);
1088 ASSERT_TRUE(launched_again_listener.WaitUntilSatisfied()); 1092 ASSERT_TRUE(launched_again_listener.WaitUntilSatisfied());
1089 } 1093 }
1090 1094
1091 IN_PROC_BROWSER_TEST_P(WebViewTest, AcceptTouchEvents) { 1095 IN_PROC_BROWSER_TEST_P(WebViewTest, AcceptTouchEvents) {
1092 // This test only makes sense for non-OOPIF WebView, since with 1096 // This test only makes sense for non-OOPIF WebView, since with
1093 // UseCrossProcessFramesForGuests() events are routed directly to the 1097 // UseCrossProcessFramesForGuests() events are routed directly to the
1094 // guest, so the embedder does not need to know about the installation of 1098 // guest, so the embedder does not need to know about the installation of
1095 // touch handlers. 1099 // touch handlers.
1096 if (content::BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) 1100 if (UseCrossProcessFramesForGuests())
1097 return; 1101 return;
1098 1102
1099 LoadAppWithGuest("web_view/accept_touch_events"); 1103 LoadAppWithGuest("web_view/accept_touch_events");
1100 1104
1101 content::RenderViewHost* embedder_rvh = 1105 content::RenderViewHost* embedder_rvh =
1102 GetEmbedderWebContents()->GetRenderViewHost(); 1106 GetEmbedderWebContents()->GetRenderViewHost();
1103 1107
1104 bool embedder_has_touch_handler = 1108 bool embedder_has_touch_handler =
1105 content::RenderViewHostTester::HasTouchEventHandler(embedder_rvh); 1109 content::RenderViewHostTester::HasTouchEventHandler(embedder_rvh);
1106 EXPECT_FALSE(embedder_has_touch_handler); 1110 EXPECT_FALSE(embedder_has_touch_handler);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1297 "web_view/shim", 1301 "web_view/shim",
1298 NO_TEST_SERVER); 1302 NO_TEST_SERVER);
1299 } 1303 }
1300 1304
1301 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayNoneWebviewLoad) { 1305 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayNoneWebviewLoad) {
1302 TestHelper("testDisplayNoneWebviewLoad", "web_view/shim", NO_TEST_SERVER); 1306 TestHelper("testDisplayNoneWebviewLoad", "web_view/shim", NO_TEST_SERVER);
1303 } 1307 }
1304 1308
1305 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayNoneWebviewRemoveChild) { 1309 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayNoneWebviewRemoveChild) {
1306 // http://crbug.com/585652 1310 // http://crbug.com/585652
1307 if (content::BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) 1311 if (UseCrossProcessFramesForGuests())
1308 return; 1312 return;
1309 TestHelper("testDisplayNoneWebviewRemoveChild", 1313 TestHelper("testDisplayNoneWebviewRemoveChild",
1310 "web_view/shim", NO_TEST_SERVER); 1314 "web_view/shim", NO_TEST_SERVER);
1311 } 1315 }
1312 1316
1313 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayBlock) { 1317 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayBlock) {
1314 TestHelper("testDisplayBlock", "web_view/shim", NO_TEST_SERVER); 1318 TestHelper("testDisplayBlock", "web_view/shim", NO_TEST_SERVER);
1315 } 1319 }
1316 1320
1317 IN_PROC_BROWSER_TEST_P(WebViewTest, 1321 IN_PROC_BROWSER_TEST_P(WebViewTest,
1318 Shim_TestInlineScriptFromAccessibleResources) { 1322 Shim_TestInlineScriptFromAccessibleResources) {
(...skipping 1872 matching lines...) Expand 10 before | Expand all | Expand 10 after
3191 } 3195 }
3192 3196
3193 // Ensure that focusing a WebView while it is already focused does not blur the 3197 // Ensure that focusing a WebView while it is already focused does not blur the
3194 // guest content. 3198 // guest content.
3195 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestFocusWhileFocused) { 3199 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestFocusWhileFocused) {
3196 TestHelper("testFocusWhileFocused", "web_view/shim", NO_TEST_SERVER); 3200 TestHelper("testFocusWhileFocused", "web_view/shim", NO_TEST_SERVER);
3197 } 3201 }
3198 3202
3199 IN_PROC_BROWSER_TEST_P(WebViewTest, NestedGuestContainerBounds) { 3203 IN_PROC_BROWSER_TEST_P(WebViewTest, NestedGuestContainerBounds) {
3200 // TODO(lfg): https://crbug.com/581898 3204 // TODO(lfg): https://crbug.com/581898
3201 if (content::BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) 3205 if (UseCrossProcessFramesForGuests())
3202 return; 3206 return;
3203 3207
3204 TestHelper("testPDFInWebview", "web_view/shim", NO_TEST_SERVER); 3208 TestHelper("testPDFInWebview", "web_view/shim", NO_TEST_SERVER);
3205 3209
3206 std::vector<content::WebContents*> guest_web_contents_list; 3210 std::vector<content::WebContents*> guest_web_contents_list;
3207 GetGuestViewManager()->WaitForNumGuestsCreated(2u); 3211 GetGuestViewManager()->WaitForNumGuestsCreated(2u);
3208 GetGuestViewManager()->GetGuestWebContentsList(&guest_web_contents_list); 3212 GetGuestViewManager()->GetGuestWebContentsList(&guest_web_contents_list);
3209 ASSERT_EQ(2u, guest_web_contents_list.size()); 3213 ASSERT_EQ(2u, guest_web_contents_list.size());
3210 3214
3211 content::WebContents* web_view_contents = guest_web_contents_list[0]; 3215 content::WebContents* web_view_contents = guest_web_contents_list[0];
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
3525 } 3529 }
3526 3530
3527 private: 3531 private:
3528 content::WebContents* web_contents_; 3532 content::WebContents* web_contents_;
3529 bool expected_focus_; 3533 bool expected_focus_;
3530 }; 3534 };
3531 3535
3532 IN_PROC_BROWSER_TEST_F(WebViewGuestTouchFocusTest, 3536 IN_PROC_BROWSER_TEST_F(WebViewGuestTouchFocusTest,
3533 TouchFocusesBrowserPluginInEmbedder) { 3537 TouchFocusesBrowserPluginInEmbedder) {
3534 // This test is only relevant for non-OOPIF WebView. 3538 // This test is only relevant for non-OOPIF WebView.
3535 if (content::BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) 3539 if (UseCrossProcessFramesForGuests())
3536 return; 3540 return;
3537 3541
3538 LoadAppWithGuest("web_view/guest_focus_test"); 3542 LoadAppWithGuest("web_view/guest_focus_test");
3539 3543
3540 // Lookup relevant information about guest and embedder. 3544 // Lookup relevant information about guest and embedder.
3541 content::WebContents* embedder_contents = GetEmbedderWebContents(); 3545 content::WebContents* embedder_contents = GetEmbedderWebContents();
3542 3546
3543 std::vector<content::WebContents*> guest_web_contents_list; 3547 std::vector<content::WebContents*> guest_web_contents_list;
3544 GetGuestViewManager()->WaitForNumGuestsCreated(1u); 3548 GetGuestViewManager()->WaitForNumGuestsCreated(1u);
3545 GetGuestViewManager()->GetGuestWebContentsList(&guest_web_contents_list); 3549 GetGuestViewManager()->GetGuestWebContentsList(&guest_web_contents_list);
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
3830 gfx::Point embedder_origin = 3834 gfx::Point embedder_origin =
3831 GetEmbedderWebContents()->GetContainerBounds().origin(); 3835 GetEmbedderWebContents()->GetContainerBounds().origin();
3832 guest_rect.Offset(-embedder_origin.x(), -embedder_origin.y()); 3836 guest_rect.Offset(-embedder_origin.x(), -embedder_origin.y());
3833 3837
3834 // Generate and send synthetic touch event. 3838 // Generate and send synthetic touch event.
3835 content::SimulateTouchPressAt(GetEmbedderWebContents(), 3839 content::SimulateTouchPressAt(GetEmbedderWebContents(),
3836 guest_rect.CenterPoint()); 3840 guest_rect.CenterPoint());
3837 EXPECT_TRUE(aura_webview->HasFocus()); 3841 EXPECT_TRUE(aura_webview->HasFocus());
3838 } 3842 }
3839 #endif 3843 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698