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