summaryrefslogtreecommitdiff
path: root/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.cc
blob: 09a94a6f3bb60d7eb6033d1d0b95124c4cddef46 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
--- chrome/renderer/webplugin_delegate_proxy.cc.orig	Mon Mar 14 19:30:50 2011
+++ chrome/renderer/webplugin_delegate_proxy.cc	Mon Mar 14 19:39:56 2011
@@ -158,7 +158,7 @@ class ResourceClientProxy : public webkit::npapi::WebP
   bool multibyte_response_expected_;
 };
 
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
 static void ReleaseTransportDIB(TransportDIB* dib) {
   if (dib) {
     IPC::Message* message = new ViewHostMsg_FreeTransportDIB(dib->id());
@@ -184,7 +184,7 @@ WebPluginDelegateProxy::WebPluginDelegateProxy(
 }
 
 WebPluginDelegateProxy::~WebPluginDelegateProxy() {
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
   // Ask the browser to release old TransportDIB objects for which no
   // PluginHostMsg_UpdateGeometry_ACK was ever received from the plugin
   // process.
@@ -530,7 +530,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
   bool bitmaps_changed = false;
 
   PluginMsg_UpdateGeometry_Param param;
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
   param.ack_key = -1;
 #endif
 
@@ -542,7 +542,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
       bitmaps_changed = true;
 
       bool needs_background_store = transparent_;
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
       // We don't support transparency under QuickDraw, and CoreGraphics
       // preserves transparency information (and does the compositing itself)
       // so plugins don't need access to the page background.
@@ -614,7 +614,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
 }
 
 void WebPluginDelegateProxy::ResetWindowlessBitmaps() {
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
   DCHECK(!background_store_.get());
   // The Mac TransportDIB implementation uses base::SharedMemory, which
   // cannot be disposed of if an in-flight UpdateGeometry message refers to
@@ -675,12 +675,12 @@ bool WebPluginDelegateProxy::CreateSharedBitmap(
     scoped_ptr<TransportDIB>* memory,
     scoped_ptr<skia::PlatformCanvas>* canvas) {
   const size_t size = BitmapSizeForPluginRect(plugin_rect_);
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
   memory->reset(TransportDIB::Create(size, 0));
   if (!memory->get())
     return false;
 #endif
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
   TransportDIB::Handle handle;
   IPC::Message* msg = new ViewHostMsg_AllocTransportDIB(size, true, &handle);
   if (!RenderThread::current()->Send(msg))