Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index 343c61a163de4cad8b5f84f4678f74498d6d3534..bbe780638f0cceddafe715b50fa3dca6281720c9 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -33,6 +33,7 @@ |
#include "content/browser/site_instance.h" |
#include "content/browser/tab_contents/tab_contents_delegate.h" |
#include "content/browser/tab_contents/tab_contents_view.h" |
+#include "content/common/content_constants.h" |
#include "content/common/notification_service.h" |
#include "content/common/view_messages.h" |
#include "ui/gfx/rect.h" |
@@ -257,14 +258,12 @@ void PrerenderContents::StartPrerendering( |
TabContents* source_tc = |
source_render_view_host->delegate()->GetAsTabContents(); |
if (source_tc) { |
- // So that history merging will work, get the max page ID |
- // of the old page, and add a safety margin of 10 to it (for things |
- // such as redirects). |
- int32 max_page_id = source_tc->GetMaxPageID(); |
- if (max_page_id != -1) { |
- prerender_contents_->controller().set_max_restored_page_id( |
- max_page_id + 10); |
- } |
+ // So that history merging will work, set the max page ID to one greater |
+ // than the largest we can ever have. This allows for redirects, but also |
+ // for any tabs the user may open between us rendering this page and |
+ // swapping it in. |
+ prerender_contents_->controller().set_max_restored_page_id( |
+ content::kMaxSessionHistoryEntries + 1); |
tab_contents_delegate_.reset(new TabContentsDelegateImpl(this)); |
new_contents->set_delegate(tab_contents_delegate_.get()); |