...
 
Commits (17)
chromium-browser (68.0.3440.75-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2018-4117: Cross origin information leak in Blink. Reported by
AhsanEjaz
- CVE-2018-6044: Request privilege escalation in Extensions . Reported by
Rob Wu
- CVE-2018-6150: Cross origin information disclosure in Service Workers.
Reported by Rob Wu
- CVE-2018-6151: Bad cast in DevTools. Reported by Rob Wu
- CVE-2018-6152: Local file write in DevTools. Reported by Rob Wu
- CVE-2018-6153: Stack buffer overflow in Skia. Reported by Zhen Zhou
- CVE-2018-6154: Heap buffer overflow in WebGL. Reported by Omair
- CVE-2018-6155: Use after free in WebRTC. Reported by Natalie Silvanovich
- CVE-2018-6156: Heap buffer overflow in WebRTC. Reported by Natalie
Silvanovich
- CVE-2018-6157: Type confusion in WebRTC. Reported by Natalie Silvanovich
- CVE-2018-6158: Use after free in Blink. Reported by Zhe Jin
- CVE-2018-6159: Same origin policy bypass in ServiceWorker. Reported by
Jun Kokatsu
- CVE-2018-6161: Same origin policy bypass in WebAudio. Reported by Jun
Kokatsu
- CVE-2018-6162: Heap buffer overflow in WebGL. Reported by Omair
- CVE-2018-6163: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6164: Same origin policy bypass in ServiceWorker. Reported by
Jun Kokatsu
- CVE-2018-6165: URL spoof in Omnibox. Reported by evi1m0
- CVE-2018-6166: URL spoof in Omnibox. Reported by Lnyas Zhang
- CVE-2018-6167: URL spoof in Omnibox. Reported by Lnyas Zhang
- CVE-2018-6168: CORS bypass in Blink. Reported by Gunes Acar and Danny Y.
Huang
- CVE-2018-6169: Permissions bypass in extension installation . Reported by
Sam P
- CVE-2018-6170: Type confusion in PDFium. Reported by Anonymous
- CVE-2018-6171: Use after free in WebBluetooth.
- CVE-2018-6172: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6173: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6174: Integer overflow in SwiftShader. Reported by Mark Brand
- CVE-2018-6175: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6176: Local user privilege escalation in Extensions. Reported by
Jann Horn
- CVE-2018-6177: Cross origin information leak in Blink. Reported by Ron
Masas
- CVE-2018-6178: UI spoof in Extensions. Reported by Khalil Zhani
- CVE-2018-6179: Local file information leak in Extensions.
* Correct a regression in audio/video file handling caused by the ffmpeg 3.4
support patch introduced in the previous security upload (closes: #902909).
-- Michael Gilbert <mgilbert@debian.org> Sun, 15 Jul 2018 20:09:38 +0000
chromium-browser (67.0.3396.87-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2018-6118: Use after free in Media Cache. Reported by Ned Williamson
- CVE-2018-6120: Heap buffer overflow in PDFium. Reported by Zhou Aiting
- CVE-2018-6121: Privilege Escalation in extensions.
- CVE-2018-6122: Type confusion in V8.
- CVE-2018-6123: Use after free in Blink. Reported by Looben Yang
- CVE-2018-6124: Type confusion in Blink. Reported by Guang Gong
- CVE-2018-6125: Overly permissive policy in WebUSB. Reported by Yubico
- CVE-2018-6126: Heap buffer overflow in Skia. Reported by Ivan Fratric
- CVE-2018-6127: Use after free in indexedDB. Reported by Looben Yang
- CVE-2018-6129: Out of bounds memory access in WebRTC. Reported by Natalie
Silvanovich
- CVE-2018-6130: Out of bounds memory access in WebRTC. Reported by Natalie
Silvanovich
- CVE-2018-6131: Incorrect mutability protection in WebAssembly. Reported
by Natalie Silvanovich
- CVE-2018-6132: Use of uninitialized memory in WebRTC. Reported by Ronald
E. Crane
- CVE-2018-6133: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6134: Referrer Policy bypass in Blink. Reported by Jun Kokatsu
- CVE-2018-6135: UI spoofing in Blink. Reported by Jasper Rebane
- CVE-2018-6136: Out of bounds memory access in V8. Reported by Peter Wong
- CVE-2018-6137: Leak of visited status of page in Blink. Reported by
Michael Smith
- CVE-2018-6138: Overly permissive policy in Extensions. Reported by
François Lajeunesse-Robert
- CVE-2018-6139: Restrictions bypass in the debugger extension API.
Reported by Rob Wu
- CVE-2018-6140: Restrictions bypass in the debugger extension API.
Reported by Rob Wu
- CVE-2018-6141: Heap buffer overflow in Skia. Reported by Yangkang
- CVE-2018-6142: Out of bounds memory access in V8. Reported by Choongwoo
Han
- CVE-2018-6143: Out of bounds memory access in V8. Reported by Guang Gong
- CVE-2018-6144: Out of bounds memory access in PDFium. Reported by pdknsk
- CVE-2018-6145: Incorrect escaping of MathML in Blink. Reported by Masato
Kinugawa
- CVE-2018-6147: Password fields not taking advantage of OS protections in
Views. Reported by Michail Pishchagin
- CVE-2018-6148: Incorrect handling of CSP header. Reported by Michał
Bentkowski
- CVE-2018-6149: Out of bounds write in V8. Reported by Yu Zhou and
Jundong Xie
* The widevine adaptor package is now empty, it is no longer required to
use the widevine content decryption module.
-- Michael Gilbert <mgilbert@debian.org> Fri, 29 Jun 2018 23:47:08 +0000
chromium-browser (66.0.3359.117-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2018-6056: Incorrect derived class instantiation in V8. Reported by
lokihardt
- CVE-2018-6057: Incorrect permissions on shared memory. Reported by Gal
Beniamini
- CVE-2018-6060: Use after free in Blink. Reported by Omair
- CVE-2018-6061: Race condition in V8. Reported by Guang Gong
- CVE-2018-6062: Heap buffer overflow in Skia. Reported by Anonymous
- CVE-2018-6063: Incorrect permissions on shared memory. Reported by Gal
Beniamini
- CVE-2018-6064: Type confusion in V8. Reported by lokihardt
- CVE-2018-6065: Integer overflow in V8. Reported by Mark Brand
- CVE-2018-6066: Same Origin Bypass via canvas. Reported by Masato Kinugawa
- CVE-2018-6067: Buffer overflow in Skia. Reported by Ned Williamson
- CVE-2018-6068: Object lifecycle issues in Chrome Custom Tab. Reported by
Luan Herrera
- CVE-2018-6069: Stack buffer overflow in Skia. Reported by Wanglu &
Yangkang
- CVE-2018-6070: CSP bypass through extensions. Reported by Rob Wu
- CVE-2018-6071: Heap bufffer overflow in Skia. Reported by Anonymous
- CVE-2018-6072: Integer overflow in PDFium. Reported by Atte Kettunen
- CVE-2018-6073: Heap bufffer overflow in WebGL. Reported by Omair
- CVE-2018-6074: Mark-of-the-Web bypass. Reported by Abdulrahman Alqabandi
- CVE-2018-6075: Overly permissive cross origin downloads. Reported by Inti
De Ceukelaire
- CVE-2018-6076: Incorrect handling of URL fragment identifiers in Blink.
Reported by Mateusz Krzeszowiec
- CVE-2018-6077: Timing attack using SVG filters. Reported by Khalil Zhani
- CVE-2018-6078: URL Spoof in OmniBox. Reported by Khalil Zhani
- CVE-2018-6079: Information disclosure via texture data in WebGL. Reported
by Ivars Atteka
- CVE-2018-6080: Information disclosure in IPC call. Reported by Gal
Beniamini
- CVE-2018-6081: XSS in interstitials. Reported by Rob Wu
- CVE-2018-6082: Circumvention of port blocking. Reported by WenXu Wu
- CVE-2018-6083: Incorrect processing of AppManifests. Reported by Jun
Kokatsu
- CVE-2018-6085: Use after free in Disk Cache. Reported by Ned Williamson
- CVE-2018-6086: Use after free in Disk Cache. Reported by Ned Williamson
- CVE-2018-6087: Use after free in WebAssembly. Reported by Anonymous
- CVE-2018-6088: Use after free in PDFium. Reported by Anonymous
- CVE-2018-6089: Same origin policy bypass in Service Worker. Reported by
Rob Wu
- CVE-2018-6090: Heap buffer overflow in Skia. Reported by ZhanJia Song
- CVE-2018-6091: Incorrect handling of plug-ins by Service Worker.
Reported by Jun Kokatsu
- CVE-2018-6092: Integer overflow in WebAssembly. Reported by Natalie
Silvanovich
- CVE-2018-6093: Same origin bypass in Service Worker. Reported by Jun
Kokatsu
- CVE-2018-6094: Exploit hardening regression in Oilpan. Reported by Chris
Rohlf
- CVE-2018-6095: Lack of meaningful user interaction requirement before
file upload. Reported by Abdulrahman Alqabandi
- CVE-2018-6096: Fullscreen UI spoof. Reported by WenXu Wu
- CVE-2018-6097: Fullscreen UI spoof. Reported by xisigr
- CVE-2018-6098: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6099: CORS bypass in ServiceWorker. Reported by Jun Kokatsu
- CVE-2018-6100: URL spoof in Omnibox. Reported by Lnyas Zhang
- CVE-2018-6101: Insufficient protection of remote debugging prototol in
DevTools . Reported by Rob Wu
- CVE-2018-6102: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6103: UI spoof in Permissions. Reported by Khalil Zhani
- CVE-2018-6104: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6105: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6106: Incorrect handling of promises in V8. Reported by
lokihardt
- CVE-2018-6107: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6108: URL spoof in Omnibox. Reported by Khalil Zhani
- CVE-2018-6109: Incorrect handling of files by FileAPI. Reported by
Dominik Weber
- CVE-2018-6110: Incorrect handling of plaintext files via file:// .
Reported by Wenxiang Qian
- CVE-2018-6111: Heap-use-after-free in DevTools. Reported by Khalil Zhani
- CVE-2018-6112: Incorrect URL handling in DevTools. Reported by Rob Wu
- CVE-2018-6113: URL spoof in Navigation. Reported by Khalil Zhani
- CVE-2018-6114: CSP bypass. Reported by Lnyas Zhang
- CVE-2018-6116: Incorrect low memory handling in WebAssembly. Reported by
Chengdu Security Response Center
- CVE-2018-6117: Confusing autofill settings. Reported by Spencer Dailey
-- Michael Gilbert <mgilbert@debian.org> Wed, 25 Apr 2018 23:48:58 +0000
chromium-browser (64.0.3282.119-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2017-15420: URL spoofing in Omnibox. Reported by Drew Springall
- CVE-2017-15429: UXSS in V8. Reported by Anonymous
- CVE-2018-6031: Use after free in PDFium. Reported by Anonymous
- CVE-2018-6032: Same origin bypass in Shared Worker. Reported by Jun
Kokatsu
- CVE-2018-6033: Race when opening downloaded files. Reported by Juho
Nurminen
- CVE-2018-6034: Integer overflow in Blink. Reported by Tobias Klein
- CVE-2018-6035: Insufficient isolation of devtools from extensions.
Reported by Rob Wu
- CVE-2018-6036: Integer underflow in WebAssembly. Reported by The UK's
National Cyber Security Centre
- CVE-2018-6037: Insufficient user gesture requirements in autofill.
Reported by Paul Stone
- CVE-2018-6038: Heap buffer overflow in WebGL. Reported by cloudfuzzer
- CVE-2018-6039: XSS in DevTools. Reported by Juho Nurminen
- CVE-2018-6040: Content security policy bypass. Reported by WenXu Wu
- CVE-2018-6041: URL spoof in Navigation. Reported by Luan Herrera
- CVE-2018-6042: URL spoof in OmniBox. Reported by Khalil Zhani
- CVE-2018-6043: Insufficient escaping with external URL handlers. Reported
by 0x09AL
- CVE-2018-6045: Insufficient isolation of devtools from extensions.
Reported by Rob Wu
- CVE-2018-6046: Insufficient isolation of devtools from extensions.
Reported by Rob Wu
- CVE-2018-6047: Cross origin URL leak in WebGL. Reported by Masato
Kinugawa
- CVE-2018-6048: Referrer policy bypass in Blink. Reported by Jun Kokatsu
- CVE-2018-6049: UI spoof in Permissions. Reported by WenXu Wu
- CVE-2018-6050: URL spoof in OmniBox. Reported by Jonathan Kew
- CVE-2018-6051: Referrer leak in XSS Auditor. Reported by Antonio Sanso
- CVE-2018-6052: Incomplete no-referrer policy implementation. Reported by
Tanner Emek
- CVE-2018-6053: Leak of page thumbnails in New Tab Page. Reported by Asset
Kabdenov
- CVE-2018-6054: Use after free in WebUI. Reported by Rob Wu
-- Michael Gilbert <mgilbert@debian.org> Wed, 31 Jan 2018 02:27:51 +0000
chromium-browser (63.0.3239.84-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2017-15407: Out of bounds write in QUIC. Reported by Ned Williamson
- CVE-2017-15408: Heap buffer overflow in PDFium. Reported by Ke Liu
- CVE-2017-15409: Out of bounds write in Skia. Reported by Anonymous
- CVE-2017-15410: Use after free in PDFium. Reported by Luật Nguyễn
- CVE-2017-15411: Use after free in PDFium. Reported by Luật Nguyễn
- CVE-2017-15413: Type confusion in WebAssembly. Reported by Gaurav Dewan
- CVE-2017-15415: Pointer information disclosure in IPC call. Reported by
Viktor Brange
- CVE-2017-15416: Out of bounds read in Blink. Reported by Ned Williamson
- CVE-2017-15417: Cross origin information disclosure in Skia . Reported by
Max May
- CVE-2017-15418: Use of uninitialized value in Skia. Reported by Kushal
Arvind Shah
- CVE-2017-15419: Cross origin leak of redirect URL in Blink. Reported by
Jun Kokatsu
- CVE-2017-15420: URL spoofing in Omnibox. Reported by WenXu Wu
- CVE-2017-15423: Issue with SPAKE implementation in BoringSSL. Reported by
Greg Hudson
- CVE-2017-15424: URL Spoof in Omnibox. Reported by Khalil Zhani
- CVE-2017-15425: URL Spoof in Omnibox. Reported by xisigr
- CVE-2017-15426: URL Spoof in Omnibox. Reported by WenXu Wu
- CVE-2017-15427: Insufficient blocking of JavaScript in Omnibox. Reported
by Junaid Farhan
-- Michael Gilbert <mgilbert@debian.org> Sun, 03 Dec 2017 15:26:02 +0000
chromium-browser (62.0.3202.89-1~deb9u1) stretch-security; urgency=medium
* New upstream security release.
- CVE-2017-15398: Stack buffer overflow in QUIC. Reported by Ned
Williamson
- CVE-2017-15399: Use after free in V8. Reported by Zhao Qixun
-- Michael Gilbert <mgilbert@debian.org> Wed, 08 Nov 2017 01:29:57 +0000
chromium-browser (62.0.3202.75-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2017-5124: UXSS with MHTML. Reported by Anonymous
- CVE-2017-5125: Heap overflow in Skia. Reported by Anonymous
- CVE-2017-5126: Use after free in PDFium. Reported by Luat Nguyen
- CVE-2017-5127: Use after free in PDFium. Reported by Luat Nguyen
- CVE-2017-5128: Heap overflow in WebGL. Reported by Omair
- CVE-2017-5129: Use after free in WebAudio. Reported by Omair
- CVE-2017-5131: Out of bounds write in Skia. Reported by Anonymous
- CVE-2017-5132: Incorrect stack manipulation in WebAssembly. Reported by
Gaurav Dewan
- CVE-2017-5133: Out of bounds write in Skia. Reported by Aleksandar
Nikolic
- CVE-2017-15386: UI spoofing in Blink. Reported by WenXu Wu
- CVE-2017-15387: Content security bypass. Reported by Jun Kokatsu
- CVE-2017-15388: Out of bounds read in Skia. Reported by Kushal Arvind
Shah
- CVE-2017-15389: URL spoofing in OmniBox. Reported by xisigr
- CVE-2017-15390: URL spoofing in OmniBox. Reported by Haosheng Wang
- CVE-2017-15391: Extension limitation bypass in Extensions. Reported by
João Lucas Melo Brasio
- CVE-2017-15392: Incorrect registry key handling in PlatformIntegration.
Reported by Xiaoyin Liu
- CVE-2017-15393: Referrer leak in Devtools. Reported by Svyat Mitin
- CVE-2017-15394: URL spoofing in extensions UI. Reported by Sam
- CVE-2017-15395: Null pointer dereference in ImageCapture. Reported by
Johannes Bergman
- CVE-2017-15396: Stack overflow in V8. Reported by Yuan Deng
-- Michael Gilbert <mgilbert@debian.org> Sun, 05 Nov 2017 03:09:35 +0000
chromium-browser (61.0.3163.100-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release
- CVE-2017-5111: Use after free in PDFium. Reported by Luật Nguyễn
- CVE-2017-5112: Heap buffer overflow in WebGL. Reported by Tobias Klein
- CVE-2017-5113: Heap buffer overflow in Skia. Reported by Anonymous
- CVE-2017-5114: Memory lifecycle issue in PDFium. Reported by Ke Liu
- CVE-2017-5115: Type confusion in V8. Reported by Marco Giovannini
- CVE-2017-5116: Type confusion in V8. Reported by Anonymous
- CVE-2017-5117: Use of uninitialized value in Skia. Reported by Tobias
Klein
- CVE-2017-5118: Bypass of Content Security Policy in Blink. Reported by
WenXu Wu
- CVE-2017-5119: Use of uninitialized value in Skia. Reported by Anonymous
- CVE-2017-5120: Potential HTTPS downgrade during redirect navigation.
Reported by Xiaoyin Liu
- CVE-2017-5121: Out-of-bounds access in V8. Reported by Jordan Rabet
- CVE-2017-5122: Out-of-bounds access in V8. Reported by Choongwoo Han
-- Michael Gilbert <mgilbert@debian.org> Wed, 27 Sep 2017 02:03:41 +0000
chromium-browser (60.0.3112.78-1~deb9u1) stretch-security; urgency=medium
* New upstream stable release.
- CVE-2017-5087: Sandbox Escape in IndexedDB. Reported by Ned Williamson
- CVE-2017-5088: Out of bounds read in V8. Reported by Xiling Gong
- CVE-2017-5089: Domain spoofing in Omnibox. Reported by Michał Bentkowski
- CVE-2017-5091: Use after free in IndexedDB. Reported by Ned Williamson
- CVE-2017-5092: Use after free in PPAPI. Reported by Yu Zhou, Yuan Deng
- CVE-2017-5093: UI spoofing in Blink. Reported by Luan Herrera
- CVE-2017-5094: Type confusion in extensions. Reported by Anonymous
- CVE-2017-5095: Out-of-bounds write in PDFium. Reported by Anonymous
- CVE-2017-5096: User information leak via Android intents. Reported by
Takeshi Terada
- CVE-2017-5097: Out-of-bounds read in Skia. Reported by Anonymous
- CVE-2017-5098: Use after free in V8. Reported by Jihoon Kim
- CVE-2017-5099: Out-of-bounds write in PPAPI. Reported by Yuan Deng, Yu
Zhou
- CVE-2017-5100: Use after free in Chrome Apps. Reported by Anonymous
- CVE-2017-5101: URL spoofing in OmniBox. Reported by Luan Herrera
- CVE-2017-5102: Uninitialized use in Skia. Reported by Anonymous
- CVE-2017-5103: Uninitialized use in Skia. Reported by Anonymous
- CVE-2017-5104: UI spoofing in browser. Reported by Khalil Zhani
- CVE-2017-5105: URL spoofing in OmniBox. Reported by Rayyan Bijoora
- CVE-2017-5106: URL spoofing in OmniBox. Reported by Jack Zac
- CVE-2017-5107: User information leak via SVG. Reported by David
Kohlbrenner
- CVE-2017-5108: Type confusion in PDFium. Reported by Guang Gong
- CVE-2017-5109: UI spoofing in browser. Reported by José María Acuña
Morgado
- CVE-2017-5110: UI spoofing in payments dialog. Reported by xisigr
- CVE-2017-7000: Pointer disclosure in SQLite. Reported by Chaitin Security
Research Lab
-- Michael Gilbert <mgilbert@debian.org> Sat, 29 Jul 2017 19:56:20 +0000
chromium-browser (59.0.3071.86-1) unstable; urgency=medium
* New upstream stable release.
......
out/Release/libwidevinecdmadapter.so usr/lib/chromium
......@@ -6,7 +6,6 @@ chrome/test/data/webui/i18n_process_css_test.html
third_party/ffmpeg/BUILD.gn
third_party/flac/BUILD.gn
third_party/harfbuzz-ng/BUILD.gn
base/third_party/libevent/BUILD.gn
build/secondary/third_party/libjpeg_turbo/BUILD.gn
third_party/libdrm/BUILD.gn
......@@ -20,3 +19,8 @@ third_party/snappy/BUILD.gn
third_party/yasm/yasm_assemble.gni
third_party/zlib/BUILD.gn
third_party/icu/BUILD.gn
third_party/opus/BUILD.gn
third_party/freetype/BUILD.gn
third_party/fontconfig/BUILD.gn
build/config/freetype/freetype.gni
third_party/yasm/run_yasm.py
......@@ -72,6 +72,7 @@ Build-Depends:
libhunspell-dev,
libharfbuzz-dev (>= 1.2.7),
libusb-1.0-0-dev,
libopenjp2-7-dev,
libmodpbase64-dev,
libgnome-keyring-dev,
libnss3-dev (>= 3.12.3),
......@@ -95,6 +96,7 @@ Depends:
x11-utils,
xdg-utils,
Recommends:
libgl1-mesa-dri,
fonts-liberation,
Suggests:
chromium-l10n,
......
Description: add back contents of third-party/blink/tools that went missing in the source tarball for 66.0.3359.106
Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=832283
--- /dev/null
+++ b/third_party/blink/tools/OWNERS
@@ -0,0 +1 @@
+file://third_party/WebKit/Tools/OWNERS
--- /dev/null
+++ b/third_party/blink/tools/blinkpy/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
--- /dev/null
+++ b/third_party/blink/tools/blinkpy/common/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
--- /dev/null
+++ b/third_party/blink/tools/blinkpy/common/name_style_converter.py
@@ -0,0 +1,128 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# pylint: disable=import-error,print-statement,relative-import
+
+import re
+
+SPECIAL_TOKENS = [
+ # This list should be sorted by length.
+ 'CString',
+ 'Float32',
+ 'Float64',
+ 'Base64',
+ 'IFrame',
+ 'Latin1',
+ 'PlugIn',
+ 'SQLite',
+ 'Uint16',
+ 'Uint32',
+ 'WebGL2',
+ 'ASCII',
+ 'CType',
+ 'DList',
+ 'Int16',
+ 'Int32',
+ 'MPath',
+ 'OList',
+ 'TSpan',
+ 'UList',
+ 'UTF16',
+ 'Uint8',
+ 'WebGL',
+ 'XPath',
+ 'ETC1',
+ 'HTML',
+ 'Int8',
+ 'S3TC',
+ 'SPv2',
+ 'UTF8',
+ 'API',
+ 'CSS',
+ 'DOM',
+ 'EXT',
+ 'RTC',
+ 'SVG',
+ '2D',
+ 'AX',
+ 'V0',
+ 'V8',
+]
+
+MATCHING_EXPRESSION = '((?:[A-Z][a-z]+)|[0-9]D?$)'
+
+
+class SmartTokenizer(object):
+ """Detects special cases that are not easily discernible without additional
+ knowledge, such as recognizing that in SVGSVGElement, the first two SVGs
+ are separate tokens, but WebGL is one token."""
+
+ def __init__(self, name):
+ self.remaining = name
+
+ def tokenize(self):
+ name = self.remaining
+ tokens = []
+ while len(name) > 0:
+ matched_token = None
+ for token in SPECIAL_TOKENS:
+ if name.startswith(token):
+ matched_token = token
+ break
+ if not matched_token:
+ match = re.search(MATCHING_EXPRESSION, name)
+ if not match:
+ matched_token = name
+ elif match.start(0) != 0:
+ matched_token = name[:match.start(0)]
+ else:
+ matched_token = match.group(0)
+ tokens.append(name[:len(matched_token)])
+ name = name[len(matched_token):]
+ return tokens
+
+
+class NameStyleConverter(object):
+ """Converts names from camelCase to various other styles.
+ """
+
+ def __init__(self, name):
+ self.tokens = self.tokenize(name)
+
+ def tokenize(self, name):
+ tokenizer = SmartTokenizer(name)
+ return tokenizer.tokenize()
+
+ def to_snake_case(self):
+ """Snake case is the file and variable name style per Google C++ Style
+ Guide:
+ https://google.github.io/styleguide/cppguide.html#Variable_Names
+
+ Also known as the hacker case.
+ https://en.wikipedia.org/wiki/Snake_case
+ """
+ return '_'.join([token.lower() for token in self.tokens])
+
+ def to_upper_camel_case(self):
+ """Upper-camel case is the class and function name style per
+ Google C++ Style Guide:
+ https://google.github.io/styleguide/cppguide.html#Function_Names
+
+ Also known as the PascalCase.
+ https://en.wikipedia.org/wiki/Camel_case.
+ """
+ return ''.join([token[0].upper() + token[1:] for token in self.tokens])
+
+ def to_macro_case(self):
+ """Macro case is the macro name style per Google C++ Style Guide:
+ https://google.github.io/styleguide/cppguide.html#Macro_Names
+ """
+ return '_'.join([token.upper() for token in self.tokens])
+
+ def to_all_cases(self):
+ return {
+ 'snake_case': self.to_snake_case(),
+ 'upper_camel_case': self.to_upper_camel_case(),
+ 'macro_case': self.to_macro_case(),
+ }
--- /dev/null
+++ b/third_party/blink/tools/blinkpy/common/name_style_converter_test.py
@@ -0,0 +1,178 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# pylint: disable=import-error,print-statement,relative-import,protected-access
+
+"""Unit tests for name_style_converter.py."""
+
+import unittest
+
+from name_style_converter import NameStyleConverter
+from name_style_converter import SmartTokenizer
+
+
+class SmartTokenizerTest(unittest.TestCase):
+ def test_simple_cases(self):
+ tokenizer = SmartTokenizer('foo')
+ self.assertEqual(tokenizer.tokenize(), ['foo'])
+
+ tokenizer = SmartTokenizer('fooBar')
+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
+
+ tokenizer = SmartTokenizer('fooBarBaz')
+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
+
+ tokenizer = SmartTokenizer('Baz')
+ self.assertEqual(tokenizer.tokenize(), ['Baz'])
+
+ tokenizer = SmartTokenizer('')
+ self.assertEqual(tokenizer.tokenize(), [])
+
+ tokenizer = SmartTokenizer('FOO')
+ self.assertEqual(tokenizer.tokenize(), ['FOO'])
+
+ tokenizer = SmartTokenizer('foo2')
+ self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
+
+ def test_tricky_cases(self):
+ tokenizer = SmartTokenizer('XMLHttpRequest')
+ self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
+
+ tokenizer = SmartTokenizer('HTMLElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
+
+ tokenizer = SmartTokenizer('WebGLRenderingContext')
+ self.assertEqual(tokenizer.tokenize(),
+ ['WebGL', 'Rendering', 'Context'])
+
+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
+ self.assertEqual(tokenizer.tokenize(),
+ ['Canvas', 'Rendering', 'Context', '2D'])
+ tokenizer = SmartTokenizer('CanvasRenderingContext2DAPITest')
+ self.assertEqual(tokenizer.tokenize(),
+ ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test'])
+
+ tokenizer = SmartTokenizer('SVGSVGElement')
+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
+
+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D'])
+
+ tokenizer = SmartTokenizer('CSSURLImageValue')
+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'URL', 'Image', 'Value'])
+ tokenizer = SmartTokenizer('CSSPropertyAPID')
+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'Property', 'API', 'D'])
+ tokenizer = SmartTokenizer('AXARIAGridCell')
+ self.assertEqual(tokenizer.tokenize(), ['AX', 'ARIA', 'Grid', 'Cell'])
+
+ tokenizer = SmartTokenizer('CDATASection')
+ self.assertEqual(tokenizer.tokenize(), ['CDATA', 'Section'])
+
+ tokenizer = SmartTokenizer('ASCIICType')
+ self.assertEqual(tokenizer.tokenize(), ['ASCII', 'CType'])
+ tokenizer = SmartTokenizer('CString')
+ self.assertEqual(tokenizer.tokenize(), ['CString'])
+
+ tokenizer = SmartTokenizer('HTMLDListElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'DList', 'Element'])
+ tokenizer = SmartTokenizer('HTMLOListElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'OList', 'Element'])
+ tokenizer = SmartTokenizer('HTMLIFrameElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'IFrame', 'Element'])
+ tokenizer = SmartTokenizer('HTMLPlugInElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'PlugIn', 'Element'])
+
+ # No special handling for OptGroup, FieldSet, and TextArea.
+ tokenizer = SmartTokenizer('HTMLOptGroupElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Opt', 'Group', 'Element'])
+ tokenizer = SmartTokenizer('HTMLFieldSetElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Field', 'Set', 'Element'])
+ tokenizer = SmartTokenizer('HTMLTextAreaElement')
+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Text', 'Area', 'Element'])
+
+ tokenizer = SmartTokenizer('Path2D')
+ self.assertEqual(tokenizer.tokenize(), ['Path', '2D'])
+ tokenizer = SmartTokenizer('Point2D')
+ self.assertEqual(tokenizer.tokenize(), ['Point', '2D'])
+ tokenizer = SmartTokenizer('CanvasRenderingContext2DState')
+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D', 'State'])
+
+ tokenizer = SmartTokenizer('RTCDTMFSender')
+ self.assertEqual(tokenizer.tokenize(), ['RTC', 'DTMF', 'Sender'])
+
+ tokenizer = SmartTokenizer('WebGLCompressedTextureS3TCsRGB')
+ self.assertEqual(tokenizer.tokenize(), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB'])
+ tokenizer = SmartTokenizer('WebGL2CompressedTextureETC1')
+ self.assertEqual(tokenizer.tokenize(), ['WebGL2', 'Compressed', 'Texture', 'ETC1'])
+ tokenizer = SmartTokenizer('EXTsRGB')
+ self.assertEqual(tokenizer.tokenize(), ['EXT', 'sRGB'])
+
+ tokenizer = SmartTokenizer('SVGFEBlendElement')
+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'FE', 'Blend', 'Element'])
+ tokenizer = SmartTokenizer('SVGMPathElement')
+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'MPath', 'Element'])
+ tokenizer = SmartTokenizer('SVGTSpanElement')
+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'TSpan', 'Element'])
+ tokenizer = SmartTokenizer('SVGURIReference')
+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'URI', 'Reference'])
+
+ tokenizer = SmartTokenizer('UTF16TextIterator')
+ self.assertEqual(tokenizer.tokenize(), ['UTF16', 'Text', 'Iterator'])
+ tokenizer = SmartTokenizer('UTF8Decoder')
+ self.assertEqual(tokenizer.tokenize(), ['UTF8', 'Decoder'])
+ tokenizer = SmartTokenizer('Uint8Array')
+ self.assertEqual(tokenizer.tokenize(), ['Uint8', 'Array'])
+ tokenizer = SmartTokenizer('DOMWindowBase64')
+ self.assertEqual(tokenizer.tokenize(), ['DOM', 'Window', 'Base64'])
+ tokenizer = SmartTokenizer('TextCodecLatin1')
+ self.assertEqual(tokenizer.tokenize(), ['Text', 'Codec', 'Latin1'])
+ tokenizer = SmartTokenizer('V8BindingForCore')
+ self.assertEqual(tokenizer.tokenize(), ['V8', 'Binding', 'For', 'Core'])
+ tokenizer = SmartTokenizer('V8DOMRect')
+ self.assertEqual(tokenizer.tokenize(), ['V8', 'DOM', 'Rect'])
+
+ tokenizer = SmartTokenizer('V0InsertionPoint')
+ self.assertEqual(tokenizer.tokenize(), ['V0', 'Insertion', 'Point'])
+ tokenizer = SmartTokenizer('ShadowDOMV0Test')
+ self.assertEqual(tokenizer.tokenize(), ['Shadow', 'DOM', 'V0', 'Test'])
+ tokenizer = SmartTokenizer('ElementShadowV0')
+ self.assertEqual(tokenizer.tokenize(), ['Element', 'Shadow', 'V0'])
+ tokenizer = SmartTokenizer('StubChromeClientForSPv2')
+ self.assertEqual(tokenizer.tokenize(), ['Stub', 'Chrome', 'Client', 'For', 'SPv2'])
+
+ tokenizer = SmartTokenizer('SQLiteAuthorizer')
+ self.assertEqual(tokenizer.tokenize(), ['SQLite', 'Authorizer'])
+ tokenizer = SmartTokenizer('XPathEvaluator')
+ self.assertEqual(tokenizer.tokenize(), ['XPath', 'Evaluator'])
+
+ tokenizer = SmartTokenizer('IsXHTMLDocument')
+ self.assertEqual(tokenizer.tokenize(), ['Is', 'XHTML', 'Document'])
+
+ tokenizer = SmartTokenizer('Animation.idl')
+ self.assertEqual(tokenizer.tokenize(), ['Animation', '.idl'])
+
+
+class NameStyleConverterTest(unittest.TestCase):
+ def test_snake_case(self):
+ converter = NameStyleConverter('HTMLElement')
+ self.assertEqual(converter.to_snake_case(), 'html_element')
+
+ def test_upper_camel_case(self):
+ converter = NameStyleConverter('someSuperThing')
+ self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing')
+
+ converter = NameStyleConverter('SVGElement')
+ self.assertEqual(converter.to_upper_camel_case(), 'SVGElement')
+
+ def test_macro_case(self):
+ converter = NameStyleConverter('WebGLBaz2D')
+ self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
+
+ def test_all_cases(self):
+ converter = NameStyleConverter('SVGScriptElement')
+ self.assertEqual(converter.to_all_cases(), {
+ 'snake_case': 'svg_script_element',
+ 'upper_camel_case': 'SVGScriptElement',
+ 'macro_case': 'SVG_SCRIPT_ELEMENT',
+ })
--- /dev/null
+++ b/third_party/blink/tools/compile_devtools_frontend.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env vpython
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Compile DevTools frontend code with Closure compiler.
+
+This script wraps devtools/scripts/compile_frontend.py.
+DevTools bot kicks this script.
+"""
+
+import os
+import sys
+
+sys.path.append(os.path.join(
+ os.path.dirname(__file__), '..', '..', 'WebKit', 'Source', 'devtools', 'scripts'))
+import compile_frontend
+
+if __name__ == '__main__':
+ sys.exit(compile_frontend.main())
--- /dev/null
+++ b/third_party/blink/tools/move_blink_source.py
@@ -0,0 +1,615 @@
+#!/usr/bin/env vpython
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Tool to move Blink source from third_party/WebKit to third_party/blink.
+
+See https://docs.google.com/document/d/1l3aPv1Wx__SpRkdOhvJz8ciEGigNT3wFKv78XiuW0Tw/edit?usp=sharing#heading=h.o225wrxp242h
+for the details.
+"""
+
+import argparse
+import logging
+import os
+import re
+import sys
+from functools import partial
+
+# Without abspath(), PathFinder can't find chromium_base correctly.
+sys.path.append(os.path.abspath(
+ os.path.join(os.path.dirname(__file__), '..', '..', '..',
+ 'third_party', 'WebKit', 'Tools', 'Scripts')))
+from blinkpy.common.name_style_converter import NameStyleConverter
+from plan_blink_move import plan_blink_move
+from plan_blink_move import relative_dest
+from webkitpy.common.checkout.git import Git
+from webkitpy.common.path_finder import get_chromium_src_dir
+from webkitpy.common.path_finder import get_scripts_dir
+from webkitpy.common.system.executive import Executive
+from webkitpy.common.system.executive import ScriptError
+from webkitpy.common.system.filesystem import FileSystem
+
+_log = logging.getLogger('move_blink_source')
+
+
+class FileType(object):
+ NONE = 0
+ BUILD = 1
+ BLINK_BUILD = 2
+ OWNERS = 3
+ DEPS = 4
+ MOJOM = 5
+ TYPEMAP = 6
+ BLINK_BUILD_PY = 7
+ LAYOUT_TESTS_WITH_MOJOM = 8
+
+ @staticmethod
+ def detect(path):
+ slash_dir, basename = os.path.split(path)
+ slash_dir = slash_dir.replace(os.path.sep, '/')
+ if basename == 'DEPS':
+ return FileType.DEPS
+ if basename == 'OWNERS':
+ return FileType.OWNERS
+ if basename.endswith('.mojom'):
+ return FileType.MOJOM
+ if basename.endswith('.typemap'):
+ return FileType.TYPEMAP
+ if basename.endswith('.py') and 'third_party/WebKit/Source/build' in slash_dir:
+ return FileType.BLINK_BUILD_PY
+ if basename.endswith(('.gn', '.gni')):
+ if 'third_party/WebKit' in path or 'third_party/blink' in slash_dir:
+ return FileType.BLINK_BUILD
+ if 'third_party' in slash_dir:
+ return FileType.NONE
+ return FileType.BUILD
+ if basename.endswith('.html') and re.search(
+ r'third_party/WebKit/LayoutTests/(geolocation-api|installedapp|' +
+ r'media/mediasession|payments|presentation|webshare)', slash_dir):
+ return FileType.LAYOUT_TESTS_WITH_MOJOM
+ return FileType.NONE
+
+
+class MoveBlinkSource(object):
+
+ def __init__(self, fs, options, repo_root):
+ self._fs = fs
+ self._options = options
+ _log.debug(options)
+ self._repo_root = repo_root
+
+ # The following fields are initialized in _create_basename_maps.
+ self._basename_map = None
+ self._basename_re = None
+ self._idl_generated_impl_headers = None
+ # _checked_in_header_re is used to distinguish checked-in header files
+ # and generated header files.
+ self._checked_in_header_re = None
+
+ self._updated_files = []
+
+ def update(self, apply_only=None):
+ """Updates contents of files affected by Blink source move.
+
+ Args:
+ apply_only: If it's None, updates all affected files. Otherwise,
+ it should be a set of file paths and this function updates
+ only the files in |apply_only|.
+ """
+ _log.info('Planning renaming ...')
+ file_pairs = plan_blink_move(self._fs, [])
+ _log.info('Will move %d files', len(file_pairs))
+
+ self._create_basename_maps(file_pairs)
+ dirs = self._update_file_content(apply_only)
+
+ # Updates #includes in files in directories with updated DEPS +
+ # third_party/WebKit/{Source,common,public}.
+ self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'third_party', 'WebKit', 'Source'))
+ self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'third_party', 'WebKit', 'common'))
+ self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'third_party', 'WebKit', 'public'))
+ self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'mojo', 'public', 'tools',
+ 'bindings', 'generators', 'cpp_templates'))
+ self._update_cpp_includes_in_directories(dirs, apply_only)
+
+ # Content update for individual files.
+ # The following is a list of tuples.
+ # Tuple: (<file path relative to repo root>, [replacement commands])
+ # Command: a callable object, or
+ # a tuple of (<original string>, <new string>).
+ file_replacement_list = [
+ ('DEPS',
+ [('src/third_party/WebKit/Source/devtools',
+ 'src/third_party/blink/renderer/devtools')]),
+ ('WATCHLISTS',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer'),
+ ('third_party/WebKit/public', 'third_party/blink/renderer/public')]),
+ ('build/check_gn_headers_whitelist.txt',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer'),
+ ('third_party/WebKit/public', 'third_party/blink/renderer/public'),
+ self._update_basename]),
+ ('testing/buildbot/gn_isolate_map.pyl',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('third_party/WebKit/Source/BUILD.gn',
+ [('$root_gen_dir/third_party/WebKit',
+ '$root_gen_dir/third_party/blink/renderer')]),
+ ('third_party/WebKit/Source/config.gni',
+ [('snake_case_source_files = false',
+ 'snake_case_source_files = true')]),
+ ('third_party/WebKit/Source/core/css/CSSProperties.json5',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/css/ComputedStyleFieldAliases.json5',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/html/parser/create-html-entity-table',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/inspector/inspector_protocol_config.json',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/probe/CoreProbes.json5',
+ [self._update_basename]),
+ ('third_party/WebKit/Source/core/testing/InternalSettings.h',
+ [('InternalSettingsGenerated.h', 'internal_settings_generated.h')]),
+ ('third_party/WebKit/Source/core/testing/Internals.cpp',
+ [('InternalRuntimeFlags.h', 'internal_runtime_flags.h')]),
+ ('third_party/WebKit/Source/platform/probe/PlatformProbes.json5',
+ [self._update_basename]),
+ ('third_party/WebKit/public/BUILD.gn',
+ [('$root_gen_dir/third_party/WebKit',
+ '$root_gen_dir/third_party/blink/renderer')]),
+ ('third_party/WebKit/public/blink_resources.grd',
+ [('../Source/', '../')]),
+ ('tools/android/eclipse/.classpath',
+ [('third_party/WebKit/public', 'third_party/blink/renderer/public')]),
+ ('tools/android/loading/cloud/backend/deploy.sh',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/android/loading/emulation_unittest.py',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/android/loading/options.py',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/android/loading/request_track.py',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/gritsettings/resource_ids',
+ [('third_party/WebKit/public', 'third_party/blink/renderer/public'),
+ ('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/metrics/actions/extract_actions.py',
+ [('third_party/WebKit/Source', 'third_party/blink/renderer')]),
+ ('tools/metrics/histograms/update_editor_commands.py',
+ [('third_party/WebKit/Source/core/editing/EditorCommand.cpp',
+ 'third_party/blink/renderer/core/editing/editor_command.cc')]),
+ ('tools/metrics/histograms/update_use_counter_css.py',
+ [('third_party/WebKit/Source/core/frame/UseCounter.cpp',
+ 'third_party/blink/renderer/core/frame/use_counter.cc')]),
+ ('tools/metrics/histograms/update_use_counter_feature_enum.py',
+ [('third_party/WebKit/public', 'third_party/blink/renderer/public')]),
+ ]
+ for file_path, replacement_list in file_replacement_list:
+ if not apply_only or file_path in apply_only:
+ self._update_single_file_content(file_path, replacement_list, should_write=self._options.run)
+
+ if self._options.run:
+ _log.info('Formatting updated %d files ...', len(self._updated_files))
+ git = Git(cwd=self._repo_root)
+ # |git cl format| can't handle too many files at once.
+ while len(self._updated_files) > 0:
+ end_index = 100
+ if end_index > len(self._updated_files):
+ end_index = len(self._updated_files)
+ git.run(['cl', 'format'] + self._updated_files[:end_index])
+ self._updated_files = self._updated_files[end_index:]
+
+ if not apply_only:
+ _log.info('Make a local commit ...')
+ git.commit_locally_with_message("""The Great Blink mv for source files, part 1.
+
+Update file contents without moving files.
+
+NOAUTOREVERT=true
+Bug: 768828
+""")
+
+ def move(self, apply_only=None):
+ """Move Blink source files.
+
+ Args:
+ apply_only: If it's None, move all affected files. Otherwise,
+ it should be a set of file paths and this function moves
+ only the files in |apply_only|.
+ """
+ _log.info('Planning renaming ...')
+ file_pairs = plan_blink_move(self._fs, [])
+
+ if apply_only:
+ file_pairs = [(src, dest) for (src, dest) in file_pairs
+ if 'third_party/WebKit/' + src.replace('\\', '/') in apply_only]
+ print 'Update file_pairs = ', file_pairs
+ _log.info('Will move %d files', len(file_pairs))
+
+ git = Git(cwd=self._repo_root)
+ files_set = self._get_checked_in_files(git)
+ for i, (src, dest) in enumerate(file_pairs):
+ src_from_repo = self._fs.join('third_party', 'WebKit', src)
+ if src_from_repo.replace('\\', '/') not in files_set:
+ _log.info('%s is not in the repository', src)
+ continue
+ dest_from_repo = self._fs.join('third_party', 'blink', dest)
+ self._fs.maybe_make_directory(self._repo_root, 'third_party', 'blink', self._fs.dirname(dest))
+ if self._options.run_git:
+ git.move(src_from_repo, dest_from_repo)
+ _log.info('[%d/%d] Git moved %s', i + 1, len(file_pairs), src)
+ else:
+ self._fs.move(self._fs.join(self._repo_root, src_from_repo),
+ self._fs.join(self._repo_root, dest_from_repo))
+ _log.info('[%d/%d] Moved %s', i + 1, len(file_pairs), src)
+ if apply_only:
+ return
+
+ self._update_single_file_content(
+ 'build/get_landmines.py',
+ [('\ndef main', ' print \'The Great Blink mv for source files (crbug.com/768828)\'\n\ndef main')])
+
+ _log.info('Run run-bindings-tests ...')
+ Executive().run_command(['python',
+ self._fs.join(get_scripts_dir(), 'run-bindings-tests'),
+ '--reset-results'],
+ cwd=self._repo_root)
+
+ if self._options.run_git:
+ _log.info('Make a local commit ...')
+ git.commit_locally_with_message("""The Great Blink mv for source files, part 2.
+
+Move and rename files.
+
+NOAUTOREVERT=true
+Bug: 768828
+""")
+
+ def fix_branch(self):
+ git = Git(cwd=self._repo_root)
+ status = self._get_local_change_status(git)
+ if len(status) == 0:
+ _log.info('No local changes.')
+ return
+ modified_files = {f for (s, f) in status if s != 'D'}
+ deleted_files = {f for (s, f) in status if s == 'D'}
+
+ self.update(apply_only=modified_files)
+ self.move(apply_only=modified_files)
+ try:
+ git.commit_locally_with_message('This commit should be squashed.')
+ except ScriptError:
+ _log.info('move_blink_source.py modified nothing.')
+
+ # TODO(tkent): Show a message about deleted_files.
+
+ def _get_local_change_status(self, git):
+ """Returns a list of tuples representing local change summary.
+
+ Each tuple contains two strings. The first one is file change status
+ such as "M", "D". See --diff-filter section of git-diff manual page.
+ The second one is file name relative to the repository top.
+ """
+
+ base_commit = git.run(['show-branch', '--merge-base', 'master', 'HEAD']).strip()
+ # Note that file names in the following command result are always
+ # slash-separated, even on Windows.
+ status_lines = git.run(['diff', '--name-status', '--no-renames', base_commit]).split('\n')
+ status_tuple_list = []
+ for l in status_lines:
+ items = l.split('\t')
+ if len(items) == 2:
+ status_tuple_list.append(tuple(items))
+ elif len(l) > 0:
+ _log.warning('Unrecognized diff output: "%s"', l)
+ return status_tuple_list
+
+ def _get_checked_in_files(self, git):
+ files_text = git.run(['ls-files',
+ 'third_party/WebKit/Source',
+ 'third_party/WebKit/common',
+ 'third_party/WebKit/public'])
+ return set(files_text.split('\n'))
+
+ def _create_basename_maps(self, file_pairs):
+ basename_map = {}
+ # Generated inspector/protocol/* contains a lot of names duplicated with
+ # checked-in core files. We don't want to rename them, and don't want to
+ # replace them in BUILD.gn and #include accidentally.
+ pattern = r'(?<!inspector/protocol/)\b('
+ idl_headers = set()
+ header_pattern = r'(?<!inspector/protocol/)\b('
+ for source, dest in file_pairs:
+ _, source_base = self._fs.split(source)
+ _, dest_base = self._fs.split(dest)
+ # OriginTrialFeaturesForCore.h in bindings/tests/results/modules/
+ # confuses generated/checked-in detection in _replace_include_path().
+ if 'bindings/tests' in source.replace('\\', '/'):
+ continue
+ if source_base.endswith('.h'):
+ header_pattern += re.escape(source_base) + '|'
+ if source_base == dest_base:
+ continue
+ basename_map[source_base] = dest_base
+ pattern += re.escape(source_base) + '|'
+ # IDL sometimes generates implementation files as well as
+ # binding files. We'd like to update #includes for such files.
+ if source_base.endswith('.idl'):
+ source_header = source_base.replace('.idl', '.h')
+ basename_map[source_header] = dest_base.replace('.idl', '.h')
+ pattern += re.escape(source_header) + '|'
+ idl_headers.add(source_header)
+ _log.info('Rename %d files for snake_case', len(basename_map))
+ self._basename_map = basename_map
+ self._basename_re = re.compile(pattern[0:len(pattern) - 1] + ')(?=["\']|$)')
+ self._idl_generated_impl_headers = idl_headers
+ self._checked_in_header_re = re.compile(header_pattern[0:len(header_pattern) - 1] + ')$')
+
+ def _shorten_path(self, path):
+ if path.startswith(self._repo_root):
+ return path[len(self._repo_root) + 1:]
+ return path
+
+ @staticmethod
+ def _filter_file(fs, dirname, basename):
+ return FileType.detect(fs.join(dirname, basename)) != FileType.NONE
+
+ def _update_build(self, content):
+ content = content.replace('//third_party/WebKit/Source', '//third_party/blink/renderer')
+ content = content.replace('//third_party/WebKit/common', '//third_party/blink/common')
+ content = content.replace('//third_party/WebKit/public', '//third_party/blink/renderer/public')
+ # export_header_blink exists outside of Blink too.
+ content = content.replace('export_header_blink = "third_party/WebKit/public/platform/WebCommon.h"',
+ 'export_header_blink = "third_party/blink/renderer/public/platform/web_common.h"')
+ return content
+
+ def _update_blink_build(self, content):
+ content = self._update_build(content)
+
+ # Update visibility=[...]
+ content = content.replace('//third_party/WebKit/*', '//third_party/blink/*')
+ content = content.replace('//third_party/WebKit/Source/*', '//third_party/blink/renderer/*')
+ content = content.replace('//third_party/WebKit/public/*', '//third_party/blink/renderer/public/*')
+
+ # Update mojom variables
+ content = content.replace('export_header = "third_party/WebKit/common',
+ 'export_header = "third_party/blink/common')
+ content = content.replace('export_header_blink = "third_party/WebKit/Source',
+ 'export_header_blink = "third_party/blink/renderer')
+ return self._update_basename(content)
+
+ def _update_owners(self, content):
+ content = content.replace('//third_party/WebKit/Source', '//third_party/blink/renderer')
+ content = content.replace('//third_party/WebKit/common', '//third_party/blink/common')
+ content = content.replace('//third_party/WebKit/public', '//third_party/blink/renderer/public')
+ return content
+
+ def _update_deps(self, content):
+ original_content = content
+ content = content.replace('third_party/WebKit/Source', 'third_party/blink/renderer')
+ content = content.replace('third_party/WebKit/common', 'third_party/blink/common')
+ content = content.replace('third_party/WebKit/public', 'third_party/blink/renderer/public')
+ content = content.replace('third_party/WebKit', 'third_party/blink')
+ if original_content == content:
+ return content
+ return self._update_basename(content)
+
+ def _update_mojom(self, content):
+ content = content.replace('third_party/WebKit/public', 'third_party/blink/renderer/public')
+ content = content.replace('third_party/WebKit/common', 'third_party/blink/common')
+ return content
+
+ def _update_typemap(self, content):
+ content = content.replace('//third_party/WebKit/Source', '//third_party/blink/renderer')
+ content = content.replace('//third_party/WebKit/common', '//third_party/blink/common')
+ content = content.replace('//third_party/WebKit/public', '//third_party/blink/renderer/public')
+ return self._update_basename(content)
+
+ def _update_blink_build_py(self, content):
+ # We don't prepend 'third_party/blink/renderer/' to matched basenames
+ # because it won't affect build and manual update after the great mv is
+ # enough.
+ return self._update_basename(content)
+
+ def _update_layout_tests(self, content):
+ return content.replace('file:///gen/third_party/WebKit/', 'file:///gen/third_party/blink/renderer/')
+
+ def _update_basename(self, content):
+ return self._basename_re.sub(lambda match: self._basename_map[match.group(1)], content)
+
+ @staticmethod
+ def _append_unless_upper_dir_exists(dirs, new_dir):
+ for i in range(0, len(dirs)):
+ if new_dir.startswith(dirs[i]):
+ return
+ if dirs[i].startswith(new_dir):
+ dirs[i] = new_dir
+ return
+ dirs.append(new_dir)
+
+ def _update_file_content(self, apply_only):
+ _log.info('Find *.gn, *.mojom, *.py, *.typemap, DEPS, and OWNERS ...')
+ files = self._fs.files_under(
+ self._repo_root, dirs_to_skip=['.git', 'out'], file_filter=self._filter_file)
+ _log.info('Scan contents of %d files ...', len(files))
+ updated_deps_dirs = []
+ for file_path in files:
+ file_type = FileType.detect(file_path)
+ original_content = self._fs.read_text_file(file_path)
+ content = original_content
+ if file_type == FileType.BUILD:
+ content = self._update_build(content)
+ elif file_type == FileType.BLINK_BUILD:
+ content = self._update_blink_build(content)
+ elif file_type == FileType.OWNERS:
+ content = self._update_owners(content)
+ elif file_type == FileType.DEPS:
+ if self._fs.dirname(file_path) == self._repo_root:
+ _log.info("Skip //DEPS")
+ continue
+ content = self._update_deps(content)
+ elif file_type == FileType.MOJOM:
+ content = self._update_mojom(content)
+ elif file_type == FileType.TYPEMAP:
+ content = self._update_typemap(content)
+ elif file_type == FileType.BLINK_BUILD_PY:
+ content = self._update_blink_build_py(content)
+ elif file_type == FileType.LAYOUT_TESTS_WITH_MOJOM:
+ content = self._update_layout_tests(content)
+
+ if original_content == content:
+ continue
+ if self._options.run and (not apply_only or file_path.replace('\\', '/') in apply_only):
+ self._fs.write_text_file(file_path, content)
+ self._updated_files.append(file_path)
+ if file_type == FileType.DEPS:
+ self._append_unless_upper_dir_exists(updated_deps_dirs, self._fs.dirname(file_path))
+ _log.info('Updated %s', self._shorten_path(file_path))
+ return updated_deps_dirs
+
+ def _update_cpp_includes_in_directories(self, dirs, apply_only):
+ for dirname in dirs:
+ _log.info('Processing #include in %s ...', self._shorten_path(dirname))
+ files = self._fs.files_under(
+ dirname, file_filter=lambda fs, _, basename: basename.endswith(
+ ('.h', '.cc', '.cpp', '.mm', '.cc.tmpl', '.cpp.tmpl',
+ '.h.tmpl', 'XPathGrammar.y', '.gperf')))
+ for file_path in files:
+ posix_file_path = file_path.replace('\\', '/')
+ original_content = self._fs.read_text_file(file_path)
+
+ content = self._update_cpp_includes(original_content)
+ if file_path.endswith('.h') and '/third_party/WebKit/public/' in posix_file_path:
+ content = self._update_basename_only_includes(content, file_path)
+ if file_path.endswith('.h') and '/third_party/WebKit/' in posix_file_path:
+ content = self._update_include_guard(content, file_path)
+
+ if original_content == content:
+ continue
+ if self._options.run and (not apply_only or posix_file_path in apply_only):
+ self._fs.write_text_file(file_path, content)
+ self._updated_files.append(file_path)
+ _log.info('Updated %s', self._shorten_path(file_path))
+
+ def _replace_include_path(self, match):
+ include_or_import = match.group(1)
+ path = match.group(2)
+
+ # If |path| starts with 'third_party/WebKit', we should adjust the
+ # directory name for third_party/blink, and replace its basename by
+ # self._basename_map.
+ #
+ # If |path| starts with a Blink-internal directory such as bindings,
+ # core, modules, platform, public, it refers to a checked-in file, or a
+ # generated file. For the former, we should add
+ # 'third_party/blink/renderer/' and replace the basename. For the
+ # latter, we should update the basename for a name mapped from an IDL
+ # renaming, and should not add 'third_party/blink/renderer'.
+
+ if path.startswith('third_party/WebKit'):
+ path = path.replace('third_party/WebKit/Source', 'third_party/blink/renderer')
+ path = path.replace('third_party/WebKit/common', 'third_party/blink/common')
+ path = path.replace('third_party/WebKit/public', 'third_party/blink/renderer/public')
+ path = self._update_basename(path)
+ return '#%s "%s"' % (include_or_import, path)
+
+ match = self._checked_in_header_re.search(path)
+ if match:
+ if match.group(1) in self._basename_map:
+ path = 'third_party/blink/renderer/' + path[:match.start(1)] + self._basename_map[match.group(1)]
+ else:
+ path = 'third_party/blink/renderer/' + path
+ elif 'core/inspector/protocol/' not in path:
+ basename_start = path.rfind('/') + 1
+ basename = path[basename_start:]
+ if basename in self._idl_generated_impl_headers:
+ path = path[:basename_start] + self._basename_map[basename]
+ elif basename.startswith('V8'):
+ path = path[:basename_start] + NameStyleConverter(basename[:len(basename) - 2]).to_snake_case() + '.h'
+ return '#%s "%s"' % (include_or_import, path)
+
+ def _update_cpp_includes(self, content):
+ pattern = re.compile(r'#(include|import)\s+"((bindings|core|modules|platform|public|' +
+ r'third_party/WebKit/(Source|common|public))/[-_\w/.]+)"')
+ return pattern.sub(self._replace_include_path, content)
+
+ def _replace_basename_only_include(self, subdir, source_path, match):
+ source_basename = match.group(1)
+ if source_basename in self._basename_map:
+ return '#include "third_party/blink/renderer/public/%s/%s"' % (subdir, self._basename_map[source_basename])
+ _log.warning('Basename-only %s in %s', match.group(0), self._shorten_path(source_path))
+ return match.group(0)
+
+ def _update_basename_only_includes(self, content, source_path):
+ if not source_path.endswith('.h') or '/third_party/WebKit/public/' not in source_path.replace('\\', '/'):
+ return
+ # In public/ header files, we should replace |#include "WebFoo.h"|
+ # with |#include "third_party/blink/renderer/public/platform-or-web/web_foo.h"|
+ subdir = self._fs.basename(self._fs.dirname(source_path))
+ # subdir is 'web' or 'platform'.
+ return re.sub(r'#include\s+"(\w+\.h)"',
+ partial(self._replace_basename_only_include, subdir, source_path), content)
+
+ def _update_include_guard(self, content, source_path):
+ current_guard = re.sub(r'[.]', '_', self._fs.basename(source_path))
+ new_path = relative_dest(self._fs, self._fs.relpath(
+ source_path, start=self._fs.join(self._repo_root, 'third_party', 'WebKit')))
+ new_guard = 'THIRD_PARTY_BLINK_' + re.sub(r'[\\/.]', '_', new_path.upper()) + '_'
+ content = re.sub(r'#ifndef\s+(WTF_)?' + current_guard, '#ifndef ' + new_guard, content);
+ content = re.sub(r'#define\s+(WTF_)?' + current_guard, '#define ' + new_guard, content);
+ content = re.sub(r'#endif\s+//\s+(WTF_)?' + current_guard, '#endif // ' + new_guard, content);
+ return content
+
+ def _update_single_file_content(self, file_path, replace_list, should_write=True):
+ full_path = self._fs.join(self._repo_root, file_path)
+ original_content = self._fs.read_text_file(full_path)
+ content = original_content
+ for command in replace_list:
+ if isinstance(command, tuple):
+ src, dest = command
+ content = content.replace(src, dest)
+ elif callable(command):
+ content = command(content)
+ else:
+ raise TypeError('A tuple or a function is expected.')
+ if content != original_content:
+ if should_write:
+ self._fs.write_text_file(full_path, content)
+ self._updated_files.append(full_path)
+ _log.info('Updated %s', file_path)
+ else:
+ _log.warning('%s does not contain specified source strings.', file_path)
+
+
+def main():
+ logging.basicConfig(level=logging.DEBUG,
+ format='[%(asctime)s %(levelname)s %(name)s] %(message)s',
+ datefmt='%H:%M:%S')
+ parser = argparse.ArgumentParser(description='Blink source mover')
+ sub_parsers = parser.add_subparsers()
+
+ update_parser = sub_parsers.add_parser('update')
+ update_parser.set_defaults(command='update')
+ update_parser.add_argument('--run', dest='run', action='store_true',
+ help='Update file contents')
+
+ move_parser = sub_parsers.add_parser('move')
+ move_parser.set_defaults(command='move')
+ move_parser.add_argument('--git', dest='run_git', action='store_true',
+ help='Run |git mv| command instead of |mv|.')
+
+ fixbranch_parser = sub_parsers.add_parser('fixbranch')
+ fixbranch_parser.set_defaults(command='fixbranch', run=True, run_git=True)
+
+ options = parser.parse_args()
+ mover = MoveBlinkSource(FileSystem(), options, get_chromium_src_dir())
+ if options.command == 'update':
+ mover.update()
+ elif options.command == 'move':
+ mover.move()
+ elif options.command == 'fixbranch':
+ mover.fix_branch()
+
+
+if __name__ == '__main__':
+ main()
--- /dev/null
+++ b/third_party/blink/tools/plan_blink_move.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env vpython
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os
+import re
+import sys
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..',
+ 'third_party', 'WebKit', 'Tools', 'Scripts'))
+from blinkpy.common.name_style_converter import NameStyleConverter
+from webkitpy.common.system.filesystem import FileSystem
+
+
+def relative_dest(fs, filename):
+ """Returns a destination path string for given filename.
+
+ |filename| is a path relative to third_party/WebKit, and the resultant path
+ is relative to third_party/blink.
+ """
+ dest = None
+ if filename.startswith('public'):
+ dest = re.sub(r'^public', 'renderer' + fs.sep + 'public', filename)
+ elif filename.startswith('Source'):
+ dest = re.sub(r'^Source', 'renderer', filename)
+ elif filename.startswith('common'):
+ dest = filename
+ else:
+ raise ValueError('|filename| must start with "common", "public", or "Source": %s' % filename)
+ if filename.endswith(('.h', '.cpp', '.mm', '.idl', '.typemap', 'Settings.json5')):
+ dirname, basename = fs.split(dest)
+ basename, ext = fs.splitext(basename)
+ # Skip some inspector-related files. #includes for these files are
+ # generated by a script outside of Blink.
+ if (re.match(r'Inspector.*Agent', basename)
+ or basename == 'InspectorTraceEvents'
+ or basename == 'PerformanceMonitor'
+ or basename == 'PlatformTraceEventsAgent'):
+ return dest
+ # Skip CSSProperty*. Some files are generated, and some files are
+ # checked-in. It's hard to handle them automatically.
+ if re.search(r'css[\\/]properties$', dirname):
+ return dest
+ if filename.endswith('.cpp'):
+ ext = '.cc'
+ # WebKit.h should be renamed to blink.h.
+ if basename == 'WebKit' and ext == '.h':
+ basename = 'blink'
+ if basename.lower() != basename:
+ basename = NameStyleConverter(basename).to_snake_case()
+ return fs.join(dirname, basename + ext)
+ return dest
+
+
+def start_with_list(name, prefixes):
+ if len(prefixes) == 0:
+ return True
+ for prefix in prefixes:
+ if name.startswith(prefix):
+ return True
+ return False
+
+
+def plan_blink_move(fs, prefixes):
+ """Returns (source, dest) path pairs.
+
+ The source paths are relative to third_party/WebKit,
+ and the dest paths are relative to third_party/blink.
+ The paths use os.sep as the path part separator.
+ """
+ blink_dir = fs.join(fs.dirname(__file__), '..')
+ webkit_dir = fs.join(blink_dir, '..', '..', 'third_party', 'WebKit')
+ source_files = fs.files_under(fs.join(webkit_dir, 'Source'))
+ source_files += fs.files_under(fs.join(webkit_dir, 'common'))
+ source_files += fs.files_under(fs.join(webkit_dir, 'public'))
+
+ # It's possible to check git.exists() here, but we don't do it due to slow
+ # performance. We should check it just before executing git command.
+
+ source_files = [f[len(webkit_dir) + 1:] for f in source_files]
+ return [(f, relative_dest(fs, f)) for f in source_files
+ if f.find('node_modules') == -1 and start_with_list(f, prefixes)]
+
+
+def main():
+ fs = FileSystem()
+ file_pairs = plan_blink_move(fs, sys.argv[1:])
+ print 'Show renaming plan. It contains files not in the repository.'
+ print '<Source path relative to third_party/WebKit> => <Destination path relative to third_party/blink>'
+ for pair in file_pairs:
+ print '%s\t=>\t%s' % pair
+
+
+if __name__ == '__main__':
+ main()
description: backport from upstream glibc 2.27 / gcc 7.3 buildfixes form ARM
author: Riku Voipio
--- a/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+++ b/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
@@ -291,7 +291,7 @@ CAPTURECONTEXT_SYMBOL2:
#elif defined(__aarch64__)
// Zero out fault_address, which is unused.
- str x31, [x0, #0xb0] // context->uc_mcontext.fault_address
+ str xzr, [x0, #0xb0] // context->uc_mcontext.fault_address
// Save general purpose registers in context->uc_mcontext.regs[i].
// The original x0 can't be recovered.
description: Stretch binutils doesn't recognize LR on arm64
author: Riku Voipio
Index: chromium-browser-68.0.3440.75/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
===================================================================
--- chromium-browser-68.0.3440.75.orig/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+++ chromium-browser-68.0.3440.75/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
@@ -312,14 +312,14 @@ CAPTURECONTEXT_SYMBOL2:
stp x28, x29, [x0, #0x198]
// The original LR can't be recovered.
- str LR, [x0, #0x1a8]
+ str x30, [x0, #0x1a8]
// Use x1 as a scratch register.
mov x1, SP
str x1, [x0, #0x1b0] // context->uc_mcontext.sp
// The link register holds the return address for this function.
- str LR, [x0, #0x1b8] // context->uc_mcontext.pc
+ str x30, [x0, #0x1b8] // context->uc_mcontext.pc
// NZCV, pstate, and CPSR are synonyms.
mrs x1, NZCV
description: GCC ICE with optimized version
author: Riku Voipio
bug-debian: http://bugs.debian.org/901290
--- a/third_party/skia/third_party/skcms/skcms.gni
+++ b/third_party/skia/third_party/skcms/skcms.gni
@@ -3,6 +3,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+if ((current_cpu == "arm64" || current_cpu == "arm") && !is_clang) {
+ defines = [ "SKCMS_PORTABLE=1" ]
+}
+
skcms_sources = [
"src/Curve.c",
"src/Curve.h",
description: build fix for armhf
author: Riku Voipio
--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -653,7 +653,7 @@ SI F approx_powf(F x, F y) {
}
SI F from_half(U16 h) {
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
return vcvt_f32_f16(h);
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
@@ -673,7 +673,7 @@ SI F from_half(U16 h) {
}
SI U16 to_half(F f) {
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
return vcvt_f16_f32(f);
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
......@@ -4,16 +4,8 @@ Author: Daniel Echeverry <epsilon77@gmail.com>
--- a/chrome/app/resources/manpage.1.in
+++ b/chrome/app/resources/manpage.1.in
@@ -1,5 +1,5 @@
-." This file is processed by chrome.gyp to generate manpages in the
-." build diretory.
+.\" This file is processed by chrome.gyp to generate manpages in the
+.\" build diretory.
.TH @@FILENAME@@ 1 "" "" "USER COMMANDS"
.SH NAME
@@ -20,6 +20,23 @@ This manpage only describes invocation,
@@NAME@@ has hundreds of undocumented command-line flags that are added
@@MENUNAME@@ has hundreds of undocumented command-line flags that are added
and removed at the whim of the developers. Here, we document relatively
stable flags.
+
......@@ -36,7 +28,7 @@ Author: Daniel Echeverry <epsilon77@gmail.com>
.TP
\fB\-\-user\-data\-dir\fR=\fIDIR\fR
Specifies the directory that user data (your "profile") is kept in.
@@ -110,6 +127,7 @@ as
@@ -114,6 +131,7 @@ as
See the GTK documentation for more:
.IP
<http://library.gnome.org/devel/gtk/stable/gtk-running.html>
......
......@@ -9,7 +9,7 @@ author: Michael Gilbert <mgilbert@debian.org>
base::FilePath MasterPrefsPath() {
- // The standard location of the master prefs is next to the chrome binary.
- base::FilePath master_prefs;
- if (!PathService::Get(base::DIR_EXE, &master_prefs))
- if (!base::PathService::Get(base::DIR_EXE, &master_prefs))
- return base::FilePath();
- return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
+ return base::FilePath("/usr/share/chromium/master_preferences");
......
--- a/device/vr/buildflags/buildflags.gni
+++ b/device/vr/buildflags/buildflags.gni
@@ -5,7 +5,6 @@
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/gclient_args.gni")
-import("//chrome/android/channel.gni")
declare_args() {
# TODO(733935): Enable for other Android architectures too. Currently we only
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -365,7 +365,7 @@ group("gn_all") {
# seems currently broken for this platform at the moment, and the
# corresponding code build and works on Linux unmodified.
# See instructions in the corresponding BUILD.gn.
- if (is_linux) {
+ if (is_android) {
deps +=
[ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
}
author: Michael Gilbert <mgilbert@debian.org>
description: disable loading external components
--- a/chrome/browser/extensions/external_component_loader.cc
+++ b/chrome/browser/extensions/external_component_loader.cc
@@ -41,21 +41,6 @@ ExternalComponentLoader::~ExternalCompon
void ExternalComponentLoader::StartLoading() {
prefs_.reset(new base::DictionaryValue());
-#if defined(GOOGLE_CHROME_BUILD)
- AddExternalExtension(extension_misc::kInAppPaymentsSupportAppId);
-#endif // defined(GOOGLE_CHROME_BUILD)
-
- if (HotwordServiceFactory::IsHotwordAllowed(profile_))
- AddExternalExtension(extension_misc::kHotwordSharedModuleId);
-
-#if defined(OS_CHROMEOS)
- {
- base::CommandLine* const command_line =
- base::CommandLine::ForCurrentProcess();
- if (!command_line->HasSwitch(chromeos::switches::kDisableNewZIPUnpacker))
- AddExternalExtension(extension_misc::kZIPUnpackerExtensionId);
- }
-#endif
#if defined(ENABLE_MEDIA_ROUTER)
if (media_router::MediaRouterEnabled(profile_) &&
@@ -64,12 +49,6 @@ void ExternalComponentLoader::StartLoadi
}
#endif // defined(ENABLE_MEDIA_ROUTER)
-#if BUILDFLAG(ENABLE_APP_LIST) && defined(OS_CHROMEOS)
- std::string google_now_extension_id;
- if (GetGoogleNowExtensionId(&google_now_extension_id))
- AddExternalExtension(google_now_extension_id);
-#endif
-
LoadFinished();
}
description: fuzzers aren't built, so don't depend on them
author: Michael Gilbert <mgilbert@debian.org>
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -713,8 +713,7 @@ group("gn_all") {
}
}
- if ((is_linux && !is_chromeos && !is_chromecast) || (is_win && use_drfuzz) ||
- (use_libfuzzer && is_mac)) {
+ if (false) {
deps += [
"//testing/libfuzzer/fuzzers",
"//testing/libfuzzer/tests:libfuzzer_tests",
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -2122,9 +2122,3 @@ test("content_perftests") {
deps += [ "//testing/android/native_test:native_test_native_code" ]
}
}
-
-group("fuzzers") {
- deps = [
- "//content/test/fuzzer",
- ]