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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc

Issue 11312017: Avoid leaking SerializedHandles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 1 month 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 (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 <string.h> 5 #include <string.h>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/memory/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "content/browser/gamepad/gamepad_test_helpers.h" 9 #include "content/browser/gamepad/gamepad_test_helpers.h"
10 #include "content/browser/renderer_host/pepper/browser_ppapi_host_test.h" 10 #include "content/browser/renderer_host/pepper/browser_ppapi_host_test.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 171
172 // It should have sent a callback. 172 // It should have sent a callback.
173 service_->message_loop().RunAllPending(); 173 service_->message_loop().RunAllPending();
174 ppapi::proxy::ResourceMessageReplyParams reply_params; 174 ppapi::proxy::ResourceMessageReplyParams reply_params;
175 IPC::Message reply_msg; 175 IPC::Message reply_msg;
176 ASSERT_TRUE(sink().GetFirstResourceReplyMatching( 176 ASSERT_TRUE(sink().GetFirstResourceReplyMatching(
177 PpapiPluginMsg_Gamepad_SendMemory::ID, &reply_params, &reply_msg)); 177 PpapiPluginMsg_Gamepad_SendMemory::ID, &reply_params, &reply_msg));
178 178
179 // Extract the shared memory handle. 179 // Extract the shared memory handle.
180 base::SharedMemoryHandle reply_handle; 180 base::SharedMemoryHandle reply_handle;
181 EXPECT_TRUE(reply_params.GetSharedMemoryHandleAtIndex(0, &reply_handle)); 181 EXPECT_TRUE(reply_params.TakeSharedMemoryHandleAtIndex(0, &reply_handle));
182 182
183 // Validate the shared memory. 183 // Validate the shared memory.
184 base::SharedMemory shared_memory(reply_handle, true); 184 base::SharedMemory shared_memory(reply_handle, true);
185 EXPECT_TRUE(shared_memory.Map(sizeof(ppapi::ContentGamepadHardwareBuffer))); 185 EXPECT_TRUE(shared_memory.Map(sizeof(ppapi::ContentGamepadHardwareBuffer)));
186 const ppapi::ContentGamepadHardwareBuffer* buffer = 186 const ppapi::ContentGamepadHardwareBuffer* buffer =
187 static_cast<const ppapi::ContentGamepadHardwareBuffer*>( 187 static_cast<const ppapi::ContentGamepadHardwareBuffer*>(
188 shared_memory.memory()); 188 shared_memory.memory());
189 EXPECT_EQ(button_down_data.length, buffer->buffer.length); 189 EXPECT_EQ(button_down_data.length, buffer->buffer.length);
190 EXPECT_EQ(button_down_data.items[0].buttonsLength, 190 EXPECT_EQ(button_down_data.items[0].buttonsLength,
191 buffer->buffer.items[0].buttons_length); 191 buffer->buffer.items[0].buttons_length);
192 for (size_t i = 0; i < ppapi::WebKitGamepad::kButtonsLengthCap; i++) { 192 for (size_t i = 0; i < ppapi::WebKitGamepad::kButtonsLengthCap; i++) {
193 EXPECT_EQ(button_down_data.items[0].buttons[i], 193 EXPECT_EQ(button_down_data.items[0].buttons[i],
194 buffer->buffer.items[0].buttons[i]); 194 buffer->buffer.items[0].buttons[i]);
195 } 195 }
196 196
197 // Duplicate requests should be denied. 197 // Duplicate requests should be denied.
198 EXPECT_EQ(PP_ERROR_FAILED, 198 EXPECT_EQ(PP_ERROR_FAILED,
199 gamepad_host.OnResourceMessageReceived( 199 gamepad_host.OnResourceMessageReceived(
200 PpapiHostMsg_Gamepad_RequestMemory(), 200 PpapiHostMsg_Gamepad_RequestMemory(),
201 &context)); 201 &context));
202 } 202 }
203 203
204 } // namespace content 204 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_gamepad_host.cc ('k') | ppapi/proxy/gamepad_resource.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698