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

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

Issue 1141283002: Replicate whether a frame is in a document or shadow tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix typo Created 5 years, 7 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 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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 2098 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 NavigationControllerImpl& controller = controller_impl(); 2109 NavigationControllerImpl& controller = controller_impl();
2110 TestNotificationTracker notifications; 2110 TestNotificationTracker notifications;
2111 RegisterForAllNavNotifications(&notifications, &controller); 2111 RegisterForAllNavNotifications(&notifications, &controller);
2112 2112
2113 const GURL url1("http://foo/1"); 2113 const GURL url1("http://foo/1");
2114 main_test_rfh()->NavigateAndCommitRendererInitiated(1, true, url1); 2114 main_test_rfh()->NavigateAndCommitRendererInitiated(1, true, url1);
2115 EXPECT_EQ(1U, navigation_entry_committed_counter_); 2115 EXPECT_EQ(1U, navigation_entry_committed_counter_);
2116 navigation_entry_committed_counter_ = 0; 2116 navigation_entry_committed_counter_ = 0;
2117 2117
2118 // Add a subframe and navigate it. 2118 // Add a subframe and navigate it.
2119 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE, std::string(), 2119 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE,
2120 SandboxFlags::NONE); 2120 blink::WebTreeScopeType::Document,
2121 std::string(), SandboxFlags::NONE);
2121 RenderFrameHostImpl* subframe = 2122 RenderFrameHostImpl* subframe =
2122 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); 2123 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host();
2123 const GURL url2("http://foo/2"); 2124 const GURL url2("http://foo/2");
2124 { 2125 {
2125 FrameHostMsg_DidCommitProvisionalLoad_Params params; 2126 FrameHostMsg_DidCommitProvisionalLoad_Params params;
2126 params.page_id = 1; 2127 params.page_id = 1;
2127 params.nav_entry_id = 0; 2128 params.nav_entry_id = 0;
2128 params.did_create_new_entry = false; 2129 params.did_create_new_entry = false;
2129 params.url = url2; 2130 params.url = url2;
2130 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; 2131 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
(...skipping 23 matching lines...) Expand all
2154 ASSERT_EQ(1U, entry->root_node()->children.size()); 2155 ASSERT_EQ(1U, entry->root_node()->children.size());
2155 FrameNavigationEntry* frame_entry = 2156 FrameNavigationEntry* frame_entry =
2156 entry->root_node()->children[0]->frame_entry.get(); 2157 entry->root_node()->children[0]->frame_entry.get();
2157 EXPECT_EQ(url2, frame_entry->url()); 2158 EXPECT_EQ(url2, frame_entry->url());
2158 } else { 2159 } else {
2159 // There are no subframe FrameNavigationEntries by default. 2160 // There are no subframe FrameNavigationEntries by default.
2160 EXPECT_EQ(0U, entry->root_node()->children.size()); 2161 EXPECT_EQ(0U, entry->root_node()->children.size());
2161 } 2162 }
2162 2163
2163 // Add a second subframe and navigate. 2164 // Add a second subframe and navigate.
2164 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE, std::string(), 2165 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE,
2165 SandboxFlags::NONE); 2166 blink::WebTreeScopeType::Document,
2167 std::string(), SandboxFlags::NONE);
2166 RenderFrameHostImpl* subframe2 = 2168 RenderFrameHostImpl* subframe2 =
2167 contents()->GetFrameTree()->root()->child_at(1)->current_frame_host(); 2169 contents()->GetFrameTree()->root()->child_at(1)->current_frame_host();
2168 const GURL url3("http://foo/3"); 2170 const GURL url3("http://foo/3");
2169 { 2171 {
2170 FrameHostMsg_DidCommitProvisionalLoad_Params params; 2172 FrameHostMsg_DidCommitProvisionalLoad_Params params;
2171 params.page_id = 1; 2173 params.page_id = 1;
2172 params.nav_entry_id = 0; 2174 params.nav_entry_id = 0;
2173 params.did_create_new_entry = false; 2175 params.did_create_new_entry = false;
2174 params.url = url3; 2176 params.url = url3;
2175 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; 2177 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
(...skipping 23 matching lines...) Expand all
2199 ASSERT_EQ(2U, entry->root_node()->children.size()); 2201 ASSERT_EQ(2U, entry->root_node()->children.size());
2200 FrameNavigationEntry* new_frame_entry = 2202 FrameNavigationEntry* new_frame_entry =
2201 entry->root_node()->children[1]->frame_entry.get(); 2203 entry->root_node()->children[1]->frame_entry.get();
2202 EXPECT_EQ(url3, new_frame_entry->url()); 2204 EXPECT_EQ(url3, new_frame_entry->url());
2203 } else { 2205 } else {
2204 // There are no subframe FrameNavigationEntries by default. 2206 // There are no subframe FrameNavigationEntries by default.
2205 EXPECT_EQ(0U, entry->root_node()->children.size()); 2207 EXPECT_EQ(0U, entry->root_node()->children.size());
2206 } 2208 }
2207 2209
2208 // Add a nested subframe and navigate. 2210 // Add a nested subframe and navigate.
2209 subframe->OnCreateChildFrame(MSG_ROUTING_NONE, std::string(), 2211 subframe->OnCreateChildFrame(MSG_ROUTING_NONE,
2212 blink::WebTreeScopeType::Document, std::string(),
2210 SandboxFlags::NONE); 2213 SandboxFlags::NONE);
2211 RenderFrameHostImpl* subframe3 = contents() 2214 RenderFrameHostImpl* subframe3 = contents()
2212 ->GetFrameTree() 2215 ->GetFrameTree()
2213 ->root() 2216 ->root()
2214 ->child_at(0) 2217 ->child_at(0)
2215 ->child_at(0) 2218 ->child_at(0)
2216 ->current_frame_host(); 2219 ->current_frame_host();
2217 const GURL url4("http://foo/4"); 2220 const GURL url4("http://foo/4");
2218 { 2221 {
2219 FrameHostMsg_DidCommitProvisionalLoad_Params params; 2222 FrameHostMsg_DidCommitProvisionalLoad_Params params;
(...skipping 1389 matching lines...) Expand 10 before | Expand all | Expand 10 after
3609 NavigationControllerImpl& controller = controller_impl(); 3612 NavigationControllerImpl& controller = controller_impl();
3610 // Navigate the main frame. 3613 // Navigate the main frame.
3611 const GURL url("http://www.google.com/"); 3614 const GURL url("http://www.google.com/");
3612 main_test_rfh()->NavigateAndCommitRendererInitiated(0, true, url); 3615 main_test_rfh()->NavigateAndCommitRendererInitiated(0, true, url);
3613 3616
3614 // We should be at the first navigation entry. 3617 // We should be at the first navigation entry.
3615 EXPECT_EQ(controller.GetEntryCount(), 1); 3618 EXPECT_EQ(controller.GetEntryCount(), 1);
3616 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0); 3619 EXPECT_EQ(controller.GetLastCommittedEntryIndex(), 0);
3617 3620
3618 // Add and navigate a subframe that would normally count as in-page. 3621 // Add and navigate a subframe that would normally count as in-page.
3619 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE, std::string(), 3622 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE,
3620 SandboxFlags::NONE); 3623 blink::WebTreeScopeType::Document,
3624 std::string(), SandboxFlags::NONE);
3621 RenderFrameHostImpl* subframe = 3625 RenderFrameHostImpl* subframe =
3622 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); 3626 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host();
3623 const GURL subframe_url("http://www.google.com/#"); 3627 const GURL subframe_url("http://www.google.com/#");
3624 FrameHostMsg_DidCommitProvisionalLoad_Params params; 3628 FrameHostMsg_DidCommitProvisionalLoad_Params params;
3625 params.page_id = 0; 3629 params.page_id = 0;
3626 params.nav_entry_id = 0; 3630 params.nav_entry_id = 0;
3627 params.did_create_new_entry = false; 3631 params.did_create_new_entry = false;
3628 params.url = subframe_url; 3632 params.url = subframe_url;
3629 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; 3633 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
3630 params.should_update_history = false; 3634 params.should_update_history = false;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
3759 const GURL url1("http://foo/"); 3763 const GURL url1("http://foo/");
3760 NavigateAndCommit(url1); 3764 NavigateAndCommit(url1);
3761 3765
3762 // Now start a pending load to a totally different page, but don't commit it. 3766 // Now start a pending load to a totally different page, but don't commit it.
3763 const GURL url2("http://bar/"); 3767 const GURL url2("http://bar/");
3764 controller.LoadURL( 3768 controller.LoadURL(
3765 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); 3769 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string());
3766 3770
3767 // Send a subframe update from the first page, as if one had just 3771 // Send a subframe update from the first page, as if one had just
3768 // automatically loaded. Auto subframes don't increment the page ID. 3772 // automatically loaded. Auto subframes don't increment the page ID.
3769 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE, std::string(), 3773 main_test_rfh()->OnCreateChildFrame(MSG_ROUTING_NONE,
3770 SandboxFlags::NONE); 3774 blink::WebTreeScopeType::Document,
3775 std::string(), SandboxFlags::NONE);
3771 RenderFrameHostImpl* subframe = 3776 RenderFrameHostImpl* subframe =
3772 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host(); 3777 contents()->GetFrameTree()->root()->child_at(0)->current_frame_host();
3773 const GURL url1_sub("http://foo/subframe"); 3778 const GURL url1_sub("http://foo/subframe");
3774 FrameHostMsg_DidCommitProvisionalLoad_Params params; 3779 FrameHostMsg_DidCommitProvisionalLoad_Params params;
3775 params.page_id = controller.GetLastCommittedEntry()->GetPageID(); 3780 params.page_id = controller.GetLastCommittedEntry()->GetPageID();
3776 params.nav_entry_id = 0; 3781 params.nav_entry_id = 0;
3777 params.did_create_new_entry = false; 3782 params.did_create_new_entry = false;
3778 params.url = url1_sub; 3783 params.url = url1_sub;
3779 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; 3784 params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME;
3780 params.should_update_history = false; 3785 params.should_update_history = false;
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after
4888 { 4893 {
4889 LoadCommittedDetails details; 4894 LoadCommittedDetails details;
4890 controller_impl().RendererDidNavigate(main_test_rfh(), params, &details); 4895 controller_impl().RendererDidNavigate(main_test_rfh(), params, &details);
4891 EXPECT_EQ(PAGE_TYPE_ERROR, 4896 EXPECT_EQ(PAGE_TYPE_ERROR,
4892 controller_impl().GetLastCommittedEntry()->GetPageType()); 4897 controller_impl().GetLastCommittedEntry()->GetPageType());
4893 EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, details.type); 4898 EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, details.type);
4894 } 4899 }
4895 } 4900 }
4896 4901
4897 } // namespace content 4902 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698