void TestInvocation::dumpPixelsAndCompareWithExpected(WKImageRef image, WKArrayRef repaintRects) { PlatformWebView* webView = TestController::shared().mainWebView(); WKRetainPtr<WKImageRef> windowSnapshot = webView->windowSnapshotImage(); // There is no way at this time to fake a window's scale factor, so we need to avoid the window // snapshots for HiDPI tests. if (WKPageGetBackingScaleFactor(webView->page()) != 1) windowSnapshot = 0; RetainPtr<CGContextRef> context; if (windowSnapshot) context = adoptCF(createCGContextFromImage(windowSnapshot.get(), DontFlipGraphicsContext)); else context = adoptCF(createCGContextFromImage(image)); // A non-null repaintRects array means we're doing a repaint test. if (repaintRects) paintRepaintRectOverlay(context.get(), image, repaintRects); char actualHash[33]; computeMD5HashStringForContext(context.get(), actualHash); if (!compareActualHashToExpectedAndDumpResults(actualHash)) dumpBitmap(context.get(), actualHash); }
void TestInvocation::dumpPixelsAndCompareWithExpected(WKImageRef image, WKArrayRef repaintRects, SnapshotResultType snapshotType) { RetainPtr<CGContextRef> context = adoptCF(createCGContextFromImage(image, snapshotType == SnapshotResultType::WebView ? DontFlipGraphicsContext : FlipGraphicsContext)); // A non-null repaintRects array means we're doing a repaint test. if (repaintRects) paintRepaintRectOverlay(context.get(), image, repaintRects); char actualHash[33]; computeMD5HashStringForContext(context.get(), actualHash); if (!compareActualHashToExpectedAndDumpResults(actualHash)) dumpBitmap(context.get(), actualHash); }