Changeset 213437 in webkit


Ignore:
Timestamp:
Mar 5, 2017 12:31:06 PM (7 years ago)
Author:
aestes@apple.com
Message:

Add support for canvas.toBlob
https://bugs.webkit.org/show_bug.cgi?id=148878

Reviewed by Tim Horton.

Address additional review feedback received after r213412 landed.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob): Passed null to the blob callback if blob conversion
fails for any reason.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::cgImage): Removed an unnecessary local variable.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r213436 r213437  
    234234        https://bugs.webkit.org/show_bug.cgi?id=169145
    235235        http://trac.webkit.org/changeset/213400
     236
     2372017-03-03  Andy Estes  <aestes@apple.com>
     238
     239        Add support for canvas.toBlob
     240        https://bugs.webkit.org/show_bug.cgi?id=148878
     241
     242        Reviewed by Tim Horton.
     243
     244        Address additional review feedback received after r213412 landed.
     245
     246        * html/HTMLCanvasElement.cpp:
     247        (WebCore::HTMLCanvasElement::toBlob): Passed null to the blob callback if blob conversion
     248        fails for any reason.
     249        * platform/graphics/cg/ImageBufferCG.cpp:
     250        (WebCore::cgImage): Removed an unnecessary local variable.
    236251
    2372522017-03-03  Andy Estes  <aestes@apple.com>
  • trunk/Source/WebCore/html/HTMLCanvasElement.cpp

    r213412 r213437  
    505505#if USE(CG)
    506506    if (auto imageData = getImageData()) {
     507        RefPtr<Blob> blob;
    507508        Vector<uint8_t> blobData = data(*imageData, encodingMIMEType, quality);
    508         callback->scheduleCallback(context, Blob::create(WTFMove(blobData), encodingMIMEType));
     509        if (!blobData.isEmpty())
     510            blob = Blob::create(WTFMove(blobData), encodingMIMEType);
     511        callback->scheduleCallback(context, WTFMove(blob));
    509512        return { };
    510513    }
     
    513516    makeRenderingResultsAvailable();
    514517
     518    RefPtr<Blob> blob;
    515519    Vector<uint8_t> blobData = buffer()->toData(encodingMIMEType, quality);
    516     callback->scheduleCallback(context, Blob::create(WTFMove(blobData), encodingMIMEType));
     520    if (!blobData.isEmpty())
     521        blob = Blob::create(WTFMove(blobData), encodingMIMEType);
     522    callback->scheduleCallback(context, WTFMove(blob));
    517523    return { };
    518524}
  • trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp

    r213412 r213437  
    611611        return nullptr;
    612612
    613     auto image = adoptCF(CGImageCreate(source.width(), source.height(), 8, 32, 4 * source.width(), sRGBColorSpaceRef(), kCGBitmapByteOrderDefault | dataAlphaInfo, dataProvider.get(), 0, false, kCGRenderingIntentDefault));
    614     return image;
     613    return adoptCF(CGImageCreate(source.width(), source.height(), 8, 32, 4 * source.width(), sRGBColorSpaceRef(), kCGBitmapByteOrderDefault | dataAlphaInfo, dataProvider.get(), 0, false, kCGRenderingIntentDefault));
    615614}
    616615
Note: See TracChangeset for help on using the changeset viewer.