Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: chrome/renderer/prerender/prerender_helper.cc

Issue 107893003: Make the renderer-side prerendering code use RenderFrames instead of RenderViews. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: creis review comments Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/prerender/prerender_helper.cc
===================================================================
--- chrome/renderer/prerender/prerender_helper.cc (revision 239602)
+++ chrome/renderer/prerender/prerender_helper.cc (working copy)
@@ -8,6 +8,7 @@
#include "base/metrics/histogram.h"
#include "chrome/common/prerender_messages.h"
#include "content/public/renderer/document_state.h"
+#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_view.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebView.h"
@@ -16,11 +17,14 @@
namespace {
-// Updates the visibility state of the RenderView. Must be called whenever
+// Updates the visibility state of the RenderFrame. Must be called whenever
// prerendering starts or finishes and the page is about to be show. At both
-// those times, the RenderView is hidden.
-void UpdateVisibilityState(content::RenderView* render_view) {
- if (render_view->GetWebView()) {
+// those times, the RenderFrame is hidden.
+void UpdateVisibilityState(content::RenderFrame* render_frame) {
+ // TODO(jam): until the prerendering code works on frames instead of views, we
+ // have to do this awkward check.
+ content::RenderView* render_view = render_frame->GetRenderView();
+ if (render_view->GetMainRenderFrame() == render_frame) {
render_view->GetWebView()->setVisibilityState(
render_view->GetVisibilityState(), false);
}
@@ -30,18 +34,18 @@
namespace prerender {
-PrerenderHelper::PrerenderHelper(content::RenderView* render_view)
- : content::RenderViewObserver(render_view),
- content::RenderViewObserverTracker<PrerenderHelper>(render_view) {
- UpdateVisibilityState(render_view);
+PrerenderHelper::PrerenderHelper(content::RenderFrame* render_frame)
+ : content::RenderFrameObserver(render_frame),
+ content::RenderFrameObserverTracker<PrerenderHelper>(render_frame) {
+ UpdateVisibilityState(render_frame);
}
PrerenderHelper::~PrerenderHelper() {
}
// static.
-bool PrerenderHelper::IsPrerendering(const content::RenderView* render_view) {
- return PrerenderHelper::Get(render_view) != NULL;
+bool PrerenderHelper::IsPrerendering(const content::RenderFrame* render_frame) {
+ return PrerenderHelper::Get(render_frame) != NULL;
}
bool PrerenderHelper::OnMessageReceived(
@@ -60,7 +64,7 @@
if (is_prerendering)
return;
- content::RenderView* view = render_view();
+ content::RenderFrame* view = render_frame();
mmenke 2013/12/10 20:56:41 nit: view -> frame?
jam 2013/12/10 21:14:17 Done.
// |this| must be deleted so PrerenderHelper::IsPrerendering returns false
// when the visibility state is updated, so the visibility state string will
// not be "prerendered".

Powered by Google App Engine
This is Rietveld 408576698