diff --git a/resources/config_bundles/common/patch_order.list b/resources/config_bundles/common/patch_order.list index 48e5e7fa..c6e096ac 100644 --- a/resources/config_bundles/common/patch_order.list +++ b/resources/config_bundles/common/patch_order.list @@ -1,3 +1,4 @@ +inox-patchset/add-missing-blink-tools.patch inox-patchset/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch inox-patchset/fix-frame-buttons-rendering-too-large-when-using-OSX.patch inox-patchset/chromium-exclude_unwind_tables.patch diff --git a/resources/config_bundles/linux_rooted/patch_order.list b/resources/config_bundles/linux_rooted/patch_order.list index c386bafa..6382ce7a 100644 --- a/resources/config_bundles/linux_rooted/patch_order.list +++ b/resources/config_bundles/linux_rooted/patch_order.list @@ -1,4 +1,4 @@ -inox-patchset/chromium-vaapi-r17.patch +inox-patchset/chromium-vaapi-r18.patch debian/master-preferences.patch debian/system/vpx.patch diff --git a/resources/config_bundles/opensuse/patch_order.list b/resources/config_bundles/opensuse/patch_order.list index fe1b4253..0dafd664 100644 --- a/resources/config_bundles/opensuse/patch_order.list +++ b/resources/config_bundles/opensuse/patch_order.list @@ -1,4 +1,4 @@ -inox-patchset/chromium-vaapi-r17.patch +inox-patchset/chromium-vaapi-r18.patch ungoogled-chromium/linux/fix-libstdcxx-errors.patch diff --git a/resources/patches/inox-patchset/0001-fix-building-without-safebrowsing.patch b/resources/patches/inox-patchset/0001-fix-building-without-safebrowsing.patch index fe8813e7..52a3a6b1 100644 --- a/resources/patches/inox-patchset/0001-fix-building-without-safebrowsing.patch +++ b/resources/patches/inox-patchset/0001-fix-building-without-safebrowsing.patch @@ -1432,7 +1432,7 @@ #include "components/safe_browsing/renderer/websocket_sb_handshake_throttle.h" #include "components/spellcheck/spellcheck_build_features.h" #include "components/startup_metric_utils/common/startup_metric.mojom.h" -@@ -1388,9 +1387,7 @@ void ChromeContentRendererClient::InitSp +@@ -1387,9 +1386,7 @@ void ChromeContentRendererClient::InitSp std::unique_ptr ChromeContentRendererClient::CreateWebSocketHandshakeThrottle() { @@ -1443,7 +1443,7 @@ } std::unique_ptr -@@ -1681,13 +1678,6 @@ ChromeContentRendererClient::GetTaskSche +@@ -1680,13 +1677,6 @@ ChromeContentRendererClient::GetTaskSche return task_scheduler_util::GetTaskSchedulerInitParamsForRenderer(); } diff --git a/resources/patches/inox-patchset/0006-modify-default-prefs.patch b/resources/patches/inox-patchset/0006-modify-default-prefs.patch index 5732de76..fae28846 100644 --- a/resources/patches/inox-patchset/0006-modify-default-prefs.patch +++ b/resources/patches/inox-patchset/0006-modify-default-prefs.patch @@ -167,7 +167,7 @@ prefs::kCloudPrintXmppPingEnabled, false); --- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc +++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc -@@ -144,10 +144,6 @@ void LocalDiscoveryUI::RegisterProfilePr +@@ -143,10 +143,6 @@ void LocalDiscoveryUI::RegisterProfilePr user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kLocalDiscoveryNotificationsEnabled, diff --git a/resources/patches/inox-patchset/0018-disable-first-run-behaviour.patch b/resources/patches/inox-patchset/0018-disable-first-run-behaviour.patch index 3528f8b9..d2675947 100644 --- a/resources/patches/inox-patchset/0018-disable-first-run-behaviour.patch +++ b/resources/patches/inox-patchset/0018-disable-first-run-behaviour.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc -@@ -58,7 +58,7 @@ bool ProfileHasOtherTabbedBrowser(Profil +@@ -60,7 +60,7 @@ bool ProfileHasOtherTabbedBrowser(Profil StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { // Onboarding content has not been launched on Chrome OS. diff --git a/resources/patches/inox-patchset/add-missing-blink-tools.patch b/resources/patches/inox-patchset/add-missing-blink-tools.patch new file mode 100644 index 00000000..2b07a5f3 --- /dev/null +++ b/resources/patches/inox-patchset/add-missing-blink-tools.patch @@ -0,0 +1,1070 @@ +# https://crbug.com/832283 + +--- /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/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/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: (, [replacement commands]) ++ # Command: a callable object, or ++ # a tuple of (, ). ++ 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'(? => ' ++ for pair in file_pairs: ++ print '%s\t=>\t%s' % pair ++ ++ ++if __name__ == '__main__': ++ main() diff --git a/resources/patches/inox-patchset/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch b/resources/patches/inox-patchset/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch deleted file mode 100644 index 8087e9d9..00000000 --- a/resources/patches/inox-patchset/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 6b1b6d3a8555075e23cca89335e855d55f35fba9 Mon Sep 17 00:00:00 2001 -From: Zhenyao Mo -Date: Thu, 29 Mar 2018 23:48:19 +0000 -Subject: [PATCH] Allow `stat` in Linux for GPU process for a list of files. - -This is to unblock certain NVidia driver's glReadPixels calls in the sandboxed -GPU process. - -Note that the needed file /dev/nvidiactl is already in the list for read/write. - -BUG=817400 -TEST=manual -R=tsepez@chromium.org - -Change-Id: I9074a8335a9c4df1487f5a288d5e284bbedf67c3 -Reviewed-on: https://chromium-review.googlesource.com/965462 -Reviewed-by: Zhenyao Mo -Reviewed-by: Tom Sepez -Reviewed-by: Robert Sesek -Reviewed-by: Kenneth Russell -Commit-Queue: Zhenyao Mo -Cr-Commit-Position: refs/heads/master@{#547027} ---- - content/gpu/gpu_sandbox_hook_linux.cc | 5 ++++- - .../service_manager/sandbox/linux/bpf_gpu_policy_linux.cc | 15 ++++++++++++++- - 2 files changed, 18 insertions(+), 2 deletions(-) - ---- a/content/gpu/gpu_sandbox_hook_linux.cc -+++ b/content/gpu/gpu_sandbox_hook_linux.cc -@@ -153,6 +153,7 @@ void AddStandardGpuWhiteList(std::vector - static const char kDriCardBasePath[] = "/dev/dri/card"; - static const char kNvidiaCtlPath[] = "/dev/nvidiactl"; - static const char kNvidiaDeviceBasePath[] = "/dev/nvidia"; -+ static const char kNvidiaDeviceModeSetPath[] = "/dev/nvidia-modeset"; - static const char kNvidiaParamsPath[] = "/proc/driver/nvidia/params"; - static const char kDevShm[] = "/dev/shm/"; - -@@ -172,6 +173,8 @@ void AddStandardGpuWhiteList(std::vector - permissions->push_back(BrokerFilePermission::ReadWrite( - base::StringPrintf("%s%d", kNvidiaDeviceBasePath, i))); - } -+ permissions->push_back( -+ BrokerFilePermission::ReadWrite(kNvidiaDeviceModeSetPath)); - permissions->push_back(BrokerFilePermission::ReadOnly(kNvidiaParamsPath)); - } - -@@ -262,9 +265,9 @@ sandbox::syscall_broker::BrokerCommandSe - sandbox::syscall_broker::BrokerCommandSet command_set; - command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); - command_set.set(sandbox::syscall_broker::COMMAND_OPEN); -+ command_set.set(sandbox::syscall_broker::COMMAND_STAT); - if (IsChromeOS() && options.use_amd_specific_policies) { - command_set.set(sandbox::syscall_broker::COMMAND_READLINK); -- command_set.set(sandbox::syscall_broker::COMMAND_STAT); - } - return command_set; - } ---- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -+++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -@@ -61,7 +61,20 @@ ResultExpr GpuProcessPolicy::EvaluateSys - case __NR_open: - #endif // !defined(__aarch64__) - case __NR_faccessat: -- case __NR_openat: { -+ case __NR_openat: -+#if defined(__NR_stat) -+ case __NR_stat: -+#endif -+#if defined(__NR_stat64) -+ case __NR_stat64: -+#endif -+#if defined(__NR_fstatat) -+ case __NR_fstatat: -+#endif -+#if defined(__NR_newfstatat) -+ case __NR_newfstatat: -+#endif -+ { - auto* broker_process = SandboxLinux::GetInstance()->broker_process(); - DCHECK(broker_process); - return Trap(BrokerProcess::SIGSYS_Handler, broker_process); diff --git a/resources/patches/inox-patchset/chromium-clang-r2.patch b/resources/patches/inox-patchset/chromium-clang-r2.patch deleted file mode 100644 index 9552397d..00000000 --- a/resources/patches/inox-patchset/chromium-clang-r2.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -433,18 +433,6 @@ config("compiler") { - cflags += [ "-fcolor-diagnostics" ] - } - -- # TODO(hans): Remove this once Clang generates better optimized debug info by -- # default. https://crbug.com/765793 -- if (is_clang && !is_nacl && current_toolchain == host_toolchain && -- target_os != "chromeos") { -- cflags += [ -- "-Xclang", -- "-mllvm", -- "-Xclang", -- "-instcombine-lower-dbg-declare=0", -- ] -- } -- - # Print absolute paths in diagnostics. There is no precedent for doing this - # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and - # Windows developers rely on it (crbug.com/636109) so only do this on Windows. diff --git a/resources/patches/inox-patchset/chromium-ffmpeg-clang.patch b/resources/patches/inox-patchset/chromium-ffmpeg-clang.patch deleted file mode 100644 index 90571bcb..00000000 --- a/resources/patches/inox-patchset/chromium-ffmpeg-clang.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -+++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -@@ -640,18 +640,8 @@ def ConfigureAndBuild(target_arch, targe - if 'win' not in target_os: - configure_flags['Common'].extend([ - '--enable-pic', -- '--cc=clang', -- '--cxx=clang++', -- '--ld=clang', - ]) - -- # Clang Linux will use the first 'ld' it finds on the path, which will -- # typically be the system one, so explicitly configure use of Clang's -- # ld.lld, to ensure that things like cross-compilation and LTO work. -- # This does not work for arm64, ia32 and is always used on mac. -- if target_arch not in ['arm64', 'ia32', 'mipsel'] and target_os != 'mac': -- configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld') -- - # Should be run on Mac. - if target_os == 'mac': - if host_os != 'mac': diff --git a/resources/patches/inox-patchset/chromium-vaapi-r17.patch b/resources/patches/inox-patchset/chromium-vaapi-r18.patch similarity index 97% rename from resources/patches/inox-patchset/chromium-vaapi-r17.patch rename to resources/patches/inox-patchset/chromium-vaapi-r18.patch index b557026e..6ae81e13 100644 --- a/resources/patches/inox-patchset/chromium-vaapi-r17.patch +++ b/resources/patches/inox-patchset/chromium-vaapi-r18.patch @@ -1,4 +1,4 @@ -From d9ef948bf4a739f95acbd98ef88b04caa29d8dda Mon Sep 17 00:00:00 2001 +From e95d904578c265a84f117d7d5eff598423f9283d Mon Sep 17 00:00:00 2001 From: Daniel Charles Date: Fri, 09 Feb 2018 14:39:27 -0800 Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only @@ -29,14 +29,14 @@ TEST=subjective testing with VAVDA,VAVEA and VAJDA, autotest for encoder have libva/intel-vaapi-driver installed and not installed in the system repeat on different hardware families -Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel +Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171 Signed-off-by: Daniel Charles --- --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1281,12 +1281,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1234,12 +1234,14 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, #if BUILDFLAG(ENABLE_WEBRTC) @@ -51,7 +51,7 @@ Signed-off-by: Daniel Charles {"enable-webrtc-hw-h264-encoding", flag_descriptions::kWebrtcHwH264EncodingName, flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS, -@@ -1582,6 +1584,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1553,6 +1555,13 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kShowTouchHudDescription, kOsCrOS, SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)}, #endif // OS_CHROMEOS @@ -65,7 +65,7 @@ Signed-off-by: Daniel Charles { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, -@@ -1589,6 +1598,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1560,6 +1569,7 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, @@ -73,7 +73,7 @@ Signed-off-by: Daniel Charles #if defined(OS_WIN) {"enable-hdr", flag_descriptions::kEnableHDRName, flag_descriptions::kEnableHDRDescription, kOsWin, -@@ -2300,12 +2310,17 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2283,12 +2293,17 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kOpenVR)}, #endif // ENABLE_OPENVR #endif // ENABLE_VR @@ -143,7 +143,7 @@ Signed-off-by: Daniel Charles const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; -@@ -1723,6 +1730,7 @@ const char kWebrtcEchoCanceller3Name[] = +@@ -1730,6 +1737,7 @@ const char kWebrtcEchoCanceller3Name[] = const char kWebrtcEchoCanceller3Description[] = "Experimental WebRTC echo canceller (AEC3)."; @@ -151,7 +151,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; -@@ -1730,6 +1738,7 @@ const char kWebrtcHwDecodingDescription[ +@@ -1737,6 +1745,7 @@ const char kWebrtcHwDecodingDescription[ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; @@ -159,7 +159,7 @@ Signed-off-by: Daniel Charles const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = -@@ -2549,14 +2558,16 @@ const char kTabStripKeyboardFocusDescrip +@@ -2561,14 +2570,16 @@ const char kTabStripKeyboardFocusDescrip // Chrome OS ------------------------------------------------------------------- @@ -190,7 +190,7 @@ Signed-off-by: Daniel Charles extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; -@@ -1561,13 +1565,17 @@ extern const char kPermissionPromptPersi +@@ -1569,13 +1573,17 @@ extern const char kPermissionPromptPersi #endif // defined(OS_MACOSX) diff --git a/resources/patches/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch b/resources/patches/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch index aab2bae7..e25e875c 100644 --- a/resources/patches/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch +++ b/resources/patches/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch @@ -9,7 +9,7 @@ Subject: [PATCH 56/66] browser: disable profile auto-import on first run --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -1864,8 +1864,6 @@ int ChromeBrowserMainParts::PreMainMessa +@@ -1880,8 +1880,6 @@ int ChromeBrowserMainParts::PreMainMessa // and preferences have been registered since some of the import code depends // on preferences. if (first_run::IsChromeFirstRun()) { diff --git a/resources/patches/ungoogled-chromium/add-flag-for-search-engine-collection.patch b/resources/patches/ungoogled-chromium/add-flag-for-search-engine-collection.patch index fd5f54c1..25027e67 100644 --- a/resources/patches/ungoogled-chromium/add-flag-for-search-engine-collection.patch +++ b/resources/patches/ungoogled-chromium/add-flag-for-search-engine-collection.patch @@ -2,7 +2,7 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1242,6 +1242,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1227,6 +1227,10 @@ const FeatureEntry kFeatureEntries[] = { "Enable stacking in tab strip", "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.", kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")}, @@ -15,7 +15,7 @@ "Record histograms and user actions.", --- a/chrome/renderer/chrome_render_frame_observer.cc +++ b/chrome/renderer/chrome_render_frame_observer.cc -@@ -139,9 +139,10 @@ ChromeRenderFrameObserver::ChromeRenderF +@@ -141,9 +141,10 @@ ChromeRenderFrameObserver::ChromeRenderF if (!render_frame->IsMainFrame()) return; @@ -27,7 +27,7 @@ if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection)) SetClientSidePhishingDetection(true); #endif -@@ -327,14 +328,16 @@ void ChromeRenderFrameObserver::DidFinis +@@ -328,14 +329,16 @@ void ChromeRenderFrameObserver::DidFinis if (frame->Parent()) return; @@ -54,7 +54,7 @@ --- a/chrome/renderer/chrome_render_frame_observer.h +++ b/chrome/renderer/chrome_render_frame_observer.h -@@ -96,6 +96,7 @@ class ChromeRenderFrameObserver : public +@@ -98,6 +98,7 @@ class ChromeRenderFrameObserver : public // Have the same lifetime as us. translate::TranslateHelper* translate_helper_; safe_browsing::PhishingClassifierDelegate* phishing_classifier_; diff --git a/resources/patches/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch b/resources/patches/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch index 0b314a92..e639a6b5 100644 --- a/resources/patches/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch +++ b/resources/patches/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch @@ -3,7 +3,7 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -175,6 +175,16 @@ const unsigned kOsDesktop = kOsMac | kOs +@@ -181,6 +181,16 @@ const unsigned kOsDesktop = kOsMac | kOs const unsigned kOsAura = kOsWin | kOsLinux | kOsCrOS; #endif // USE_AURA @@ -20,7 +20,7 @@ const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = { {flags_ui::kGenericExperimentChoiceAutomatic, "", ""}, {flags_ui::kGenericExperimentChoiceEnabled, -@@ -1224,6 +1234,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1209,6 +1219,10 @@ const FeatureEntry kFeatureEntries[] = { {"disable-trkbar", flag_descriptions::kDisableTrkbarName, flag_descriptions::kDisableTrkbarDescription, kOsAll, SINGLE_VALUE_TYPE("disable-trkbar")}, @@ -41,7 +41,7 @@ #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/crx_installer.h" #include "chrome/browser/extensions/extension_install_prompt.h" -@@ -116,6 +117,14 @@ scoped_refptr +@@ -119,6 +120,14 @@ scoped_refptr return installer; } @@ -56,7 +56,7 @@ bool IsExtensionDownload(const DownloadItem& download_item) { if (download_item.GetTargetDisposition() == DownloadItem::TARGET_DISPOSITION_PROMPT) -@@ -124,7 +133,7 @@ bool IsExtensionDownload(const DownloadI +@@ -127,7 +136,7 @@ bool IsExtensionDownload(const DownloadI if (download_item.GetMimeType() == extensions::Extension::kMimeType || extensions::UserScript::IsURLUserScript(download_item.GetURL(), download_item.GetMimeType())) { @@ -104,7 +104,7 @@ bool IsExtensionDownload(const download::DownloadItem& download_item); --- a/chrome/browser/download/download_target_determiner.cc +++ b/chrome/browser/download/download_target_determiner.cc -@@ -900,10 +900,12 @@ DownloadConfirmationReason DownloadTarge +@@ -901,10 +901,12 @@ DownloadConfirmationReason DownloadTarge return DownloadConfirmationReason::SAVE_AS; #if BUILDFLAG(ENABLE_EXTENSIONS) diff --git a/resources/patches/ungoogled-chromium/add-flag-to-enable-potentially-annoying-security-features.patch b/resources/patches/ungoogled-chromium/add-flag-to-enable-potentially-annoying-security-features.patch index c346f937..714b0993 100644 --- a/resources/patches/ungoogled-chromium/add-flag-to-enable-potentially-annoying-security-features.patch +++ b/resources/patches/ungoogled-chromium/add-flag-to-enable-potentially-annoying-security-features.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -2073,11 +2073,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2079,11 +2079,11 @@ const FeatureEntry kFeatureEntries[] = { {"enable-wifi-credential-sync", flag_descriptions::kWifiCredentialSyncName, flag_descriptions::kWifiCredentialSyncDescription, kOsCrOS, SINGLE_VALUE_TYPE(switches::kEnableWifiCredentialSync)}, diff --git a/resources/patches/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch b/resources/patches/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch index 6c1c26a1..c1916dc4 100644 --- a/resources/patches/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch +++ b/resources/patches/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch @@ -2,7 +2,7 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1250,6 +1250,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1235,6 +1235,10 @@ const FeatureEntry kFeatureEntries[] = { "Record metrics", "Record histograms and user actions.", kOsAll, SINGLE_VALUE_TYPE("enable-metrics")}, diff --git a/resources/patches/ungoogled-chromium/add-flag-to-stack-tabs.patch b/resources/patches/ungoogled-chromium/add-flag-to-stack-tabs.patch index e7284d21..83b4e7f7 100644 --- a/resources/patches/ungoogled-chromium/add-flag-to-stack-tabs.patch +++ b/resources/patches/ungoogled-chromium/add-flag-to-stack-tabs.patch @@ -2,15 +2,7 @@ --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc -@@ -7,6 +7,7 @@ - #include - - #include "base/auto_reset.h" -+#include "base/command_line.h" - #include "base/macros.h" - #include "base/metrics/user_metrics.h" - #include "base/task_scheduler/post_task.h" -@@ -66,13 +67,13 @@ using content::WebContents; +@@ -68,16 +68,15 @@ using content::WebContents; namespace { bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) { @@ -32,7 +24,7 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1224,6 +1224,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1209,6 +1209,10 @@ const FeatureEntry kFeatureEntries[] = { {"disable-trkbar", flag_descriptions::kDisableTrkbarName, flag_descriptions::kDisableTrkbarDescription, kOsAll, SINGLE_VALUE_TYPE("disable-trkbar")}, diff --git a/resources/patches/ungoogled-chromium/block-trk-and-subdomains.patch b/resources/patches/ungoogled-chromium/block-trk-and-subdomains.patch index ee737c42..29027684 100644 --- a/resources/patches/ungoogled-chromium/block-trk-and-subdomains.patch +++ b/resources/patches/ungoogled-chromium/block-trk-and-subdomains.patch @@ -36,17 +36,17 @@ GURL rewritten_tab_url = tab_url; --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h -@@ -148,6 +148,7 @@ class InfoBarDelegate { - FRAMEBUST_BLOCK_INFOBAR_ANDROID = 77, +@@ -149,6 +149,7 @@ class InfoBarDelegate { SURVEY_INFOBAR_ANDROID = 78, NEAR_OOM_INFOBAR_ANDROID = 79, + INSTALLABLE_AMBIENT_BADGE_INFOBAR_DELEGATE = 80, + TRACKING_ALERT_INFOBAR_DELEGATE = 9001, }; // Describes navigation events, used to decide whether infobars should be --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc -@@ -486,7 +486,8 @@ void AutocompleteInput::ParseForEmphasiz +@@ -487,7 +487,8 @@ void AutocompleteInput::ParseForEmphasiz int after_scheme_and_colon = parts.scheme.end() + 1; // For the view-source scheme, we should emphasize the scheme and host of the // URL qualified by the view-source prefix. @@ -56,7 +56,7 @@ (static_cast(text.length()) > after_scheme_and_colon)) { // Obtain the URL prefixed by view-source and parse it. base::string16 real_url(text.substr(after_scheme_and_colon)); -@@ -555,7 +556,9 @@ int AutocompleteInput::NumNonHostCompone +@@ -556,7 +557,9 @@ int AutocompleteInput::NumNonHostCompone bool AutocompleteInput::HasHTTPScheme(const base::string16& input) { std::string utf8_input(base::UTF16ToUTF8(input)); url::Component scheme; @@ -106,10 +106,10 @@ } --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -350,6 +350,7 @@ ChildProcessSecurityPolicyImpl::ChildPro +@@ -348,6 +348,7 @@ ChildProcessSecurityPolicyImpl::ChildPro + RegisterPseudoScheme(url::kAboutScheme); + RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); - RegisterPseudoScheme(url::kHttpSuboriginScheme); - RegisterPseudoScheme(url::kHttpsSuboriginScheme); + RegisterPseudoScheme(url::kTraceScheme); } @@ -317,7 +317,7 @@ +#endif /* UNGOOGLED_TRKNOTIFY_H */ --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc -@@ -43,6 +43,9 @@ +@@ -42,6 +42,9 @@ #include "net/url_request/url_request_redirect_job.h" #include "url/gurl.h" #include "url/origin.h" @@ -326,7 +326,7 @@ +#include "third_party/ungoogled/util.h" #if BUILDFLAG(ENABLE_REPORTING) - #include "net/url_request/network_error_logging_delegate.h" + #include "net/network_error_logging/network_error_logging_service.h" @@ -581,6 +584,11 @@ URLRequest::URLRequest(const GURL& url, // Sanity check out environment. DCHECK(base::ThreadTaskRunnerHandle::IsSet()); @@ -341,10 +341,10 @@ NetLogEventType::REQUEST_ALIVE, --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -22515,6 +22515,7 @@ Called by update_gpu_driver_bug_workarou - +@@ -22864,6 +22864,7 @@ Called by update_gpu_driver_bug_workarou + + @@ -371,7 +371,7 @@ --- a/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc -@@ -539,6 +539,10 @@ GURL FixupURL(const std::string& text, c +@@ -536,6 +536,10 @@ GURL FixupURL(const std::string& text, c } } @@ -384,7 +384,7 @@ return GURL(parts.scheme.is_valid() ? text : FixupPath(text)); --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1221,6 +1221,9 @@ const FeatureEntry::FeatureVariation kWe +@@ -1206,6 +1206,9 @@ const FeatureEntry::FeatureVariation kSi // // When adding a new choice, add it to the end of the list. const FeatureEntry kFeatureEntries[] = { @@ -396,7 +396,7 @@ "Record histograms and user actions.", --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -781,6 +781,12 @@ const char kIconNtpName[] = "Large icons +@@ -849,6 +849,12 @@ const char kIconNtpName[] = "Large icons const char kIconNtpDescription[] = "Enable the experimental New Tab page using large icons."; @@ -411,7 +411,7 @@ "Overrides the built-in software rendering list and enables " --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -490,6 +490,9 @@ extern const char kHtmlBasedUsernameDete +@@ -532,6 +532,9 @@ extern const char kHtmlBasedUsernameDete extern const char kIconNtpName[]; extern const char kIconNtpDescription[]; @@ -483,7 +483,7 @@ +#endif /* UNGOOGLED_UTIL_H */ --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -366,6 +366,7 @@ component("net") { +@@ -367,6 +367,7 @@ component("net") { "//net/data/ssl/certificate_transparency:ct_log_list", "//third_party/protobuf:protobuf_lite", "//url:url_features", @@ -493,7 +493,7 @@ if (include_transport_security_state_preload_list) { --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -166,6 +166,7 @@ jumbo_source_set("browser") { +@@ -172,6 +172,7 @@ jumbo_source_set("browser") { "//third_party/icu", "//third_party/libyuv", "//third_party/re2", diff --git a/resources/patches/ungoogled-chromium/clear-http-auth-cache-menu-item.patch b/resources/patches/ungoogled-chromium/clear-http-auth-cache-menu-item.patch index edde0d72..9225f4c5 100644 --- a/resources/patches/ungoogled-chromium/clear-http-auth-cache-menu-item.patch +++ b/resources/patches/ungoogled-chromium/clear-http-auth-cache-menu-item.patch @@ -108,7 +108,7 @@ #else --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml -@@ -114706,6 +114706,7 @@ http://cs/file:chrome/histograms.xml - b +@@ -114814,6 +114814,7 @@ http://cs/file:chrome/histograms.xml - b @@ -142,7 +142,7 @@ --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -46984,6 +46984,7 @@ Called by update_traffic_annotation_hist +@@ -47000,6 +47000,7 @@ Called by update_traffic_annotation_hist diff --git a/resources/patches/ungoogled-chromium/disable-mei-preload.patch b/resources/patches/ungoogled-chromium/disable-mei-preload.patch index db773e6f..ec89a9c0 100644 --- a/resources/patches/ungoogled-chromium/disable-mei-preload.patch +++ b/resources/patches/ungoogled-chromium/disable-mei-preload.patch @@ -7,7 +7,7 @@ --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -303,7 +303,6 @@ if (!is_android && !is_mac) { +@@ -306,7 +306,6 @@ if (!is_android && !is_mac) { } data_deps += [ @@ -15,7 +15,7 @@ "//third_party/widevine/cdm:widevinecdmadapter", ] -@@ -1237,7 +1236,6 @@ if (is_win) { +@@ -1283,7 +1282,6 @@ if (is_win) { ":widevine_cdm_library", "//build/config:exe_and_shlib_deps", "//chrome/app/nibs:chrome_xibs",