OLD | NEW |
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 "base/path_service.h" | 5 #include "base/path_service.h" |
6 #include "base/strings/stringprintf.h" | 6 #include "base/strings/stringprintf.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/app/chrome_command_ids.h" |
8 #include "chrome/browser/apps/app_browsertest_util.h" | 9 #include "chrome/browser/apps/app_browsertest_util.h" |
9 #include "chrome/browser/chrome_content_browser_client.h" | 10 #include "chrome/browser/chrome_content_browser_client.h" |
10 #include "chrome/browser/prerender/prerender_link_manager.h" | 11 #include "chrome/browser/prerender/prerender_link_manager.h" |
11 #include "chrome/browser/prerender/prerender_link_manager_factory.h" | 12 #include "chrome/browser/prerender/prerender_link_manager_factory.h" |
12 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
13 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" | 14 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" |
14 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti
l.h" | 15 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti
l.h" |
15 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" | 16 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" |
16 #include "chrome/browser/ui/browser.h" | 17 #include "chrome/browser/ui/browser.h" |
17 #include "chrome/browser/ui/browser_dialogs.h" | 18 #include "chrome/browser/ui/browser_dialogs.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 // This class intercepts media access request from the embedder. The request | 173 // This class intercepts media access request from the embedder. The request |
173 // should be triggered only if the embedder API (from tests) allows the request | 174 // should be triggered only if the embedder API (from tests) allows the request |
174 // in Javascript. | 175 // in Javascript. |
175 // We do not issue the actual media request; the fact that the request reached | 176 // We do not issue the actual media request; the fact that the request reached |
176 // embedder's WebContents is good enough for our tests. This is also to make | 177 // embedder's WebContents is good enough for our tests. This is also to make |
177 // the test run successfully on trybots. | 178 // the test run successfully on trybots. |
178 class MockWebContentsDelegate : public content::WebContentsDelegate { | 179 class MockWebContentsDelegate : public content::WebContentsDelegate { |
179 public: | 180 public: |
180 MockWebContentsDelegate() | 181 MockWebContentsDelegate() |
181 : requested_(false), | 182 : requested_(false), |
182 checked_(false) {} | 183 checked_(false), |
| 184 open_url_from_tab_(false) {} |
183 ~MockWebContentsDelegate() override {} | 185 ~MockWebContentsDelegate() override {} |
184 | 186 |
185 void RequestMediaAccessPermission( | 187 void RequestMediaAccessPermission( |
186 content::WebContents* web_contents, | 188 content::WebContents* web_contents, |
187 const content::MediaStreamRequest& request, | 189 const content::MediaStreamRequest& request, |
188 const content::MediaResponseCallback& callback) override { | 190 const content::MediaResponseCallback& callback) override { |
189 requested_ = true; | 191 requested_ = true; |
190 if (request_message_loop_runner_.get()) | 192 if (request_message_loop_runner_.get()) |
191 request_message_loop_runner_->Quit(); | 193 request_message_loop_runner_->Quit(); |
192 } | 194 } |
193 | 195 |
194 bool CheckMediaAccessPermission(content::WebContents* web_contents, | 196 bool CheckMediaAccessPermission(content::WebContents* web_contents, |
195 const GURL& security_origin, | 197 const GURL& security_origin, |
196 content::MediaStreamType type) override { | 198 content::MediaStreamType type) override { |
197 checked_ = true; | 199 checked_ = true; |
198 if (check_message_loop_runner_.get()) | 200 if (check_message_loop_runner_.get()) |
199 check_message_loop_runner_->Quit(); | 201 check_message_loop_runner_->Quit(); |
200 return true; | 202 return true; |
201 } | 203 } |
202 | 204 |
| 205 content::WebContents* OpenURLFromTab( |
| 206 content::WebContents* source, |
| 207 const content::OpenURLParams& params) override { |
| 208 open_url_from_tab_ = true; |
| 209 if (open_url_message_loop_runner_.get()) |
| 210 open_url_message_loop_runner_->Quit(); |
| 211 return NULL; |
| 212 } |
| 213 |
203 void WaitForRequestMediaPermission() { | 214 void WaitForRequestMediaPermission() { |
204 if (requested_) | 215 if (requested_) |
205 return; | 216 return; |
206 request_message_loop_runner_ = new content::MessageLoopRunner; | 217 request_message_loop_runner_ = new content::MessageLoopRunner; |
207 request_message_loop_runner_->Run(); | 218 request_message_loop_runner_->Run(); |
208 } | 219 } |
209 | 220 |
210 void WaitForCheckMediaPermission() { | 221 void WaitForCheckMediaPermission() { |
211 if (checked_) | 222 if (checked_) |
212 return; | 223 return; |
213 check_message_loop_runner_ = new content::MessageLoopRunner; | 224 check_message_loop_runner_ = new content::MessageLoopRunner; |
214 check_message_loop_runner_->Run(); | 225 check_message_loop_runner_->Run(); |
215 } | 226 } |
216 | 227 |
| 228 void WaitForOpenURLFromTab() { |
| 229 if (open_url_from_tab_) |
| 230 return; |
| 231 open_url_message_loop_runner_ = new content::MessageLoopRunner; |
| 232 open_url_message_loop_runner_->Run(); |
| 233 } |
| 234 |
217 private: | 235 private: |
218 bool requested_; | 236 bool requested_; |
219 bool checked_; | 237 bool checked_; |
| 238 bool open_url_from_tab_; |
220 scoped_refptr<content::MessageLoopRunner> request_message_loop_runner_; | 239 scoped_refptr<content::MessageLoopRunner> request_message_loop_runner_; |
221 scoped_refptr<content::MessageLoopRunner> check_message_loop_runner_; | 240 scoped_refptr<content::MessageLoopRunner> check_message_loop_runner_; |
| 241 scoped_refptr<content::MessageLoopRunner> open_url_message_loop_runner_; |
222 | 242 |
223 DISALLOW_COPY_AND_ASSIGN(MockWebContentsDelegate); | 243 DISALLOW_COPY_AND_ASSIGN(MockWebContentsDelegate); |
224 }; | 244 }; |
225 | 245 |
226 // This class intercepts download request from the guest. | 246 // This class intercepts download request from the guest. |
227 class MockDownloadWebContentsDelegate : public content::WebContentsDelegate { | 247 class MockDownloadWebContentsDelegate : public content::WebContentsDelegate { |
228 public: | 248 public: |
229 explicit MockDownloadWebContentsDelegate( | 249 explicit MockDownloadWebContentsDelegate( |
230 content::WebContentsDelegate* orig_delegate) | 250 content::WebContentsDelegate* orig_delegate) |
231 : orig_delegate_(orig_delegate), | 251 : orig_delegate_(orig_delegate), |
(...skipping 1592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1824 EXPECT_TRUE( | 1844 EXPECT_TRUE( |
1825 content::ExecuteScript( | 1845 content::ExecuteScript( |
1826 embedder_web_contents, | 1846 embedder_web_contents, |
1827 base::StringPrintf("startAllowTest('%s')", | 1847 base::StringPrintf("startAllowTest('%s')", |
1828 test_name.c_str()))); | 1848 test_name.c_str()))); |
1829 ASSERT_TRUE(done_listener.WaitUntilSatisfied()); | 1849 ASSERT_TRUE(done_listener.WaitUntilSatisfied()); |
1830 | 1850 |
1831 mock->WaitForRequestMediaPermission(); | 1851 mock->WaitForRequestMediaPermission(); |
1832 } | 1852 } |
1833 | 1853 |
| 1854 IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenuLanguageSettings) { |
| 1855 LoadAppWithGuest("web_view/context_menus/basic"); |
| 1856 |
| 1857 content::WebContents* guest_web_contents = GetGuestWebContents(); |
| 1858 content::WebContents* embedder = GetEmbedderWebContents(); |
| 1859 ASSERT_TRUE(embedder); |
| 1860 scoped_ptr<MockWebContentsDelegate> mock(new MockWebContentsDelegate()); |
| 1861 embedder->SetDelegate(mock.get()); |
| 1862 |
| 1863 // Create and build our test context menu. |
| 1864 GURL page_url("http://www.google.com"); |
| 1865 scoped_ptr<TestRenderViewContextMenu> menu(TestRenderViewContextMenu::Create( |
| 1866 guest_web_contents, page_url, GURL(), GURL())); |
| 1867 menu->ExecuteCommand(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS, 0); |
| 1868 |
| 1869 mock->WaitForOpenURLFromTab(); |
| 1870 } |
| 1871 |
1834 IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenusAPI_Basic) { | 1872 IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenusAPI_Basic) { |
1835 LoadAppWithGuest("web_view/context_menus/basic"); | 1873 LoadAppWithGuest("web_view/context_menus/basic"); |
1836 | 1874 |
1837 content::WebContents* guest_web_contents = GetGuestWebContents(); | 1875 content::WebContents* guest_web_contents = GetGuestWebContents(); |
1838 content::WebContents* embedder = GetEmbedderWebContents(); | 1876 content::WebContents* embedder = GetEmbedderWebContents(); |
1839 ASSERT_TRUE(embedder); | 1877 ASSERT_TRUE(embedder); |
1840 | 1878 |
1841 // 1. Basic property test. | 1879 // 1. Basic property test. |
1842 ExecuteScriptWaitForTitle(embedder, "checkProperties()", "ITEM_CHECKED"); | 1880 ExecuteScriptWaitForTitle(embedder, "checkProperties()", "ITEM_CHECKED"); |
1843 | 1881 |
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2475 // http://crbug.com/403325 | 2513 // http://crbug.com/403325 |
2476 #define MAYBE_WebViewInBackgroundPage \ | 2514 #define MAYBE_WebViewInBackgroundPage \ |
2477 DISABLED_WebViewInBackgroundPage | 2515 DISABLED_WebViewInBackgroundPage |
2478 #else | 2516 #else |
2479 #define MAYBE_WebViewInBackgroundPage WebViewInBackgroundPage | 2517 #define MAYBE_WebViewInBackgroundPage WebViewInBackgroundPage |
2480 #endif | 2518 #endif |
2481 IN_PROC_BROWSER_TEST_F(WebViewTest, MAYBE_WebViewInBackgroundPage) { | 2519 IN_PROC_BROWSER_TEST_F(WebViewTest, MAYBE_WebViewInBackgroundPage) { |
2482 ASSERT_TRUE(RunExtensionTest("platform_apps/web_view/background")) | 2520 ASSERT_TRUE(RunExtensionTest("platform_apps/web_view/background")) |
2483 << message_; | 2521 << message_; |
2484 } | 2522 } |
OLD | NEW |