blob: a947374cefe57914d8a2cda8188b8288fff2e8fd [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_RENDERER_JAVA_JAVA_BRIDGE_CHANNEL_H_
#define CONTENT_RENDERER_JAVA_JAVA_BRIDGE_CHANNEL_H_
#include "base/memory/scoped_ptr.h"
#include "content/child/npapi/np_channel_base.h"
#include "ipc/ipc_channel_handle.h"
namespace content {
class JavaBridgeChannel : public content::NPChannelBase {
public:
// The return value may be null.
static JavaBridgeChannel* GetJavaBridgeChannel(
const IPC::ChannelHandle& channel_handle,
base::MessageLoopProxy* ipc_message_loop);
// NPChannelBase implementation:
virtual int GenerateRouteID() OVERRIDE;
// NPChannelBase override:
virtual bool OnControlMessageReceived(const IPC::Message& msg) OVERRIDE;
private:
JavaBridgeChannel();
// This class is ref-counted.
virtual ~JavaBridgeChannel();
static NPChannelBase* ClassFactory() { return new JavaBridgeChannel(); }
// Dummy NPObject owner Id used to track objects owned by the JavaBridge
// peer in the Browser process.
scoped_ptr<struct _NPP> peer_owner_id_;
DISALLOW_COPY_AND_ASSIGN(JavaBridgeChannel);
};
} // namespace content
#endif // CONTENT_RENDERER_JAVA_JAVA_BRIDGE_CHANNEL_H_