Bug 1350835 - Part 1. Pass sync decode flag to nsLayoutUtils::PaintFrame. draft
authorcku <cku@mozilla.com>
Mon, 27 Mar 2017 16:31:38 +0800
changeset 552198 e5fa62807df912177d79af767bf033134f06e839
parent 552197 f5d706b834692c9655de55329084278ea8c57da6
child 552199 4a532da38d5376f4f71df92b3542bcd6b2746da0
push id51282
push userbmo:cku@mozilla.com
push dateTue, 28 Mar 2017 05:04:54 +0000
bugs1350835
milestone55.0a1
Bug 1350835 - Part 1. Pass sync decode flag to nsLayoutUtils::PaintFrame. MozReview-Commit-ID: 7IBQMwQgeTn
layout/svg/nsSVGForeignObjectFrame.cpp
--- a/layout/svg/nsSVGForeignObjectFrame.cpp
+++ b/layout/svg/nsSVGForeignObjectFrame.cpp
@@ -275,21 +275,25 @@ nsSVGForeignObjectFrame::PaintSVG(gfxCon
 
   aContext.Multiply(canvasTMForChildren);
 
   using PaintFrameFlags = nsLayoutUtils::PaintFrameFlags;
   PaintFrameFlags flags = PaintFrameFlags::PAINT_IN_TRANSFORM;
   if (SVGAutoRenderState::IsPaintingToWindow(aContext.GetDrawTarget())) {
     flags |= PaintFrameFlags::PAINT_TO_WINDOW;
   }
+  if (aFlags & imgIContainer::FLAG_SYNC_DECODE) {
+    flags |= PaintFrameFlags::PAINT_SYNC_DECODE_IMAGES;
+  }
   nsRenderingContext rendCtx(&aContext);
-  nsresult rv = nsLayoutUtils::PaintFrame(&rendCtx, kid, nsRegion(kidDirtyRect),
-                                         NS_RGBA(0,0,0,0),
-                                         nsDisplayListBuilderMode::PAINTING,
-                                         flags);
+  nsresult rv = nsLayoutUtils::PaintFrame(&rendCtx, kid,
+                                          nsRegion(kidDirtyRect),
+                                          NS_RGBA(0,0,0,0),
+                                          nsDisplayListBuilderMode::PAINTING,
+                                          flags);
 
   aContext.Restore();
 
   return NS_FAILED(rv) ? DrawResult::BAD_ARGS : DrawResult::SUCCESS;
 }
 
 nsIFrame*
 nsSVGForeignObjectFrame::GetFrameForPoint(const gfxPoint& aPoint)