1// Copyright 2013 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 "chrome/renderer/extensions/extension_frame_helper.h" 6 7#include "content/public/renderer/render_frame.h" 8#include "extensions/common/extension_messages.h" 9#include "extensions/renderer/console.h" 10#include "extensions/renderer/dispatcher.h" 11#include "third_party/WebKit/public/web/WebConsoleMessage.h" 12#include "third_party/WebKit/public/web/WebFrame.h" 13 14namespace extensions { 15 16ExtensionFrameHelper::ExtensionFrameHelper(content::RenderFrame* render_frame, 17 Dispatcher* extension_dispatcher) 18 : content::RenderFrameObserver(render_frame), 19 content::RenderFrameObserverTracker<ExtensionFrameHelper>(render_frame), 20 extension_dispatcher_(extension_dispatcher) {} 21 22ExtensionFrameHelper::~ExtensionFrameHelper() { 23} 24 25void ExtensionFrameHelper::WillReleaseScriptContext( 26 v8::Handle<v8::Context> context, 27 int world_id) { 28 extension_dispatcher_->WillReleaseScriptContext( 29 render_frame()->GetWebFrame(), context, world_id); 30} 31 32bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { 33 bool handled = true; 34 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) 35 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, 36 OnAddMessageToConsole) 37 IPC_MESSAGE_UNHANDLED(handled = false) 38 IPC_END_MESSAGE_MAP() 39 return handled; 40} 41 42void ExtensionFrameHelper::OnAddMessageToConsole( 43 content::ConsoleMessageLevel level, 44 const std::string& message) { 45 console::AddMessage(render_frame()->GetRenderView(), level, message); 46} 47 48} // namespace extensions 49