Index: content/plugin/webplugin_proxy.cc |
=================================================================== |
--- content/plugin/webplugin_proxy.cc (revision 166499) |
+++ content/plugin/webplugin_proxy.cc (working copy) |
@@ -67,7 +67,6 @@ |
delegate_(NULL), |
waiting_for_paint_(false), |
page_url_(page_url), |
- transparent_(false), |
windowless_buffer_index_(0), |
host_render_view_routing_id_(host_render_view_routing_id), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
@@ -362,18 +361,6 @@ |
// it is going to continue to be used. |
int saved_index = windowless_buffer_index_; |
- if (background_context_.get()) { |
- base::mac::ScopedCFTypeRef<CGImageRef> image( |
- CGBitmapContextCreateImage(background_context_)); |
- CGRect source_rect = rect.ToCGRect(); |
- // Flip the rect we use to pull from the canvas, since it's upside-down. |
- source_rect.origin.y = CGImageGetHeight(image) - rect.y() - rect.height(); |
- base::mac::ScopedCFTypeRef<CGImageRef> sub_image( |
- CGImageCreateWithImageInRect(image, source_rect)); |
- CGContextDrawImage(windowless_context(), rect.ToCGRect(), sub_image); |
- } else if (transparent_) { |
- CGContextClearRect(windowless_context(), rect.ToCGRect()); |
- } |
CGContextClipToRect(windowless_context(), rect.ToCGRect()); |
// TODO(caryclark): This is a temporary workaround to allow the Darwin / Skia |
// port to share code with the Darwin / CG port. All ports will eventually use |
@@ -400,22 +387,9 @@ |
SkIntToScalar(rect.bottom()) }; |
saved_canvas->clipRect(sk_rect); |
- // Setup the background. |
- if (background_canvas_.get() && background_canvas_.get()->getDevice()) { |
- // When a background canvas is given, we're in transparent mode. This means |
- // the plugin wants to have the image of the page in the canvas it's drawing |
- // into (which is windowless_canvases_) so it can do blending. So we copy |
- // the background bitmap into the windowless canvas. |
- const SkBitmap& background_bitmap = |
- skia::GetTopDevice(*background_canvas_)->accessBitmap(false); |
- saved_canvas->drawBitmap(background_bitmap, 0, 0); |
- } else { |
- // In non-transparent mode, the plugin doesn't care what's underneath, so we |
- // can just give it black. |
- SkPaint black_fill_paint; |
- black_fill_paint.setARGB(0xFF, 0x00, 0x00, 0x00); |
- saved_canvas->drawPaint(black_fill_paint); |
- } |
+ // Fill a transparent value so that if the plugin supports transparency that |
+ // will work. |
+ saved_canvas->drawColor(SkColorSetARGB(0, 0, 0, 0), SkXfermode::kSrc_Mode); |
// Bring the windowless canvas into the window coordinate system, which is |
// how the plugin expects to draw (since the windowless API was originally |
@@ -436,12 +410,9 @@ |
const gfx::Rect& clip_rect, |
const TransportDIB::Handle& windowless_buffer0, |
const TransportDIB::Handle& windowless_buffer1, |
- int windowless_buffer_index, |
- const TransportDIB::Handle& background_buffer, |
- bool transparent) { |
+ int windowless_buffer_index) { |
gfx::Rect old = delegate_->GetRect(); |
gfx::Rect old_clip_rect = delegate_->GetClipRect(); |
- transparent_ = transparent; |
// Update the buffers before doing anything that could call into plugin code, |
// so that we don't process buffer changes out of order if plugins make |
@@ -450,7 +421,6 @@ |
// The plugin's rect changed, so now we have new buffers to draw into. |
SetWindowlessBuffers(windowless_buffer0, |
windowless_buffer1, |
- background_buffer, |
window_rect); |
} |
@@ -496,14 +466,12 @@ |
void WebPluginProxy::SetWindowlessBuffers( |
const TransportDIB::Handle& windowless_buffer0, |
const TransportDIB::Handle& windowless_buffer1, |
- const TransportDIB::Handle& background_buffer, |
const gfx::Rect& window_rect) { |
CreateCanvasFromHandle(windowless_buffer0, |
window_rect, |
&windowless_canvases_[0]); |
if (!windowless_canvases_[0].get()) { |
windowless_canvases_[1].reset(NULL); |
- background_canvas_.reset(NULL); |
return; |
} |
CreateCanvasFromHandle(windowless_buffer1, |
@@ -511,20 +479,8 @@ |
&windowless_canvases_[1]); |
if (!windowless_canvases_[1].get()) { |
windowless_canvases_[0].reset(NULL); |
- background_canvas_.reset(NULL); |
return; |
} |
- |
- if (background_buffer) { |
- CreateCanvasFromHandle(background_buffer, |
- window_rect, |
- &background_canvas_); |
- if (!background_canvas_.get()) { |
- windowless_canvases_[0].reset(NULL); |
- windowless_canvases_[1].reset(NULL); |
- return; |
- } |
- } |
} |
#elif defined(OS_MACOSX) |
@@ -557,7 +513,6 @@ |
void WebPluginProxy::SetWindowlessBuffers( |
const TransportDIB::Handle& windowless_buffer0, |
const TransportDIB::Handle& windowless_buffer1, |
- const TransportDIB::Handle& background_buffer, |
const gfx::Rect& window_rect) { |
CreateDIBAndCGContextFromHandle(windowless_buffer0, |
window_rect, |
@@ -567,10 +522,6 @@ |
window_rect, |
&windowless_dibs_[1], |
&windowless_contexts_[1]); |
- CreateDIBAndCGContextFromHandle(background_buffer, |
- window_rect, |
- &background_dib_, |
- &background_context_); |
} |
#elif defined(USE_X11) |
@@ -617,7 +568,6 @@ |
void WebPluginProxy::SetWindowlessBuffers( |
const TransportDIB::Handle& windowless_buffer0, |
const TransportDIB::Handle& windowless_buffer1, |
- const TransportDIB::Handle& background_buffer, |
const gfx::Rect& window_rect) { |
CreateDIBAndCanvasFromHandle(windowless_buffer0, |
window_rect, |
@@ -627,10 +577,6 @@ |
window_rect, |
&windowless_dibs_[1], |
&windowless_canvases_[1]); |
- CreateDIBAndCanvasFromHandle(background_buffer, |
- window_rect, |
- &background_dib_, |
- &background_canvas_); |
// If SHM pixmaps support is available, create SHM pixmaps to pass to the |
// delegate for windowless plugin painting. |
@@ -649,7 +595,6 @@ |
void WebPluginProxy::SetWindowlessBuffers( |
const TransportDIB::Handle& windowless_buffer0, |
const TransportDIB::Handle& windowless_buffer1, |
- const TransportDIB::Handle& background_buffer, |
const gfx::Rect& window_rect) { |
NOTIMPLEMENTED(); |
} |