diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-09-18 14:34:04 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-10-04 11:15:27 +0000 |
commit | e6430e577f105ad8813c92e75c54660c4985026e (patch) | |
tree | 88115e5d1fb471fea807111924dcccbeadbf9e4f /chromium/skia | |
parent | 53d399fe6415a96ea6986ec0d402a9c07da72453 (diff) | |
download | qtwebengine-chromium-e6430e577f105ad8813c92e75c54660c4985026e.tar.gz |
BASELINE: Update Chromium to 61.0.3163.99
Change-Id: I8452f34574d88ca2b27af9bd56fc9ff3f16b1367
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/skia')
17 files changed, 172 insertions, 53 deletions
diff --git a/chromium/skia/BUILD.gn b/chromium/skia/BUILD.gn index 07ff372a3b0..7b75a079366 100644 --- a/chromium/skia/BUILD.gn +++ b/chromium/skia/BUILD.gn @@ -54,10 +54,6 @@ config("skia_config") { defines += [ "SK_HAS_JPEG_LIBRARY" ] } - if (!use_system_freetype) { - defines += [ "SK_FREETYPE_MINIMUM_RUNTIME_VERSION=(((FREETYPE_MAJOR) * 0x01000000) | ((FREETYPE_MINOR) * 0x00010000) | ((FREETYPE_PATCH) * 0x00000100))" ] - } - if (is_component_build) { defines += [ "SKIA_DLL", @@ -128,6 +124,10 @@ config("skia_library_config") { defines = [] + if (!use_system_freetype) { + defines += [ "SK_FREETYPE_MINIMUM_RUNTIME_VERSION=(((FREETYPE_MAJOR) * 0x01000000) | ((FREETYPE_MINOR) * 0x00010000) | ((FREETYPE_PATCH) * 0x00000100))" ] + } + if (is_component_build) { defines += [ "SKIA_IMPLEMENTATION=1" ] } @@ -222,6 +222,8 @@ component("skia") { "ext/event_tracer_impl.h", "ext/fontmgr_default_android.cc", "ext/fontmgr_default_android.h", + "ext/fontmgr_default_fuchsia.cc", + "ext/fontmgr_default_fuchsia.h", "ext/fontmgr_default_linux.cc", "ext/fontmgr_default_linux.h", "ext/fontmgr_default_win.cc", @@ -267,6 +269,13 @@ component("skia") { ] } + if (!is_fuchsia) { + sources -= [ + "ext/fontmgr_default_fuchsia.cc", + "ext/fontmgr_default_fuchsia.h", + ] + } + # The imported Skia gni source paths are made absolute by gn. sources += skia_core_sources sources += skia_effects_sources @@ -452,8 +461,8 @@ component("skia") { ] } deps += [ - "//build/linux:fontconfig", "//third_party/expat", + "//third_party/fontconfig", "//third_party/icu:icuuc", ] } diff --git a/chromium/skia/config/SkUserConfig.h b/chromium/skia/config/SkUserConfig.h index f8f7bbafa4f..3c162342dfc 100644 --- a/chromium/skia/config/SkUserConfig.h +++ b/chromium/skia/config/SkUserConfig.h @@ -198,26 +198,22 @@ SK_API void SkDebugf_FileLine(const char* file, int line, bool fatal, # define SK_SUPPORT_LEGACY_ANISOTROPIC_MIPMAP_SCALE #endif -#ifndef SK_IGNORE_GPU_DITHER -# define SK_IGNORE_GPU_DITHER -#endif - // Remove this after we fixed all the issues related to the new SDF algorithm // (https://codereview.chromium.org/1643143002) #ifndef SK_USE_LEGACY_DISTANCE_FIELDS # define SK_USE_LEGACY_DISTANCE_FIELDS #endif -#ifndef SK_DISABLE_DEFERRED_PROXIES -#define SK_DISABLE_DEFERRED_PROXIES +#ifndef SK_SUPPORT_LEGACY_RADIAL_GRADIENT +#define SK_SUPPORT_LEGACY_RADIAL_GRADIENT #endif -#ifndef SK_SUPPORT_LEGACY_GRADIENT_ALPHATRUNC -#define SK_SUPPORT_LEGACY_GRADIENT_ALPHATRUNC +#ifndef SK_DISABLE_DEFERRED_PROXIES +#define SK_DISABLE_DEFERRED_PROXIES #endif -#ifndef SK_SUPPORT_LEGACY_RASTERPIPELINE -#define SK_SUPPORT_LEGACY_RASTERPIPELINE +#ifndef SK_SUPPORT_LEGACY_TILED_BITMAPS +#define SK_SUPPORT_LEGACY_TILED_BITMAPS #endif ///////////////////////// Imported from BUILD.gn and skia_common.gypi diff --git a/chromium/skia/ext/benchmarking_canvas.cc b/chromium/skia/ext/benchmarking_canvas.cc index da63a1a3376..1f46938173f 100644 --- a/chromium/skia/ext/benchmarking_canvas.cc +++ b/chromium/skia/ext/benchmarking_canvas.cc @@ -379,24 +379,23 @@ class BenchmarkingCanvas::AutoOp { public: // AutoOp objects are always scoped within draw call frames, // so the paint is guaranteed to be valid for their lifetime. - AutoOp(BenchmarkingCanvas* canvas, const char op_name[], - const SkPaint* paint = nullptr) - : canvas_(canvas) - , op_record_(new base::DictionaryValue()) - , op_params_(new base::ListValue()) { - - DCHECK(canvas); - DCHECK(op_name); - - op_record_->SetString("cmd_string", op_name); - op_record_->Set("info", op_params_); - - if (paint) { - this->addParam("paint", AsValue(*paint)); - filtered_paint_ = *paint; - } - - start_ticks_ = base::TimeTicks::Now(); + AutoOp(BenchmarkingCanvas* canvas, + const char op_name[], + const SkPaint* paint = nullptr) + : canvas_(canvas), op_record_(new base::DictionaryValue()) { + DCHECK(canvas); + DCHECK(op_name); + + op_record_->SetString("cmd_string", op_name); + op_params_ = + op_record_->SetList("info", base::MakeUnique<base::ListValue>()); + + if (paint) { + this->addParam("paint", AsValue(*paint)); + filtered_paint_ = *paint; + } + + start_ticks_ = base::TimeTicks::Now(); } ~AutoOp() { diff --git a/chromium/skia/ext/fontmgr_default_fuchsia.cc b/chromium/skia/ext/fontmgr_default_fuchsia.cc new file mode 100644 index 00000000000..06c583efe42 --- /dev/null +++ b/chromium/skia/ext/fontmgr_default_fuchsia.cc @@ -0,0 +1,23 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "skia/ext/fontmgr_default_fuchsia.h" + +#include "third_party/skia/include/ports/SkFontMgr.h" +#include "third_party/skia/include/ports/SkFontMgr_android.h" + +namespace { +// An owning leaky bare pointer. +SkFontMgr* g_default_fontmgr = nullptr; +} // namespace + +SK_API void SetDefaultSkiaFactory(sk_sp<SkFontMgr> fontmgr) { + SkASSERT(g_default_fontmgr == nullptr); + g_default_fontmgr = fontmgr.release(); +} + +SK_API sk_sp<SkFontMgr> SkFontMgr::Factory() { + // TODO(fuchsia): Implement SkFontMgr. + return g_default_fontmgr ? sk_ref_sp(g_default_fontmgr) : nullptr; +} diff --git a/chromium/skia/ext/fontmgr_default_fuchsia.h b/chromium/skia/ext/fontmgr_default_fuchsia.h new file mode 100644 index 00000000000..a7a8e3a4dd0 --- /dev/null +++ b/chromium/skia/ext/fontmgr_default_fuchsia.h @@ -0,0 +1,16 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SKIA_EXT_FONTMGR_DEFAULT_FUCHSIA_H_ +#define SKIA_EXT_FONTMGR_DEFAULT_FUCHSIA_H_ + +#include "third_party/skia/include/core/SkTypes.h" + +class SkFontMgr; +template <typename T> +class sk_sp; + +SK_API void SetDefaultSkiaFactory(sk_sp<SkFontMgr> fontmgr); + +#endif // SKIA_EXT_FONTMGR_DEFAULT_FUCHSIA_H_ diff --git a/chromium/skia/ext/image_operations.cc b/chromium/skia/ext/image_operations.cc index 8b5f371d33f..1b07045291e 100644 --- a/chromium/skia/ext/image_operations.cc +++ b/chromium/skia/ext/image_operations.cc @@ -345,16 +345,16 @@ SkBitmap ImageOperations::Resize(const SkBitmap& source, // Time how long this takes to see if it's a problem for users. base::TimeTicks resize_start = base::TimeTicks::Now(); - SkIRect dest = { 0, 0, dest_width, dest_height }; - DCHECK(dest.contains(dest_subset)) << - "The supplied subset does not fall within the destination image."; - // If the size of source or destination is 0, i.e. 0x0, 0xN or Nx0, just // return empty. if (source.width() < 1 || source.height() < 1 || dest_width < 1 || dest_height < 1) return SkBitmap(); + SkIRect dest = {0, 0, dest_width, dest_height}; + DCHECK(dest.contains(dest_subset)) + << "The supplied subset does not fall within the destination image."; + method = ResizeMethodToAlgorithmMethod(method); // Check that we deal with an "algorithm methods" from this point onward. SkASSERT((ImageOperations::RESIZE_FIRST_ALGORITHM_METHOD <= method) && @@ -375,7 +375,7 @@ SkBitmap ImageOperations::Resize(const SkBitmap& source, // Convolve into the result. SkBitmap result; result.setInfo(SkImageInfo::MakeN32(dest_subset.width(), dest_subset.height(), source.alphaType())); - result.allocPixels(allocator, NULL); + result.allocPixels(allocator); if (!result.readyToDraw()) return SkBitmap(); diff --git a/chromium/skia/ext/platform_canvas.h b/chromium/skia/ext/platform_canvas.h index 5cf00d2f70f..c31e7c02141 100644 --- a/chromium/skia/ext/platform_canvas.h +++ b/chromium/skia/ext/platform_canvas.h @@ -57,9 +57,10 @@ SK_API std::unique_ptr<SkCanvas> CreatePlatformCanvasWithSharedSection( SK_API HDC GetNativeDrawingContext(SkCanvas* canvas); #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \ - defined(__sun) || defined(ANDROID) || defined(__APPLE__) - // Construct a canvas from the given memory region. The memory is not cleared - // first. @data must be, at least, @height * StrideForWidth(@width) bytes. + defined(__sun) || defined(ANDROID) || defined(__APPLE__) || \ + defined(__Fuchsia__) +// Construct a canvas from the given memory region. The memory is not cleared +// first. @data must be, at least, @height * StrideForWidth(@width) bytes. SK_API std::unique_ptr<SkCanvas> CreatePlatformCanvasWithPixels( int width, int height, diff --git a/chromium/skia/ext/raster_handle_allocator_win.cc b/chromium/skia/ext/raster_handle_allocator_win.cc index fed059f8950..1f136bd3598 100644 --- a/chromium/skia/ext/raster_handle_allocator_win.cc +++ b/chromium/skia/ext/raster_handle_allocator_win.cc @@ -139,8 +139,8 @@ std::unique_ptr<SkCanvas> CreatePlatformCanvasWithSharedSection( MapViewOfFile(shared_section, FILE_MAP_WRITE, 0, 0, row_bytes * height); if (pixels) { SkBitmap bitmap; - if (bitmap.installPixels(info, pixels, row_bytes, nullptr, - unmap_view_proc, nullptr)) { + if (bitmap.installPixels(info, pixels, row_bytes, unmap_view_proc, + nullptr)) { return base::MakeUnique<SkCanvas>(bitmap); } } diff --git a/chromium/skia/ext/skia_commit_hash.h b/chromium/skia/ext/skia_commit_hash.h index 49e5121cff7..b25885a432d 100644 --- a/chromium/skia/ext/skia_commit_hash.h +++ b/chromium/skia/ext/skia_commit_hash.h @@ -3,6 +3,6 @@ #ifndef SKIA_EXT_SKIA_COMMIT_HASH_H_ #define SKIA_EXT_SKIA_COMMIT_HASH_H_ -#define SKIA_COMMIT_HASH "c2aa62d19fc8b162a6a5da55e8d7ba083ea9fd7a-" +#define SKIA_COMMIT_HASH "bbb09c42d396da2d7abf4e1521f89968ae5afbae-" #endif // SKIA_EXT_SKIA_COMMIT_HASH_H_ diff --git a/chromium/skia/public/interfaces/BUILD.gn b/chromium/skia/public/interfaces/BUILD.gn index 9b8755525f6..f48b145c686 100644 --- a/chromium/skia/public/interfaces/BUILD.gn +++ b/chromium/skia/public/interfaces/BUILD.gn @@ -7,6 +7,7 @@ import("//mojo/public/tools/bindings/mojom.gni") mojom("interfaces") { sources = [ "bitmap.mojom", + "blur_image_filter_tile_mode.mojom", "image_filter.mojom", ] } @@ -20,9 +21,6 @@ mojom("test_interfaces") { public_deps = [ ":interfaces", ] - - # TODO(crbug.com/714018): Convert the implementation to use OnceCallback. - use_once_callback = false } source_set("struct_traits") { diff --git a/chromium/skia/public/interfaces/OWNERS b/chromium/skia/public/interfaces/OWNERS index 1841ff6198d..e75daf744a0 100644 --- a/chromium/skia/public/interfaces/OWNERS +++ b/chromium/skia/public/interfaces/OWNERS @@ -3,3 +3,6 @@ per-file *_struct_traits*.*=file://ipc/SECURITY_OWNERS per-file *.mojom=set noparent per-file *.mojom=file://ipc/SECURITY_OWNERS + +per-file *.typemap=set noparent +per-file *.typemap=file://ipc/SECURITY_OWNERS diff --git a/chromium/skia/public/interfaces/bitmap_skbitmap_struct_traits.cc b/chromium/skia/public/interfaces/bitmap_skbitmap_struct_traits.cc index f5b5550c679..f4220f8a513 100644 --- a/chromium/skia/public/interfaces/bitmap_skbitmap_struct_traits.cc +++ b/chromium/skia/public/interfaces/bitmap_skbitmap_struct_traits.cc @@ -22,10 +22,11 @@ SkColorType MojoColorTypeToSk(skia::mojom::ColorType type) { return kRGBA_8888_SkColorType; case skia::mojom::ColorType::BGRA_8888: return kBGRA_8888_SkColorType; - case skia::mojom::ColorType::INDEX_8: - return kIndex_8_SkColorType; case skia::mojom::ColorType::GRAY_8: return kGray_8_SkColorType; + case skia::mojom::ColorType::INDEX_8: + // no longer supported + break; } NOTREACHED(); return kUnknown_SkColorType; @@ -71,13 +72,11 @@ skia::mojom::ColorType SkColorTypeToMojo(SkColorType type) { return skia::mojom::ColorType::RGBA_8888; case kBGRA_8888_SkColorType: return skia::mojom::ColorType::BGRA_8888; - case kIndex_8_SkColorType: - return skia::mojom::ColorType::INDEX_8; case kGray_8_SkColorType: return skia::mojom::ColorType::GRAY_8; case kRGBA_F16_SkColorType: - NOTREACHED(); - return skia::mojom::ColorType::UNKNOWN; + // these are unsupported + break; } NOTREACHED(); return skia::mojom::ColorType::UNKNOWN; diff --git a/chromium/skia/public/interfaces/blur_image_filter_tile_mode.mojom b/chromium/skia/public/interfaces/blur_image_filter_tile_mode.mojom new file mode 100644 index 00000000000..3a351c87853 --- /dev/null +++ b/chromium/skia/public/interfaces/blur_image_filter_tile_mode.mojom @@ -0,0 +1,13 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +module skia.mojom; + +// Mirror of SkBlurImageFilter::TileMode. +enum BlurTileMode { + CLAMP, + REPEAT, + CLAMP_TO_BLACK, + BLUR_TILE_MODE_LAST = CLAMP_TO_BLACK +}; diff --git a/chromium/skia/public/interfaces/blur_image_filter_tile_mode.typemap b/chromium/skia/public/interfaces/blur_image_filter_tile_mode.typemap new file mode 100644 index 00000000000..35c22f72112 --- /dev/null +++ b/chromium/skia/public/interfaces/blur_image_filter_tile_mode.typemap @@ -0,0 +1,9 @@ +# Copyright 2017 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +mojom = "//skia/public/interfaces/blur_image_filter_tile_mode.mojom" +public_headers = [ "//third_party/skia/include/effects/SkBlurImageFilter.h" ] +traits_headers = + [ "//skia/public/interfaces/blur_image_filter_tile_mode_struct_traits.h" ] +type_mappings = [ "skia.mojom.BlurTileMode=SkBlurImageFilter::TileMode" ] diff --git a/chromium/skia/public/interfaces/blur_image_filter_tile_mode_struct_traits.h b/chromium/skia/public/interfaces/blur_image_filter_tile_mode_struct_traits.h new file mode 100644 index 00000000000..d6416295187 --- /dev/null +++ b/chromium/skia/public/interfaces/blur_image_filter_tile_mode_struct_traits.h @@ -0,0 +1,48 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SKIA_PUBLIC_INTERFACES_BLUR_IMAGE_FILTER_TILE_MODE_STRUCT_TRAITS_H_ +#define SKIA_PUBLIC_INTERFACES_BLUR_IMAGE_FILTER_TILE_MODE_STRUCT_TRAITS_H_ + +#include "skia/public/interfaces/blur_image_filter_tile_mode.mojom-shared.h" +#include "third_party/skia/include/effects/SkBlurImageFilter.h" + +namespace mojo { + +template <> +struct EnumTraits<skia::mojom::BlurTileMode, SkBlurImageFilter::TileMode> { + static skia::mojom::BlurTileMode ToMojom( + SkBlurImageFilter::TileMode tile_mode) { + switch (tile_mode) { + case SkBlurImageFilter::kClamp_TileMode: + return skia::mojom::BlurTileMode::CLAMP; + case SkBlurImageFilter::kRepeat_TileMode: + return skia::mojom::BlurTileMode::REPEAT; + case SkBlurImageFilter::kClampToBlack_TileMode: + return skia::mojom::BlurTileMode::CLAMP_TO_BLACK; + } + NOTREACHED(); + return skia::mojom::BlurTileMode::CLAMP_TO_BLACK; + } + + static bool FromMojom(skia::mojom::BlurTileMode input, + SkBlurImageFilter::TileMode* out) { + switch (input) { + case skia::mojom::BlurTileMode::CLAMP: + *out = SkBlurImageFilter::kClamp_TileMode; + return true; + case skia::mojom::BlurTileMode::REPEAT: + *out = SkBlurImageFilter::kRepeat_TileMode; + return true; + case skia::mojom::BlurTileMode::CLAMP_TO_BLACK: + *out = SkBlurImageFilter::kClampToBlack_TileMode; + return true; + } + return false; + } +}; + +} // namespace mojo + +#endif // SKIA_PUBLIC_INTERFACES_BLUR_IMAGE_FILTER_TILE_MODE_STRUCT_TRAITS_H_ diff --git a/chromium/skia/public/interfaces/test/traits_test_service.mojom b/chromium/skia/public/interfaces/test/traits_test_service.mojom index eaa829e8163..ac70c92b341 100644 --- a/chromium/skia/public/interfaces/test/traits_test_service.mojom +++ b/chromium/skia/public/interfaces/test/traits_test_service.mojom @@ -5,6 +5,7 @@ module skia.mojom; import "skia/public/interfaces/bitmap.mojom"; +import "skia/public/interfaces/blur_image_filter_tile_mode.mojom"; import "skia/public/interfaces/image_filter.mojom"; // All functions on this interface echo their arguments to test StructTraits @@ -14,5 +15,8 @@ interface TraitsTestService { EchoBitmap(Bitmap b) => (Bitmap pass); [Sync] + EchoBlurImageFilterTileMode(BlurTileMode t) => (BlurTileMode pass); + + [Sync] EchoImageFilter(ImageFilter i) => (ImageFilter pass); }; diff --git a/chromium/skia/public/interfaces/typemaps.gni b/chromium/skia/public/interfaces/typemaps.gni index eee4dd2a011..cfa022bfd50 100644 --- a/chromium/skia/public/interfaces/typemaps.gni +++ b/chromium/skia/public/interfaces/typemaps.gni @@ -3,6 +3,7 @@ # found in the LICENSE file. typemaps = [ + "//skia/public/interfaces/blur_image_filter_tile_mode.typemap", "//skia/public/interfaces/image_filter.typemap", "//skia/public/interfaces/skbitmap.typemap", ] |