| Index: content/browser/frame_host/navigator_impl.cc
|
| diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
|
| index 2e9a114eef9012d0c70904e3f3211b523ec31658..7f801b51991ea0979d49b94fe1fbdf7a9877dc8b 100644
|
| --- a/content/browser/frame_host/navigator_impl.cc
|
| +++ b/content/browser/frame_host/navigator_impl.cc
|
| @@ -331,6 +331,13 @@ bool NavigatorImpl::NavigateToEntry(
|
| if (!is_transfer_to_same) {
|
| navigation_data_.reset(new NavigationMetricsData(navigation_start, dest_url,
|
| entry.restore_type()));
|
| +
|
| + // The renderer expects the history length to be 0 for the initial page.
|
| + int history_offset = controller_->IsInitialNavigation() ? -1 :
|
| + controller_->GetLastCommittedEntryIndex();
|
| + int history_length = controller_->IsInitialNavigation() ? 0 :
|
| + controller_->GetEntryCount();
|
| +
|
| // Create the navigation parameters.
|
| FrameMsg_Navigate_Type::Value navigation_type =
|
| GetNavigationType(controller_->GetBrowserContext(), entry, reload_type);
|
| @@ -343,8 +350,7 @@ bool NavigatorImpl::NavigateToEntry(
|
| frame_tree_node->has_committed_real_load(),
|
| controller_->GetPendingEntryIndex() == -1,
|
| controller_->GetIndexOfEntry(&entry),
|
| - controller_->GetLastCommittedEntryIndex(),
|
| - controller_->GetEntryCount()));
|
| + history_offset, history_length));
|
| } else {
|
| // No need to navigate again. Just resume the deferred request.
|
| dest_render_frame_host->GetProcess()->ResumeDeferredNavigation(
|
| @@ -469,7 +475,9 @@ void NavigatorImpl::DidNavigate(
|
| // Send notification about committed provisional loads. This notification is
|
| // different from the NAV_ENTRY_COMMITTED notification which doesn't include
|
| // the actual URL navigated to and isn't sent for AUTO_SUBFRAME navigations.
|
| - if (details.type != NAVIGATION_TYPE_NAV_IGNORE && delegate_) {
|
| + // TODO(creis): Do we need to send this for AUTO_SUBFRAME when did_navigate
|
| + // is false?
|
| + if (delegate_) {
|
| DCHECK_EQ(!render_frame_host->GetParent(),
|
| did_navigate ? details.is_main_frame : false);
|
| ui::PageTransition transition_type = params.transition;
|
|
|