Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index 80572279d04f26ca85ee7ed130e590a5caaa6ff6..4778e9a5fdceb424af5486de7310444ad0ad2516 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -149,8 +149,6 @@ void PrerenderContents::StartPrerendering( |
DCHECK(profile_ != NULL); |
DCHECK(!prerendering_has_started_); |
DCHECK(prerender_contents_.get() == NULL); |
- DCHECK(source_render_view_host != NULL); |
- DCHECK(source_render_view_host->view() != NULL); |
prerendering_has_started_ = true; |
TabContents* new_contents = new TabContents(profile_, NULL, MSG_ROUTING_NONE, |
@@ -159,26 +157,28 @@ void PrerenderContents::StartPrerendering( |
TabContentsObserver::Observe(new_contents); |
prerender_contents_->download_tab_helper()->set_delegate(this); |
- 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). |
- starting_page_id_ = source_tc->GetMaxPageID(); |
- if (starting_page_id_ < 0) |
- starting_page_id_ = 0; |
- starting_page_id_ += kPrerenderPageIdOffset; |
- prerender_contents_->controller().set_max_restored_page_id( |
- starting_page_id_); |
- |
- tab_contents_delegate_.reset(new TabContentsDelegateImpl(this)); |
- new_contents->set_delegate(tab_contents_delegate_.get()); |
- |
- // Set the size of the new TC to that of the old TC. |
- gfx::Rect tab_bounds; |
- source_tc->view()->GetContainerBounds(&tab_bounds); |
- prerender_contents_->view()->SizeContents(tab_bounds.size()); |
+ if (source_render_view_host) { |
+ 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). |
+ starting_page_id_ = source_tc->GetMaxPageID(); |
+ if (starting_page_id_ < 0) |
+ starting_page_id_ = 0; |
+ starting_page_id_ += kPrerenderPageIdOffset; |
+ prerender_contents_->controller().set_max_restored_page_id( |
+ starting_page_id_); |
+ |
+ tab_contents_delegate_.reset(new TabContentsDelegateImpl(this)); |
+ new_contents->set_delegate(tab_contents_delegate_.get()); |
+ |
+ // Set the size of the new TC to that of the old TC. |
+ gfx::Rect tab_bounds; |
+ source_tc->view()->GetContainerBounds(&tab_bounds); |
+ prerender_contents_->view()->SizeContents(tab_bounds.size()); |
+ } |
} |
// Register as an observer of the RenderViewHost so we get messages. |