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 15 ChromeV8ExtensionHandler::ChromeV8ExtensionHandler(ChromeV8Context* context) 16 : context_(context), routing_id_(MSG_ROUTING_NONE) { 17 } 18 19 ChromeV8ExtensionHandler::~ChromeV8ExtensionHandler() { 20 if (routing_id_ != MSG_ROUTING_NONE) 21 RenderThread::Get()->RemoveRoute(routing_id_); 22 } 23 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 33 void ChromeV8ExtensionHandler::Send(IPC::Message* message) { 34 RenderThread::Get()->Send(message); 35 } 36 37 } // namespace extensions 38