Chromium Code Reviews| Index: chrome/renderer/prerender/prerender_helper.cc |
| diff --git a/chrome/renderer/prerender/prerender_helper.cc b/chrome/renderer/prerender/prerender_helper.cc |
| index 2ea8d076cfdbce133dd32adc38bb1e0989b153b7..b006236124616f5dbe40624f0e221444b23e13dc 100644 |
| --- a/chrome/renderer/prerender/prerender_helper.cc |
| +++ b/chrome/renderer/prerender/prerender_helper.cc |
| @@ -34,18 +34,38 @@ void UpdateVisibilityState(content::RenderFrame* render_frame) { |
| namespace prerender { |
| -PrerenderHelper::PrerenderHelper(content::RenderFrame* render_frame) |
| +PrerenderHelper::PrerenderHelper(content::RenderFrame* render_frame, |
| + PrerenderMode prerender_mode) |
| : content::RenderFrameObserver(render_frame), |
| - content::RenderFrameObserverTracker<PrerenderHelper>(render_frame) { |
| + content::RenderFrameObserverTracker<PrerenderHelper>(render_frame), |
| + prerender_mode_(prerender_mode) { |
| + DCHECK_NE(prerender_mode_, NO_PRERENDER); |
| UpdateVisibilityState(render_frame); |
| } |
| +PrerenderHelper::PrerenderHelper(content::RenderFrame* sub_frame) |
| + : PrerenderHelper(sub_frame, |
| + GetPrerenderMode( |
| + sub_frame->GetRenderView()->GetMainRenderFrame())) { |
|
mmenke
2016/08/19 16:42:50
DCHECK that render_frame is not the main render fr
droger
2016/08/22 09:30:06
Done.
|
| +} |
| + |
| PrerenderHelper::~PrerenderHelper() { |
| } |
| // static. |
| bool PrerenderHelper::IsPrerendering(const content::RenderFrame* render_frame) { |
| - return PrerenderHelper::Get(render_frame) != NULL; |
| + return PrerenderHelper::GetPrerenderMode(render_frame) != NO_PRERENDER; |
| +} |
| + |
| +// static. |
| +PrerenderMode PrerenderHelper::GetPrerenderMode( |
| + const content::RenderFrame* render_frame) { |
| + PrerenderHelper* helper = PrerenderHelper::Get(render_frame); |
| + if (!helper) |
| + return NO_PRERENDER; |
| + |
| + DCHECK_NE(helper->prerender_mode_, NO_PRERENDER); |
| + return helper->prerender_mode_; |
| } |
| bool PrerenderHelper::OnMessageReceived( |