| Index: content/test/test_render_frame_host.cc
|
| diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
|
| index 2aced691760742d41c2c17acd630916e5af61826..c7d0d6f4bca4d3bf1935e3a48be416d0fa7b2a34 100644
|
| --- a/content/test/test_render_frame_host.cc
|
| +++ b/content/test/test_render_frame_host.cc
|
| @@ -64,7 +64,8 @@ TestRenderFrameHost::TestRenderFrameHost(SiteInstance* site_instance,
|
| flags),
|
| child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL),
|
| contents_mime_type_("text/html"),
|
| - simulate_history_list_was_cleared_(false) {}
|
| + simulate_history_list_was_cleared_(false),
|
| + last_commit_was_error_page_(false) {}
|
|
|
| TestRenderFrameHost::~TestRenderFrameHost() {
|
| }
|
| @@ -156,9 +157,14 @@ void TestRenderFrameHost::SimulateNavigationCommit(const GURL& url) {
|
|
|
| url::Replacements<char> replacements;
|
| replacements.ClearRef();
|
| +
|
| + // This approach to determining whether a navigation is to be treated as
|
| + // same page is not robust, as it will not handle pushState type navigation.
|
| + // Do not use elsewhere!
|
| params.was_within_same_page =
|
| - url.ReplaceComponents(replacements) ==
|
| - GetLastCommittedURL().ReplaceComponents(replacements);
|
| + (GetLastCommittedURL().is_valid() && !last_commit_was_error_page_ &&
|
| + url.ReplaceComponents(replacements) ==
|
| + GetLastCommittedURL().ReplaceComponents(replacements));
|
|
|
| params.page_state = PageState::CreateForTesting(url, false, nullptr, nullptr);
|
|
|
| @@ -350,11 +356,16 @@ void TestRenderFrameHost::SendNavigateWithParameters(
|
|
|
| url::Replacements<char> replacements;
|
| replacements.ClearRef();
|
| +
|
| + // This approach to determining whether a navigation is to be treated as
|
| + // same page is not robust, as it will not handle pushState type navigation.
|
| + // Do not use elsewhere!
|
| params.was_within_same_page =
|
| !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD) &&
|
| !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED) &&
|
| - url_copy.ReplaceComponents(replacements) ==
|
| - GetLastCommittedURL().ReplaceComponents(replacements);
|
| + (GetLastCommittedURL().is_valid() && !last_commit_was_error_page_ &&
|
| + url_copy.ReplaceComponents(replacements) ==
|
| + GetLastCommittedURL().ReplaceComponents(replacements));
|
|
|
| params.page_state =
|
| PageState::CreateForTesting(url_copy, false, nullptr, nullptr);
|
| @@ -369,6 +380,7 @@ void TestRenderFrameHost::SendNavigateWithParams(
|
| FrameHostMsg_DidCommitProvisionalLoad_Params* params) {
|
| FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params);
|
| OnDidCommitProvisionalLoad(msg);
|
| + last_commit_was_error_page_ = params->url_is_unreachable;
|
| }
|
|
|
| void TestRenderFrameHost::SendRendererInitiatedNavigationRequest(
|
|
|