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/WebLocalFrame.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// TODO(thestig): Remove scaffolding once this file no longer builds with 29// extensions disabled. 30#if defined(ENABLE_EXTENSIONS) 31 extension_dispatcher_->WillReleaseScriptContext( 32 render_frame()->GetWebFrame(), context, world_id); 33#endif 34} 35 36bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { 37 bool handled = true; 38 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) 39 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, 40 OnAddMessageToConsole) 41 IPC_MESSAGE_UNHANDLED(handled = false) 42 IPC_END_MESSAGE_MAP() 43 return handled; 44} 45 46void ExtensionFrameHelper::OnAddMessageToConsole( 47 content::ConsoleMessageLevel level, 48 const std::string& message) { 49 console::AddMessage(render_frame()->GetRenderView(), level, message); 50} 51 52} // namespace extensions 53