diff options
| author | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
|---|---|---|
| committer | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
| commit | 679147eead574d186ebf3069647b4c23e8ccace6 (patch) | |
| tree | fc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/content/renderer/renderer_webapplicationcachehost_impl.cc | |
Initial import.
Diffstat (limited to 'chromium/content/renderer/renderer_webapplicationcachehost_impl.cc')
| -rw-r--r-- | chromium/content/renderer/renderer_webapplicationcachehost_impl.cc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/chromium/content/renderer/renderer_webapplicationcachehost_impl.cc b/chromium/content/renderer/renderer_webapplicationcachehost_impl.cc new file mode 100644 index 00000000000..42b281c10db --- /dev/null +++ b/chromium/content/renderer/renderer_webapplicationcachehost_impl.cc @@ -0,0 +1,62 @@ +// 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 WebKit::WebApplicationCacheHostClient; +using WebKit::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; + + WebKit::WebFrame* frame = render_view->webview()->mainFrame(); + frame->addMessageToConsole(WebConsoleMessage( + static_cast<WebConsoleMessage::Level>(log_level), + WebKit::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 |
