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

Side by Side Diff: extensions/browser/guest_view/mime_handler_view/mime_handler_view_browsertest.cc

Issue 2165523004: Force MimeHandlerView to always use BrowserPlugin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added BrowserPluginGuestDelegateMode::DelegateMode(FromWebContents)? Created 4 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/base_paths.h" 5 #include "base/base_paths.h"
6 #include "base/files/file_util.h" 6 #include "base/files/file_util.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "chrome/browser/extensions/extension_apitest.h" 8 #include "chrome/browser/extensions/extension_apitest.h"
9 #include "chrome/test/base/ui_test_utils.h" 9 #include "chrome/test/base/ui_test_utils.h"
10 #include "components/guest_view/browser/test_guest_view_manager.h" 10 #include "components/guest_view/browser/test_guest_view_manager.h"
11 #include "content/public/common/content_switches.h"
11 #include "content/public/test/browser_test_utils.h" 12 #include "content/public/test/browser_test_utils.h"
12 #include "extensions/browser/api/extensions_api_client.h" 13 #include "extensions/browser/api/extensions_api_client.h"
13 #include "extensions/browser/extension_registry.h" 14 #include "extensions/browser/extension_registry.h"
14 #include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h " 15 #include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h "
15 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h" 16 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h"
16 #include "extensions/browser/guest_view/mime_handler_view/test_mime_handler_view _guest.h" 17 #include "extensions/browser/guest_view/mime_handler_view/test_mime_handler_view _guest.h"
17 #include "extensions/test/result_catcher.h" 18 #include "extensions/test/result_catcher.h"
18 #include "net/test/embedded_test_server/embedded_test_server.h" 19 #include "net/test/embedded_test_server/embedded_test_server.h"
19 20
20 using extensions::ExtensionsAPIClient; 21 using extensions::ExtensionsAPIClient;
21 using extensions::MimeHandlerViewGuest; 22 using extensions::MimeHandlerViewGuest;
22 using extensions::TestMimeHandlerViewGuest; 23 using extensions::TestMimeHandlerViewGuest;
23 using guest_view::GuestViewManager; 24 using guest_view::GuestViewManager;
24 using guest_view::GuestViewManagerDelegate; 25 using guest_view::GuestViewManagerDelegate;
25 using guest_view::TestGuestViewManager; 26 using guest_view::TestGuestViewManager;
26 using guest_view::TestGuestViewManagerFactory; 27 using guest_view::TestGuestViewManagerFactory;
27 28
28 // The test extension id is set by the key value in the manifest. 29 // The test extension id is set by the key value in the manifest.
29 const char* kExtensionId = "oickdpebdnfbgkcaoklfcdhjniefkcji"; 30 const char* kExtensionId = "oickdpebdnfbgkcaoklfcdhjniefkcji";
30 31
31 class MimeHandlerViewTest : public ExtensionApiTest { 32 class MimeHandlerViewTest : public ExtensionApiTest,
33 public testing::WithParamInterface<bool> {
32 public: 34 public:
33 MimeHandlerViewTest() { 35 MimeHandlerViewTest() {
34 GuestViewManager::set_factory_for_testing(&factory_); 36 GuestViewManager::set_factory_for_testing(&factory_);
35 } 37 }
36 38
37 ~MimeHandlerViewTest() override {} 39 ~MimeHandlerViewTest() override {}
38 40
41 // TODO(ekaramad): These tests run for OOPIF guests too, except that they
42 // still use BrowserPlugin code path. They are activated to make sure we can
43 // still show PDF when the rest of the guests migrate to OOPIF. Eventually,
44 // MimeHandlerViewGuest will be based on OOPIF and we can remove this comment
45 // (https://crbug.com/563285).
46 void SetUpCommandLine(base::CommandLine* command_line) override {
47 ExtensionApiTest::SetUpCommandLine(command_line);
48
49 bool use_cross_process_frames_for_guests = GetParam();
50 if (use_cross_process_frames_for_guests)
51 command_line->AppendSwitch(switches::kUseCrossProcessFramesForGuests);
52 }
53
39 // TODO(paulmeyer): This function is implemented over and over by the 54 // TODO(paulmeyer): This function is implemented over and over by the
40 // different GuestView test classes. It really needs to be refactored out to 55 // different GuestView test classes. It really needs to be refactored out to
41 // some kind of GuestViewTest base class. 56 // some kind of GuestViewTest base class.
42 TestGuestViewManager* GetGuestViewManager() { 57 TestGuestViewManager* GetGuestViewManager() {
43 TestGuestViewManager* manager = static_cast<TestGuestViewManager*>( 58 TestGuestViewManager* manager = static_cast<TestGuestViewManager*>(
44 TestGuestViewManager::FromBrowserContext(browser()->profile())); 59 TestGuestViewManager::FromBrowserContext(browser()->profile()));
45 // TestGuestViewManager::WaitForSingleGuestCreated can and will get called 60 // TestGuestViewManager::WaitForSingleGuestCreated can and will get called
46 // before a guest is created. Since GuestViewManager is usually not created 61 // before a guest is created. Since GuestViewManager is usually not created
47 // until the first guest is created, this means that |manager| will be 62 // until the first guest is created, this means that |manager| will be
48 // nullptr if trying to use the manager to wait for the first guest. Because 63 // nullptr if trying to use the manager to wait for the first guest. Because
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 embedded_test_server()->ServeFilesFromDirectory( 103 embedded_test_server()->ServeFilesFromDirectory(
89 test_data_dir_.AppendASCII("mime_handler_view")); 104 test_data_dir_.AppendASCII("mime_handler_view"));
90 105
91 RunTestWithUrl(embedded_test_server()->GetURL("/" + path)); 106 RunTestWithUrl(embedded_test_server()->GetURL("/" + path));
92 } 107 }
93 108
94 private: 109 private:
95 TestGuestViewManagerFactory factory_; 110 TestGuestViewManagerFactory factory_;
96 }; 111 };
97 112
98 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, PostMessage) { 113 INSTANTIATE_TEST_CASE_P(MimeHandlerViewTests,
114 MimeHandlerViewTest,
115 testing::Bool());
116
117 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, PostMessage) {
99 RunTest("test_postmessage.html"); 118 RunTest("test_postmessage.html");
100 } 119 }
101 120
102 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, Basic) { 121 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, Basic) {
103 RunTest("testBasic.csv"); 122 RunTest("testBasic.csv");
104 } 123 }
105 124
106 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, Embedded) { 125 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, Embedded) {
107 RunTest("test_embedded.html"); 126 RunTest("test_embedded.html");
108 } 127 }
109 128
110 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, Iframe) { 129 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, Iframe) {
111 RunTest("test_iframe.html"); 130 RunTest("test_iframe.html");
112 } 131 }
113 132
114 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, Abort) { 133 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, Abort) {
115 RunTest("testAbort.csv"); 134 RunTest("testAbort.csv");
116 } 135 }
117 136
118 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, NonAsciiHeaders) { 137 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, NonAsciiHeaders) {
119 RunTest("testNonAsciiHeaders.csv"); 138 RunTest("testNonAsciiHeaders.csv");
120 } 139 }
121 140
122 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, DataUrl) { 141 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, DataUrl) {
123 const char* kDataUrlCsv = "data:text/csv;base64,Y29udGVudCB0byByZWFkCg=="; 142 const char* kDataUrlCsv = "data:text/csv;base64,Y29udGVudCB0byByZWFkCg==";
124 RunTestWithUrl(GURL(kDataUrlCsv)); 143 RunTestWithUrl(GURL(kDataUrlCsv));
125 } 144 }
126 145
127 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, EmbeddedDataUrlObject) { 146 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, EmbeddedDataUrlObject) {
128 RunTest("test_embedded_data_url_object.html"); 147 RunTest("test_embedded_data_url_object.html");
129 } 148 }
130 149
131 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, EmbeddedDataUrlEmbed) { 150 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, EmbeddedDataUrlEmbed) {
132 RunTest("test_embedded_data_url_embed.html"); 151 RunTest("test_embedded_data_url_embed.html");
133 } 152 }
134 153
135 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, EmbeddedDataUrlLong) { 154 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, EmbeddedDataUrlLong) {
136 RunTest("test_embedded_data_url_long.html"); 155 RunTest("test_embedded_data_url_long.html");
137 } 156 }
138 157
139 IN_PROC_BROWSER_TEST_F(MimeHandlerViewTest, ResizeBeforeAttach) { 158 IN_PROC_BROWSER_TEST_P(MimeHandlerViewTest, ResizeBeforeAttach) {
140 // Delay the creation of the guest's WebContents in order to delay the guest's 159 // Delay the creation of the guest's WebContents in order to delay the guest's
141 // attachment to the embedder. This will allow us to resize the <object> tag 160 // attachment to the embedder. This will allow us to resize the <object> tag
142 // after the guest is created, but before it is attached in 161 // after the guest is created, but before it is attached in
143 // "test_resize_before_attach.html". 162 // "test_resize_before_attach.html".
144 TestMimeHandlerViewGuest::DelayNextCreateWebContents(500); 163 TestMimeHandlerViewGuest::DelayNextCreateWebContents(500);
145 RunTest("test_resize_before_attach.html"); 164 RunTest("test_resize_before_attach.html");
146 165
147 // Wait for the guest to attach. 166 // Wait for the guest to attach.
148 content::WebContents* guest_web_contents = 167 content::WebContents* guest_web_contents =
149 GetGuestViewManager()->WaitForSingleGuestCreated(); 168 GetGuestViewManager()->WaitForSingleGuestCreated();
150 TestMimeHandlerViewGuest* guest = static_cast<TestMimeHandlerViewGuest*>( 169 TestMimeHandlerViewGuest* guest = static_cast<TestMimeHandlerViewGuest*>(
151 MimeHandlerViewGuest::FromWebContents(guest_web_contents)); 170 MimeHandlerViewGuest::FromWebContents(guest_web_contents));
152 guest->WaitForGuestAttached(); 171 guest->WaitForGuestAttached();
153 172
154 // Ensure that the guest has the correct size after it has attached. 173 // Ensure that the guest has the correct size after it has attached.
155 auto guest_size = guest->size(); 174 auto guest_size = guest->size();
156 CHECK_EQ(guest_size.width(), 500); 175 CHECK_EQ(guest_size.width(), 500);
157 CHECK_EQ(guest_size.height(), 400); 176 CHECK_EQ(guest_size.height(), 400);
158 } 177 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698