Skip to content
  • jhoneycutt@apple.com's avatar
    <rdar://problem/7270320> Screenshots of off-screen plug-ins are blank · f8efd04f
    jhoneycutt@apple.com authored
    <rdar://problem/7270314> After halting a transparent PluginView on
    Windows, the transparency is applied twice
    
    JavaScriptCore:
    
    Reviewed by Dan Bernstein.
    
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
    Export WTF::deleteOwnedPtr(HDC).
    
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
    Ditto.
    
    WebCore:
    
    Replace use of Frame::nodeImage() with a function that takes a snapshot
    of a PluginView.
    
    Reviewed by Dan Bernstein.
    
    * plugins/PluginView.h:
    Made paintWindowedPluginIntoContext() non-const, as it now calls
    paintIntoTransformedContext(). Declare paintIntoTransformedContext()
    and snapshot() for Windows platforms.
    
    * plugins/win/PluginViewWin.cpp:
    (WebCore::PluginView::paintIntoTransformedContext):
    Paints into the passed HDC without applying any coordinate translations.
    Code moved from paintWindowedPluginIntoContext() and paint(). Removed
    the memset() of windowpos in lieu of assignment.
    (WebCore::PluginView::paintWindowedPluginIntoContext):
    Code moved to paintIntoTransformedContext().
    (WebCore::PluginView::paint):
    Ditto.
    (WebCore::PluginView::snapshot):
    Create a context, and if the plug-in is windowless, translate it so the
    plug-in will draw at the correct location. Create a bitmap, and select
    it into the context. Paint the plug-in, and create a BitmapImage from
    the bitmap.
    (WebCore::PluginView::halt):
    Use snapshot().
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    f8efd04f