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

Side by Side Diff: content/browser/frame_host/render_frame_host_manager_unittest.cc

Issue 1307013004: Propagate scrolling/marginwidth/marginheight property values to child frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: content_unittests compile fix Created 5 years, 1 month 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/test/histogram_tester.h" 8 #include "base/test/histogram_tester.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "content/browser/compositor/test/no_transport_image_transport_factory.h " 10 #include "content/browser/compositor/test/no_transport_image_transport_factory.h "
(...skipping 27 matching lines...) Expand all
38 #include "content/public/test/mock_render_process_host.h" 38 #include "content/public/test/mock_render_process_host.h"
39 #include "content/public/test/test_notification_tracker.h" 39 #include "content/public/test/test_notification_tracker.h"
40 #include "content/public/test/test_utils.h" 40 #include "content/public/test/test_utils.h"
41 #include "content/test/test_content_browser_client.h" 41 #include "content/test/test_content_browser_client.h"
42 #include "content/test/test_content_client.h" 42 #include "content/test/test_content_client.h"
43 #include "content/test/test_render_frame_host.h" 43 #include "content/test/test_render_frame_host.h"
44 #include "content/test/test_render_view_host.h" 44 #include "content/test/test_render_view_host.h"
45 #include "content/test/test_web_contents.h" 45 #include "content/test/test_web_contents.h"
46 #include "net/base/load_flags.h" 46 #include "net/base/load_flags.h"
47 #include "testing/gtest/include/gtest/gtest.h" 47 #include "testing/gtest/include/gtest/gtest.h"
48 #include "third_party/WebKit/public/web/WebFrameOwnerProperties.h"
48 #include "third_party/WebKit/public/web/WebSandboxFlags.h" 49 #include "third_party/WebKit/public/web/WebSandboxFlags.h"
49 #include "ui/base/page_transition_types.h" 50 #include "ui/base/page_transition_types.h"
50 51
51 namespace content { 52 namespace content {
52 namespace { 53 namespace {
53 54
54 // Helper to check that the provided RenderProcessHost received exactly one 55 // Helper to check that the provided RenderProcessHost received exactly one
55 // page focus message with the provided focus and routing ID values. 56 // page focus message with the provided focus and routing ID values.
56 void VerifyPageFocusMessage(MockRenderProcessHost* rph, 57 void VerifyPageFocusMessage(MockRenderProcessHost* rph,
57 bool expected_focus, 58 bool expected_focus,
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 } 692 }
692 693
693 // Navigate to the first site. 694 // Navigate to the first site.
694 NavigateActiveAndCommit(kUrl1); 695 NavigateActiveAndCommit(kUrl1);
695 TestRenderFrameHost* initial_rfh = contents()->GetMainFrame(); 696 TestRenderFrameHost* initial_rfh = contents()->GetMainFrame();
696 { 697 {
697 RenderFrameHostCreatedObserver observer(contents()); 698 RenderFrameHostCreatedObserver observer(contents());
698 initial_rfh->OnCreateChildFrame( 699 initial_rfh->OnCreateChildFrame(
699 initial_rfh->GetProcess()->GetNextRoutingID(), 700 initial_rfh->GetProcess()->GetNextRoutingID(),
700 blink::WebTreeScopeType::Document, std::string(), 701 blink::WebTreeScopeType::Document, std::string(),
701 blink::WebSandboxFlags::None); 702 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
702 EXPECT_TRUE(observer.created()); 703 EXPECT_TRUE(observer.created());
703 } 704 }
704 705
705 // Create one more frame in the same SiteInstance where initial_rfh 706 // Create one more frame in the same SiteInstance where initial_rfh
706 // exists so that initial_rfh doesn't get deleted on navigation to another 707 // exists so that initial_rfh doesn't get deleted on navigation to another
707 // site. 708 // site.
708 initial_rfh->GetSiteInstance()->increment_active_frame_count(); 709 initial_rfh->GetSiteInstance()->increment_active_frame_count();
709 710
710 // Navigate to a cross-site URL. 711 // Navigate to a cross-site URL.
711 NavigateActiveAndCommit(kUrl2); 712 NavigateActiveAndCommit(kUrl2);
712 EXPECT_TRUE(initial_rfh->is_swapped_out()); 713 EXPECT_TRUE(initial_rfh->is_swapped_out());
713 714
714 TestRenderFrameHost* dest_rfh = contents()->GetMainFrame(); 715 TestRenderFrameHost* dest_rfh = contents()->GetMainFrame();
715 ASSERT_TRUE(dest_rfh); 716 ASSERT_TRUE(dest_rfh);
716 EXPECT_NE(initial_rfh, dest_rfh); 717 EXPECT_NE(initial_rfh, dest_rfh);
717 718
718 { 719 {
719 // Since the old RFH is now swapped out, it shouldn't process any messages 720 // Since the old RFH is now swapped out, it shouldn't process any messages
720 // to create child frames. 721 // to create child frames.
721 RenderFrameHostCreatedObserver observer(contents()); 722 RenderFrameHostCreatedObserver observer(contents());
722 initial_rfh->OnCreateChildFrame( 723 initial_rfh->OnCreateChildFrame(
723 initial_rfh->GetProcess()->GetNextRoutingID(), 724 initial_rfh->GetProcess()->GetNextRoutingID(),
724 blink::WebTreeScopeType::Document, std::string(), 725 blink::WebTreeScopeType::Document, std::string(),
725 blink::WebSandboxFlags::None); 726 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
726 EXPECT_FALSE(observer.created()); 727 EXPECT_FALSE(observer.created());
727 } 728 }
728 } 729 }
729 730
730 TEST_F(RenderFrameHostManagerTest, WhiteListSwapCompositorFrame) { 731 TEST_F(RenderFrameHostManagerTest, WhiteListSwapCompositorFrame) {
731 // TODO(nasko): Check with kenrb whether this test can be rewritten and 732 // TODO(nasko): Check with kenrb whether this test can be rewritten and
732 // whether it makes sense when swapped out is replaced with proxies. 733 // whether it makes sense when swapped out is replaced with proxies.
733 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { 734 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) {
734 return; 735 return;
735 } 736 }
(...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after
2089 // http://crbug.com/444955. 2090 // http://crbug.com/444955.
2090 TEST_F(RenderFrameHostManagerTestWithSiteIsolation, DetachPendingChild) { 2091 TEST_F(RenderFrameHostManagerTestWithSiteIsolation, DetachPendingChild) {
2091 const GURL kUrlA("http://www.google.com/"); 2092 const GURL kUrlA("http://www.google.com/");
2092 const GURL kUrlB("http://webkit.org/"); 2093 const GURL kUrlB("http://webkit.org/");
2093 2094
2094 // Create a page with two child frames. 2095 // Create a page with two child frames.
2095 contents()->NavigateAndCommit(kUrlA); 2096 contents()->NavigateAndCommit(kUrlA);
2096 contents()->GetMainFrame()->OnCreateChildFrame( 2097 contents()->GetMainFrame()->OnCreateChildFrame(
2097 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(), 2098 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(),
2098 blink::WebTreeScopeType::Document, "frame_name", 2099 blink::WebTreeScopeType::Document, "frame_name",
2099 blink::WebSandboxFlags::None); 2100 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2100 contents()->GetMainFrame()->OnCreateChildFrame( 2101 contents()->GetMainFrame()->OnCreateChildFrame(
2101 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(), 2102 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(),
2102 blink::WebTreeScopeType::Document, "frame_name", 2103 blink::WebTreeScopeType::Document, "frame_name",
2103 blink::WebSandboxFlags::None); 2104 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2104 RenderFrameHostManager* root_manager = 2105 RenderFrameHostManager* root_manager =
2105 contents()->GetFrameTree()->root()->render_manager(); 2106 contents()->GetFrameTree()->root()->render_manager();
2106 RenderFrameHostManager* iframe1 = 2107 RenderFrameHostManager* iframe1 =
2107 contents()->GetFrameTree()->root()->child_at(0)->render_manager(); 2108 contents()->GetFrameTree()->root()->child_at(0)->render_manager();
2108 RenderFrameHostManager* iframe2 = 2109 RenderFrameHostManager* iframe2 =
2109 contents()->GetFrameTree()->root()->child_at(1)->render_manager(); 2110 contents()->GetFrameTree()->root()->child_at(1)->render_manager();
2110 2111
2111 // 1) The first navigation. 2112 // 1) The first navigation.
2112 NavigationEntryImpl entryA(NULL /* instance */, -1 /* page_id */, kUrlA, 2113 NavigationEntryImpl entryA(NULL /* instance */, -1 /* page_id */, kUrlA,
2113 Referrer(), base::string16() /* title */, 2114 Referrer(), base::string16() /* title */,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
2230 // Reload |contents1|. 2231 // Reload |contents1|.
2231 contents1->NavigateAndCommit(kUrl1); 2232 contents1->NavigateAndCommit(kUrl1);
2232 EXPECT_TRUE(contents1->GetMainFrame()->IsRenderFrameLive()); 2233 EXPECT_TRUE(contents1->GetMainFrame()->IsRenderFrameLive());
2233 EXPECT_FALSE(contents2->GetMainFrame()->IsRenderFrameLive()); 2234 EXPECT_FALSE(contents2->GetMainFrame()->IsRenderFrameLive());
2234 EXPECT_EQ(contents1->GetSiteInstance(), contents2->GetSiteInstance()); 2235 EXPECT_EQ(contents1->GetSiteInstance(), contents2->GetSiteInstance());
2235 2236
2236 // |contents1| creates an out of process iframe. 2237 // |contents1| creates an out of process iframe.
2237 contents1->GetMainFrame()->OnCreateChildFrame( 2238 contents1->GetMainFrame()->OnCreateChildFrame(
2238 contents1->GetMainFrame()->GetProcess()->GetNextRoutingID(), 2239 contents1->GetMainFrame()->GetProcess()->GetNextRoutingID(),
2239 blink::WebTreeScopeType::Document, "frame_name", 2240 blink::WebTreeScopeType::Document, "frame_name",
2240 blink::WebSandboxFlags::None); 2241 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2241 RenderFrameHostManager* iframe = 2242 RenderFrameHostManager* iframe =
2242 contents()->GetFrameTree()->root()->child_at(0)->render_manager(); 2243 contents()->GetFrameTree()->root()->child_at(0)->render_manager();
2243 NavigationEntryImpl entry(NULL /* instance */, -1 /* page_id */, kUrl2, 2244 NavigationEntryImpl entry(NULL /* instance */, -1 /* page_id */, kUrl2,
2244 Referrer(kUrl1, blink::WebReferrerPolicyDefault), 2245 Referrer(kUrl1, blink::WebReferrerPolicyDefault),
2245 base::string16() /* title */, 2246 base::string16() /* title */,
2246 ui::PAGE_TRANSITION_LINK, 2247 ui::PAGE_TRANSITION_LINK,
2247 false /* is_renderer_init */); 2248 false /* is_renderer_init */);
2248 RenderFrameHostImpl* cross_site = NavigateToEntry(iframe, entry); 2249 RenderFrameHostImpl* cross_site = NavigateToEntry(iframe, entry);
2249 iframe->DidNavigateFrame(cross_site, true); 2250 iframe->DidNavigateFrame(cross_site, true);
2250 2251
(...skipping 27 matching lines...) Expand all
2278 2279
2279 // Make sure the initial process is live so that the pending WebUI navigation 2280 // Make sure the initial process is live so that the pending WebUI navigation
2280 // does not commit immediately. Give the page a subframe as well. 2281 // does not commit immediately. Give the page a subframe as well.
2281 const GURL kUrl1("http://foo.com"); 2282 const GURL kUrl1("http://foo.com");
2282 RenderFrameHostImpl* main_rfh = contents()->GetMainFrame(); 2283 RenderFrameHostImpl* main_rfh = contents()->GetMainFrame();
2283 NavigateAndCommit(kUrl1); 2284 NavigateAndCommit(kUrl1);
2284 EXPECT_TRUE(main_rfh->render_view_host()->IsRenderViewLive()); 2285 EXPECT_TRUE(main_rfh->render_view_host()->IsRenderViewLive());
2285 EXPECT_TRUE(main_rfh->IsRenderFrameLive()); 2286 EXPECT_TRUE(main_rfh->IsRenderFrameLive());
2286 main_rfh->OnCreateChildFrame(main_rfh->GetProcess()->GetNextRoutingID(), 2287 main_rfh->OnCreateChildFrame(main_rfh->GetProcess()->GetNextRoutingID(),
2287 blink::WebTreeScopeType::Document, std::string(), 2288 blink::WebTreeScopeType::Document, std::string(),
2288 blink::WebSandboxFlags::None); 2289 blink::WebSandboxFlags::None,
2290 blink::WebFrameOwnerProperties());
2289 RenderFrameHostManager* subframe_rfhm = 2291 RenderFrameHostManager* subframe_rfhm =
2290 contents()->GetFrameTree()->root()->child_at(0)->render_manager(); 2292 contents()->GetFrameTree()->root()->child_at(0)->render_manager();
2291 2293
2292 // Start a pending WebUI navigation in the main frame and verify that the 2294 // Start a pending WebUI navigation in the main frame and verify that the
2293 // pending RVH has bindings. 2295 // pending RVH has bindings.
2294 const GURL kWebUIUrl("chrome://foo"); 2296 const GURL kWebUIUrl("chrome://foo");
2295 NavigationEntryImpl webui_entry( 2297 NavigationEntryImpl webui_entry(
2296 nullptr /* instance */, -1 /* page_id */, kWebUIUrl, Referrer(), 2298 nullptr /* instance */, -1 /* page_id */, kWebUIUrl, Referrer(),
2297 base::string16() /* title */, ui::PAGE_TRANSITION_TYPED, 2299 base::string16() /* title */, ui::PAGE_TRANSITION_TYPED,
2298 false /* is_renderer_init */); 2300 false /* is_renderer_init */);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2436 // The test starts traversing openers from root1 and expects to discover all 2438 // The test starts traversing openers from root1 and expects to discover all
2437 // four FrameTrees. Nodes 13 (with cycle to itself) and 42 (with back link to 2439 // four FrameTrees. Nodes 13 (with cycle to itself) and 42 (with back link to
2438 // root3) should be put on the list of nodes that will need their frame openers 2440 // root3) should be put on the list of nodes that will need their frame openers
2439 // set separately in a second pass, since their opener routing IDs won't be 2441 // set separately in a second pass, since their opener routing IDs won't be
2440 // available during the first pass of CreateOpenerProxies. 2442 // available during the first pass of CreateOpenerProxies.
2441 TEST_F(RenderFrameHostManagerTest, TraverseComplexOpenerChain) { 2443 TEST_F(RenderFrameHostManagerTest, TraverseComplexOpenerChain) {
2442 FrameTree* tree1 = contents()->GetFrameTree(); 2444 FrameTree* tree1 = contents()->GetFrameTree();
2443 FrameTreeNode* root1 = tree1->root(); 2445 FrameTreeNode* root1 = tree1->root();
2444 int process_id = root1->current_frame_host()->GetProcess()->GetID(); 2446 int process_id = root1->current_frame_host()->GetProcess()->GetID();
2445 tree1->AddFrame(root1, process_id, 12, blink::WebTreeScopeType::Document, 2447 tree1->AddFrame(root1, process_id, 12, blink::WebTreeScopeType::Document,
2446 std::string(), blink::WebSandboxFlags::None); 2448 std::string(), blink::WebSandboxFlags::None,
2449 blink::WebFrameOwnerProperties());
2447 tree1->AddFrame(root1, process_id, 13, blink::WebTreeScopeType::Document, 2450 tree1->AddFrame(root1, process_id, 13, blink::WebTreeScopeType::Document,
2448 std::string(), blink::WebSandboxFlags::None); 2451 std::string(), blink::WebSandboxFlags::None,
2452 blink::WebFrameOwnerProperties());
2449 2453
2450 scoped_ptr<TestWebContents> tab2( 2454 scoped_ptr<TestWebContents> tab2(
2451 TestWebContents::Create(browser_context(), nullptr)); 2455 TestWebContents::Create(browser_context(), nullptr));
2452 FrameTree* tree2 = tab2->GetFrameTree(); 2456 FrameTree* tree2 = tab2->GetFrameTree();
2453 FrameTreeNode* root2 = tree2->root(); 2457 FrameTreeNode* root2 = tree2->root();
2454 process_id = root2->current_frame_host()->GetProcess()->GetID(); 2458 process_id = root2->current_frame_host()->GetProcess()->GetID();
2455 tree2->AddFrame(root2, process_id, 22, blink::WebTreeScopeType::Document, 2459 tree2->AddFrame(root2, process_id, 22, blink::WebTreeScopeType::Document,
2456 std::string(), blink::WebSandboxFlags::None); 2460 std::string(), blink::WebSandboxFlags::None,
2461 blink::WebFrameOwnerProperties());
2457 tree2->AddFrame(root2, process_id, 23, blink::WebTreeScopeType::Document, 2462 tree2->AddFrame(root2, process_id, 23, blink::WebTreeScopeType::Document,
2458 std::string(), blink::WebSandboxFlags::None); 2463 std::string(), blink::WebSandboxFlags::None,
2464 blink::WebFrameOwnerProperties());
2459 2465
2460 scoped_ptr<TestWebContents> tab3( 2466 scoped_ptr<TestWebContents> tab3(
2461 TestWebContents::Create(browser_context(), nullptr)); 2467 TestWebContents::Create(browser_context(), nullptr));
2462 FrameTree* tree3 = tab3->GetFrameTree(); 2468 FrameTree* tree3 = tab3->GetFrameTree();
2463 FrameTreeNode* root3 = tree3->root(); 2469 FrameTreeNode* root3 = tree3->root();
2464 2470
2465 scoped_ptr<TestWebContents> tab4( 2471 scoped_ptr<TestWebContents> tab4(
2466 TestWebContents::Create(browser_context(), nullptr)); 2472 TestWebContents::Create(browser_context(), nullptr));
2467 FrameTree* tree4 = tab4->GetFrameTree(); 2473 FrameTree* tree4 = tab4->GetFrameTree();
2468 FrameTreeNode* root4 = tree4->root(); 2474 FrameTreeNode* root4 = tree4->root();
2469 process_id = root4->current_frame_host()->GetProcess()->GetID(); 2475 process_id = root4->current_frame_host()->GetProcess()->GetID();
2470 tree4->AddFrame(root4, process_id, 42, blink::WebTreeScopeType::Document, 2476 tree4->AddFrame(root4, process_id, 42, blink::WebTreeScopeType::Document,
2471 std::string(), blink::WebSandboxFlags::None); 2477 std::string(), blink::WebSandboxFlags::None,
2478 blink::WebFrameOwnerProperties());
2472 2479
2473 root1->child_at(1)->SetOpener(root1->child_at(1)); 2480 root1->child_at(1)->SetOpener(root1->child_at(1));
2474 root1->SetOpener(root2->child_at(1)); 2481 root1->SetOpener(root2->child_at(1));
2475 root2->SetOpener(root3); 2482 root2->SetOpener(root3);
2476 root2->child_at(0)->SetOpener(root4); 2483 root2->child_at(0)->SetOpener(root4);
2477 root2->child_at(1)->SetOpener(root4); 2484 root2->child_at(1)->SetOpener(root4);
2478 root4->child_at(0)->SetOpener(root3); 2485 root4->child_at(0)->SetOpener(root3);
2479 2486
2480 std::vector<FrameTree*> opener_frame_trees; 2487 std::vector<FrameTree*> opener_frame_trees;
2481 base::hash_set<FrameTreeNode*> nodes_with_back_links; 2488 base::hash_set<FrameTreeNode*> nodes_with_back_links;
(...skipping 28 matching lines...) Expand all
2510 const GURL kUrlA("http://a.com/"); 2517 const GURL kUrlA("http://a.com/");
2511 const GURL kUrlB("http://b.com/"); 2518 const GURL kUrlB("http://b.com/");
2512 const GURL kUrlC("http://c.com/"); 2519 const GURL kUrlC("http://c.com/");
2513 2520
2514 // Set up a page at a.com with three subframes: two for b.com and one for 2521 // Set up a page at a.com with three subframes: two for b.com and one for
2515 // c.com. 2522 // c.com.
2516 contents()->NavigateAndCommit(kUrlA); 2523 contents()->NavigateAndCommit(kUrlA);
2517 main_test_rfh()->OnCreateChildFrame( 2524 main_test_rfh()->OnCreateChildFrame(
2518 main_test_rfh()->GetProcess()->GetNextRoutingID(), 2525 main_test_rfh()->GetProcess()->GetNextRoutingID(),
2519 blink::WebTreeScopeType::Document, "frame1", 2526 blink::WebTreeScopeType::Document, "frame1",
2520 blink::WebSandboxFlags::None); 2527 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2521 main_test_rfh()->OnCreateChildFrame( 2528 main_test_rfh()->OnCreateChildFrame(
2522 main_test_rfh()->GetProcess()->GetNextRoutingID(), 2529 main_test_rfh()->GetProcess()->GetNextRoutingID(),
2523 blink::WebTreeScopeType::Document, "frame2", 2530 blink::WebTreeScopeType::Document, "frame2",
2524 blink::WebSandboxFlags::None); 2531 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2525 main_test_rfh()->OnCreateChildFrame( 2532 main_test_rfh()->OnCreateChildFrame(
2526 main_test_rfh()->GetProcess()->GetNextRoutingID(), 2533 main_test_rfh()->GetProcess()->GetNextRoutingID(),
2527 blink::WebTreeScopeType::Document, "frame3", 2534 blink::WebTreeScopeType::Document, "frame3",
2528 blink::WebSandboxFlags::None); 2535 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2529 2536
2530 FrameTreeNode* root = contents()->GetFrameTree()->root(); 2537 FrameTreeNode* root = contents()->GetFrameTree()->root();
2531 RenderFrameHostManager* child1 = root->child_at(0)->render_manager(); 2538 RenderFrameHostManager* child1 = root->child_at(0)->render_manager();
2532 RenderFrameHostManager* child2 = root->child_at(1)->render_manager(); 2539 RenderFrameHostManager* child2 = root->child_at(1)->render_manager();
2533 RenderFrameHostManager* child3 = root->child_at(2)->render_manager(); 2540 RenderFrameHostManager* child3 = root->child_at(2)->render_manager();
2534 2541
2535 // Navigate first two subframes to B. 2542 // Navigate first two subframes to B.
2536 NavigationEntryImpl entryB(nullptr /* instance */, -1 /* page_id */, kUrlB, 2543 NavigationEntryImpl entryB(nullptr /* instance */, -1 /* page_id */, kUrlB,
2537 Referrer(kUrlA, blink::WebReferrerPolicyDefault), 2544 Referrer(kUrlA, blink::WebReferrerPolicyDefault),
2538 base::string16() /* title */, 2545 base::string16() /* title */,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
2608 2615
2609 const GURL kUrlA("http://a.com/"); 2616 const GURL kUrlA("http://a.com/");
2610 const GURL kUrlB("http://b.com/"); 2617 const GURL kUrlB("http://b.com/");
2611 const GURL kUrlC("http://c.com/"); 2618 const GURL kUrlC("http://c.com/");
2612 2619
2613 // Set up a page at a.com with a b.com subframe. 2620 // Set up a page at a.com with a b.com subframe.
2614 contents()->NavigateAndCommit(kUrlA); 2621 contents()->NavigateAndCommit(kUrlA);
2615 main_test_rfh()->OnCreateChildFrame( 2622 main_test_rfh()->OnCreateChildFrame(
2616 main_test_rfh()->GetProcess()->GetNextRoutingID(), 2623 main_test_rfh()->GetProcess()->GetNextRoutingID(),
2617 blink::WebTreeScopeType::Document, "frame1", 2624 blink::WebTreeScopeType::Document, "frame1",
2618 blink::WebSandboxFlags::None); 2625 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
2619 2626
2620 FrameTreeNode* root = contents()->GetFrameTree()->root(); 2627 FrameTreeNode* root = contents()->GetFrameTree()->root();
2621 RenderFrameHostManager* child = root->child_at(0)->render_manager(); 2628 RenderFrameHostManager* child = root->child_at(0)->render_manager();
2622 2629
2623 // Navigate subframe to B. 2630 // Navigate subframe to B.
2624 NavigationEntryImpl entryB(nullptr /* instance */, -1 /* page_id */, kUrlB, 2631 NavigationEntryImpl entryB(nullptr /* instance */, -1 /* page_id */, kUrlB,
2625 Referrer(kUrlA, blink::WebReferrerPolicyDefault), 2632 Referrer(kUrlA, blink::WebReferrerPolicyDefault),
2626 base::string16() /* title */, 2633 base::string16() /* title */,
2627 ui::PAGE_TRANSITION_LINK, 2634 ui::PAGE_TRANSITION_LINK,
2628 false /* is_renderer_init */); 2635 false /* is_renderer_init */);
(...skipping 20 matching lines...) Expand all
2649 root->render_manager()->GetRenderFrameProxyHost(hostC->GetSiteInstance()); 2656 root->render_manager()->GetRenderFrameProxyHost(hostC->GetSiteInstance());
2650 EXPECT_TRUE(proxy); 2657 EXPECT_TRUE(proxy);
2651 2658
2652 // Since the B->C navigation happened while the current page was focused, 2659 // Since the B->C navigation happened while the current page was focused,
2653 // page focus should propagate to the new subframe process. Check that 2660 // page focus should propagate to the new subframe process. Check that
2654 // process C received the proper focus message. 2661 // process C received the proper focus message.
2655 VerifyPageFocusMessage(hostC->GetProcess(), true, proxy->GetRoutingID()); 2662 VerifyPageFocusMessage(hostC->GetProcess(), true, proxy->GetRoutingID());
2656 } 2663 }
2657 2664
2658 } // namespace content 2665 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/browser/frame_host/render_frame_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698