chromium: 60.0.3112.78 -> 60.0.3112.90
This commit is contained in:
parent
b35584c279
commit
63fbbd5351
@ -1,5 +1,4 @@
|
|||||||
c8b274991cdd5064aed600add48a0bf6 0001-Clip-FreeType-glyph-bitmap-to-mask.patch
|
75f9199e5e0b31e9fbfbaf1f3071b411 chromium-60.0.3112.90.tar.xz
|
||||||
e5f1c85bec4a50df09da6d4b17249826 chromium-60.0.3112.78.tar.xz
|
|
||||||
034bc28a6988f3d6d1e7f291ec95365c chromium-blink-gcc7.patch
|
034bc28a6988f3d6d1e7f291ec95365c chromium-blink-gcc7.patch
|
||||||
3d379c46c547a21d6f20fc1c1761bff1 chromium-gn-bootstrap-r8.patch
|
3d379c46c547a21d6f20fc1c1761bff1 chromium-gn-bootstrap-r8.patch
|
||||||
c2f283eee77d4123a0952d9ee277ec3c chromium-v8-gcc7.patch
|
c2f283eee77d4123a0952d9ee277ec3c chromium-v8-gcc7.patch
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
untrusted comment: verify with /etc/ports/opt.pub
|
untrusted comment: verify with /etc/ports/opt.pub
|
||||||
RWSE3ohX2g5d/XLaCVmbCMsspxPKBcx0491RclWXvUzRDeDgDIhVMOlvG9QywXC8RZ6nwAVoRIbmwtLLrCW5rFBjhkH0BWFQfQE=
|
RWSE3ohX2g5d/YgHvDr1xQX10nbeFiL6cGaQfU3Bw1tHqKi5Tm1CCp278c2z0VT6w897CXTfAJ2L6KBmu1jcxJyWN4D+wqqhjg8=
|
||||||
SHA256 (Pkgfile) = a2d1d95c4dead5dd2cddd4331807481f82233b5d810433fe2b4c42937d494d79
|
SHA256 (Pkgfile) = d456345301a34e26becfd90e07c4eab4d1dc8e8da1a249171e961894fd45bb84
|
||||||
SHA256 (.footprint) = 1212ab960b6ace8249ad85297b0c158b11ab0822da7f8098c82b3f6e5e8a4909
|
SHA256 (.footprint) = 1212ab960b6ace8249ad85297b0c158b11ab0822da7f8098c82b3f6e5e8a4909
|
||||||
SHA256 (chromium-60.0.3112.78.tar.xz) = a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea
|
SHA256 (chromium-60.0.3112.90.tar.xz) = b42f7965764b4528116622a71a60f52becd4186ff8854f3051bf45c6368739e6
|
||||||
SHA256 (last-commit-position.patch) = d3dc397956a26ec045e76c25c57a1fac5fc0acff94306b2a670daee7ba15709e
|
SHA256 (last-commit-position.patch) = d3dc397956a26ec045e76c25c57a1fac5fc0acff94306b2a670daee7ba15709e
|
||||||
SHA256 (chromium.sh) = 7b182d0ae1e9ef841f8cd0b403a304babd548bf60b5e3808b2144bebdbb7c154
|
SHA256 (chromium.sh) = 7b182d0ae1e9ef841f8cd0b403a304babd548bf60b5e3808b2144bebdbb7c154
|
||||||
SHA256 (chromium.desktop) = caf015652ac7ce9403a5cb6c7bec3dc597222b20c5842059ee15674e2c9209cc
|
SHA256 (chromium.desktop) = caf015652ac7ce9403a5cb6c7bec3dc597222b20c5842059ee15674e2c9209cc
|
||||||
SHA256 (0001-Clip-FreeType-glyph-bitmap-to-mask.patch) = e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7
|
|
||||||
SHA256 (chromium-blink-gcc7.patch) = f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323
|
SHA256 (chromium-blink-gcc7.patch) = f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323
|
||||||
SHA256 (chromium-v8-gcc7.patch) = 46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec
|
SHA256 (chromium-v8-gcc7.patch) = 46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec
|
||||||
SHA256 (chromium-gn-bootstrap-r8.patch) = 06345804c00d9618dad98a2dc04f31ef19912cdf6e9d6e577ef7ffb1fa57003f
|
SHA256 (chromium-gn-bootstrap-r8.patch) = 06345804c00d9618dad98a2dc04f31ef19912cdf6e9d6e577ef7ffb1fa57003f
|
||||||
|
@ -1,170 +0,0 @@
|
|||||||
From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Wagner <bungeman@behemoth.cnc.corp.google.com>
|
|
||||||
Date: Thu, 15 Jun 2017 10:43:17 -0400
|
|
||||||
Subject: [PATCH] Clip FreeType glyph bitmap to mask.
|
|
||||||
|
|
||||||
Skia has for some time assumed that when using FT_Render_Glyph with one
|
|
||||||
of the LCD render modes that one extra pixel would be applied to each
|
|
||||||
side of the resulting bitmap. FreieType has changed to make this more
|
|
||||||
conservative when possible, so the pre-allocated SkMask and the generated
|
|
||||||
FT_Bitmap may no longer agree on the size and origin.
|
|
||||||
|
|
||||||
This change ensures the SkMask and FT_Bitmap are the same size and their
|
|
||||||
origins align. This is not an ideal long term fix, but is both simple and
|
|
||||||
localized for easy and quick back-porting, should that become necessary.
|
|
||||||
|
|
||||||
BUG=skia:6663
|
|
||||||
|
|
||||||
Change-Id: I49ec8f45376be8d867e8aef54eab79537731c310
|
|
||||||
Reviewed-on: https://skia-review.googlesource.com/20327
|
|
||||||
Reviewed-by: Herb Derby <herb@google.com>
|
|
||||||
Commit-Queue: Ben Wagner <bungeman@google.com>
|
|
||||||
---
|
|
||||||
src/ports/SkFontHost_FreeType_common.cpp | 100 +++++++++++++++++++++++++------
|
|
||||||
1 file changed, 83 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp
|
|
||||||
index 9df7268bb4..a216fdb29c 100644
|
|
||||||
--- a/src/ports/SkFontHost_FreeType_common.cpp
|
|
||||||
+++ b/src/ports/SkFontHost_FreeType_common.cpp
|
|
||||||
@@ -395,8 +395,6 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(
|
|
||||||
switch ( face->glyph->format ) {
|
|
||||||
case FT_GLYPH_FORMAT_OUTLINE: {
|
|
||||||
FT_Outline* outline = &face->glyph->outline;
|
|
||||||
- FT_BBox bbox;
|
|
||||||
- FT_Bitmap target;
|
|
||||||
|
|
||||||
int dx = 0, dy = 0;
|
|
||||||
if (fRec.fFlags & SkScalerContext::kSubpixelPositioning_Flag) {
|
|
||||||
@@ -405,36 +403,97 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(
|
|
||||||
// negate dy since freetype-y-goes-up and skia-y-goes-down
|
|
||||||
dy = -dy;
|
|
||||||
}
|
|
||||||
- FT_Outline_Get_CBox(outline, &bbox);
|
|
||||||
- /*
|
|
||||||
- what we really want to do for subpixel is
|
|
||||||
- offset(dx, dy)
|
|
||||||
- compute_bounds
|
|
||||||
- offset(bbox & !63)
|
|
||||||
- but that is two calls to offset, so we do the following, which
|
|
||||||
- achieves the same thing with only one offset call.
|
|
||||||
- */
|
|
||||||
- FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
|
|
||||||
- dy - ((bbox.yMin + dy) & ~63));
|
|
||||||
+
|
|
||||||
+ memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
|
|
||||||
|
|
||||||
if (SkMask::kLCD16_Format == glyph.fMaskFormat) {
|
|
||||||
+ FT_Outline_Translate(outline, dx, dy);
|
|
||||||
FT_Error err = FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V :
|
|
||||||
FT_RENDER_MODE_LCD);
|
|
||||||
if (err) {
|
|
||||||
SK_TRACEFTR(err, "Could not render glyph.");
|
|
||||||
- sk_bzero(glyph.fImage, glyph.computeImageSize());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
SkMask mask;
|
|
||||||
glyph.toMask(&mask);
|
|
||||||
+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE
|
|
||||||
+ memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes);
|
|
||||||
+#endif
|
|
||||||
+ FT_GlyphSlotRec& ftGlyph = *face->glyph;
|
|
||||||
+
|
|
||||||
+ if (!SkIRect::Intersects(mask.fBounds,
|
|
||||||
+ SkIRect::MakeXYWH( ftGlyph.bitmap_left,
|
|
||||||
+ -ftGlyph.bitmap_top,
|
|
||||||
+ ftGlyph.bitmap.width,
|
|
||||||
+ ftGlyph.bitmap.rows)))
|
|
||||||
+ {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // If the FT_Bitmap extent is larger, discard bits of the bitmap outside the mask.
|
|
||||||
+ // If the SkMask extent is larger, shrink mask to fit bitmap (clearing discarded).
|
|
||||||
+ unsigned char* origBuffer = ftGlyph.bitmap.buffer;
|
|
||||||
+ // First align the top left (origin).
|
|
||||||
+ if (-ftGlyph.bitmap_top < mask.fBounds.fTop) {
|
|
||||||
+ int32_t topDiff = mask.fBounds.fTop - (-ftGlyph.bitmap_top);
|
|
||||||
+ ftGlyph.bitmap.buffer += ftGlyph.bitmap.pitch * topDiff;
|
|
||||||
+ ftGlyph.bitmap.rows -= topDiff;
|
|
||||||
+ ftGlyph.bitmap_top = -mask.fBounds.fTop;
|
|
||||||
+ }
|
|
||||||
+ if (ftGlyph.bitmap_left < mask.fBounds.fLeft) {
|
|
||||||
+ int32_t leftDiff = mask.fBounds.fLeft - ftGlyph.bitmap_left;
|
|
||||||
+ ftGlyph.bitmap.buffer += leftDiff;
|
|
||||||
+ ftGlyph.bitmap.width -= leftDiff;
|
|
||||||
+ ftGlyph.bitmap_left = mask.fBounds.fLeft;
|
|
||||||
+ }
|
|
||||||
+ if (mask.fBounds.fTop < -ftGlyph.bitmap_top) {
|
|
||||||
+ mask.fImage += mask.fRowBytes * (-ftGlyph.bitmap_top - mask.fBounds.fTop);
|
|
||||||
+ mask.fBounds.fTop = -ftGlyph.bitmap_top;
|
|
||||||
+ }
|
|
||||||
+ if (mask.fBounds.fLeft < ftGlyph.bitmap_left) {
|
|
||||||
+ mask.fImage += sizeof(uint16_t) * (ftGlyph.bitmap_left - mask.fBounds.fLeft);
|
|
||||||
+ mask.fBounds.fLeft = ftGlyph.bitmap_left;
|
|
||||||
+ }
|
|
||||||
+ // Origins aligned, clean up the width and height.
|
|
||||||
+ int ftVertScale = (doVert ? 3 : 1);
|
|
||||||
+ int ftHoriScale = (doVert ? 1 : 3);
|
|
||||||
+ if (mask.fBounds.height() * ftVertScale < SkToInt(ftGlyph.bitmap.rows)) {
|
|
||||||
+ ftGlyph.bitmap.rows = mask.fBounds.height() * ftVertScale;
|
|
||||||
+ }
|
|
||||||
+ if (mask.fBounds.width() * ftHoriScale < SkToInt(ftGlyph.bitmap.width)) {
|
|
||||||
+ ftGlyph.bitmap.width = mask.fBounds.width() * ftHoriScale;
|
|
||||||
+ }
|
|
||||||
+ if (SkToInt(ftGlyph.bitmap.rows) < mask.fBounds.height() * ftVertScale) {
|
|
||||||
+ mask.fBounds.fBottom = mask.fBounds.fTop + ftGlyph.bitmap.rows / ftVertScale;
|
|
||||||
+ }
|
|
||||||
+ if (SkToInt(ftGlyph.bitmap.width) < mask.fBounds.width() * ftHoriScale) {
|
|
||||||
+ mask.fBounds.fRight = mask.fBounds.fLeft + ftGlyph.bitmap.width / ftHoriScale;
|
|
||||||
+ }
|
|
||||||
if (fPreBlend.isApplicable()) {
|
|
||||||
- copyFT2LCD16<true>(face->glyph->bitmap, mask, doBGR,
|
|
||||||
+ copyFT2LCD16<true>(ftGlyph.bitmap, mask, doBGR,
|
|
||||||
fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
|
|
||||||
} else {
|
|
||||||
- copyFT2LCD16<false>(face->glyph->bitmap, mask, doBGR,
|
|
||||||
+ copyFT2LCD16<false>(ftGlyph.bitmap, mask, doBGR,
|
|
||||||
fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
|
|
||||||
}
|
|
||||||
+ // Restore the buffer pointer so FreeType can properly free it.
|
|
||||||
+ ftGlyph.bitmap.buffer = origBuffer;
|
|
||||||
} else {
|
|
||||||
+ FT_BBox bbox;
|
|
||||||
+ FT_Bitmap target;
|
|
||||||
+ FT_Outline_Get_CBox(outline, &bbox);
|
|
||||||
+ /*
|
|
||||||
+ what we really want to do for subpixel is
|
|
||||||
+ offset(dx, dy)
|
|
||||||
+ compute_bounds
|
|
||||||
+ offset(bbox & !63)
|
|
||||||
+ but that is two calls to offset, so we do the following, which
|
|
||||||
+ achieves the same thing with only one offset call.
|
|
||||||
+ */
|
|
||||||
+ FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
|
|
||||||
+ dy - ((bbox.yMin + dy) & ~63));
|
|
||||||
+
|
|
||||||
target.width = glyph.fWidth;
|
|
||||||
target.rows = glyph.fHeight;
|
|
||||||
target.pitch = glyph.rowBytes();
|
|
||||||
@@ -442,8 +501,15 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(
|
|
||||||
target.pixel_mode = compute_pixel_mode( (SkMask::Format)fRec.fMaskFormat);
|
|
||||||
target.num_grays = 256;
|
|
||||||
|
|
||||||
- memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
|
|
||||||
FT_Outline_Get_Bitmap(face->glyph->library, outline, &target);
|
|
||||||
+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE
|
|
||||||
+ for (int y = 0; y < glyph.fHeight; ++y) {
|
|
||||||
+ for (int x = 0; x < glyph.fWidth; ++x) {
|
|
||||||
+ uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x];
|
|
||||||
+ a = SkTMax<uint8_t>(a, 0x20);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.13.2
|
|
||||||
|
|
@ -5,11 +5,10 @@
|
|||||||
# Depends on: dbus-glib gperf gtk gtk3 libevent libexif libgcrypt ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt yasm
|
# Depends on: dbus-glib gperf gtk gtk3 libevent libexif libgcrypt ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt yasm
|
||||||
|
|
||||||
name=chromium
|
name=chromium
|
||||||
version=60.0.3112.78
|
version=60.0.3112.90
|
||||||
release=1
|
release=1
|
||||||
source=(https://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz
|
source=(https://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz
|
||||||
last-commit-position.patch $name.sh $name.desktop
|
last-commit-position.patch $name.sh $name.desktop
|
||||||
0001-Clip-FreeType-glyph-bitmap-to-mask.patch
|
|
||||||
chromium-blink-gcc7.patch
|
chromium-blink-gcc7.patch
|
||||||
chromium-v8-gcc7.patch
|
chromium-v8-gcc7.patch
|
||||||
chromium-gn-bootstrap-r8.patch)
|
chromium-gn-bootstrap-r8.patch)
|
||||||
@ -23,9 +22,6 @@ build() {
|
|||||||
# we don't use git sources
|
# we don't use git sources
|
||||||
patch -p1 -i $SRC/last-commit-position.patch
|
patch -p1 -i $SRC/last-commit-position.patch
|
||||||
|
|
||||||
# https://bugs.chromium.org/p/skia/issues/detail?id=6663
|
|
||||||
patch -p1 -d third_party/skia -i $SRC/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
|
|
||||||
|
|
||||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
|
||||||
patch -p1 -i $SRC/chromium-blink-gcc7.patch
|
patch -p1 -i $SRC/chromium-blink-gcc7.patch
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user