Commit 051e7bd4 authored by Mike Reed's avatar Mike Reed Committed by Commit Bot

SkImageDeserializer is deprecated (and no longer needed at these sites)

Default action is for skia to invoke codecs, so gfx/blink need not provide them.

Bug: 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I554452134b7e11d3ecb0f1a765cc57e8413d3116
Reviewed-on: https://chromium-review.googlesource.com/826502Reviewed-by: default avatarFlorin Malita <fmalita@chromium.org>
Reviewed-by: default avatarvmpstr <vmpstr@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Mike Reed <reed@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524314}
parent 06704df5
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkColorPriv.h" #include "third_party/skia/include/core/SkColorPriv.h"
#include "third_party/skia/include/core/SkGraphics.h" #include "third_party/skia/include/core/SkGraphics.h"
#include "third_party/skia/include/core/SkImageDeserializer.h"
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
#include "third_party/skia/include/core/SkStream.h" #include "third_party/skia/include/core/SkStream.h"
#include "ui/gfx/codec/jpeg_codec.h" #include "ui/gfx/codec/jpeg_codec.h"
...@@ -45,35 +44,6 @@ class Picture { ...@@ -45,35 +44,6 @@ class Picture {
sk_sp<SkPicture> picture; sk_sp<SkPicture> picture;
}; };
class GfxImageDeserializer final : public SkImageDeserializer {
public:
sk_sp<SkImage> makeFromData(SkData* data, const SkIRect* subset) override {
return makeFromMemory(data->data(), data->size(), subset);
}
sk_sp<SkImage> makeFromMemory(const void* data,
size_t size,
const SkIRect* subset) override {
sk_sp<SkImage> img;
// Try PNG first.
SkBitmap bitmap;
if (gfx::PNGCodec::Decode((const uint8_t*)data, size, &bitmap)) {
bitmap.setImmutable();
img = SkImage::MakeFromBitmap(bitmap);
} else {
// Try JPEG.
std::unique_ptr<SkBitmap> decoded_jpeg(
gfx::JPEGCodec::Decode((const uint8_t*)data, size));
if (decoded_jpeg) {
decoded_jpeg->setImmutable();
img = SkImage::MakeFromBitmap(*decoded_jpeg);
}
}
if (img && subset)
img = img->makeSubset(*subset);
return img;
}
};
std::unique_ptr<base::Value> ParsePictureArg(v8::Isolate* isolate, std::unique_ptr<base::Value> ParsePictureArg(v8::Isolate* isolate,
v8::Local<v8::Value> arg) { v8::Local<v8::Value> arg) {
return content::V8ValueConverter::Create()->FromV8Value( return content::V8ValueConverter::Create()->FromV8Value(
...@@ -84,10 +54,8 @@ std::unique_ptr<Picture> CreatePictureFromEncodedString( ...@@ -84,10 +54,8 @@ std::unique_ptr<Picture> CreatePictureFromEncodedString(
const std::string& encoded) { const std::string& encoded) {
std::string decoded; std::string decoded;
base::Base64Decode(encoded, &decoded); base::Base64Decode(encoded, &decoded);
SkMemoryStream stream(decoded.data(), decoded.size());
GfxImageDeserializer deserializer;
sk_sp<SkPicture> skpicture = sk_sp<SkPicture> skpicture =
SkPicture::MakeFromStream(&stream, &deserializer); SkPicture::MakeFromData(decoded.data(), decoded.size());
if (!skpicture) if (!skpicture)
return nullptr; return nullptr;
......
...@@ -45,41 +45,14 @@ ...@@ -45,41 +45,14 @@
#include "platform/wtf/Time.h" #include "platform/wtf/Time.h"
#include "platform/wtf/text/Base64.h" #include "platform/wtf/text/Base64.h"
#include "platform/wtf/text/TextEncoding.h" #include "platform/wtf/text/TextEncoding.h"
#include "third_party/skia/include/core/SkData.h"
#include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkImageDeserializer.h"
#include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/skia/include/core/SkPictureRecorder.h"
#include "third_party/skia/include/core/SkStream.h"
namespace blink { namespace blink {
PictureSnapshot::PictureSnapshot(sk_sp<const SkPicture> picture) PictureSnapshot::PictureSnapshot(sk_sp<const SkPicture> picture)
: picture_(std::move(picture)) {} : picture_(std::move(picture)) {}
class SkiaImageDecoder final : public SkImageDeserializer {
public:
sk_sp<SkImage> makeFromMemory(const void* data,
size_t length,
const SkIRect* subset) override {
// No need to copy the data; this decodes immediately.
scoped_refptr<SegmentReader> segment_reader =
SegmentReader::CreateFromSkData(SkData::MakeWithoutCopy(data, length));
std::unique_ptr<ImageDecoder> image_decoder = ImageDecoder::Create(
std::move(segment_reader), true, ImageDecoder::kAlphaPremultiplied,
ColorBehavior::Ignore());
if (!image_decoder)
return nullptr;
ImageFrame* frame = image_decoder->DecodeFrameBufferAtIndex(0);
return (frame && !image_decoder->Failed())
? frame->FinalizePixelsAndGetImage()
: nullptr;
}
sk_sp<SkImage> makeFromData(SkData* data, const SkIRect* subset) override {
return this->makeFromMemory(data->data(), data->size(), subset);
}
};
scoped_refptr<PictureSnapshot> PictureSnapshot::Load( scoped_refptr<PictureSnapshot> PictureSnapshot::Load(
const Vector<scoped_refptr<TilePictureStream>>& tiles) { const Vector<scoped_refptr<TilePictureStream>>& tiles) {
DCHECK(!tiles.IsEmpty()); DCHECK(!tiles.IsEmpty());
...@@ -87,9 +60,8 @@ scoped_refptr<PictureSnapshot> PictureSnapshot::Load( ...@@ -87,9 +60,8 @@ scoped_refptr<PictureSnapshot> PictureSnapshot::Load(
pictures.ReserveCapacity(tiles.size()); pictures.ReserveCapacity(tiles.size());
FloatRect union_rect; FloatRect union_rect;
for (const auto& tile_stream : tiles) { for (const auto& tile_stream : tiles) {
SkMemoryStream stream(tile_stream->data.begin(), tile_stream->data.size()); sk_sp<SkPicture> picture = SkPicture::MakeFromData(
SkiaImageDecoder factory; tile_stream->data.begin(), tile_stream->data.size());
sk_sp<SkPicture> picture = SkPicture::MakeFromStream(&stream, &factory);
if (!picture) if (!picture)
return nullptr; return nullptr;
FloatRect cull_rect(picture->cullRect()); FloatRect cull_rect(picture->cullRect());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment