Home | History | Annotate | Download | only in renderer
      1 // Copyright (c) 2012 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.
      4 
      5 #include "content/renderer/renderer_webapplicationcachehost_impl.h"
      6 
      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/public/web/WebFrame.h"
     11 #include "third_party/WebKit/public/web/WebView.h"
     12 
     13 using appcache::AppCacheBackend;
     14 using WebKit::WebApplicationCacheHostClient;
     15 using WebKit::WebConsoleMessage;
     16 
     17 namespace content {
     18 
     19 RendererWebApplicationCacheHostImpl::RendererWebApplicationCacheHostImpl(
     20     RenderViewImpl* render_view,
     21     WebApplicationCacheHostClient* client,
     22     AppCacheBackend* backend)
     23     : WebApplicationCacheHostImpl(client, backend),
     24       routing_id_(render_view->routing_id()) {
     25 }
     26 
     27 void RendererWebApplicationCacheHostImpl::OnLogMessage(
     28     appcache::LogLevel log_level, const std::string& message) {
     29   if (RenderThreadImpl::current()->layout_test_mode())
     30     return;
     31 
     32   RenderViewImpl* render_view = GetRenderView();
     33   if (!render_view || !render_view->webview() ||
     34       !render_view->webview()->mainFrame())
     35     return;
     36 
     37   WebKit::WebFrame* frame = render_view->webview()->mainFrame();
     38   frame->addMessageToConsole(WebConsoleMessage(
     39         static_cast<WebConsoleMessage::Level>(log_level),
     40         WebKit::WebString::fromUTF8(message.c_str())));
     41 }
     42 
     43 void RendererWebApplicationCacheHostImpl::OnContentBlocked(
     44     const GURL& manifest_url) {
     45   RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed(
     46       routing_id_, manifest_url, true));
     47 }
     48 
     49 void RendererWebApplicationCacheHostImpl::OnCacheSelected(
     50     const appcache::AppCacheInfo& info) {
     51   if (!info.manifest_url.is_empty()) {
     52     RenderThreadImpl::current()->Send(new ViewHostMsg_AppCacheAccessed(
     53         routing_id_, info.manifest_url, false));
     54   }
     55   WebApplicationCacheHostImpl::OnCacheSelected(info);
     56 }
     57 
     58 RenderViewImpl* RendererWebApplicationCacheHostImpl::GetRenderView() {
     59   return RenderViewImpl::FromRoutingID(routing_id_);
     60 }
     61 
     62 }  // namespace content
     63