[webkit] [9] Review request for 8160769: [WebView] Unable to tile SVG	image using css background property
    Arunprasad Rajkumar 
    arunprasad.rajkumar at oracle.com
       
    Wed Jul 13 10:58:30 UTC 2016
    
    
  
Hello Guru, Alexander Z, Murali,
Please review the following fix.
JIRA: https://bugs.openjdk.java.net/browse/JDK-8160769
Webrev: http://cr.openjdk.java.net/~arajkumar/8160769/webrev.00
Issue: Unable to tile SVG image using css background property
Analysis: For tiled SVG image drawing, WebCore creates a temporary 
Graphics buffer(ImageBufferJava)[1] and renders SVG contents into it. 
Once the SVG is rendered in the temporary graphics buffer, WebCore will 
call Image::drawPattern to tile it on the WebPage's back buffer. As soon 
as drawing is completed, temporary graphics buffer will be destroyed.
FX WebView's GraphicsContext APIs are asynchronous in nature(rendered in 
FX render thread using RenderQueue), so temporary graphics buffer would 
have been destroyed even before rendering the SVG content into it. At 
later point of time, when Image::drawPattern is executed in render 
thread, it will be accessing a GraphicsContext of an destroyed object.
Solution: Before destroying an Native ImageBuffer, flush all its render 
queue commands synchronously, So that it's content will be rendered as 
expected.
[1] 
http://trac.webkit.org/browser/trunk/Source/WebCore/svg/graphics/SVGImage.cpp?rev=187486#L202
Regards,
Arun
    
    
More information about the openjfx-dev
mailing list