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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 host_resolver()->AddRule(aliased_host, "127.0.0.1"); | 274 host_resolver()->AddRule(aliased_host, "127.0.0.1"); |
275 ASSERT_TRUE(embedded_test_server()->Start()); | 275 ASSERT_TRUE(embedded_test_server()->Start()); |
276 GURL url = | 276 GURL url = |
277 embedded_test_server()->GetURL("/extensions/test_file_with_body.html"); | 277 embedded_test_server()->GetURL("/extensions/test_file_with_body.html"); |
278 GURL::Replacements replace_host; | 278 GURL::Replacements replace_host; |
279 replace_host.SetHostStr(aliased_host); | 279 replace_host.SetHostStr(aliased_host); |
280 url = url.ReplaceComponents(replace_host); | 280 url = url.ReplaceComponents(replace_host); |
281 | 281 |
282 // Load a page from the test host in a new tab. | 282 // Load a page from the test host in a new tab. |
283 ui_test_utils::NavigateToURLWithDisposition( | 283 ui_test_utils::NavigateToURLWithDisposition( |
284 browser(), | 284 browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB, |
285 url, | |
286 NEW_FOREGROUND_TAB, | |
287 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 285 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
288 | 286 |
289 // Sanity check that there's no bleeding between the extension and the tab. | 287 // Sanity check that there's no bleeding between the extension and the tab. |
290 content::WebContents* tab_web_contents = | 288 content::WebContents* tab_web_contents = |
291 browser()->tab_strip_model()->GetActiveWebContents(); | 289 browser()->tab_strip_model()->GetActiveWebContents(); |
292 EXPECT_EQ(url, tab_web_contents->GetVisibleURL()); | 290 EXPECT_EQ(url, tab_web_contents->GetVisibleURL()); |
293 EXPECT_FALSE(pm->GetExtensionForWebContents(tab_web_contents)) | 291 EXPECT_FALSE(pm->GetExtensionForWebContents(tab_web_contents)) |
294 << "Non-extension content must not have an associated extension"; | 292 << "Non-extension content must not have an associated extension"; |
295 ASSERT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | 293 ASSERT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
296 content::WebContents* extension_web_contents = | 294 content::WebContents* extension_web_contents = |
(...skipping 24 matching lines...) Expand all Loading... |
321 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | 319 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
322 | 320 |
323 const GURL extension_url = extension->url().Resolve("manifest.json"); | 321 const GURL extension_url = extension->url().Resolve("manifest.json"); |
324 NavigateToURL(extension_url); | 322 NavigateToURL(extension_url); |
325 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | 323 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
326 | 324 |
327 NavigateToURL(GURL("about:blank")); | 325 NavigateToURL(GURL("about:blank")); |
328 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | 326 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
329 | 327 |
330 ui_test_utils::NavigateToURLWithDisposition( | 328 ui_test_utils::NavigateToURLWithDisposition( |
331 browser(), extension_url, NEW_FOREGROUND_TAB, | 329 browser(), extension_url, WindowOpenDisposition::NEW_FOREGROUND_TAB, |
332 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 330 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
333 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); | 331 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension->id()).size()); |
334 } | 332 } |
335 | 333 |
336 // Tests whether frames are correctly classified. Non-extension frames should | 334 // Tests whether frames are correctly classified. Non-extension frames should |
337 // never appear in the list. Top-level extension frames should always appear. | 335 // never appear in the list. Top-level extension frames should always appear. |
338 // Child extension frames should only appear if it is hosted in an extension | 336 // Child extension frames should only appear if it is hosted in an extension |
339 // process (i.e. if the top-level frame is an extension page, or if OOP frames | 337 // process (i.e. if the top-level frame is an extension page, or if OOP frames |
340 // are enabled for extensions). | 338 // are enabled for extensions). |
341 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, FrameClassification) { | 339 IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, FrameClassification) { |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension2->id()).size()); | 466 EXPECT_EQ(1u, pm->GetRenderFrameHostsForExtension(extension2->id()).size()); |
469 | 467 |
470 // Crash tab where the top-level frame is an extension frame. | 468 // Crash tab where the top-level frame is an extension frame. |
471 content::CrashTab(tab); | 469 content::CrashTab(tab); |
472 EXPECT_EQ(0u, pm->GetAllFrames().size()); | 470 EXPECT_EQ(0u, pm->GetAllFrames().size()); |
473 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension1->id()).size()); | 471 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension1->id()).size()); |
474 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension2->id()).size()); | 472 EXPECT_EQ(0u, pm->GetRenderFrameHostsForExtension(extension2->id()).size()); |
475 | 473 |
476 // Now load an extension page and a non-extension page... | 474 // Now load an extension page and a non-extension page... |
477 ui_test_utils::NavigateToURLWithDisposition( | 475 ui_test_utils::NavigateToURLWithDisposition( |
478 browser(), kExt1EmptyUrl, NEW_BACKGROUND_TAB, | 476 browser(), kExt1EmptyUrl, WindowOpenDisposition::NEW_BACKGROUND_TAB, |
479 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 477 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
480 NavigateToURL(embedded_test_server()->GetURL("/two_iframes.html")); | 478 NavigateToURL(embedded_test_server()->GetURL("/two_iframes.html")); |
481 EXPECT_EQ(1u, pm->GetAllFrames().size()); | 479 EXPECT_EQ(1u, pm->GetAllFrames().size()); |
482 | 480 |
483 // ... load an extension frame in the non-extension process | 481 // ... load an extension frame in the non-extension process |
484 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame1", kExt1EmptyUrl)); | 482 EXPECT_TRUE(content::NavigateIframeToURL(tab, "frame1", kExt1EmptyUrl)); |
485 EXPECT_EQ(IfExtensionsIsolated(2, 1), | 483 EXPECT_EQ(IfExtensionsIsolated(2, 1), |
486 pm->GetRenderFrameHostsForExtension(extension1->id()).size()); | 484 pm->GetRenderFrameHostsForExtension(extension1->id()).size()); |
487 | 485 |
488 // ... and take down the tab. The extension process is not part of the tab, | 486 // ... and take down the tab. The extension process is not part of the tab, |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 extension->id(), | 569 extension->id(), |
572 "document.cookie = 'extension_cookie';" | 570 "document.cookie = 'extension_cookie';" |
573 "window.domAutomationController.send(document.cookie);"); | 571 "window.domAutomationController.send(document.cookie);"); |
574 std::string message; | 572 std::string message; |
575 ASSERT_TRUE(queue.WaitForMessage(&message)); | 573 ASSERT_TRUE(queue.WaitForMessage(&message)); |
576 EXPECT_EQ(message, "\"extension_cookie\""); | 574 EXPECT_EQ(message, "\"extension_cookie\""); |
577 } | 575 } |
578 } | 576 } |
579 | 577 |
580 } // namespace extensions | 578 } // namespace extensions |
OLD | NEW |