Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Side by Side Diff: content/renderer/pepper/pepper_browser_connection.cc

Issue 20777009: A few more cleanups to the pepper code. Dispatch IPCs in the sockets implementations directly by ha… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix tcp tests Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/pepper/pepper_browser_connection.h" 5 #include "content/renderer/pepper/pepper_browser_connection.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "content/renderer/pepper/pepper_helper_impl.h"
11 #include "content/renderer/render_view_impl.h" 10 #include "content/renderer/render_view_impl.h"
12 #include "ipc/ipc_message_macros.h" 11 #include "ipc/ipc_message_macros.h"
13 #include "ppapi/proxy/ppapi_messages.h" 12 #include "ppapi/proxy/ppapi_messages.h"
14 #include "ppapi/proxy/resource_message_params.h" 13 #include "ppapi/proxy/resource_message_params.h"
15 14
16 namespace content { 15 namespace content {
17 16
18 PepperBrowserConnection::PepperBrowserConnection(PepperHelperImpl* helper) 17 PepperBrowserConnection::PepperBrowserConnection(RenderView* render_view)
19 : helper_(helper), 18 : RenderViewObserver(render_view),
19 RenderViewObserverTracker<PepperBrowserConnection>(render_view),
20 next_sequence_number_(1) { 20 next_sequence_number_(1) {
21 } 21 }
22 22
23 PepperBrowserConnection::~PepperBrowserConnection() { 23 PepperBrowserConnection::~PepperBrowserConnection() {
24 } 24 }
25 25
26 bool PepperBrowserConnection::OnMessageReceived(const IPC::Message& msg) { 26 bool PepperBrowserConnection::OnMessageReceived(const IPC::Message& msg) {
27 bool handled = true; 27 bool handled = true;
28 IPC_BEGIN_MESSAGE_MAP(PepperBrowserConnection, msg) 28 IPC_BEGIN_MESSAGE_MAP(PepperBrowserConnection, msg)
29 IPC_MESSAGE_HANDLER(PpapiHostMsg_CreateResourceHostFromHostReply, 29 IPC_MESSAGE_HANDLER(PpapiHostMsg_CreateResourceHostFromHostReply,
30 OnMsgCreateResourceHostFromHostReply) 30 OnMsgCreateResourceHostFromHostReply)
31 IPC_MESSAGE_UNHANDLED(handled = false) 31 IPC_MESSAGE_UNHANDLED(handled = false)
32 IPC_END_MESSAGE_MAP() 32 IPC_END_MESSAGE_MAP()
33 33
34 return handled; 34 return handled;
35 } 35 }
36 36
37 void PepperBrowserConnection::SendBrowserCreate( 37 void PepperBrowserConnection::SendBrowserCreate(
38 int child_process_id, 38 int child_process_id,
39 PP_Instance instance, 39 PP_Instance instance,
40 const IPC::Message& nested_msg, 40 const IPC::Message& nested_msg,
41 const PendingResourceIDCallback& callback) { 41 const PendingResourceIDCallback& callback) {
42 int32_t sequence_number = GetNextSequence(); 42 int32_t sequence_number = GetNextSequence();
43 pending_create_map_[sequence_number] = callback; 43 pending_create_map_[sequence_number] = callback;
44 ppapi::proxy::ResourceMessageCallParams params(0, sequence_number); 44 ppapi::proxy::ResourceMessageCallParams params(0, sequence_number);
45 helper_->Send(new PpapiHostMsg_CreateResourceHostFromHost( 45 Send(new PpapiHostMsg_CreateResourceHostFromHost(
46 helper_->routing_id(), 46 routing_id(),
47 child_process_id, 47 child_process_id,
48 params, 48 params,
49 instance, 49 instance,
50 nested_msg)); 50 nested_msg));
51 } 51 }
52 52
53 void PepperBrowserConnection::SendBrowserFileRefGetInfo( 53 void PepperBrowserConnection::SendBrowserFileRefGetInfo(
54 int child_process_id, 54 int child_process_id,
55 PP_Resource resource, 55 PP_Resource resource,
56 const FileRefGetInfoCallback& callback) { 56 const FileRefGetInfoCallback& callback) {
57 int32_t sequence_number = GetNextSequence(); 57 int32_t sequence_number = GetNextSequence();
58 get_info_map_[sequence_number] = callback; 58 get_info_map_[sequence_number] = callback;
59 ppapi::proxy::ResourceMessageCallParams params(resource, sequence_number); 59 ppapi::proxy::ResourceMessageCallParams params(resource, sequence_number);
60 helper_->Send(new PpapiHostMsg_FileRef_GetInfoForRenderer( 60 Send(new PpapiHostMsg_FileRef_GetInfoForRenderer(
61 helper_->routing_id(), child_process_id, params)); 61 routing_id(), child_process_id, params));
62 } 62 }
63 63
64 void PepperBrowserConnection::OnMsgCreateResourceHostFromHostReply( 64 void PepperBrowserConnection::OnMsgCreateResourceHostFromHostReply(
65 int32_t sequence_number, 65 int32_t sequence_number,
66 int pending_resource_host_id) { 66 int pending_resource_host_id) {
67 // Check that the message is destined for the plugin this object is associated 67 // Check that the message is destined for the plugin this object is associated
68 // with. 68 // with.
69 std::map<int32_t, PendingResourceIDCallback>::iterator it = 69 std::map<int32_t, PendingResourceIDCallback>::iterator it =
70 pending_create_map_.find(sequence_number); 70 pending_create_map_.find(sequence_number);
71 if (it != pending_create_map_.end()) { 71 if (it != pending_create_map_.end()) {
(...skipping 27 matching lines...) Expand all
99 // manually check. 99 // manually check.
100 int32_t ret = next_sequence_number_; 100 int32_t ret = next_sequence_number_;
101 if (next_sequence_number_ == std::numeric_limits<int32_t>::max()) 101 if (next_sequence_number_ == std::numeric_limits<int32_t>::max())
102 next_sequence_number_ = 1; // Skip 0 which is invalid. 102 next_sequence_number_ = 1; // Skip 0 which is invalid.
103 else 103 else
104 next_sequence_number_++; 104 next_sequence_number_++;
105 return ret; 105 return ret;
106 } 106 }
107 107
108 } // namespace content 108 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698