• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
ExtensionFrameHelper(content::RenderFrame * render_frame,Dispatcher * extension_dispatcher)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 
~ExtensionFrameHelper()22 ExtensionFrameHelper::~ExtensionFrameHelper() {
23 }
24 
WillReleaseScriptContext(v8::Handle<v8::Context> context,int world_id)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 
OnMessageReceived(const IPC::Message & message)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 
OnAddMessageToConsole(content::ConsoleMessageLevel level,const std::string & message)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