| Index: content/renderer/browser_plugin/browser_plugin_manager_impl.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin_manager_impl.cc b/content/renderer/browser_plugin/browser_plugin_manager_impl.cc
|
| index 524ce99dfbfc339908ffa3415a3b5c7e6653b6ab..bf2991eab30ff3a1f249f7104355cd2f34d02bda 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin_manager_impl.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin_manager_impl.cc
|
| @@ -14,7 +14,8 @@ namespace content {
|
|
|
| BrowserPluginManagerImpl::BrowserPluginManagerImpl(
|
| RenderViewImpl* render_view)
|
| - : BrowserPluginManager(render_view) {
|
| + : BrowserPluginManager(render_view),
|
| + request_id_counter_(0) {
|
| }
|
|
|
| BrowserPluginManagerImpl::~BrowserPluginManagerImpl() {
|
| @@ -24,10 +25,15 @@ BrowserPlugin* BrowserPluginManagerImpl::CreateBrowserPlugin(
|
| RenderViewImpl* render_view,
|
| WebKit::WebFrame* frame,
|
| const WebKit::WebPluginParams& params) {
|
| - return new BrowserPlugin(++browser_plugin_counter_,
|
| - render_view,
|
| - frame,
|
| - params);
|
| + return new BrowserPlugin(render_view, frame, params);
|
| +}
|
| +
|
| +void BrowserPluginManagerImpl::AllocateInstanceID(
|
| + BrowserPlugin* browser_plugin) {
|
| + int request_id = request_id_counter_++;
|
| + pending_allocate_instance_id_requests_.AddWithID(browser_plugin, request_id);
|
| + Send(new BrowserPluginHostMsg_AllocateInstanceID(
|
| + browser_plugin->render_view_routing_id(), request_id));
|
| }
|
|
|
| bool BrowserPluginManagerImpl::Send(IPC::Message* msg) {
|
| @@ -49,6 +55,8 @@ bool BrowserPluginManagerImpl::OnMessageReceived(
|
|
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(BrowserPluginManagerImpl, message)
|
| + IPC_MESSAGE_HANDLER(BrowserPluginMsg_AllocateInstanceID_ACK,
|
| + OnAllocateInstanceIDACK)
|
| IPC_MESSAGE_HANDLER(BrowserPluginMsg_BuffersSwapped,
|
| OnUnhandledSwap);
|
| IPC_MESSAGE_HANDLER(BrowserPluginMsg_PluginAtPositionRequest,
|
| @@ -58,6 +66,15 @@ bool BrowserPluginManagerImpl::OnMessageReceived(
|
| return handled;
|
| }
|
|
|
| +void BrowserPluginManagerImpl::OnAllocateInstanceIDACK(
|
| + const IPC::Message& message, int request_id, int instance_id) {
|
| + BrowserPlugin* plugin =
|
| + pending_allocate_instance_id_requests_.Lookup(request_id);
|
| + pending_allocate_instance_id_requests_.Remove(request_id);
|
| + if (plugin)
|
| + plugin->SetInstanceID(instance_id);
|
| +}
|
| +
|
| void BrowserPluginManagerImpl::OnPluginAtPositionRequest(
|
| const IPC::Message& message,
|
| int request_id,
|
|
|