| Index: content/browser/frame_host/navigation_controller_impl.cc
|
| diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
|
| index a60274171df63ac275af93636bdd64520bb301e9..3997cae5991520a0836bc376619865bf0d84ea03 100644
|
| --- a/content/browser/frame_host/navigation_controller_impl.cc
|
| +++ b/content/browser/frame_host/navigation_controller_impl.cc
|
| @@ -883,6 +883,15 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
|
| RenderFrameHost* rfh,
|
| const FrameHostMsg_DidCommitProvisionalLoad_Params& params) const {
|
| if (params.page_id == -1) {
|
| + // TODO(nasko, creis): An out-of-process child frame has no way of
|
| + // knowing the page_id of its parent, so it is passing back -1. The
|
| + // semantics here should be re-evaluated during session history refactor
|
| + // (see http://crbug.com/236848). For now, we assume this means the
|
| + // child frame loaded and proceed. Note that this may do the wrong thing
|
| + // for cross-process AUTO_SUBFRAME navigations.
|
| + if (rfh->IsCrossProcessSubframe())
|
| + return NAVIGATION_TYPE_NEW_SUBFRAME;
|
| +
|
| // The renderer generates the page IDs, and so if it gives us the invalid
|
| // page ID (-1) we know it didn't actually navigate. This happens in a few
|
| // cases:
|
|
|