| Index: content/public/test/test_renderer_host.cc | 
| diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc | 
| index d385871bbf9ea30a84975834abc2050cec70f82a..388a9d9b45a43e6f4fd4cbe4408a7fa22ab07843 100644 | 
| --- a/content/public/test/test_renderer_host.cc | 
| +++ b/content/public/test/test_renderer_host.cc | 
| @@ -16,9 +16,9 @@ | 
| #include "content/public/browser/browser_thread.h" | 
| #include "content/public/browser/web_contents.h" | 
| #include "content/public/common/browser_side_navigation_policy.h" | 
| +#include "content/public/test/browser_side_navigation_test_utils.h" | 
| #include "content/public/test/mock_render_process_host.h" | 
| #include "content/public/test/test_browser_context.h" | 
| -#include "content/test/browser_side_navigation_test_utils.h" | 
| #include "content/test/content_browser_sanity_checker.h" | 
| #include "content/test/test_render_frame_host.h" | 
| #include "content/test/test_render_frame_host_factory.h" | 
| @@ -56,11 +56,53 @@ RenderFrameHostTester* RenderFrameHostTester::For(RenderFrameHost* host) { | 
| } | 
|  | 
| // static | 
| -RenderFrameHost* RenderFrameHostTester::GetPendingForController( | 
| +void RenderFrameHostTester::CommitPendingLoad( | 
| NavigationController* controller) { | 
| -  WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( | 
| -      controller->GetWebContents()); | 
| -  return web_contents->GetRenderManagerForTesting()->pending_frame_host(); | 
| +  // This function is currently used by BrowserWithTestWindowTest. It would be | 
| +  // ideal to instead make the users of that class create TestWebContents | 
| +  // (rather than WebContentsImpl directly). This would allow the implementation | 
| +  // of PrepareForCommitIfNecessary() to live directly in | 
| +  // TestWebContents::CommitPendingNavigation() which could then be the only | 
| +  // place to handle this simulation. Unfortunately, it is not trivial to make | 
| +  // that change, so for now we have this extra simulation for | 
| +  // non-TestWebContents. | 
| +  RenderFrameHost* old_rfh = controller->GetWebContents()->GetMainFrame(); | 
| +  TestRenderFrameHost* old_rfh_tester = | 
| +      static_cast<TestRenderFrameHost*>(old_rfh); | 
| +  old_rfh_tester->PrepareForCommitIfNecessary(); | 
| + | 
| +  WebContentsImpl* web_contents = | 
| +      static_cast<WebContentsImpl*>(controller->GetWebContents()); | 
| +  RenderFrameHost* pending_rfh = | 
| +      IsBrowserSideNavigationEnabled() | 
| +          ? web_contents->GetRenderManagerForTesting() | 
| +                ->speculative_render_frame_host_.get() | 
| +          : web_contents->GetRenderManagerForTesting()->pending_frame_host(); | 
| + | 
| +  // Commit on the pending_rfh, if one exists. | 
| +  RenderFrameHost* test_rfh = pending_rfh ? pending_rfh : old_rfh; | 
| +  RenderFrameHostTester* test_rfh_tester = For(test_rfh); | 
| + | 
| +  // For new navigations, we need to send a larger page ID. For renavigations, | 
| +  // we need to send the preexisting page ID. We can tell these apart because | 
| +  // renavigations will have a pending_entry_index while new ones won't (they'll | 
| +  // just have a standalong pending_entry that isn't in the list already). | 
| +  if (controller->GetPendingEntryIndex() >= 0) { | 
| +    test_rfh_tester->SendNavigateWithTransition( | 
| +        controller->GetPendingEntry()->GetPageID(), | 
| +        controller->GetPendingEntry()->GetUniqueID(), | 
| +        false, | 
| +        controller->GetPendingEntry()->GetURL(), | 
| +        controller->GetPendingEntry()->GetTransitionType()); | 
| +  } else { | 
| +    test_rfh_tester->SendNavigateWithTransition( | 
| +        controller->GetWebContents()->GetMaxPageIDForSiteInstance( | 
| +            test_rfh->GetSiteInstance()) + 1, | 
| +        controller->GetPendingEntry()->GetUniqueID(), | 
| +        true, | 
| +        controller->GetPendingEntry()->GetURL(), | 
| +        controller->GetPendingEntry()->GetTransitionType()); | 
| +  } | 
| } | 
|  | 
| // RenderViewHostTester ------------------------------------------------------- | 
|  |