15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/renderer/prerender/prerenderer_client.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/renderer/prerender/prerender_extra_data.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/renderer/render_view.h"
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebView.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static int s_last_prerender_id = 0;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace prerender {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrerendererClient::PrerendererClient(content::RenderView* render_view)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : content::RenderViewObserver(render_view) {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(render_view);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DVLOG(5) << "PrerendererClient::PrerendererClient()";
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  render_view->GetWebView()->setPrerendererClient(this);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrerendererClient::~PrerendererClient() {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void PrerendererClient::willAddPrerender(
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    blink::WebPrerender* prerender) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DVLOG(3) << "PrerendererClient::willAddPrerender url = "
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)           << prerender->url().spec().data();
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  prerender->setExtraData(new PrerenderExtraData(++s_last_prerender_id,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                 routing_id(),
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                 render_view()->GetSize()));
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace prerender
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39