// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/renderer/renderer_webapplicationcachehost_impl.h" #include "content/common/view_messages.h" #include "content/renderer/render_thread_impl.h" #include "content/renderer/render_view_impl.h" #include "third_party/WebKit/public/web/WebFrame.h" #include "third_party/WebKit/public/web/WebView.h" using appcache::AppCacheBackend; using blink::WebApplicationCacheHostClient; using blink::WebConsoleMessage; namespace content { RendererWebApplicationCacheHostImpl::RendererWebApplicationCacheHostImpl( RenderViewImpl* render_view, WebApplicationCacheHostClient* client, AppCacheBackend* backend) : WebApplicationCacheHostImpl(client, backend), routing_id_(render_view->routing_id()) { } void RendererWebApplicationCacheHostImpl::OnLogMessage( appcache::LogLevel log_level, const std::string& message) { if (RenderThreadImpl::current()->layout_test_mode()) return; RenderViewImpl* render_view = GetRenderView(); if (!render_view || !render_view->webview() || !render_view->webview()->mainFrame()) return; blink::WebFrame* frame = render_view->webview()->mainFrame(); frame->addMessageToConsole(WebConsoleMessage( static_cast(log_level), blink::WebString::fromUTF8(message.c_str()))); } void RendererWebApplicationCacheHostImpl::OnContentBlocked( const GURL& manifest_url) { RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed( routing_id_, manifest_url, true)); } void RendererWebApplicationCacheHostImpl::OnCacheSelected( const appcache::AppCacheInfo& info) { if (!info.manifest_url.is_empty()) { RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed( routing_id_, info.manifest_url, false)); } WebApplicationCacheHostImpl::OnCacheSelected(info); } RenderViewImpl* RendererWebApplicationCacheHostImpl::GetRenderView() { return RenderViewImpl::FromRoutingID(routing_id_); } } // namespace content