Home | History | Annotate | Download | only in extensions
      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