| 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/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 Loading... |
| 2109 NavigationControllerImpl& controller = controller_impl(); | 2109 NavigationControllerImpl& controller = controller_impl(); |
| 2110 TestNotificationTracker notifications; | 2110 TestNotificationTracker notifications; |
| 2111 RegisterForAllNavNotifications(¬ifications, &controller); | 2111 RegisterForAllNavNotifications(¬ifications, &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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |