• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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/chrome_v8_extension_handler.h"
6 
7 #include "base/logging.h"
8 #include "chrome/renderer/extensions/chrome_v8_context.h"
9 #include "content/public/renderer/render_thread.h"
10 
11 using content::RenderThread;
12 
13 namespace extensions {
14 
ChromeV8ExtensionHandler(ChromeV8Context * context)15 ChromeV8ExtensionHandler::ChromeV8ExtensionHandler(ChromeV8Context* context)
16     : context_(context), routing_id_(MSG_ROUTING_NONE) {
17 }
18 
~ChromeV8ExtensionHandler()19 ChromeV8ExtensionHandler::~ChromeV8ExtensionHandler() {
20   if (routing_id_ != MSG_ROUTING_NONE)
21     RenderThread::Get()->RemoveRoute(routing_id_);
22 }
23 
GetRoutingID()24 int ChromeV8ExtensionHandler::GetRoutingID() {
25   if (routing_id_ == MSG_ROUTING_NONE) {
26     routing_id_ = RenderThread::Get()->GenerateRoutingID();
27     RenderThread::Get()->AddRoute(routing_id_, this);
28   }
29 
30   return routing_id_;
31 }
32 
Send(IPC::Message * message)33 void ChromeV8ExtensionHandler::Send(IPC::Message* message) {
34   RenderThread::Get()->Send(message);
35 }
36 
37 }  // namespace extensions
38