1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/renderer/renderer_webapplicationcachehost_impl.h"
7 #include "content/common/view_messages.h"
8 #include "content/renderer/render_thread_impl.h"
9 #include "content/renderer/render_view_impl.h"
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
13 using appcache::AppCacheBackend
;
14 using WebKit::WebApplicationCacheHostClient
;
15 using WebKit::WebConsoleMessage
;
17 RendererWebApplicationCacheHostImpl::RendererWebApplicationCacheHostImpl(
18 RenderViewImpl
* render_view
,
19 WebApplicationCacheHostClient
* client
,
20 AppCacheBackend
* backend
)
21 : WebApplicationCacheHostImpl(client
, backend
),
22 content_blocked_(false),
23 routing_id_(render_view
->routing_id()) {
26 void RendererWebApplicationCacheHostImpl::OnLogMessage(
27 appcache::LogLevel log_level
, const std::string
& message
) {
28 RenderViewImpl
* render_view
= GetRenderView();
29 if (!render_view
|| !render_view
->webview() ||
30 !render_view
->webview()->mainFrame())
33 WebKit::WebFrame
* frame
= render_view
->webview()->mainFrame();
34 frame
->addMessageToConsole(WebConsoleMessage(
35 static_cast<WebConsoleMessage::Level
>(log_level
),
36 WebKit::WebString::fromUTF8(message
.c_str())));
39 void RendererWebApplicationCacheHostImpl::OnContentBlocked(
40 const GURL
& manifest_url
) {
41 RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed(
42 routing_id_
, manifest_url
, true));
45 void RendererWebApplicationCacheHostImpl::OnCacheSelected(
46 const appcache::AppCacheInfo
& info
) {
47 if (!info
.manifest_url
.is_empty()) {
48 RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed(
49 routing_id_
, info
.manifest_url
, false));
51 WebApplicationCacheHostImpl::OnCacheSelected(info
);
54 RenderViewImpl
* RendererWebApplicationCacheHostImpl::GetRenderView() {
55 return static_cast<RenderViewImpl
*>
56 (RenderThreadImpl::current()->ResolveRoute(routing_id_
));