Bug 1382257 - Correct returning value of PaintBorderWithStyleBorder. draft
authorcku <cku@mozilla.com>
Fri, 21 Jul 2017 09:50:36 +0800
changeset 612944 b5f230900212c5d953d655781d15424fd47b6c5a
parent 612696 7d2e89fb92331d7e4296391213c1e63db628e046
child 638556 fb0a5b26bfc7c85afa433a2a55101e3f2436fe2b
push id69662
push userbmo:cku@mozilla.com
push dateFri, 21 Jul 2017 08:51:19 +0000
bugs1382257
milestone56.0a1
Bug 1382257 - Correct returning value of PaintBorderWithStyleBorder. We overwrites DrawResult returning from nsCSSBorderImageRenderer::CreateBorderImageRenderer by the returning value of DrawBorderImage, which is not right. MozReview-Commit-ID: 1EeqU5hLyln
layout/painting/nsCSSRendering.cpp
--- a/layout/painting/nsCSSRendering.cpp
+++ b/layout/painting/nsCSSRendering.cpp
@@ -829,22 +829,22 @@ nsCSSRendering::PaintBorderWithStyleBord
 
     // Creating the border image renderer will request a decode, and we rely on
     // that happening.
     Maybe<nsCSSBorderImageRenderer> renderer =
       nsCSSBorderImageRenderer::CreateBorderImageRenderer(aPresContext, aForFrame, aBorderArea,
                                                           aStyleBorder, aDirtyRect, aSkipSides,
                                                           irFlags, &result);
     if (aStyleBorder.IsBorderImageLoaded()) {
-      if (!renderer) {
-        return result;
+      if (renderer) {
+        result &= renderer->DrawBorderImage(aPresContext, aRenderingContext,
+                                            aForFrame, aDirtyRect);
       }
 
-      return renderer->DrawBorderImage(aPresContext, aRenderingContext,
-                                       aForFrame, aDirtyRect);
+      return result;
     }
   }
 
   DrawResult result = DrawResult::SUCCESS;
 
   // If we had a border-image, but it wasn't loaded, then we should return
   // DrawResult::NOT_READY; we'll want to try again if we do a paint with sync
   // decoding enabled.