[arch-commits] Commit in chromium/repos (36 files)

Evangelos Foutras foutrelis at archlinux.org
Wed Jul 26 13:37:35 UTC 2017


    Date: Wednesday, July 26, 2017 @ 13:37:35
  Author: foutrelis
Revision: 301278

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  chromium/repos/extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
    (from rev 301277, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch)
  chromium/repos/extra-i686/PKGBUILD
    (from rev 301277, chromium/trunk/PKGBUILD)
  chromium/repos/extra-i686/chromium-blink-gcc7.patch
    (from rev 301277, chromium/trunk/chromium-blink-gcc7.patch)
  chromium/repos/extra-i686/chromium-gn-bootstrap-r8.patch
    (from rev 301277, chromium/trunk/chromium-gn-bootstrap-r8.patch)
  chromium/repos/extra-i686/chromium-v8-gcc7.patch
    (from rev 301277, chromium/trunk/chromium-v8-gcc7.patch)
  chromium/repos/extra-i686/chromium-widevine.patch
    (from rev 301277, chromium/trunk/chromium-widevine.patch)
  chromium/repos/extra-i686/chromium.desktop
    (from rev 301277, chromium/trunk/chromium.desktop)
  chromium/repos/extra-i686/chromium.install
    (from rev 301277, chromium/trunk/chromium.install)
  chromium/repos/extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
    (from rev 301277, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch)
  chromium/repos/extra-x86_64/PKGBUILD
    (from rev 301277, chromium/trunk/PKGBUILD)
  chromium/repos/extra-x86_64/chromium-blink-gcc7.patch
    (from rev 301277, chromium/trunk/chromium-blink-gcc7.patch)
  chromium/repos/extra-x86_64/chromium-gn-bootstrap-r8.patch
    (from rev 301277, chromium/trunk/chromium-gn-bootstrap-r8.patch)
  chromium/repos/extra-x86_64/chromium-v8-gcc7.patch
    (from rev 301277, chromium/trunk/chromium-v8-gcc7.patch)
  chromium/repos/extra-x86_64/chromium-widevine.patch
    (from rev 301277, chromium/trunk/chromium-widevine.patch)
  chromium/repos/extra-x86_64/chromium.desktop
    (from rev 301277, chromium/trunk/chromium.desktop)
  chromium/repos/extra-x86_64/chromium.install
    (from rev 301277, chromium/trunk/chromium.install)
Deleted:
  chromium/repos/extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
  chromium/repos/extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
  chromium/repos/extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
  chromium/repos/extra-i686/PKGBUILD
  chromium/repos/extra-i686/chromium-blink-gcc7.patch
  chromium/repos/extra-i686/chromium-system-ffmpeg-r6.patch
  chromium/repos/extra-i686/chromium-v8-gcc7.patch
  chromium/repos/extra-i686/chromium-widevine.patch
  chromium/repos/extra-i686/chromium.desktop
  chromium/repos/extra-i686/chromium.install
  chromium/repos/extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
  chromium/repos/extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
  chromium/repos/extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
  chromium/repos/extra-x86_64/PKGBUILD
  chromium/repos/extra-x86_64/chromium-blink-gcc7.patch
  chromium/repos/extra-x86_64/chromium-system-ffmpeg-r6.patch
  chromium/repos/extra-x86_64/chromium-v8-gcc7.patch
  chromium/repos/extra-x86_64/chromium-widevine.patch
  chromium/repos/extra-x86_64/chromium.desktop
  chromium/repos/extra-x86_64/chromium.install

------------------------------------------------------------------------------+
 /0001-Clip-FreeType-glyph-bitmap-to-mask.patch                               |  340 ++++++++
 /PKGBUILD                                                                    |  398 ++++++++++
 /chromium-blink-gcc7.patch                                                   |  152 +++
 /chromium-v8-gcc7.patch                                                      |  146 +++
 /chromium-widevine.patch                                                     |   20 
 /chromium.desktop                                                            |  224 +++++
 /chromium.install                                                            |   32 
 extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch   |  118 --
 extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch                     |  170 ----
 extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch   |   35 
 extra-i686/PKGBUILD                                                          |  211 -----
 extra-i686/chromium-blink-gcc7.patch                                         |   76 -
 extra-i686/chromium-gn-bootstrap-r8.patch                                    |   13 
 extra-i686/chromium-system-ffmpeg-r6.patch                                   |   43 -
 extra-i686/chromium-v8-gcc7.patch                                            |   73 -
 extra-i686/chromium-widevine.patch                                           |   10 
 extra-i686/chromium.desktop                                                  |  112 --
 extra-i686/chromium.install                                                  |   16 
 extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch |  118 --
 extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch                   |  170 ----
 extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch |   35 
 extra-x86_64/PKGBUILD                                                        |  211 -----
 extra-x86_64/chromium-blink-gcc7.patch                                       |   76 -
 extra-x86_64/chromium-gn-bootstrap-r8.patch                                  |   13 
 extra-x86_64/chromium-system-ffmpeg-r6.patch                                 |   43 -
 extra-x86_64/chromium-v8-gcc7.patch                                          |   73 -
 extra-x86_64/chromium-widevine.patch                                         |   10 
 extra-x86_64/chromium.desktop                                                |  112 --
 extra-x86_64/chromium.install                                                |   16 
 29 files changed, 1338 insertions(+), 1728 deletions(-)

Deleted: extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
===================================================================
--- extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,118 +0,0 @@
-From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001
-From: "dongseong.hwang" <dongseong.hwang at intel.com>
-Date: Tue, 18 Apr 2017 16:44:55 -0700
-Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of
- drmIoctl.
-
-DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm
-device fd.
-
-In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6
-
-Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all
-verion of kernel for cros has dma-buf.h header.
-https://chromium-review.googlesource.com/c/459544/
-However, there is not any way to distinguish real ChromeOS build and
-current_os="chromeos" build, so remain the local definition to ChromeOS as
-well.
-
-BUG=584248
-R=reveman at chromium.org
-
-Review-Url: https://codereview.chromium.org/2805503003
-Cr-Commit-Position: refs/heads/master@{#465425}
----
- ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++----------------
- 1 file changed, 21 insertions(+), 28 deletions(-)
-
-diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-index d656c338f0a6..1bb441dc25ce 100644
---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -7,36 +7,35 @@
- #include <fcntl.h>
- #include <linux/version.h>
- #include <stddef.h>
-+#include <sys/ioctl.h>
- #include <sys/mman.h>
- #include <xf86drm.h>
- 
- #include "base/debug/crash_logging.h"
- #include "base/memory/ptr_util.h"
-+#include "base/posix/eintr_wrapper.h"
- #include "base/process/memory.h"
- #include "base/process/process_metrics.h"
- #include "base/strings/stringprintf.h"
- #include "base/trace_event/trace_event.h"
- 
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
-+#include <linux/dma-buf.h>
-+#else
- #include <linux/types.h>
- 
--struct local_dma_buf_sync {
-+struct dma_buf_sync {
-   __u64 flags;
- };
- 
--#define LOCAL_DMA_BUF_SYNC_READ (1 << 0)
--#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0)
--#define LOCAL_DMA_BUF_SYNC_RW \
--  (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE)
--#define LOCAL_DMA_BUF_SYNC_START (0 << 2)
--#define LOCAL_DMA_BUF_SYNC_END (1 << 2)
-+#define DMA_BUF_SYNC_READ (1 << 0)
-+#define DMA_BUF_SYNC_WRITE (2 << 0)
-+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
-+#define DMA_BUF_SYNC_START (0 << 2)
-+#define DMA_BUF_SYNC_END (1 << 2)
- 
--#define LOCAL_DMA_BUF_BASE 'b'
--#define LOCAL_DMA_BUF_IOCTL_SYNC \
--  _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync)
--
--#else
--#include <linux/dma-buf.h>
-+#define DMA_BUF_BASE 'b'
-+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
- #endif
- 
- namespace gfx {
-@@ -44,25 +43,19 @@ namespace gfx {
- namespace {
- 
- void PrimeSyncStart(int dmabuf_fd) {
--  struct local_dma_buf_sync sync_start = {0};
-+  struct dma_buf_sync sync_start = {0};
- 
--  sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW;
--#if DCHECK_IS_ON()
--  int rv =
--#endif
--      drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start);
--  DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START";
-+  sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW;
-+  int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start));
-+  PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START";
- }
- 
- void PrimeSyncEnd(int dmabuf_fd) {
--  struct local_dma_buf_sync sync_end = {0};
-+  struct dma_buf_sync sync_end = {0};
- 
--  sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW;
--#if DCHECK_IS_ON()
--  int rv =
--#endif
--      drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end);
--  DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END";
-+  sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW;
-+  int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end));
-+  PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END";
- }
- 
- }  // namespace
--- 
-2.13.0
-

Deleted: extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
===================================================================
--- extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,170 +0,0 @@
-From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001
-From: Ben Wagner <bungeman at 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 at google.com>
-Commit-Queue: Ben Wagner <bungeman at 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
-

Copied: chromium/repos/extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 301277, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch)
===================================================================
--- extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	                        (rev 0)
+++ extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,170 @@
+From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001
+From: Ben Wagner <bungeman at 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 at google.com>
+Commit-Queue: Ben Wagner <bungeman at 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
+

Deleted: extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
===================================================================
--- extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,35 +0,0 @@
-From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001
-From: thomasanderson <thomasanderson at google.com>
-Date: Fri, 28 Apr 2017 11:56:12 -0700
-Subject: [PATCH] Fix kernel version condition for including dma-buf.h
-
-Kernel 4.11 merges the commit that added linux/dma-buf.h
-https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879
-
-This CL increases the required kernel to include this file to 4.11.
-
-BUG=707604
-R=danakj at chromium.org
-
-Review-Url: https://codereview.chromium.org/2851803002
-Cr-Commit-Position: refs/heads/master@{#468078}
----
- ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-index 31ff4f4395b6..4927daf3a61d 100644
---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -19,7 +19,7 @@
- #include "base/strings/stringprintf.h"
- #include "base/trace_event/trace_event.h"
- 
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
- #include <linux/dma-buf.h>
- #else
- #include <linux/types.h>
--- 
-2.13.0
-

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/PKGBUILD	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,211 +0,0 @@
-# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
-# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
-
-# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
-# Keys are the names in the above script; values are the dependencies in Arch
-declare -rgA _system_libs=(
-  #[ffmpeg]=ffmpeg     # https://crbug.com/731766
-  [flac]=flac
-  [harfbuzz-ng]=harfbuzz-icu
-  #[icu]=icu           # Enable again when upstream supports ICU 59
-  [libdrm]=
-  [libjpeg]=libjpeg
-  [libpng]=libpng
-  #[libvpx]=libvpx     # https://bugs.gentoo.org/show_bug.cgi?id=611394
-  [libwebp]=libwebp
-  [libxml]=libxml2
-  [libxslt]=libxslt
-  [re2]=re2
-  [snappy]=snappy
-  [yasm]=
-  [zlib]=minizip
-)
-
-pkgname=chromium
-pkgver=59.0.3071.115
-pkgrel=1
-_launcher_ver=5
-_freetype_rev=5a3490e054bda8a318ebde482
-pkgdesc="A web browser built for speed, simplicity, and security"
-arch=('i686' 'x86_64')
-url="https://www.chromium.org/Home"
-license=('BSD')
-depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
-         'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils'
-         'hicolor-icon-theme')
-depends+=(${_system_libs[@]})
-makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
-optdepends=('kdialog: needed for file dialogs in KDE'
-            'gnome-keyring: for storing passwords in GNOME keyring'
-            'kwallet: for storing passwords in KWallet')
-install=chromium.install
-source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
-        chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
-        chromium-freetype2::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2#commit=$_freetype_rev
-        chromium.desktop
-        chromium-system-ffmpeg-r6.patch
-        0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
-        0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
-        0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-        chromium-blink-gcc7.patch
-        chromium-v8-gcc7.patch
-        chromium-widevine.patch)
-sha256sums=('37cbc9955ae3b25cd4e9851a82ea97a0035021cc90658902938ad1c20f263170'
-            '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
-            'SKIP'
-            '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
-            '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e'
-            '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9'
-            '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6'
-            'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7'
-            'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
-            '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec'
-            'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808')
-
-# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
-# Note: These are for Arch Linux use ONLY. For your own distribution, please
-# get your own set of keys. Feel free to contact foutrelis at archlinux.org for
-# more information.
-_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
-_google_default_client_id=413772536636.apps.googleusercontent.com
-_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
-
-prepare() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/wuInaKJkosg/kMfIV_7wDgAJ
-  mv "$srcdir/chromium-freetype2" third_party/freetype/src
-
-  # Enable support for the Widevine CDM plugin
-  # libwidevinecdm.so is not included, but can be copied over from Chrome
-  # (Version string doesn't seem to matter so let's go with "Pinkie Pie")
-  sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch |
-    patch -Np1
-
-  # https://bugs.chromium.org/p/chromium/issues/detail?id=707604
-  patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
-  patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
-
-  # https://bugs.chromium.org/p/skia/issues/detail?id=6663
-  patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-
-  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
-  patch -Np1 -i ../chromium-blink-gcc7.patch
-
-  # https://bugs.chromium.org/p/chromium/issues/detail?id=614289
-  patch -Np1 -i ../chromium-v8-gcc7.patch
-
-  # Fixes from Gentoo
-  patch -Np1 -i ../chromium-system-ffmpeg-r6.patch
-
-  # Use Python 2
-  find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
-
-  # There are still a lot of relative calls which need a workaround
-  mkdir -p "$srcdir/python2-path"
-  ln -sf /usr/bin/python2 "$srcdir/python2-path/python"
-
-  mkdir -p third_party/node/linux/node-linux-x64/bin
-  ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
-
-  # Remove bundled libraries for which we will use the system copies; this
-  # *should* do what the remove_bundled_libraries.py script does, with the
-  # added benefit of not having to list all the remaining libraries
-  local _lib
-  for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do
-    find -type f -path "*third_party/$_lib/*" \
-      \! -path "*third_party/$_lib/chromium/*" \
-      \! -path "*third_party/$_lib/google/*" \
-      \! -path "*base/third_party/icu/*" \
-      \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-      -delete
-  done
-
-  python2 build/linux/unbundle/replace_gn_files.py \
-    --system-libraries "${!_system_libs[@]}"
-}
-
-build() {
-  make -C chromium-launcher-$_launcher_ver
-
-  cd "$srcdir/$pkgname-$pkgver"
-
-  export PATH="$srcdir/python2-path:$PATH"
-  export TMPDIR="$srcdir/temp"
-  mkdir -p "$TMPDIR"
-
-  local _flags=(
-    'is_clang=false'
-    'clang_use_chrome_plugins=false'
-    'is_debug=false'
-    'fatal_linker_warnings=false'
-    'treat_warnings_as_errors=false'
-    'fieldtrial_testing_like_official_build=true'
-    'remove_webcore_debug_symbols=true'
-    'ffmpeg_branding="Chrome"'
-    'proprietary_codecs=true'
-    'link_pulseaudio=true'
-    'linux_use_bundled_binutils=false'
-    'use_gtk3=true'
-    'use_gconf=false'
-    'use_gnome_keyring=false'
-    'use_gold=false'
-    'use_sysroot=false'
-    'enable_hangout_services_extension=true'
-    'enable_widevine=true'
-    'enable_nacl=false'
-    'enable_swiftshader=false'
-    "google_api_key=\"${_google_api_key}\""
-    "google_default_client_id=\"${_google_default_client_id}\""
-    "google_default_client_secret=\"${_google_default_client_secret}\""
-  )
-
-  python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
-  out/Release/gn gen out/Release --args="${_flags[*]}" \
-    --script-executable=/usr/bin/python2
-
-  ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter
-}
-
-package() {
-  cd chromium-launcher-$_launcher_ver
-  make PREFIX=/usr DESTDIR="$pkgdir" install
-  install -Dm644 LICENSE \
-    "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
-
-  cd "$srcdir/$pkgname-$pkgver"
-
-  install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
-  install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
-  install -Dm644 "$srcdir/chromium.desktop" \
-    "$pkgdir/usr/share/applications/chromium.desktop"
-
-  install -Dm4755 out/Release/chrome_sandbox \
-    "$pkgdir/usr/lib/chromium/chrome-sandbox"
-
-  cp -a \
-    out/Release/{chrome_{100,200}_percent,resources}.pak \
-    out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
-    out/Release/locales \
-    out/Release/icudtl.dat \
-    "$pkgdir/usr/lib/chromium/"
-
-  ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
-
-  for size in 22 24 48 64 128 256; do
-    install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
-      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
-  done
-
-  for size in 16 32; do
-    install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
-      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
-  done
-
-  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
-}
-
-# vim:set ts=2 sw=2 et:

Copied: chromium/repos/extra-i686/PKGBUILD (from rev 301277, chromium/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD	                        (rev 0)
+++ extra-i686/PKGBUILD	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,199 @@
+# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
+
+# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
+# Keys are the names in the above script; values are the dependencies in Arch
+declare -rgA _system_libs=(
+  #[ffmpeg]=ffmpeg           # https://crbug.com/731766
+  [flac]=flac
+  #[freetype]=freetype2      # https://crbug.com/pdfium/733
+  [harfbuzz-ng]=harfbuzz-icu
+  #[icu]=icu                 # Enable again when upstream supports ICU 59
+  [libdrm]=
+  [libjpeg]=libjpeg
+  [libpng]=libpng
+  #[libvpx]=libvpx           # https://bugs.gentoo.org/611394
+  [libwebp]=libwebp
+  #[libxml]=libxml2          # https://bugs.gentoo.org/616818
+  [libxslt]=libxslt
+  [opus]=opus
+  [re2]=re2
+  [snappy]=snappy
+  [yasm]=
+  [zlib]=minizip
+)
+
+pkgname=chromium
+pkgver=60.0.3112.78
+pkgrel=1
+_launcher_ver=5
+pkgdesc="A web browser built for speed, simplicity, and security"
+arch=('i686' 'x86_64')
+url="https://www.chromium.org/Home"
+license=('BSD')
+depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
+         'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
+         'desktop-file-utils' 'hicolor-icon-theme')
+depends+=(${_system_libs[@]})
+makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
+optdepends=('pepper-flash: support for Flash content'
+            'kdialog: needed for file dialogs in KDE'
+            'gnome-keyring: for storing passwords in GNOME keyring'
+            'kwallet: for storing passwords in KWallet')
+install=chromium.install
+source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
+        chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
+        chromium.desktop
+        chromium-gn-bootstrap-r8.patch
+        0001-Clip-FreeType-glyph-bitmap-to-mask.patch
+        chromium-blink-gcc7.patch
+        chromium-v8-gcc7.patch
+        chromium-widevine.patch)
+sha256sums=('a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea'
+            '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
+            '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
+            '06345804c00d9618dad98a2dc04f31ef19912cdf6e9d6e577ef7ffb1fa57003f'
+            'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7'
+            'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
+            '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec'
+            'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808')
+
+# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys.
+_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
+_google_default_client_id=413772536636.apps.googleusercontent.com
+_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # Enable support for the Widevine CDM plugin
+  # libwidevinecdm.so is not included, but can be copied over from Chrome
+  # (Version string doesn't seem to matter so let's go with "Pinkie Pie")
+  sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch |
+    patch -Np1
+
+  # https://bugs.chromium.org/p/skia/issues/detail?id=6663
+  patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch
+
+  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
+  patch -Np1 -i ../chromium-blink-gcc7.patch
+
+  # https://bugs.chromium.org/p/chromium/issues/detail?id=614289
+  patch -Np1 -i ../chromium-v8-gcc7.patch
+
+  # Fixes from Gentoo
+  patch -Np1 -i ../chromium-gn-bootstrap-r8.patch
+
+  # Use Python 2
+  find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
+
+  # There are still a lot of relative calls which need a workaround
+  mkdir -p "$srcdir/python2-path"
+  ln -sf /usr/bin/python2 "$srcdir/python2-path/python"
+
+  mkdir -p third_party/node/linux/node-linux-x64/bin
+  ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
+
+  # Remove bundled libraries for which we will use the system copies; this
+  # *should* do what the remove_bundled_libraries.py script does, with the
+  # added benefit of not having to list all the remaining libraries
+  local _lib
+  for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do
+    find -type f -path "*third_party/$_lib/*" \
+      \! -path "*third_party/$_lib/chromium/*" \
+      \! -path "*third_party/$_lib/google/*" \
+      \! -path "*base/third_party/icu/*" \
+      \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+      -delete
+  done
+
+  python2 build/linux/unbundle/replace_gn_files.py \
+    --system-libraries "${!_system_libs[@]}"
+}
+
+build() {
+  make -C chromium-launcher-$_launcher_ver
+
+  cd "$srcdir/$pkgname-$pkgver"
+
+  export PATH="$srcdir/python2-path:$PATH"
+  export TMPDIR="$srcdir/temp"
+  mkdir -p "$TMPDIR"
+
+  local _flags=(
+    'is_clang=false'
+    'clang_use_chrome_plugins=false'
+    'is_debug=false'
+    'fatal_linker_warnings=false'
+    'treat_warnings_as_errors=false'
+    'fieldtrial_testing_like_official_build=true'
+    'remove_webcore_debug_symbols=true'
+    'ffmpeg_branding="Chrome"'
+    'proprietary_codecs=true'
+    'link_pulseaudio=true'
+    'linux_use_bundled_binutils=false'
+    'use_gtk3=true'
+    'use_gconf=false'
+    'use_gnome_keyring=false'
+    'use_gold=false'
+    'use_sysroot=false'
+    'enable_hangout_services_extension=true'
+    'enable_widevine=true'
+    'enable_nacl=false'
+    'enable_swiftshader=false'
+    "google_api_key=\"${_google_api_key}\""
+    "google_default_client_id=\"${_google_default_client_id}\""
+    "google_default_client_secret=\"${_google_default_client_secret}\""
+  )
+
+  python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
+  out/Release/gn gen out/Release --args="${_flags[*]}" \
+    --script-executable=/usr/bin/python2
+
+  ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter
+}
+
+package() {
+  cd chromium-launcher-$_launcher_ver
+  make PREFIX=/usr DESTDIR="$pkgdir" install
+  install -Dm644 LICENSE \
+    "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
+
+  cd "$srcdir/$pkgname-$pkgver"
+
+  install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
+  install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
+  install -Dm644 "$srcdir/chromium.desktop" \
+    "$pkgdir/usr/share/applications/chromium.desktop"
+
+  install -Dm4755 out/Release/chrome_sandbox \
+    "$pkgdir/usr/lib/chromium/chrome-sandbox"
+
+  cp -a \
+    out/Release/{chrome_{100,200}_percent,resources}.pak \
+    out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
+    out/Release/locales \
+    out/Release/icudtl.dat \
+    "$pkgdir/usr/lib/chromium/"
+
+  ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
+
+  for size in 22 24 48 64 128 256; do
+    install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
+      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+  done
+
+  for size in 16 32; do
+    install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
+      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+  done
+
+  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: extra-i686/chromium-blink-gcc7.patch
===================================================================
--- extra-i686/chromium-blink-gcc7.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium-blink-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,76 +0,0 @@
---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig	2017-06-06 15:05:38.145247996 +0300
-+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h	2017-06-06 15:06:13.866246667 +0300
-@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked
-   return *this;
- }
- 
-+inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
-+  DCHECK(a.prev_);
-+  DCHECK(a.next_);
-+  DCHECK(b.prev_);
-+  DCHECK(b.next_);
-+  swap(a.prev_, b.prev_);
-+  swap(a.next_, b.next_);
-+  if (b.next_ == &a) {
-+    DCHECK_EQ(b.prev_, &a);
-+    b.next_ = &b;
-+    b.prev_ = &b;
-+  } else {
-+    b.next_->prev_ = &b;
-+    b.prev_->next_ = &b;
-+  }
-+  if (a.next_ == &b) {
-+    DCHECK_EQ(a.prev_, &b);
-+    a.next_ = &a;
-+    a.prev_ = &a;
-+  } else {
-+    a.next_->prev_ = &a;
-+    a.prev_->next_ = &a;
-+  }
-+}
-+
- template <typename T, typename U, typename V, typename W>
- inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) {
-   impl_.Swap(other.impl_);
-@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e
-   erase(Find(value));
- }
- 
--inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
--  DCHECK(a.prev_);
--  DCHECK(a.next_);
--  DCHECK(b.prev_);
--  DCHECK(b.next_);
--  swap(a.prev_, b.prev_);
--  swap(a.next_, b.next_);
--  if (b.next_ == &a) {
--    DCHECK_EQ(b.prev_, &a);
--    b.next_ = &b;
--    b.prev_ = &b;
--  } else {
--    b.next_->prev_ = &b;
--    b.prev_->next_ = &b;
--  }
--  if (a.next_ == &b) {
--    DCHECK_EQ(a.prev_, &b);
--    a.next_ = &a;
--    a.prev_ = &a;
--  } else {
--    a.next_->prev_ = &a;
--    a.prev_->next_ = &a;
--  }
--}
--
- inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
-   DCHECK_NE(a.next_, &a);
-   DCHECK_NE(b.next_, &b);
---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig	2017-06-06 16:16:43.657661313 +0300
-+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h	2017-06-06 16:16:50.911198032 +0300
-@@ -5,6 +5,7 @@
- #include "platform/PlatformExport.h"
- #include "platform/wtf/ThreadSpecific.h"
- 
-+#include <functional>
- #include <memory>
- 
- namespace gpu {

Copied: chromium/repos/extra-i686/chromium-blink-gcc7.patch (from rev 301277, chromium/trunk/chromium-blink-gcc7.patch)
===================================================================
--- extra-i686/chromium-blink-gcc7.patch	                        (rev 0)
+++ extra-i686/chromium-blink-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,76 @@
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig	2017-06-06 15:05:38.145247996 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h	2017-06-06 15:06:13.866246667 +0300
+@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked
+   return *this;
+ }
+ 
++inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
++  DCHECK(a.prev_);
++  DCHECK(a.next_);
++  DCHECK(b.prev_);
++  DCHECK(b.next_);
++  swap(a.prev_, b.prev_);
++  swap(a.next_, b.next_);
++  if (b.next_ == &a) {
++    DCHECK_EQ(b.prev_, &a);
++    b.next_ = &b;
++    b.prev_ = &b;
++  } else {
++    b.next_->prev_ = &b;
++    b.prev_->next_ = &b;
++  }
++  if (a.next_ == &b) {
++    DCHECK_EQ(a.prev_, &b);
++    a.next_ = &a;
++    a.prev_ = &a;
++  } else {
++    a.next_->prev_ = &a;
++    a.prev_->next_ = &a;
++  }
++}
++
+ template <typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) {
+   impl_.Swap(other.impl_);
+@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e
+   erase(Find(value));
+ }
+ 
+-inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+-  DCHECK(a.prev_);
+-  DCHECK(a.next_);
+-  DCHECK(b.prev_);
+-  DCHECK(b.next_);
+-  swap(a.prev_, b.prev_);
+-  swap(a.next_, b.next_);
+-  if (b.next_ == &a) {
+-    DCHECK_EQ(b.prev_, &a);
+-    b.next_ = &b;
+-    b.prev_ = &b;
+-  } else {
+-    b.next_->prev_ = &b;
+-    b.prev_->next_ = &b;
+-  }
+-  if (a.next_ == &b) {
+-    DCHECK_EQ(a.prev_, &b);
+-    a.next_ = &a;
+-    a.prev_ = &a;
+-  } else {
+-    a.next_->prev_ = &a;
+-    a.prev_->next_ = &a;
+-  }
+-}
+-
+ inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+   DCHECK_NE(a.next_, &a);
+   DCHECK_NE(b.next_, &b);
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig	2017-06-06 16:16:43.657661313 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h	2017-06-06 16:16:50.911198032 +0300
+@@ -5,6 +5,7 @@
+ #include "platform/PlatformExport.h"
+ #include "platform/wtf/ThreadSpecific.h"
+ 
++#include <functional>
+ #include <memory>
+ 
+ namespace gpu {

Copied: chromium/repos/extra-i686/chromium-gn-bootstrap-r8.patch (from rev 301277, chromium/trunk/chromium-gn-bootstrap-r8.patch)
===================================================================
--- extra-i686/chromium-gn-bootstrap-r8.patch	                        (rev 0)
+++ extra-i686/chromium-gn-bootstrap-r8.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,13 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 6f2f5b1264519ea38cc36fb0b7e2cc24c378ca7a..0b03d2626b358fb90ab39d737679ee47bd60303b 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -487,6 +487,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/sys_info.cc',
+       'base/task_runner.cc',
+       'base/task_scheduler/delayed_task_manager.cc',
++      'base/task_scheduler/environment_config.cc',
+       'base/task_scheduler/post_task.cc',
+       'base/task_scheduler/priority_queue.cc',
+       'base/task_scheduler/scheduler_lock_impl.cc',

Deleted: extra-i686/chromium-system-ffmpeg-r6.patch
===================================================================
--- extra-i686/chromium-system-ffmpeg-r6.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium-system-ffmpeg-r6.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,43 +0,0 @@
---- a/media/ffmpeg/ffmpeg_common.h.orig	2017-04-07 18:17:22.623538889 +0000
-+++ b/media/ffmpeg/ffmpeg_common.h	2017-04-07 18:18:16.780656283 +0000
-@@ -23,10 +23,12 @@
- 
- // Include FFmpeg header files.
- extern "C" {
-+#if !defined(USE_SYSTEM_FFMPEG)
- // Disable deprecated features which result in spammy compile warnings.  This
- // list of defines must mirror those in the 'defines' section of FFmpeg's
- // BUILD.gn file or the headers below will generate different structures!
- #define FF_API_CONVERGENCE_DURATION 0
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- // Upstream libavcodec/utils.c still uses the deprecated
- // av_dup_packet(), causing deprecation warnings.
- // The normal fix for such things is to disable the feature as below,
-@@ -40,7 +42,9 @@
- MSVC_PUSH_DISABLE_WARNING(4244);
- #include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
-+#if !defined(USE_SYSTEM_FFMPEG)
- #include <libavformat/internal.h>
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- #include <libavformat/avio.h>
- #include <libavutil/avutil.h>
- #include <libavutil/imgutils.h>
---- a/media/filters/ffmpeg_demuxer.cc.orig	2017-04-07 18:15:14.776901183 +0000
-+++ b/media/filters/ffmpeg_demuxer.cc	2017-04-07 18:15:54.813727201 +0000
-@@ -1223,6 +1223,7 @@
-   // If no estimate is found, the stream entry will be kInfiniteDuration.
-   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
-                                                     kInfiniteDuration);
-+#if !defined(USE_SYSTEM_FFMPEG)
-   const AVFormatInternal* internal = format_context->internal;
-   if (internal && internal->packet_buffer &&
-       format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
-@@ -1246,6 +1247,7 @@
-       packet_buffer = packet_buffer->next;
-     }
-   }
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- 
-   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
- 

Deleted: extra-i686/chromium-v8-gcc7.patch
===================================================================
--- extra-i686/chromium-v8-gcc7.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium-v8-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,73 +0,0 @@
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
---- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects/hash-table.h	2017-06-06 14:35:41.558245559 +0300
-@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
-  public:
-   typedef Shape ShapeT;
- 
--  // Wrapper methods
--  inline uint32_t Hash(Key key) {
--    if (Shape::UsesSeed) {
--      return Shape::SeededHash(key, GetHeap()->HashSeed());
--    } else {
--      return Shape::Hash(key);
--    }
--  }
--
--  inline uint32_t HashForObject(Key key, Object* object) {
--    if (Shape::UsesSeed) {
--      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
--    } else {
--      return Shape::HashForObject(key, object);
--    }
--  }
-+  // Wrapper methods.  Defined in src/objects-inl.h
-+  // to break a cycle with src/heap/heap.h.
-+  inline uint32_t Hash(Key key);
-+  inline uint32_t HashForObject(Key key, Object* object);
- 
-   // Returns a new HashTable object.
-   MUST_USE_RESULT static Handle<Derived> New(
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
---- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h	2017-06-06 14:35:41.554912132 +0300
-@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
- 
-   template <typename StaticVisitor>
-   static inline void IterateBody(HeapObject* obj, int object_size) {
--    IterateBody(obj);
-+    IterateBody<StaticVisitor>(obj);
-   }
- };
- 
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
---- chromium-59.0.3071.86.orig/v8/src/objects-inl.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects-inl.h	2017-06-06 14:35:41.558245559 +0300
-@@ -46,6 +46,27 @@
- namespace v8 {
- namespace internal {
- 
-+template <typename Derived, typename Shape, typename Key>
-+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
-+  if (Shape::UsesSeed) {
-+    return Shape::SeededHash(key, GetHeap()->HashSeed());
-+  } else {
-+    return Shape::Hash(key);
-+  }
-+}
-+
-+
-+template <typename Derived, typename Shape, typename Key>
-+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
-+                                                       Object* object) {
-+  if (Shape::UsesSeed) {
-+    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
-+  } else {
-+    return Shape::HashForObject(key, object);
-+  }
-+}
-+
-+
- PropertyDetails::PropertyDetails(Smi* smi) {
-   value_ = smi->value();
- }

Copied: chromium/repos/extra-i686/chromium-v8-gcc7.patch (from rev 301277, chromium/trunk/chromium-v8-gcc7.patch)
===================================================================
--- extra-i686/chromium-v8-gcc7.patch	                        (rev 0)
+++ extra-i686/chromium-v8-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,73 @@
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
+--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects/hash-table.h	2017-06-06 14:35:41.558245559 +0300
+@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
+  public:
+   typedef Shape ShapeT;
+ 
+-  // Wrapper methods
+-  inline uint32_t Hash(Key key) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHash(key, GetHeap()->HashSeed());
+-    } else {
+-      return Shape::Hash(key);
+-    }
+-  }
+-
+-  inline uint32_t HashForObject(Key key, Object* object) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+-    } else {
+-      return Shape::HashForObject(key, object);
+-    }
+-  }
++  // Wrapper methods.  Defined in src/objects-inl.h
++  // to break a cycle with src/heap/heap.h.
++  inline uint32_t Hash(Key key);
++  inline uint32_t HashForObject(Key key, Object* object);
+ 
+   // Returns a new HashTable object.
+   MUST_USE_RESULT static Handle<Derived> New(
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h	2017-06-06 14:35:41.554912132 +0300
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
+ 
+   template <typename StaticVisitor>
+   static inline void IterateBody(HeapObject* obj, int object_size) {
+-    IterateBody(obj);
++    IterateBody<StaticVisitor>(obj);
+   }
+ };
+ 
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-inl.h	2017-06-06 14:35:41.558245559 +0300
+@@ -46,6 +46,27 @@
+ namespace v8 {
+ namespace internal {
+ 
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHash(key, GetHeap()->HashSeed());
++  } else {
++    return Shape::Hash(key);
++  }
++}
++
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++                                                       Object* object) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++  } else {
++    return Shape::HashForObject(key, object);
++  }
++}
++
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+   value_ = smi->value();
+ }

Deleted: extra-i686/chromium-widevine.patch
===================================================================
--- extra-i686/chromium-widevine.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium-widevine.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,10 +0,0 @@
-diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
---- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-14 01:05:17.000000000 +0200
-+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-21 19:18:51.287978456 +0200
-@@ -12,4 +12,6 @@
- 
- #define WIDEVINE_CDM_AVAILABLE
- 
-+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
-+
- #endif  // WIDEVINE_CDM_VERSION_H_

Copied: chromium/repos/extra-i686/chromium-widevine.patch (from rev 301277, chromium/trunk/chromium-widevine.patch)
===================================================================
--- extra-i686/chromium-widevine.patch	                        (rev 0)
+++ extra-i686/chromium-widevine.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,10 @@
+diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
+--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-14 01:05:17.000000000 +0200
++++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-21 19:18:51.287978456 +0200
+@@ -12,4 +12,6 @@
+ 
+ #define WIDEVINE_CDM_AVAILABLE
+ 
++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
++
+ #endif  // WIDEVINE_CDM_VERSION_H_

Deleted: extra-i686/chromium.desktop
===================================================================
--- extra-i686/chromium.desktop	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium.desktop	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,112 +0,0 @@
-[Desktop Entry]
-Name=Chromium
-# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
-# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
-GenericName=Web Browser
-GenericName[ar]=متصفح الشبكة
-GenericName[bg]=Уеб браузър
-GenericName[ca]=Navegador web
-GenericName[cs]=WWW prohlížeč
-GenericName[da]=Browser
-GenericName[de]=Web-Browser
-GenericName[el]=Περιηγητής ιστού
-GenericName[en_GB]=Web Browser
-GenericName[es]=Navegador web
-GenericName[et]=Veebibrauser
-GenericName[fi]=WWW-selain
-GenericName[fr]=Navigateur Web
-GenericName[gu]=વેબ બ્રાઉઝર
-GenericName[he]=דפדפן אינטרנט
-GenericName[hi]=वेब ब्राउज़र
-GenericName[hu]=Webböngésző
-GenericName[it]=Browser Web
-GenericName[ja]=ウェブブラウザ
-GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
-GenericName[ko]=웹 브라우저
-GenericName[lt]=Žiniatinklio naršyklė
-GenericName[lv]=Tīmekļa pārlūks
-GenericName[ml]=വെബ് ബ്രൌസര്‍
-GenericName[mr]=वेब ब्राऊजर
-GenericName[nb]=Nettleser
-GenericName[nl]=Webbrowser
-GenericName[pl]=Przeglądarka WWW
-GenericName[pt]=Navegador Web
-GenericName[pt_BR]=Navegador da Internet
-GenericName[ro]=Navigator de Internet
-GenericName[ru]=Веб-браузер
-GenericName[sl]=Spletni brskalnik
-GenericName[sv]=Webbläsare
-GenericName[ta]=இணைய உலாவி
-GenericName[th]=เว็บเบราว์เซอร์
-GenericName[tr]=Web Tarayıcı
-GenericName[uk]=Навігатор Тенет
-GenericName[zh_CN]=网页浏览器
-GenericName[zh_HK]=網頁瀏覽器
-GenericName[zh_TW]=網頁瀏覽器
-# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
-GenericName[bn]=ওয়েব ব্রাউজার
-GenericName[fil]=Web Browser
-GenericName[hr]=Web preglednik
-GenericName[id]=Browser Web
-GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
-GenericName[sk]=WWW prehliadač
-GenericName[sr]=Интернет прегледник
-GenericName[te]=మహాతల అన్వేషి
-GenericName[vi]=Bộ duyệt Web
-# Gnome and KDE 3 uses Comment.
-Comment=Access the Internet
-Comment[ar]=الدخول إلى الإنترنت
-Comment[bg]=Достъп до интернет
-Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
-Comment[ca]=Accedeix a Internet
-Comment[cs]=Přístup k internetu
-Comment[da]=Få adgang til internettet
-Comment[de]=Internetzugriff
-Comment[el]=Πρόσβαση στο Διαδίκτυο
-Comment[en_GB]=Access the Internet
-Comment[es]=Accede a Internet.
-Comment[et]=Pääs Internetti
-Comment[fi]=Käytä internetiä
-Comment[fil]=I-access ang Internet
-Comment[fr]=Accéder à Internet
-Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
-Comment[he]=גישה אל האינטרנט
-Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
-Comment[hr]=Pristup Internetu
-Comment[hu]=Internetelérés
-Comment[id]=Akses Internet
-Comment[it]=Accesso a Internet
-Comment[ja]=インターネットにアクセス
-Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
-Comment[ko]=인터넷 연결
-Comment[lt]=Interneto prieiga
-Comment[lv]=Piekļūt internetam
-Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
-Comment[mr]=इंटरनेटमध्ये प्रवेश करा
-Comment[nb]=Gå til Internett
-Comment[nl]=Verbinding maken met internet
-Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
-Comment[pl]=Skorzystaj z internetu
-Comment[pt]=Aceder à Internet
-Comment[pt_BR]=Acessar a internet
-Comment[ro]=Accesaţi Internetul
-Comment[ru]=Доступ в Интернет
-Comment[sk]=Prístup do siete Internet
-Comment[sl]=Dostop do interneta
-Comment[sr]=Приступите Интернету
-Comment[sv]=Gå ut på Internet
-Comment[ta]=இணையத்தை அணுகுதல்
-Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
-Comment[th]=เข้าถึงอินเทอร์เน็ต
-Comment[tr]=İnternet'e erişin
-Comment[uk]=Доступ до Інтернету
-Comment[vi]=Truy cập Internet
-Comment[zh_CN]=访问互联网
-Comment[zh_HK]=連線到網際網路
-Comment[zh_TW]=連線到網際網路
-Exec=chromium %U
-Terminal=false
-Icon=chromium
-Type=Application
-Categories=GTK;Network;WebBrowser;
-MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;

Copied: chromium/repos/extra-i686/chromium.desktop (from rev 301277, chromium/trunk/chromium.desktop)
===================================================================
--- extra-i686/chromium.desktop	                        (rev 0)
+++ extra-i686/chromium.desktop	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,112 @@
+[Desktop Entry]
+Name=Chromium
+# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
+# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
+GenericName=Web Browser
+GenericName[ar]=متصفح الشبكة
+GenericName[bg]=Уеб браузър
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlížeč
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Tīmekļa pārlūks
+GenericName[ml]=വെബ് ബ്രൌസര്‍
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браузер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணைய உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_HK]=網頁瀏覽器
+GenericName[zh_TW]=網頁瀏覽器
+# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+# Gnome and KDE 3 uses Comment.
+Comment=Access the Internet
+Comment[ar]=الدخول إلى الإنترنت
+Comment[bg]=Достъп до интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=Få adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=Πρόσβαση στο Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה אל האינטרנט
+Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=インターネットにアクセス
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=Piekļūt internetam
+Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=Gå til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder à Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=Accesaţi Internetul
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prístup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=Приступите Интернету
+Comment[sv]=Gå ut på Internet
+Comment[ta]=இணையத்தை அணுகுதல்
+Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=İnternet'e erişin
+Comment[uk]=Доступ до Інтернету
+Comment[vi]=Truy cập Internet
+Comment[zh_CN]=访问互联网
+Comment[zh_HK]=連線到網際網路
+Comment[zh_TW]=連線到網際網路
+Exec=chromium %U
+Terminal=false
+Icon=chromium
+Type=Application
+Categories=GTK;Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;

Deleted: extra-i686/chromium.install
===================================================================
--- extra-i686/chromium.install	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-i686/chromium.install	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,16 +0,0 @@
-post_upgrade() {
-  if (($(vercmp $2 42.0.2311.90-1) < 0)); then
-    echo ':: This Chromium package no longer supports custom flags passed via the'
-    echo '   /etc/chromium/default file (or any other files under /etc/chromium/).'
-    echo
-    echo '   The new /usr/bin/chromium launcher script will automatically detect'
-    echo '   Pepper Flash (if installed) and pass the correct flags to Chromium.'
-    echo
-    echo '   If you need to pass extra command-line arguments to Chromium, you'
-    echo '   can put them in a "chromium-flags.conf" file under $HOME/.config/'
-    echo '   (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell'
-    echo '   quoting rules apply but no further parsing is performed.'
-  fi
-}
-
-# vim:set ts=2 sw=2 et:

Copied: chromium/repos/extra-i686/chromium.install (from rev 301277, chromium/trunk/chromium.install)
===================================================================
--- extra-i686/chromium.install	                        (rev 0)
+++ extra-i686/chromium.install	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,16 @@
+post_upgrade() {
+  if (($(vercmp $2 42.0.2311.90-1) < 0)); then
+    echo ':: This Chromium package no longer supports custom flags passed via the'
+    echo '   /etc/chromium/default file (or any other files under /etc/chromium/).'
+    echo
+    echo '   The new /usr/bin/chromium launcher script will automatically detect'
+    echo '   Pepper Flash (if installed) and pass the correct flags to Chromium.'
+    echo
+    echo '   If you need to pass extra command-line arguments to Chromium, you'
+    echo '   can put them in a "chromium-flags.conf" file under $HOME/.config/'
+    echo '   (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell'
+    echo '   quoting rules apply but no further parsing is performed.'
+  fi
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
===================================================================
--- extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,118 +0,0 @@
-From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001
-From: "dongseong.hwang" <dongseong.hwang at intel.com>
-Date: Tue, 18 Apr 2017 16:44:55 -0700
-Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of
- drmIoctl.
-
-DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm
-device fd.
-
-In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6
-
-Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all
-verion of kernel for cros has dma-buf.h header.
-https://chromium-review.googlesource.com/c/459544/
-However, there is not any way to distinguish real ChromeOS build and
-current_os="chromeos" build, so remain the local definition to ChromeOS as
-well.
-
-BUG=584248
-R=reveman at chromium.org
-
-Review-Url: https://codereview.chromium.org/2805503003
-Cr-Commit-Position: refs/heads/master@{#465425}
----
- ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++----------------
- 1 file changed, 21 insertions(+), 28 deletions(-)
-
-diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-index d656c338f0a6..1bb441dc25ce 100644
---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -7,36 +7,35 @@
- #include <fcntl.h>
- #include <linux/version.h>
- #include <stddef.h>
-+#include <sys/ioctl.h>
- #include <sys/mman.h>
- #include <xf86drm.h>
- 
- #include "base/debug/crash_logging.h"
- #include "base/memory/ptr_util.h"
-+#include "base/posix/eintr_wrapper.h"
- #include "base/process/memory.h"
- #include "base/process/process_metrics.h"
- #include "base/strings/stringprintf.h"
- #include "base/trace_event/trace_event.h"
- 
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
-+#include <linux/dma-buf.h>
-+#else
- #include <linux/types.h>
- 
--struct local_dma_buf_sync {
-+struct dma_buf_sync {
-   __u64 flags;
- };
- 
--#define LOCAL_DMA_BUF_SYNC_READ (1 << 0)
--#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0)
--#define LOCAL_DMA_BUF_SYNC_RW \
--  (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE)
--#define LOCAL_DMA_BUF_SYNC_START (0 << 2)
--#define LOCAL_DMA_BUF_SYNC_END (1 << 2)
-+#define DMA_BUF_SYNC_READ (1 << 0)
-+#define DMA_BUF_SYNC_WRITE (2 << 0)
-+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
-+#define DMA_BUF_SYNC_START (0 << 2)
-+#define DMA_BUF_SYNC_END (1 << 2)
- 
--#define LOCAL_DMA_BUF_BASE 'b'
--#define LOCAL_DMA_BUF_IOCTL_SYNC \
--  _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync)
--
--#else
--#include <linux/dma-buf.h>
-+#define DMA_BUF_BASE 'b'
-+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
- #endif
- 
- namespace gfx {
-@@ -44,25 +43,19 @@ namespace gfx {
- namespace {
- 
- void PrimeSyncStart(int dmabuf_fd) {
--  struct local_dma_buf_sync sync_start = {0};
-+  struct dma_buf_sync sync_start = {0};
- 
--  sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW;
--#if DCHECK_IS_ON()
--  int rv =
--#endif
--      drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start);
--  DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START";
-+  sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW;
-+  int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start));
-+  PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START";
- }
- 
- void PrimeSyncEnd(int dmabuf_fd) {
--  struct local_dma_buf_sync sync_end = {0};
-+  struct dma_buf_sync sync_end = {0};
- 
--  sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW;
--#if DCHECK_IS_ON()
--  int rv =
--#endif
--      drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end);
--  DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END";
-+  sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW;
-+  int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end));
-+  PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END";
- }
- 
- }  // namespace
--- 
-2.13.0
-

Deleted: extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch
===================================================================
--- extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,170 +0,0 @@
-From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001
-From: Ben Wagner <bungeman at 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 at google.com>
-Commit-Queue: Ben Wagner <bungeman at 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
-

Copied: chromium/repos/extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 301277, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch)
===================================================================
--- extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	                        (rev 0)
+++ extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,170 @@
+From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001
+From: Ben Wagner <bungeman at 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 at google.com>
+Commit-Queue: Ben Wagner <bungeman at 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
+

Deleted: extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
===================================================================
--- extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,35 +0,0 @@
-From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001
-From: thomasanderson <thomasanderson at google.com>
-Date: Fri, 28 Apr 2017 11:56:12 -0700
-Subject: [PATCH] Fix kernel version condition for including dma-buf.h
-
-Kernel 4.11 merges the commit that added linux/dma-buf.h
-https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879
-
-This CL increases the required kernel to include this file to 4.11.
-
-BUG=707604
-R=danakj at chromium.org
-
-Review-Url: https://codereview.chromium.org/2851803002
-Cr-Commit-Position: refs/heads/master@{#468078}
----
- ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-index 31ff4f4395b6..4927daf3a61d 100644
---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -19,7 +19,7 @@
- #include "base/strings/stringprintf.h"
- #include "base/trace_event/trace_event.h"
- 
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
- #include <linux/dma-buf.h>
- #else
- #include <linux/types.h>
--- 
-2.13.0
-

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/PKGBUILD	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,211 +0,0 @@
-# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
-# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
-
-# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
-# Keys are the names in the above script; values are the dependencies in Arch
-declare -rgA _system_libs=(
-  #[ffmpeg]=ffmpeg     # https://crbug.com/731766
-  [flac]=flac
-  [harfbuzz-ng]=harfbuzz-icu
-  #[icu]=icu           # Enable again when upstream supports ICU 59
-  [libdrm]=
-  [libjpeg]=libjpeg
-  [libpng]=libpng
-  #[libvpx]=libvpx     # https://bugs.gentoo.org/show_bug.cgi?id=611394
-  [libwebp]=libwebp
-  [libxml]=libxml2
-  [libxslt]=libxslt
-  [re2]=re2
-  [snappy]=snappy
-  [yasm]=
-  [zlib]=minizip
-)
-
-pkgname=chromium
-pkgver=59.0.3071.115
-pkgrel=1
-_launcher_ver=5
-_freetype_rev=5a3490e054bda8a318ebde482
-pkgdesc="A web browser built for speed, simplicity, and security"
-arch=('i686' 'x86_64')
-url="https://www.chromium.org/Home"
-license=('BSD')
-depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
-         'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils'
-         'hicolor-icon-theme')
-depends+=(${_system_libs[@]})
-makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
-optdepends=('kdialog: needed for file dialogs in KDE'
-            'gnome-keyring: for storing passwords in GNOME keyring'
-            'kwallet: for storing passwords in KWallet')
-install=chromium.install
-source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
-        chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
-        chromium-freetype2::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2#commit=$_freetype_rev
-        chromium.desktop
-        chromium-system-ffmpeg-r6.patch
-        0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
-        0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
-        0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-        chromium-blink-gcc7.patch
-        chromium-v8-gcc7.patch
-        chromium-widevine.patch)
-sha256sums=('37cbc9955ae3b25cd4e9851a82ea97a0035021cc90658902938ad1c20f263170'
-            '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
-            'SKIP'
-            '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
-            '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e'
-            '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9'
-            '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6'
-            'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7'
-            'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
-            '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec'
-            'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808')
-
-# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
-# Note: These are for Arch Linux use ONLY. For your own distribution, please
-# get your own set of keys. Feel free to contact foutrelis at archlinux.org for
-# more information.
-_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
-_google_default_client_id=413772536636.apps.googleusercontent.com
-_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
-
-prepare() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/wuInaKJkosg/kMfIV_7wDgAJ
-  mv "$srcdir/chromium-freetype2" third_party/freetype/src
-
-  # Enable support for the Widevine CDM plugin
-  # libwidevinecdm.so is not included, but can be copied over from Chrome
-  # (Version string doesn't seem to matter so let's go with "Pinkie Pie")
-  sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch |
-    patch -Np1
-
-  # https://bugs.chromium.org/p/chromium/issues/detail?id=707604
-  patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
-  patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
-
-  # https://bugs.chromium.org/p/skia/issues/detail?id=6663
-  patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch
-
-  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
-  patch -Np1 -i ../chromium-blink-gcc7.patch
-
-  # https://bugs.chromium.org/p/chromium/issues/detail?id=614289
-  patch -Np1 -i ../chromium-v8-gcc7.patch
-
-  # Fixes from Gentoo
-  patch -Np1 -i ../chromium-system-ffmpeg-r6.patch
-
-  # Use Python 2
-  find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
-
-  # There are still a lot of relative calls which need a workaround
-  mkdir -p "$srcdir/python2-path"
-  ln -sf /usr/bin/python2 "$srcdir/python2-path/python"
-
-  mkdir -p third_party/node/linux/node-linux-x64/bin
-  ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
-
-  # Remove bundled libraries for which we will use the system copies; this
-  # *should* do what the remove_bundled_libraries.py script does, with the
-  # added benefit of not having to list all the remaining libraries
-  local _lib
-  for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do
-    find -type f -path "*third_party/$_lib/*" \
-      \! -path "*third_party/$_lib/chromium/*" \
-      \! -path "*third_party/$_lib/google/*" \
-      \! -path "*base/third_party/icu/*" \
-      \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-      -delete
-  done
-
-  python2 build/linux/unbundle/replace_gn_files.py \
-    --system-libraries "${!_system_libs[@]}"
-}
-
-build() {
-  make -C chromium-launcher-$_launcher_ver
-
-  cd "$srcdir/$pkgname-$pkgver"
-
-  export PATH="$srcdir/python2-path:$PATH"
-  export TMPDIR="$srcdir/temp"
-  mkdir -p "$TMPDIR"
-
-  local _flags=(
-    'is_clang=false'
-    'clang_use_chrome_plugins=false'
-    'is_debug=false'
-    'fatal_linker_warnings=false'
-    'treat_warnings_as_errors=false'
-    'fieldtrial_testing_like_official_build=true'
-    'remove_webcore_debug_symbols=true'
-    'ffmpeg_branding="Chrome"'
-    'proprietary_codecs=true'
-    'link_pulseaudio=true'
-    'linux_use_bundled_binutils=false'
-    'use_gtk3=true'
-    'use_gconf=false'
-    'use_gnome_keyring=false'
-    'use_gold=false'
-    'use_sysroot=false'
-    'enable_hangout_services_extension=true'
-    'enable_widevine=true'
-    'enable_nacl=false'
-    'enable_swiftshader=false'
-    "google_api_key=\"${_google_api_key}\""
-    "google_default_client_id=\"${_google_default_client_id}\""
-    "google_default_client_secret=\"${_google_default_client_secret}\""
-  )
-
-  python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
-  out/Release/gn gen out/Release --args="${_flags[*]}" \
-    --script-executable=/usr/bin/python2
-
-  ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter
-}
-
-package() {
-  cd chromium-launcher-$_launcher_ver
-  make PREFIX=/usr DESTDIR="$pkgdir" install
-  install -Dm644 LICENSE \
-    "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
-
-  cd "$srcdir/$pkgname-$pkgver"
-
-  install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
-  install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
-  install -Dm644 "$srcdir/chromium.desktop" \
-    "$pkgdir/usr/share/applications/chromium.desktop"
-
-  install -Dm4755 out/Release/chrome_sandbox \
-    "$pkgdir/usr/lib/chromium/chrome-sandbox"
-
-  cp -a \
-    out/Release/{chrome_{100,200}_percent,resources}.pak \
-    out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
-    out/Release/locales \
-    out/Release/icudtl.dat \
-    "$pkgdir/usr/lib/chromium/"
-
-  ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
-
-  for size in 22 24 48 64 128 256; do
-    install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
-      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
-  done
-
-  for size in 16 32; do
-    install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
-      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
-  done
-
-  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
-}
-
-# vim:set ts=2 sw=2 et:

Copied: chromium/repos/extra-x86_64/PKGBUILD (from rev 301277, chromium/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD	                        (rev 0)
+++ extra-x86_64/PKGBUILD	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,199 @@
+# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
+
+# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
+# Keys are the names in the above script; values are the dependencies in Arch
+declare -rgA _system_libs=(
+  #[ffmpeg]=ffmpeg           # https://crbug.com/731766
+  [flac]=flac
+  #[freetype]=freetype2      # https://crbug.com/pdfium/733
+  [harfbuzz-ng]=harfbuzz-icu
+  #[icu]=icu                 # Enable again when upstream supports ICU 59
+  [libdrm]=
+  [libjpeg]=libjpeg
+  [libpng]=libpng
+  #[libvpx]=libvpx           # https://bugs.gentoo.org/611394
+  [libwebp]=libwebp
+  #[libxml]=libxml2          # https://bugs.gentoo.org/616818
+  [libxslt]=libxslt
+  [opus]=opus
+  [re2]=re2
+  [snappy]=snappy
+  [yasm]=
+  [zlib]=minizip
+)
+
+pkgname=chromium
+pkgver=60.0.3112.78
+pkgrel=1
+_launcher_ver=5
+pkgdesc="A web browser built for speed, simplicity, and security"
+arch=('i686' 'x86_64')
+url="https://www.chromium.org/Home"
+license=('BSD')
+depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
+         'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
+         'desktop-file-utils' 'hicolor-icon-theme')
+depends+=(${_system_libs[@]})
+makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
+optdepends=('pepper-flash: support for Flash content'
+            'kdialog: needed for file dialogs in KDE'
+            'gnome-keyring: for storing passwords in GNOME keyring'
+            'kwallet: for storing passwords in KWallet')
+install=chromium.install
+source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
+        chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
+        chromium.desktop
+        chromium-gn-bootstrap-r8.patch
+        0001-Clip-FreeType-glyph-bitmap-to-mask.patch
+        chromium-blink-gcc7.patch
+        chromium-v8-gcc7.patch
+        chromium-widevine.patch)
+sha256sums=('a82db2aa1b9348b619c01894db565eba686780de0e6fa9e83a8f406d06ce03ea'
+            '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
+            '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
+            '06345804c00d9618dad98a2dc04f31ef19912cdf6e9d6e577ef7ffb1fa57003f'
+            'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7'
+            'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
+            '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec'
+            'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808')
+
+# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys.
+_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
+_google_default_client_id=413772536636.apps.googleusercontent.com
+_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # Enable support for the Widevine CDM plugin
+  # libwidevinecdm.so is not included, but can be copied over from Chrome
+  # (Version string doesn't seem to matter so let's go with "Pinkie Pie")
+  sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch |
+    patch -Np1
+
+  # https://bugs.chromium.org/p/skia/issues/detail?id=6663
+  patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch
+
+  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
+  patch -Np1 -i ../chromium-blink-gcc7.patch
+
+  # https://bugs.chromium.org/p/chromium/issues/detail?id=614289
+  patch -Np1 -i ../chromium-v8-gcc7.patch
+
+  # Fixes from Gentoo
+  patch -Np1 -i ../chromium-gn-bootstrap-r8.patch
+
+  # Use Python 2
+  find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
+
+  # There are still a lot of relative calls which need a workaround
+  mkdir -p "$srcdir/python2-path"
+  ln -sf /usr/bin/python2 "$srcdir/python2-path/python"
+
+  mkdir -p third_party/node/linux/node-linux-x64/bin
+  ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
+
+  # Remove bundled libraries for which we will use the system copies; this
+  # *should* do what the remove_bundled_libraries.py script does, with the
+  # added benefit of not having to list all the remaining libraries
+  local _lib
+  for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do
+    find -type f -path "*third_party/$_lib/*" \
+      \! -path "*third_party/$_lib/chromium/*" \
+      \! -path "*third_party/$_lib/google/*" \
+      \! -path "*base/third_party/icu/*" \
+      \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+      -delete
+  done
+
+  python2 build/linux/unbundle/replace_gn_files.py \
+    --system-libraries "${!_system_libs[@]}"
+}
+
+build() {
+  make -C chromium-launcher-$_launcher_ver
+
+  cd "$srcdir/$pkgname-$pkgver"
+
+  export PATH="$srcdir/python2-path:$PATH"
+  export TMPDIR="$srcdir/temp"
+  mkdir -p "$TMPDIR"
+
+  local _flags=(
+    'is_clang=false'
+    'clang_use_chrome_plugins=false'
+    'is_debug=false'
+    'fatal_linker_warnings=false'
+    'treat_warnings_as_errors=false'
+    'fieldtrial_testing_like_official_build=true'
+    'remove_webcore_debug_symbols=true'
+    'ffmpeg_branding="Chrome"'
+    'proprietary_codecs=true'
+    'link_pulseaudio=true'
+    'linux_use_bundled_binutils=false'
+    'use_gtk3=true'
+    'use_gconf=false'
+    'use_gnome_keyring=false'
+    'use_gold=false'
+    'use_sysroot=false'
+    'enable_hangout_services_extension=true'
+    'enable_widevine=true'
+    'enable_nacl=false'
+    'enable_swiftshader=false'
+    "google_api_key=\"${_google_api_key}\""
+    "google_default_client_id=\"${_google_default_client_id}\""
+    "google_default_client_secret=\"${_google_default_client_secret}\""
+  )
+
+  python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
+  out/Release/gn gen out/Release --args="${_flags[*]}" \
+    --script-executable=/usr/bin/python2
+
+  ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter
+}
+
+package() {
+  cd chromium-launcher-$_launcher_ver
+  make PREFIX=/usr DESTDIR="$pkgdir" install
+  install -Dm644 LICENSE \
+    "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
+
+  cd "$srcdir/$pkgname-$pkgver"
+
+  install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
+  install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
+  install -Dm644 "$srcdir/chromium.desktop" \
+    "$pkgdir/usr/share/applications/chromium.desktop"
+
+  install -Dm4755 out/Release/chrome_sandbox \
+    "$pkgdir/usr/lib/chromium/chrome-sandbox"
+
+  cp -a \
+    out/Release/{chrome_{100,200}_percent,resources}.pak \
+    out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
+    out/Release/locales \
+    out/Release/icudtl.dat \
+    "$pkgdir/usr/lib/chromium/"
+
+  ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
+
+  for size in 22 24 48 64 128 256; do
+    install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
+      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+  done
+
+  for size in 16 32; do
+    install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
+      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+  done
+
+  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: extra-x86_64/chromium-blink-gcc7.patch
===================================================================
--- extra-x86_64/chromium-blink-gcc7.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium-blink-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,76 +0,0 @@
---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig	2017-06-06 15:05:38.145247996 +0300
-+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h	2017-06-06 15:06:13.866246667 +0300
-@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked
-   return *this;
- }
- 
-+inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
-+  DCHECK(a.prev_);
-+  DCHECK(a.next_);
-+  DCHECK(b.prev_);
-+  DCHECK(b.next_);
-+  swap(a.prev_, b.prev_);
-+  swap(a.next_, b.next_);
-+  if (b.next_ == &a) {
-+    DCHECK_EQ(b.prev_, &a);
-+    b.next_ = &b;
-+    b.prev_ = &b;
-+  } else {
-+    b.next_->prev_ = &b;
-+    b.prev_->next_ = &b;
-+  }
-+  if (a.next_ == &b) {
-+    DCHECK_EQ(a.prev_, &b);
-+    a.next_ = &a;
-+    a.prev_ = &a;
-+  } else {
-+    a.next_->prev_ = &a;
-+    a.prev_->next_ = &a;
-+  }
-+}
-+
- template <typename T, typename U, typename V, typename W>
- inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) {
-   impl_.Swap(other.impl_);
-@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e
-   erase(Find(value));
- }
- 
--inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
--  DCHECK(a.prev_);
--  DCHECK(a.next_);
--  DCHECK(b.prev_);
--  DCHECK(b.next_);
--  swap(a.prev_, b.prev_);
--  swap(a.next_, b.next_);
--  if (b.next_ == &a) {
--    DCHECK_EQ(b.prev_, &a);
--    b.next_ = &b;
--    b.prev_ = &b;
--  } else {
--    b.next_->prev_ = &b;
--    b.prev_->next_ = &b;
--  }
--  if (a.next_ == &b) {
--    DCHECK_EQ(a.prev_, &b);
--    a.next_ = &a;
--    a.prev_ = &a;
--  } else {
--    a.next_->prev_ = &a;
--    a.prev_->next_ = &a;
--  }
--}
--
- inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
-   DCHECK_NE(a.next_, &a);
-   DCHECK_NE(b.next_, &b);
---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig	2017-06-06 16:16:43.657661313 +0300
-+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h	2017-06-06 16:16:50.911198032 +0300
-@@ -5,6 +5,7 @@
- #include "platform/PlatformExport.h"
- #include "platform/wtf/ThreadSpecific.h"
- 
-+#include <functional>
- #include <memory>
- 
- namespace gpu {

Copied: chromium/repos/extra-x86_64/chromium-blink-gcc7.patch (from rev 301277, chromium/trunk/chromium-blink-gcc7.patch)
===================================================================
--- extra-x86_64/chromium-blink-gcc7.patch	                        (rev 0)
+++ extra-x86_64/chromium-blink-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,76 @@
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig	2017-06-06 15:05:38.145247996 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h	2017-06-06 15:06:13.866246667 +0300
+@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked
+   return *this;
+ }
+ 
++inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
++  DCHECK(a.prev_);
++  DCHECK(a.next_);
++  DCHECK(b.prev_);
++  DCHECK(b.next_);
++  swap(a.prev_, b.prev_);
++  swap(a.next_, b.next_);
++  if (b.next_ == &a) {
++    DCHECK_EQ(b.prev_, &a);
++    b.next_ = &b;
++    b.prev_ = &b;
++  } else {
++    b.next_->prev_ = &b;
++    b.prev_->next_ = &b;
++  }
++  if (a.next_ == &b) {
++    DCHECK_EQ(a.prev_, &b);
++    a.next_ = &a;
++    a.prev_ = &a;
++  } else {
++    a.next_->prev_ = &a;
++    a.prev_->next_ = &a;
++  }
++}
++
+ template <typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) {
+   impl_.Swap(other.impl_);
+@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e
+   erase(Find(value));
+ }
+ 
+-inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+-  DCHECK(a.prev_);
+-  DCHECK(a.next_);
+-  DCHECK(b.prev_);
+-  DCHECK(b.next_);
+-  swap(a.prev_, b.prev_);
+-  swap(a.next_, b.next_);
+-  if (b.next_ == &a) {
+-    DCHECK_EQ(b.prev_, &a);
+-    b.next_ = &b;
+-    b.prev_ = &b;
+-  } else {
+-    b.next_->prev_ = &b;
+-    b.prev_->next_ = &b;
+-  }
+-  if (a.next_ == &b) {
+-    DCHECK_EQ(a.prev_, &b);
+-    a.next_ = &a;
+-    a.prev_ = &a;
+-  } else {
+-    a.next_->prev_ = &a;
+-    a.prev_->next_ = &a;
+-  }
+-}
+-
+ inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) {
+   DCHECK_NE(a.next_, &a);
+   DCHECK_NE(b.next_, &b);
+--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig	2017-06-06 16:16:43.657661313 +0300
++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h	2017-06-06 16:16:50.911198032 +0300
+@@ -5,6 +5,7 @@
+ #include "platform/PlatformExport.h"
+ #include "platform/wtf/ThreadSpecific.h"
+ 
++#include <functional>
+ #include <memory>
+ 
+ namespace gpu {

Copied: chromium/repos/extra-x86_64/chromium-gn-bootstrap-r8.patch (from rev 301277, chromium/trunk/chromium-gn-bootstrap-r8.patch)
===================================================================
--- extra-x86_64/chromium-gn-bootstrap-r8.patch	                        (rev 0)
+++ extra-x86_64/chromium-gn-bootstrap-r8.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,13 @@
+Index: tools/gn/bootstrap/bootstrap.py
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 6f2f5b1264519ea38cc36fb0b7e2cc24c378ca7a..0b03d2626b358fb90ab39d737679ee47bd60303b 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -487,6 +487,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+       'base/sys_info.cc',
+       'base/task_runner.cc',
+       'base/task_scheduler/delayed_task_manager.cc',
++      'base/task_scheduler/environment_config.cc',
+       'base/task_scheduler/post_task.cc',
+       'base/task_scheduler/priority_queue.cc',
+       'base/task_scheduler/scheduler_lock_impl.cc',

Deleted: extra-x86_64/chromium-system-ffmpeg-r6.patch
===================================================================
--- extra-x86_64/chromium-system-ffmpeg-r6.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium-system-ffmpeg-r6.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,43 +0,0 @@
---- a/media/ffmpeg/ffmpeg_common.h.orig	2017-04-07 18:17:22.623538889 +0000
-+++ b/media/ffmpeg/ffmpeg_common.h	2017-04-07 18:18:16.780656283 +0000
-@@ -23,10 +23,12 @@
- 
- // Include FFmpeg header files.
- extern "C" {
-+#if !defined(USE_SYSTEM_FFMPEG)
- // Disable deprecated features which result in spammy compile warnings.  This
- // list of defines must mirror those in the 'defines' section of FFmpeg's
- // BUILD.gn file or the headers below will generate different structures!
- #define FF_API_CONVERGENCE_DURATION 0
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- // Upstream libavcodec/utils.c still uses the deprecated
- // av_dup_packet(), causing deprecation warnings.
- // The normal fix for such things is to disable the feature as below,
-@@ -40,7 +42,9 @@
- MSVC_PUSH_DISABLE_WARNING(4244);
- #include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
-+#if !defined(USE_SYSTEM_FFMPEG)
- #include <libavformat/internal.h>
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- #include <libavformat/avio.h>
- #include <libavutil/avutil.h>
- #include <libavutil/imgutils.h>
---- a/media/filters/ffmpeg_demuxer.cc.orig	2017-04-07 18:15:14.776901183 +0000
-+++ b/media/filters/ffmpeg_demuxer.cc	2017-04-07 18:15:54.813727201 +0000
-@@ -1223,6 +1223,7 @@
-   // If no estimate is found, the stream entry will be kInfiniteDuration.
-   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
-                                                     kInfiniteDuration);
-+#if !defined(USE_SYSTEM_FFMPEG)
-   const AVFormatInternal* internal = format_context->internal;
-   if (internal && internal->packet_buffer &&
-       format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
-@@ -1246,6 +1247,7 @@
-       packet_buffer = packet_buffer->next;
-     }
-   }
-+#endif  // !defined(USE_SYSTEM_FFMPEG)
- 
-   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
- 

Deleted: extra-x86_64/chromium-v8-gcc7.patch
===================================================================
--- extra-x86_64/chromium-v8-gcc7.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium-v8-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,73 +0,0 @@
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
---- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects/hash-table.h	2017-06-06 14:35:41.558245559 +0300
-@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
-  public:
-   typedef Shape ShapeT;
- 
--  // Wrapper methods
--  inline uint32_t Hash(Key key) {
--    if (Shape::UsesSeed) {
--      return Shape::SeededHash(key, GetHeap()->HashSeed());
--    } else {
--      return Shape::Hash(key);
--    }
--  }
--
--  inline uint32_t HashForObject(Key key, Object* object) {
--    if (Shape::UsesSeed) {
--      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
--    } else {
--      return Shape::HashForObject(key, object);
--    }
--  }
-+  // Wrapper methods.  Defined in src/objects-inl.h
-+  // to break a cycle with src/heap/heap.h.
-+  inline uint32_t Hash(Key key);
-+  inline uint32_t HashForObject(Key key, Object* object);
- 
-   // Returns a new HashTable object.
-   MUST_USE_RESULT static Handle<Derived> New(
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
---- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h	2017-06-06 14:35:41.554912132 +0300
-@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
- 
-   template <typename StaticVisitor>
-   static inline void IterateBody(HeapObject* obj, int object_size) {
--    IterateBody(obj);
-+    IterateBody<StaticVisitor>(obj);
-   }
- };
- 
-diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
---- chromium-59.0.3071.86.orig/v8/src/objects-inl.h	2017-06-05 22:04:29.000000000 +0300
-+++ chromium-59.0.3071.86/v8/src/objects-inl.h	2017-06-06 14:35:41.558245559 +0300
-@@ -46,6 +46,27 @@
- namespace v8 {
- namespace internal {
- 
-+template <typename Derived, typename Shape, typename Key>
-+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
-+  if (Shape::UsesSeed) {
-+    return Shape::SeededHash(key, GetHeap()->HashSeed());
-+  } else {
-+    return Shape::Hash(key);
-+  }
-+}
-+
-+
-+template <typename Derived, typename Shape, typename Key>
-+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
-+                                                       Object* object) {
-+  if (Shape::UsesSeed) {
-+    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
-+  } else {
-+    return Shape::HashForObject(key, object);
-+  }
-+}
-+
-+
- PropertyDetails::PropertyDetails(Smi* smi) {
-   value_ = smi->value();
- }

Copied: chromium/repos/extra-x86_64/chromium-v8-gcc7.patch (from rev 301277, chromium/trunk/chromium-v8-gcc7.patch)
===================================================================
--- extra-x86_64/chromium-v8-gcc7.patch	                        (rev 0)
+++ extra-x86_64/chromium-v8-gcc7.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,73 @@
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
+--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects/hash-table.h	2017-06-06 14:35:41.558245559 +0300
+@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
+  public:
+   typedef Shape ShapeT;
+ 
+-  // Wrapper methods
+-  inline uint32_t Hash(Key key) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHash(key, GetHeap()->HashSeed());
+-    } else {
+-      return Shape::Hash(key);
+-    }
+-  }
+-
+-  inline uint32_t HashForObject(Key key, Object* object) {
+-    if (Shape::UsesSeed) {
+-      return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+-    } else {
+-      return Shape::HashForObject(key, object);
+-    }
+-  }
++  // Wrapper methods.  Defined in src/objects-inl.h
++  // to break a cycle with src/heap/heap.h.
++  inline uint32_t Hash(Key key);
++  inline uint32_t HashForObject(Key key, Object* object);
+ 
+   // Returns a new HashTable object.
+   MUST_USE_RESULT static Handle<Derived> New(
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h	2017-06-06 14:35:41.554912132 +0300
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
+ 
+   template <typename StaticVisitor>
+   static inline void IterateBody(HeapObject* obj, int object_size) {
+-    IterateBody(obj);
++    IterateBody<StaticVisitor>(obj);
+   }
+ };
+ 
+diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
+--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h	2017-06-05 22:04:29.000000000 +0300
++++ chromium-59.0.3071.86/v8/src/objects-inl.h	2017-06-06 14:35:41.558245559 +0300
+@@ -46,6 +46,27 @@
+ namespace v8 {
+ namespace internal {
+ 
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHash(key, GetHeap()->HashSeed());
++  } else {
++    return Shape::Hash(key);
++  }
++}
++
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++                                                       Object* object) {
++  if (Shape::UsesSeed) {
++    return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++  } else {
++    return Shape::HashForObject(key, object);
++  }
++}
++
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+   value_ = smi->value();
+ }

Deleted: extra-x86_64/chromium-widevine.patch
===================================================================
--- extra-x86_64/chromium-widevine.patch	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium-widevine.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,10 +0,0 @@
-diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
---- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-14 01:05:17.000000000 +0200
-+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-21 19:18:51.287978456 +0200
-@@ -12,4 +12,6 @@
- 
- #define WIDEVINE_CDM_AVAILABLE
- 
-+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
-+
- #endif  // WIDEVINE_CDM_VERSION_H_

Copied: chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 301277, chromium/trunk/chromium-widevine.patch)
===================================================================
--- extra-x86_64/chromium-widevine.patch	                        (rev 0)
+++ extra-x86_64/chromium-widevine.patch	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,10 @@
+diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
+--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-14 01:05:17.000000000 +0200
++++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-21 19:18:51.287978456 +0200
+@@ -12,4 +12,6 @@
+ 
+ #define WIDEVINE_CDM_AVAILABLE
+ 
++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
++
+ #endif  // WIDEVINE_CDM_VERSION_H_

Deleted: extra-x86_64/chromium.desktop
===================================================================
--- extra-x86_64/chromium.desktop	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium.desktop	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,112 +0,0 @@
-[Desktop Entry]
-Name=Chromium
-# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
-# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
-GenericName=Web Browser
-GenericName[ar]=متصفح الشبكة
-GenericName[bg]=Уеб браузър
-GenericName[ca]=Navegador web
-GenericName[cs]=WWW prohlížeč
-GenericName[da]=Browser
-GenericName[de]=Web-Browser
-GenericName[el]=Περιηγητής ιστού
-GenericName[en_GB]=Web Browser
-GenericName[es]=Navegador web
-GenericName[et]=Veebibrauser
-GenericName[fi]=WWW-selain
-GenericName[fr]=Navigateur Web
-GenericName[gu]=વેબ બ્રાઉઝર
-GenericName[he]=דפדפן אינטרנט
-GenericName[hi]=वेब ब्राउज़र
-GenericName[hu]=Webböngésző
-GenericName[it]=Browser Web
-GenericName[ja]=ウェブブラウザ
-GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
-GenericName[ko]=웹 브라우저
-GenericName[lt]=Žiniatinklio naršyklė
-GenericName[lv]=Tīmekļa pārlūks
-GenericName[ml]=വെബ് ബ്രൌസര്‍
-GenericName[mr]=वेब ब्राऊजर
-GenericName[nb]=Nettleser
-GenericName[nl]=Webbrowser
-GenericName[pl]=Przeglądarka WWW
-GenericName[pt]=Navegador Web
-GenericName[pt_BR]=Navegador da Internet
-GenericName[ro]=Navigator de Internet
-GenericName[ru]=Веб-браузер
-GenericName[sl]=Spletni brskalnik
-GenericName[sv]=Webbläsare
-GenericName[ta]=இணைய உலாவி
-GenericName[th]=เว็บเบราว์เซอร์
-GenericName[tr]=Web Tarayıcı
-GenericName[uk]=Навігатор Тенет
-GenericName[zh_CN]=网页浏览器
-GenericName[zh_HK]=網頁瀏覽器
-GenericName[zh_TW]=網頁瀏覽器
-# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
-GenericName[bn]=ওয়েব ব্রাউজার
-GenericName[fil]=Web Browser
-GenericName[hr]=Web preglednik
-GenericName[id]=Browser Web
-GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
-GenericName[sk]=WWW prehliadač
-GenericName[sr]=Интернет прегледник
-GenericName[te]=మహాతల అన్వేషి
-GenericName[vi]=Bộ duyệt Web
-# Gnome and KDE 3 uses Comment.
-Comment=Access the Internet
-Comment[ar]=الدخول إلى الإنترنت
-Comment[bg]=Достъп до интернет
-Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
-Comment[ca]=Accedeix a Internet
-Comment[cs]=Přístup k internetu
-Comment[da]=Få adgang til internettet
-Comment[de]=Internetzugriff
-Comment[el]=Πρόσβαση στο Διαδίκτυο
-Comment[en_GB]=Access the Internet
-Comment[es]=Accede a Internet.
-Comment[et]=Pääs Internetti
-Comment[fi]=Käytä internetiä
-Comment[fil]=I-access ang Internet
-Comment[fr]=Accéder à Internet
-Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
-Comment[he]=גישה אל האינטרנט
-Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
-Comment[hr]=Pristup Internetu
-Comment[hu]=Internetelérés
-Comment[id]=Akses Internet
-Comment[it]=Accesso a Internet
-Comment[ja]=インターネットにアクセス
-Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
-Comment[ko]=인터넷 연결
-Comment[lt]=Interneto prieiga
-Comment[lv]=Piekļūt internetam
-Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
-Comment[mr]=इंटरनेटमध्ये प्रवेश करा
-Comment[nb]=Gå til Internett
-Comment[nl]=Verbinding maken met internet
-Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
-Comment[pl]=Skorzystaj z internetu
-Comment[pt]=Aceder à Internet
-Comment[pt_BR]=Acessar a internet
-Comment[ro]=Accesaţi Internetul
-Comment[ru]=Доступ в Интернет
-Comment[sk]=Prístup do siete Internet
-Comment[sl]=Dostop do interneta
-Comment[sr]=Приступите Интернету
-Comment[sv]=Gå ut på Internet
-Comment[ta]=இணையத்தை அணுகுதல்
-Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
-Comment[th]=เข้าถึงอินเทอร์เน็ต
-Comment[tr]=İnternet'e erişin
-Comment[uk]=Доступ до Інтернету
-Comment[vi]=Truy cập Internet
-Comment[zh_CN]=访问互联网
-Comment[zh_HK]=連線到網際網路
-Comment[zh_TW]=連線到網際網路
-Exec=chromium %U
-Terminal=false
-Icon=chromium
-Type=Application
-Categories=GTK;Network;WebBrowser;
-MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;

Copied: chromium/repos/extra-x86_64/chromium.desktop (from rev 301277, chromium/trunk/chromium.desktop)
===================================================================
--- extra-x86_64/chromium.desktop	                        (rev 0)
+++ extra-x86_64/chromium.desktop	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,112 @@
+[Desktop Entry]
+Name=Chromium
+# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
+# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
+GenericName=Web Browser
+GenericName[ar]=متصفح الشبكة
+GenericName[bg]=Уеб браузър
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlížeč
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Tīmekļa pārlūks
+GenericName[ml]=വെബ് ബ്രൌസര്‍
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браузер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணைய உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_HK]=網頁瀏覽器
+GenericName[zh_TW]=網頁瀏覽器
+# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+# Gnome and KDE 3 uses Comment.
+Comment=Access the Internet
+Comment[ar]=الدخول إلى الإنترنت
+Comment[bg]=Достъп до интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=Få adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=Πρόσβαση στο Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה אל האינטרנט
+Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=インターネットにアクセス
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=Piekļūt internetam
+Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=Gå til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder à Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=Accesaţi Internetul
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prístup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=Приступите Интернету
+Comment[sv]=Gå ut på Internet
+Comment[ta]=இணையத்தை அணுகுதல்
+Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=İnternet'e erişin
+Comment[uk]=Доступ до Інтернету
+Comment[vi]=Truy cập Internet
+Comment[zh_CN]=访问互联网
+Comment[zh_HK]=連線到網際網路
+Comment[zh_TW]=連線到網際網路
+Exec=chromium %U
+Terminal=false
+Icon=chromium
+Type=Application
+Categories=GTK;Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;

Deleted: extra-x86_64/chromium.install
===================================================================
--- extra-x86_64/chromium.install	2017-07-26 13:37:13 UTC (rev 301277)
+++ extra-x86_64/chromium.install	2017-07-26 13:37:35 UTC (rev 301278)
@@ -1,16 +0,0 @@
-post_upgrade() {
-  if (($(vercmp $2 42.0.2311.90-1) < 0)); then
-    echo ':: This Chromium package no longer supports custom flags passed via the'
-    echo '   /etc/chromium/default file (or any other files under /etc/chromium/).'
-    echo
-    echo '   The new /usr/bin/chromium launcher script will automatically detect'
-    echo '   Pepper Flash (if installed) and pass the correct flags to Chromium.'
-    echo
-    echo '   If you need to pass extra command-line arguments to Chromium, you'
-    echo '   can put them in a "chromium-flags.conf" file under $HOME/.config/'
-    echo '   (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell'
-    echo '   quoting rules apply but no further parsing is performed.'
-  fi
-}
-
-# vim:set ts=2 sw=2 et:

Copied: chromium/repos/extra-x86_64/chromium.install (from rev 301277, chromium/trunk/chromium.install)
===================================================================
--- extra-x86_64/chromium.install	                        (rev 0)
+++ extra-x86_64/chromium.install	2017-07-26 13:37:35 UTC (rev 301278)
@@ -0,0 +1,16 @@
+post_upgrade() {
+  if (($(vercmp $2 42.0.2311.90-1) < 0)); then
+    echo ':: This Chromium package no longer supports custom flags passed via the'
+    echo '   /etc/chromium/default file (or any other files under /etc/chromium/).'
+    echo
+    echo '   The new /usr/bin/chromium launcher script will automatically detect'
+    echo '   Pepper Flash (if installed) and pass the correct flags to Chromium.'
+    echo
+    echo '   If you need to pass extra command-line arguments to Chromium, you'
+    echo '   can put them in a "chromium-flags.conf" file under $HOME/.config/'
+    echo '   (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell'
+    echo '   quoting rules apply but no further parsing is performed.'
+  fi
+}
+
+# vim:set ts=2 sw=2 et:



More information about the arch-commits mailing list