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 7eb0b713cddad1428d3132d8b55219293efedfb9..d9ad7f295973cbba2b6c8f483cf5e7840d6144f5 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_counter_(0) { |
lazyboy
2013/01/17 17:39:25
nit: request_id_counter_ so it's obvious that this
Fady Samuel
2013/01/17 18:40:38
Done.
|
} |
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_counter_++; |
+ requests_.AddWithID(browser_plugin, request_id); |
lazyboy
2013/01/17 17:39:25
requests_ probably too broad name, maybe name it t
Fady Samuel
2013/01/17 18:40:38
Done.
|
+ Send(new BrowserPluginHostMsg_AllocateInstanceIDRequest( |
+ 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_GENERIC(BrowserPluginMsg_AllocateInstanceIDResponse, |
+ OnAllocateInstanceIDResponse(message)) |
IPC_MESSAGE_HANDLER(BrowserPluginMsg_PluginAtPositionRequest, |
OnPluginAtPositionRequest); |
IPC_MESSAGE_UNHANDLED(handled = false) |
@@ -56,6 +64,18 @@ bool BrowserPluginManagerImpl::OnMessageReceived( |
return handled; |
} |
+void BrowserPluginManagerImpl::OnAllocateInstanceIDResponse( |
+ const IPC::Message& message) { |
+ int request_id = 0; |
+ PickleIterator iter(message); |
+ bool success = iter.ReadInt(&request_id); |
+ DCHECK(success); |
+ BrowserPlugin* plugin = requests_.Lookup(request_id); |
+ requests_.Remove(request_id); |
+ if (plugin) |
+ plugin->OnMessageReceived(message); |
lazyboy
2013/01/17 17:39:25
Can we just read both request_id and instance_id (
Fady Samuel
2013/01/17 18:40:38
I'd prefer to leave it this way because eventually
|
+} |
+ |
void BrowserPluginManagerImpl::OnPluginAtPositionRequest( |
const IPC::Message& message, |
int request_id, |