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 14 namespace extensions { 15 16 ExtensionFrameHelper::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 22 ExtensionFrameHelper::~ExtensionFrameHelper() { 23 } 24 25 void 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 36 bool 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 46 void 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