summaryrefslogtreecommitdiffstats
path: root/content/browser/frame_host/navigation_controller_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/frame_host/navigation_controller_impl.cc')
-rw-r--r--content/browser/frame_host/navigation_controller_impl.cc131
1 files changed, 0 insertions, 131 deletions
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index 1953f51..8c9f033 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -819,13 +819,6 @@ bool NavigationControllerImpl::RendererDidNavigate(
// Do navigation-type specific actions. These will make and commit an entry.
details->type = ClassifyNavigation(rfh, params);
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kSitePerProcess)) {
- // For site-per-process, both ClassifyNavigation methods get it wrong (see
- // http://crbug.com/464014) so don't worry about a mismatch if that's the
- // case.
- DCHECK_EQ(details->type, ClassifyNavigationWithoutPageID(rfh, params));
- }
// is_in_page must be computed before the entry gets committed.
details->is_in_page = AreURLsInPageNavigation(rfh->GetLastCommittedURL(),
@@ -1070,121 +1063,6 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
return NAVIGATION_TYPE_EXISTING_PAGE;
}
-NavigationType NavigationControllerImpl::ClassifyNavigationWithoutPageID(
- RenderFrameHostImpl* rfh,
- const FrameHostMsg_DidCommitProvisionalLoad_Params& params) const {
- if (params.did_create_new_entry) {
- // A new entry. We may or may not have a pending entry for the page, and
- // this may or may not be the main frame.
- if (ui::PageTransitionIsMainFrame(params.transition)) {
- // TODO(avi): I want to use |if (!rfh->GetParent())| here but lots of unit
- // tests fake auto subframe commits by sending the main frame a
- // PAGE_TRANSITION_AUTO_SUBFRAME transition. Fix those, and adjust here.
- return NAVIGATION_TYPE_NEW_PAGE;
- }
-
- // When this is a new subframe navigation, we should have a committed page
- // in which it's a subframe. This may not be the case when an iframe is
- // navigated on a popup navigated to about:blank (the iframe would be
- // written into the popup by script on the main page). For these cases,
- // there isn't any navigation stuff we can do, so just ignore it.
- if (!GetLastCommittedEntry())
- return NAVIGATION_TYPE_NAV_IGNORE;
-
- // Valid subframe navigation.
- return NAVIGATION_TYPE_NEW_SUBFRAME;
- }
-
- // We only clear the session history when navigating to a new page.
- DCHECK(!params.history_list_was_cleared);
-
- if (!ui::PageTransitionIsMainFrame(params.transition)) {
- // All manual subframes would be did_create_new_entry and handled above, so
- // we know this is auto.
- if (GetLastCommittedEntry()) {
- return NAVIGATION_TYPE_AUTO_SUBFRAME;
- } else {
- // We ignore subframes created in non-committed pages; we'd appreciate if
- // people stopped doing that.
- return NAVIGATION_TYPE_NAV_IGNORE;
- }
- }
-
- if (params.nav_entry_id == 0) {
- // This is a renderer-initiated navigation (nav_entry_id == 0), but didn't
- // create a new page.
-
- // Just like above in the did_create_new_entry case, it's possible to
- // scribble onto an uncommitted page. Again, there isn't any navigation
- // stuff that we can do, so ignore it here as well.
- if (!GetLastCommittedEntry())
- return NAVIGATION_TYPE_NAV_IGNORE;
-
- if (params.was_within_same_page) {
- // This is history.replaceState(), which is renderer-initiated yet within
- // the same page.
- return NAVIGATION_TYPE_IN_PAGE;
- } else {
- // This is history.reload() or a client-side redirect.
- return NAVIGATION_TYPE_EXISTING_PAGE;
- }
- }
-
- if (pending_entry_ && pending_entry_index_ == -1 &&
- pending_entry_->GetUniqueID() == params.nav_entry_id) {
- // In this case, we have a pending entry for a load of a new URL but Blink
- // didn't do a new navigation (params.did_create_new_entry). This happens
- // when you press enter in the URL bar to reload. We will create a pending
- // entry, but Blink will convert it to a reload since it's the same page and
- // not create a new entry for it (the user doesn't want to have a new
- // back/forward entry when they do this). Therefore we want to just ignore
- // the pending entry and go back to where we were (the "existing entry").
- return NAVIGATION_TYPE_SAME_PAGE;
- }
-
- if (params.intended_as_new_entry) {
- // This was intended to be a navigation to a new entry but the pending entry
- // got cleared in the meanwhile. Classify as EXISTING_PAGE because we may or
- // may not have a pending entry.
- return NAVIGATION_TYPE_EXISTING_PAGE;
- }
-
- if (params.url_is_unreachable && failed_pending_entry_id_ != 0 &&
- params.nav_entry_id == failed_pending_entry_id_) {
- // If the renderer was going to a new pending entry that got cleared because
- // of an error, this is the case of the user trying to retry a failed load
- // by pressing return. Classify as EXISTING_PAGE because we probably don't
- // have a pending entry.
- return NAVIGATION_TYPE_EXISTING_PAGE;
- }
-
- // Now we know that the notification is for an existing page. Find that entry.
- int existing_entry_index = GetEntryIndexWithUniqueID(params.nav_entry_id);
- if (existing_entry_index == -1) {
- // The page was not found. It could have been pruned because of the limit on
- // back/forward entries (not likely since we'll usually tell it to navigate
- // to such entries). It could also mean that the renderer is smoking crack.
- // TODO(avi): Crash the renderer like we do in the old ClassifyNavigation?
- NOTREACHED() << "Could not find nav entry with id " << params.nav_entry_id;
- return NAVIGATION_TYPE_NAV_IGNORE;
- }
-
- // Any top-level navigations with the same base (minus the reference fragment)
- // are in-page navigations. (We weeded out subframe navigations above.) Most
- // of the time this doesn't matter since Blink doesn't tell us about subframe
- // navigations that don't actually navigate, but it can happen when there is
- // an encoding override (it always sends a navigation request).
- NavigationEntryImpl* existing_entry = entries_[existing_entry_index].get();
- if (AreURLsInPageNavigation(existing_entry->GetURL(), params.url,
- params.was_within_same_page, rfh)) {
- return NAVIGATION_TYPE_IN_PAGE;
- }
-
- // Since we weeded out "new" navigations above, we know this is an existing
- // (back/forward) navigation.
- return NAVIGATION_TYPE_EXISTING_PAGE;
-}
-
void NavigationControllerImpl::RendererDidNavigateToNewPage(
RenderFrameHostImpl* rfh,
const FrameHostMsg_DidCommitProvisionalLoad_Params& params,
@@ -1946,15 +1824,6 @@ int NavigationControllerImpl::GetEntryIndexWithPageID(
return -1;
}
-int NavigationControllerImpl::GetEntryIndexWithUniqueID(
- int nav_entry_id) const {
- for (int i = static_cast<int>(entries_.size()) - 1; i >= 0; --i) {
- if (entries_[i]->GetUniqueID() == nav_entry_id)
- return i;
- }
- return -1;
-}
-
NavigationEntryImpl* NavigationControllerImpl::GetTransientEntry() const {
if (transient_entry_index_ == -1)
return NULL;