Home | History | Annotate | Download | only in extensions
      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