| Index: content/browser/frame_host/navigation_controller_impl_browsertest.cc
|
| diff --git a/content/browser/frame_host/navigation_controller_impl_browsertest.cc b/content/browser/frame_host/navigation_controller_impl_browsertest.cc
|
| index d676d4504475ba7db098c54adf46a622294a95ec..ba4a49d1d4de3f05005e651f220a64d46afd8550 100644
|
| --- a/content/browser/frame_host/navigation_controller_impl_browsertest.cc
|
| +++ b/content/browser/frame_host/navigation_controller_impl_browsertest.cc
|
| @@ -552,6 +552,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| // transition? Lots of these transitions should be cleaned up.
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -562,6 +563,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| capturer.Wait();
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type);
|
| + EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -572,6 +574,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| capturer.Wait();
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -585,6 +588,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -597,6 +601,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_NEW_PAGE, capturer.details().type);
|
| + EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
| }
|
|
|
| @@ -625,6 +630,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -637,6 +643,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -650,6 +657,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -663,6 +671,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -676,6 +685,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -689,6 +699,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -698,6 +709,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| capturer.Wait();
|
| EXPECT_EQ(ui::PAGE_TRANSITION_RELOAD, capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -709,6 +721,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
|
|
| {
|
| @@ -722,62 +735,29 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT,
|
| capturer.params().transition);
|
| EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_FALSE(capturer.details().is_in_page);
|
| }
|
| -}
|
|
|
| -// Verify that navigations for NAVIGATION_TYPE_SAME_PAGE are correctly
|
| -// classified.
|
| -IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| - NavigationTypeClassification_SamePage) {
|
| - GURL url1(embedded_test_server()->GetURL(
|
| - "/navigation_controller/simple_page_1.html"));
|
| - NavigateToURL(shell(), url1);
|
| -
|
| - FrameTreeNode* root =
|
| - static_cast<WebContentsImpl*>(shell()->web_contents())->
|
| - GetFrameTree()->root();
|
| -
|
| - {
|
| - // Simple load.
|
| - FrameNavigateParamsCapturer capturer(root);
|
| - GURL frame_url(embedded_test_server()->GetURL(
|
| - "/navigation_controller/simple_page_1.html"));
|
| - NavigateFrameToURL(root, frame_url);
|
| - capturer.Wait();
|
| - EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, capturer.details().type);
|
| - }
|
| -}
|
| -
|
| -// Verify that navigations for NAVIGATION_TYPE_IN_PAGE are correctly
|
| -// classified.
|
| -IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| - NavigationTypeClassification_InPage) {
|
| - GURL url1(embedded_test_server()->GetURL(
|
| - "/navigation_controller/simple_page_1.html"));
|
| - NavigateToURL(shell(), url1);
|
| -
|
| - FrameTreeNode* root =
|
| - static_cast<WebContentsImpl*>(shell()->web_contents())->
|
| - GetFrameTree()->root();
|
| + // Now, various in-page navigations.
|
|
|
| {
|
| // history.replaceState().
|
| FrameNavigateParamsCapturer capturer(root);
|
| std::string script =
|
| - "history.replaceState({}, 'page 1', 'simple_page_2.html')";
|
| + "history.replaceState({}, 'page 2', 'simple_page_2.html')";
|
| EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script));
|
| capturer.Wait();
|
| - EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_CLIENT_REDIRECT,
|
| + capturer.params().transition);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| // Back and forward across a fragment navigation.
|
|
|
| - GURL url2(embedded_test_server()->GetURL(
|
| + GURL url_links(embedded_test_server()->GetURL(
|
| "/navigation_controller/page_with_links.html"));
|
| - NavigateToURL(shell(), url2);
|
| + NavigateToURL(shell(), url_links);
|
| std::string script = "document.getElementById('fraglink').click()";
|
| EXPECT_TRUE(content::ExecuteScript(root->current_frame_host(), script));
|
| EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
|
| @@ -791,7 +771,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FORWARD_BACK
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| @@ -802,7 +782,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| capturer.Wait();
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_FORWARD_BACK,
|
| capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| @@ -822,7 +802,7 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| | ui::PAGE_TRANSITION_FORWARD_BACK
|
| | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR,
|
| capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| @@ -833,11 +813,35 @@ IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| capturer.Wait();
|
| EXPECT_EQ(ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_FORWARD_BACK,
|
| capturer.params().transition);
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
| }
|
|
|
| +// Verify that navigations for NAVIGATION_TYPE_SAME_PAGE are correctly
|
| +// classified.
|
| +IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| + NavigationTypeClassification_SamePage) {
|
| + GURL url1(embedded_test_server()->GetURL(
|
| + "/navigation_controller/simple_page_1.html"));
|
| + NavigateToURL(shell(), url1);
|
| +
|
| + FrameTreeNode* root =
|
| + static_cast<WebContentsImpl*>(shell()->web_contents())->
|
| + GetFrameTree()->root();
|
| +
|
| + {
|
| + // Simple load.
|
| + FrameNavigateParamsCapturer capturer(root);
|
| + GURL frame_url(embedded_test_server()->GetURL(
|
| + "/navigation_controller/simple_page_1.html"));
|
| + NavigateFrameToURL(root, frame_url);
|
| + capturer.Wait();
|
| + EXPECT_EQ(ui::PAGE_TRANSITION_LINK, capturer.params().transition);
|
| + EXPECT_EQ(NAVIGATION_TYPE_SAME_PAGE, capturer.details().type);
|
| + }
|
| +}
|
| +
|
| // Verify that navigations for NAVIGATION_TYPE_NEW_SUBFRAME and
|
| // NAVIGATION_TYPE_AUTO_SUBFRAME are properly classified.
|
| IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
|
| @@ -1836,7 +1840,8 @@ void DoReplaceStateWhilePending(Shell* shell,
|
|
|
| // The fact that there was a pending entry shouldn't interfere with the
|
| // classification.
|
| - EXPECT_EQ(NAVIGATION_TYPE_IN_PAGE, capturer.details().type);
|
| + EXPECT_EQ(NAVIGATION_TYPE_EXISTING_PAGE, capturer.details().type);
|
| + EXPECT_TRUE(capturer.details().is_in_page);
|
| }
|
|
|
| ResourceDispatcherHost::Get()->SetDelegate(nullptr);
|
|
|