diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-02 23:24:56 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-02 23:24:56 +0000 |
commit | 3e286c3c6226d112d387336a745fe6483e7b9fe5 (patch) | |
tree | e9da847cb9777f1a45c16760d10999b86516cb3a /content | |
parent | a716cc122ecbaafc3ea0f130df31517bcc191d41 (diff) | |
download | chromium_src-3e286c3c6226d112d387336a745fe6483e7b9fe5.zip chromium_src-3e286c3c6226d112d387336a745fe6483e7b9fe5.tar.gz chromium_src-3e286c3c6226d112d387336a745fe6483e7b9fe5.tar.bz2 |
Avoid leaking SerializedHandles.
This CL automatically closes SerializedHandles at the receiving side of ResourceMessageParams (the host side for ResourceMessageCallParams; the plugin side for ResourceMessageReplyParams), if they are not taken by message handlers.
BUG=None
TEST=None
Review URL: https://chromiumcodereview.appspot.com/11312017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165799 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/renderer_host/pepper/pepper_gamepad_host.cc | 5 | ||||
-rw-r--r-- | content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc | 2 |
2 files changed, 2 insertions, 5 deletions
diff --git a/content/browser/renderer_host/pepper/pepper_gamepad_host.cc b/content/browser/renderer_host/pepper/pepper_gamepad_host.cc index 9e96749..267fce2 100644 --- a/content/browser/renderer_host/pepper/pepper_gamepad_host.cc +++ b/content/browser/renderer_host/pepper/pepper_gamepad_host.cc @@ -71,14 +71,11 @@ int32_t PepperGamepadHost::OnMsgRequestMemory( } void PepperGamepadHost::GotUserGesture( - const ppapi::host::ReplyMessageContext& in_context) { + const ppapi::host::ReplyMessageContext& context) { base::SharedMemoryHandle handle = gamepad_service_->GetSharedMemoryHandleForProcess( browser_ppapi_host_->GetPluginProcessHandle()); - // The shared memory handle is sent in the params struct - // (in the reply context), so we have to make a copy to mutate it. - ppapi::host::ReplyMessageContext context = in_context; context.params.AppendHandle(ppapi::proxy::SerializedHandle( handle, sizeof(ppapi::ContentGamepadHardwareBuffer))); host()->SendReply(context, PpapiPluginMsg_Gamepad_SendMemory()); diff --git a/content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc b/content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc index 23c90ef..da4e448 100644 --- a/content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc +++ b/content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc @@ -178,7 +178,7 @@ TEST_F(PepperGamepadHostTest, WaitForReply) { // Extract the shared memory handle. base::SharedMemoryHandle reply_handle; - EXPECT_TRUE(reply_params.GetSharedMemoryHandleAtIndex(0, &reply_handle)); + EXPECT_TRUE(reply_params.TakeSharedMemoryHandleAtIndex(0, &reply_handle)); // Validate the shared memory. base::SharedMemory shared_memory(reply_handle, true); |