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); }
void TestInvocation::dumpPixelsAndCompareWithExpected(WKImageRef, WKArrayRef repaintRects) { cairo_surface_t* surface = WKImageCreateCairoSurface(TestController::singleton().mainWebView()->windowSnapshotImage().get()); if (repaintRects) paintRepaintRectOverlay(surface, repaintRects); char actualHash[33]; computeMD5HashStringForCairoSurface(surface, actualHash); if (!compareActualHashToExpectedAndDumpResults(actualHash)) dumpBitmap(surface, actualHash); cairo_surface_destroy(surface); }
void TestInvocation::dumpPixelsAndCompareWithExpected(WKImageRef wkImage, WKArrayRef repaintRects) { #if USE(ACCELERATED_COMPOSITING) && (PLATFORM(EFL) || PLATFORM(NIX)) UNUSED_PARAM(wkImage); cairo_surface_t* surface = WKImageCreateCairoSurface(TestController::shared().mainWebView()->windowSnapshotImage().get()); #else cairo_surface_t* surface = WKImageCreateCairoSurface(wkImage); #endif if (repaintRects) paintRepaintRectOverlay(surface, repaintRects); char actualHash[33]; computeMD5HashStringForCairoSurface(surface, actualHash); if (!compareActualHashToExpectedAndDumpResults(actualHash)) dumpBitmap(surface, actualHash); cairo_surface_destroy(surface); }