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/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/frame_host/cross_site_transferring_request.h" | 10 #include "content/browser/frame_host/cross_site_transferring_request.h" |
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
538 TEST_F(RenderFrameHostManagerTest, DropCreateChildFrameWhileSwappedOut) { | 538 TEST_F(RenderFrameHostManagerTest, DropCreateChildFrameWhileSwappedOut) { |
539 const GURL kUrl1("http://foo.com"); | 539 const GURL kUrl1("http://foo.com"); |
540 const GURL kUrl2("http://www.google.com/"); | 540 const GURL kUrl2("http://www.google.com/"); |
541 | 541 |
542 // Navigate to the first site. | 542 // Navigate to the first site. |
543 NavigateActiveAndCommit(kUrl1); | 543 NavigateActiveAndCommit(kUrl1); |
544 TestRenderFrameHost* initial_rfh = contents()->GetMainFrame(); | 544 TestRenderFrameHost* initial_rfh = contents()->GetMainFrame(); |
545 { | 545 { |
546 RenderFrameHostCreatedObserver observer(contents()); | 546 RenderFrameHostCreatedObserver observer(contents()); |
547 initial_rfh->OnCreateChildFrame( | 547 initial_rfh->OnCreateChildFrame( |
548 initial_rfh->GetProcess()->GetNextRoutingID(), std::string()); | 548 initial_rfh->GetProcess()->GetNextRoutingID(), std::string(), |
| 549 SandboxFlags::NONE); |
549 EXPECT_TRUE(observer.created()); | 550 EXPECT_TRUE(observer.created()); |
550 } | 551 } |
551 | 552 |
552 // Create one more frame in the same SiteInstance where initial_rfh | 553 // Create one more frame in the same SiteInstance where initial_rfh |
553 // exists so that initial_rfh doesn't get deleted on navigation to another | 554 // exists so that initial_rfh doesn't get deleted on navigation to another |
554 // site. | 555 // site. |
555 initial_rfh->GetSiteInstance()->increment_active_frame_count(); | 556 initial_rfh->GetSiteInstance()->increment_active_frame_count(); |
556 | 557 |
557 // Navigate to a cross-site URL. | 558 // Navigate to a cross-site URL. |
558 NavigateActiveAndCommit(kUrl2); | 559 NavigateActiveAndCommit(kUrl2); |
559 EXPECT_TRUE(initial_rfh->is_swapped_out()); | 560 EXPECT_TRUE(initial_rfh->is_swapped_out()); |
560 | 561 |
561 TestRenderFrameHost* dest_rfh = contents()->GetMainFrame(); | 562 TestRenderFrameHost* dest_rfh = contents()->GetMainFrame(); |
562 ASSERT_TRUE(dest_rfh); | 563 ASSERT_TRUE(dest_rfh); |
563 EXPECT_NE(initial_rfh, dest_rfh); | 564 EXPECT_NE(initial_rfh, dest_rfh); |
564 | 565 |
565 { | 566 { |
566 // Since the old RFH is now swapped out, it shouldn't process any messages | 567 // Since the old RFH is now swapped out, it shouldn't process any messages |
567 // to create child frames. | 568 // to create child frames. |
568 RenderFrameHostCreatedObserver observer(contents()); | 569 RenderFrameHostCreatedObserver observer(contents()); |
569 initial_rfh->OnCreateChildFrame( | 570 initial_rfh->OnCreateChildFrame( |
570 initial_rfh->GetProcess()->GetNextRoutingID(), std::string()); | 571 initial_rfh->GetProcess()->GetNextRoutingID(), std::string(), |
| 572 SandboxFlags::NONE); |
571 EXPECT_FALSE(observer.created()); | 573 EXPECT_FALSE(observer.created()); |
572 } | 574 } |
573 } | 575 } |
574 | 576 |
575 TEST_F(RenderFrameHostManagerTest, WhiteListSwapCompositorFrame) { | 577 TEST_F(RenderFrameHostManagerTest, WhiteListSwapCompositorFrame) { |
576 TestRenderFrameHost* swapped_out_rfh = CreateSwappedOutRenderFrameHost(); | 578 TestRenderFrameHost* swapped_out_rfh = CreateSwappedOutRenderFrameHost(); |
577 TestRenderWidgetHostView* swapped_out_rwhv = | 579 TestRenderWidgetHostView* swapped_out_rwhv = |
578 static_cast<TestRenderWidgetHostView*>( | 580 static_cast<TestRenderWidgetHostView*>( |
579 swapped_out_rfh->GetRenderViewHost()->GetView()); | 581 swapped_out_rfh->GetRenderViewHost()->GetView()); |
580 EXPECT_FALSE(swapped_out_rwhv->did_swap_compositor_frame()); | 582 EXPECT_FALSE(swapped_out_rwhv->did_swap_compositor_frame()); |
(...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1775 switches::kSitePerProcess); | 1777 switches::kSitePerProcess); |
1776 | 1778 |
1777 const GURL kUrl1("http://www.google.com/"); | 1779 const GURL kUrl1("http://www.google.com/"); |
1778 const GURL kUrl2("http://webkit.org/"); | 1780 const GURL kUrl2("http://webkit.org/"); |
1779 | 1781 |
1780 RenderFrameHostImpl* host = NULL; | 1782 RenderFrameHostImpl* host = NULL; |
1781 | 1783 |
1782 contents()->NavigateAndCommit(kUrl1); | 1784 contents()->NavigateAndCommit(kUrl1); |
1783 contents()->GetMainFrame()->OnCreateChildFrame( | 1785 contents()->GetMainFrame()->OnCreateChildFrame( |
1784 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(), | 1786 contents()->GetMainFrame()->GetProcess()->GetNextRoutingID(), |
1785 std::string("frame_name")); | 1787 std::string("frame_name"), SandboxFlags::NONE); |
1786 RenderFrameHostManager* manager = | 1788 RenderFrameHostManager* manager = |
1787 contents()->GetFrameTree()->root()->child_at(0)->render_manager(); | 1789 contents()->GetFrameTree()->root()->child_at(0)->render_manager(); |
1788 | 1790 |
1789 // 1) The first navigation. -------------------------- | 1791 // 1) The first navigation. -------------------------- |
1790 NavigationEntryImpl entry1(NULL /* instance */, -1 /* page_id */, kUrl1, | 1792 NavigationEntryImpl entry1(NULL /* instance */, -1 /* page_id */, kUrl1, |
1791 Referrer(), base::string16() /* title */, | 1793 Referrer(), base::string16() /* title */, |
1792 ui::PAGE_TRANSITION_TYPED, | 1794 ui::PAGE_TRANSITION_TYPED, |
1793 false /* is_renderer_init */); | 1795 false /* is_renderer_init */); |
1794 host = manager->Navigate(entry1); | 1796 host = manager->Navigate(entry1); |
1795 | 1797 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1844 #if 0 | 1846 #if 0 |
1845 // TODO(nick): Currently a proxy to the removed frame lingers in the parent. | 1847 // TODO(nick): Currently a proxy to the removed frame lingers in the parent. |
1846 // Enable this assert below once the proxies to the subframe are correctly | 1848 // Enable this assert below once the proxies to the subframe are correctly |
1847 // cleaned up after detach. http://crbug.com/444955. | 1849 // cleaned up after detach. http://crbug.com/444955. |
1848 ASSERT_TRUE(site_instance->HasOneRef()) | 1850 ASSERT_TRUE(site_instance->HasOneRef()) |
1849 << "This SiteInstance should be destroyable now."; | 1851 << "This SiteInstance should be destroyable now."; |
1850 #endif | 1852 #endif |
1851 } | 1853 } |
1852 | 1854 |
1853 } // namespace content | 1855 } // namespace content |
OLD | NEW |