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.
5 #include "chrome/renderer/extensions/extension_frame_helper.h"
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"
14 namespace extensions
{
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
) {}
22 ExtensionFrameHelper::~ExtensionFrameHelper() {
25 void ExtensionFrameHelper::WillReleaseScriptContext(
26 v8::Handle
<v8::Context
> context
,
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
);
36 bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message
& message
) {
38 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper
, message
)
39 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole
,
40 OnAddMessageToConsole
)
41 IPC_MESSAGE_UNHANDLED(handled
= false)
46 void ExtensionFrameHelper::OnAddMessageToConsole(
47 content::ConsoleMessageLevel level
,
48 const std::string
& message
) {
49 console::AddMessage(render_frame()->GetRenderView(), level
, message
);
52 } // namespace extensions