OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "ppapi/proxy/resource_message_test_sink.h" | 5 #include "ppapi/proxy/resource_message_test_sink.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
| 9 #include <tuple> |
| 10 |
9 #include "ppapi/proxy/ppapi_messages.h" | 11 #include "ppapi/proxy/ppapi_messages.h" |
10 #include "ppapi/proxy/resource_message_params.h" | 12 #include "ppapi/proxy/resource_message_params.h" |
11 #include "ppapi/proxy/serialized_handle.h" | 13 #include "ppapi/proxy/serialized_handle.h" |
12 | 14 |
13 namespace ppapi { | 15 namespace ppapi { |
14 namespace proxy { | 16 namespace proxy { |
15 | 17 |
16 namespace { | 18 namespace { |
17 | 19 |
18 // Backend for GetAllResource[Calls|Replies]Matching. | 20 // Backend for GetAllResource[Calls|Replies]Matching. |
19 template <class WrapperMessage, class Params> | 21 template <class WrapperMessage, class Params> |
20 std::vector<std::pair<Params, IPC::Message>> GetAllResourceMessagesMatching( | 22 std::vector<std::pair<Params, IPC::Message>> GetAllResourceMessagesMatching( |
21 const ResourceMessageTestSink& sink, | 23 const ResourceMessageTestSink& sink, |
22 uint32_t id) { | 24 uint32_t id) { |
23 std::vector<std::pair<Params, IPC::Message> > result; | 25 std::vector<std::pair<Params, IPC::Message> > result; |
24 for (size_t i = 0; i < sink.message_count(); i++) { | 26 for (size_t i = 0; i < sink.message_count(); i++) { |
25 const IPC::Message* msg = sink.GetMessageAt(i); | 27 const IPC::Message* msg = sink.GetMessageAt(i); |
26 if (msg->type() == WrapperMessage::ID) { | 28 if (msg->type() == WrapperMessage::ID) { |
27 typename WrapperMessage::Param params; | 29 typename WrapperMessage::Param params; |
28 WrapperMessage::Read(msg, ¶ms); | 30 WrapperMessage::Read(msg, ¶ms); |
29 Params cur_params = base::get<0>(params); | 31 Params cur_params = std::get<0>(params); |
30 IPC::Message cur_msg = base::get<1>(params); | 32 IPC::Message cur_msg = std::get<1>(params); |
31 if (cur_msg.type() == id) { | 33 if (cur_msg.type() == id) { |
32 result.push_back(std::make_pair(cur_params, cur_msg)); | 34 result.push_back(std::make_pair(cur_params, cur_msg)); |
33 } | 35 } |
34 } | 36 } |
35 } | 37 } |
36 return result; | 38 return result; |
37 } | 39 } |
38 | 40 |
39 } // namespace | 41 } // namespace |
40 | 42 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 ResourceSyncCallHandler::~ResourceSyncCallHandler() { | 126 ResourceSyncCallHandler::~ResourceSyncCallHandler() { |
125 } | 127 } |
126 | 128 |
127 bool ResourceSyncCallHandler::OnMessageReceived(const IPC::Message& msg) { | 129 bool ResourceSyncCallHandler::OnMessageReceived(const IPC::Message& msg) { |
128 if (msg.type() != PpapiHostMsg_ResourceSyncCall::ID) | 130 if (msg.type() != PpapiHostMsg_ResourceSyncCall::ID) |
129 return false; | 131 return false; |
130 PpapiHostMsg_ResourceSyncCall::Schema::SendParam send_params; | 132 PpapiHostMsg_ResourceSyncCall::Schema::SendParam send_params; |
131 bool success = PpapiHostMsg_ResourceSyncCall::ReadSendParam( | 133 bool success = PpapiHostMsg_ResourceSyncCall::ReadSendParam( |
132 &msg, &send_params); | 134 &msg, &send_params); |
133 DCHECK(success); | 135 DCHECK(success); |
134 ResourceMessageCallParams call_params = base::get<0>(send_params); | 136 ResourceMessageCallParams call_params = std::get<0>(send_params); |
135 IPC::Message call_msg = base::get<1>(send_params); | 137 IPC::Message call_msg = std::get<1>(send_params); |
136 if (call_msg.type() != incoming_type_) | 138 if (call_msg.type() != incoming_type_) |
137 return false; | 139 return false; |
138 IPC::Message* wrapper_reply_msg = IPC::SyncMessage::GenerateReply(&msg); | 140 IPC::Message* wrapper_reply_msg = IPC::SyncMessage::GenerateReply(&msg); |
139 ResourceMessageReplyParams reply_params(call_params.pp_resource(), | 141 ResourceMessageReplyParams reply_params(call_params.pp_resource(), |
140 call_params.sequence()); | 142 call_params.sequence()); |
141 reply_params.set_result(result_); | 143 reply_params.set_result(result_); |
142 if (serialized_handle_) | 144 if (serialized_handle_) |
143 reply_params.AppendHandle(*serialized_handle_); | 145 reply_params.AppendHandle(*serialized_handle_); |
144 PpapiHostMsg_ResourceSyncCall::WriteReplyParams( | 146 PpapiHostMsg_ResourceSyncCall::WriteReplyParams( |
145 wrapper_reply_msg, reply_params, reply_msg_); | 147 wrapper_reply_msg, reply_params, reply_msg_); |
146 test_sink_->SetSyncReplyMessage(wrapper_reply_msg); | 148 test_sink_->SetSyncReplyMessage(wrapper_reply_msg); |
147 | 149 |
148 // Stash a copy of the message for inspection later. | 150 // Stash a copy of the message for inspection later. |
149 last_handled_msg_ = call_msg; | 151 last_handled_msg_ = call_msg; |
150 return true; | 152 return true; |
151 } | 153 } |
152 | 154 |
153 } // namespace proxy | 155 } // namespace proxy |
154 } // namespace ppapi | 156 } // namespace ppapi |
OLD | NEW |