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

Side by Side Diff: content/renderer/npapi/webplugin_delegate_proxy.cc

Issue 1320783002: Make SharedMemoryHandle a class on windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ipc_global
Patch Set: Rebase. Created 5 years, 2 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
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 "content/renderer/npapi/webplugin_delegate_proxy.h" 5 #include "content/renderer/npapi/webplugin_delegate_proxy.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 } 494 }
495 495
496 static void CopySharedMemoryHandleForMessage( 496 static void CopySharedMemoryHandleForMessage(
497 const base::SharedMemoryHandle& handle_in, 497 const base::SharedMemoryHandle& handle_in,
498 base::SharedMemoryHandle* handle_out, 498 base::SharedMemoryHandle* handle_out,
499 base::ProcessId peer_pid) { 499 base::ProcessId peer_pid) {
500 #if defined(OS_POSIX) 500 #if defined(OS_POSIX)
501 *handle_out = base::SharedMemory::DuplicateHandle(handle_in); 501 *handle_out = base::SharedMemory::DuplicateHandle(handle_in);
502 #elif defined(OS_WIN) 502 #elif defined(OS_WIN)
503 // On Windows we need to duplicate the handle for the plugin process. 503 // On Windows we need to duplicate the handle for the plugin process.
504 *handle_out = NULL; 504 BrokerDuplicateSharedMemoryHandle(handle_in, peer_pid, handle_out);
505 BrokerDuplicateHandle(handle_in, peer_pid, handle_out,
506 FILE_MAP_READ | FILE_MAP_WRITE, 0);
507 DCHECK(*handle_out != NULL);
508 #else 505 #else
509 #error Shared memory copy not implemented. 506 #error Shared memory copy not implemented.
510 #endif 507 #endif
511 } 508 }
512 509
513 void WebPluginDelegateProxy::SendUpdateGeometry( 510 void WebPluginDelegateProxy::SendUpdateGeometry(
514 bool bitmaps_changed) { 511 bool bitmaps_changed) {
515 if (!channel_host_.get()) 512 if (!channel_host_.get())
516 return; 513 return;
517 514
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 if (!memory->get()) 635 if (!memory->get())
639 return false; 636 return false;
640 DCHECK((*memory)->shared_memory()); 637 DCHECK((*memory)->shared_memory());
641 #if defined(OS_POSIX) 638 #if defined(OS_POSIX)
642 canvas->reset(skia::CreatePlatformCanvas( 639 canvas->reset(skia::CreatePlatformCanvas(
643 plugin_rect_.width(), plugin_rect_.height(), true, (*memory)->pixels(), 640 plugin_rect_.width(), plugin_rect_.height(), true, (*memory)->pixels(),
644 skia::RETURN_NULL_ON_FAILURE)); 641 skia::RETURN_NULL_ON_FAILURE));
645 #else 642 #else
646 canvas->reset(skia::CreatePlatformCanvas( 643 canvas->reset(skia::CreatePlatformCanvas(
647 plugin_rect_.width(), plugin_rect_.height(), true, 644 plugin_rect_.width(), plugin_rect_.height(), true,
648 (*memory)->shared_memory()->handle(), skia::RETURN_NULL_ON_FAILURE)); 645 (*memory)->shared_memory()->handle().GetHandle(),
646 skia::RETURN_NULL_ON_FAILURE));
649 #endif 647 #endif
650 return !!canvas->get(); 648 return !!canvas->get();
651 } 649 }
652 650
653 void WebPluginDelegateProxy::Paint(SkCanvas* canvas, 651 void WebPluginDelegateProxy::Paint(SkCanvas* canvas,
654 const gfx::Rect& damaged_rect) { 652 const gfx::Rect& damaged_rect) {
655 // Limit the damaged rectangle to whatever is contained inside the plugin 653 // Limit the damaged rectangle to whatever is contained inside the plugin
656 // rectangle, as that's the rectangle that we'll actually draw. 654 // rectangle, as that's the rectangle that we'll actually draw.
657 gfx::Rect rect = gfx::IntersectRects(damaged_rect, plugin_rect_); 655 gfx::Rect rect = gfx::IntersectRects(damaged_rect, plugin_rect_);
658 656
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 1227
1230 plugin_->URLRedirectResponse(allow, resource_id); 1228 plugin_->URLRedirectResponse(allow, resource_id);
1231 } 1229 }
1232 1230
1233 void WebPluginDelegateProxy::OnCheckIfRunInsecureContent(const GURL& url, 1231 void WebPluginDelegateProxy::OnCheckIfRunInsecureContent(const GURL& url,
1234 bool* result) { 1232 bool* result) {
1235 *result = plugin_->CheckIfRunInsecureContent(url); 1233 *result = plugin_->CheckIfRunInsecureContent(url);
1236 } 1234 }
1237 1235
1238 } // namespace content 1236 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698