Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index c34e542d8def6f0c50186f075184d0c453f3f5a6..76c6809aa7585dae5ab2d0921ce1d7556b555fd7 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -220,6 +220,7 @@ PrerenderContents::PrerenderContents( |
profile_(profile), |
page_id_(0), |
has_stopped_loading_(false), |
+ has_finished_loading_(false), |
final_status_(FINAL_STATUS_MAX), |
prerendering_has_started_(false), |
match_complete_status_(MATCH_COMPLETE_DEFAULT), |
@@ -253,7 +254,7 @@ void PrerenderContents::StartPrerendering( |
prerender_contents_.reset(new TabContentsWrapper(new_contents)); |
content::WebContentsObserver::Observe(new_contents); |
- gfx::Rect tab_bounds(640, 480); |
+ gfx::Rect tab_bounds = prerender_manager_->config().default_tab_bounds; |
if (source_render_view_host) { |
DCHECK(source_render_view_host->view() != NULL); |
WebContents* source_wc = |
@@ -531,9 +532,17 @@ void PrerenderContents::DidStartProvisionalLoadForFrame( |
// case, the spinner would start again in the browser, so we must reset |
// has_stopped_loading_ so that the spinner won't be stopped. |
has_stopped_loading_ = false; |
+ has_finished_loading_ = false; |
} |
} |
+void PrerenderContents::DidFinishLoad(int64 frame_id, |
+ const GURL& validated_url, |
+ bool is_main_frame) { |
+ if (is_main_frame) |
+ has_finished_loading_ = true; |
+} |
+ |
bool PrerenderContents::ShouldSuppressDialogs() { |
// Always suppress JavaScript messages if they're triggered by a page being |
// prerendered. |