| 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.
|
|
|