bool ImageResource::currentFrameKnownToBeOpaque(const LayoutObject* layoutObject)
{
    blink::Image* image = imageForLayoutObject(layoutObject);
    if (image->isBitmapImage()) {
        TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", "data", InspectorPaintImageEvent::data(layoutObject, *this));
        // BitmapImage::currentFrameKnownToBeOpaque() conservatively returns true for uncached
        // frames. To get an accurate answer, we pre-cache the current frame metadata.
        image->imageForCurrentFrame();
    }
    return image->currentFrameKnownToBeOpaque();
}
Example #2
0
bool ImageResource::currentFrameKnownToBeOpaque(const LayoutObject* layoutObject)
{
    blink::Image* image = imageForLayoutObject(layoutObject);
    if (image->isBitmapImage()) {
        TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage", "data", InspectorPaintImageEvent::data(layoutObject, *this));
        SkBitmap dummy;
        if (!image->bitmapForCurrentFrame(&dummy)) { // force decode
            // We don't care about failures here, since we don't use "dummy"
        }
    }
    return image->currentFrameKnownToBeOpaque();
}