Initial commit, builds 101.0.4951.54-1-x86_64

This commit is contained in:
Michael Peters 2022-10-02 04:08:56 -05:00
commit 4545e5ee73
17 changed files with 1874 additions and 0 deletions

14
.gitignore vendored Normal file
View File

@ -0,0 +1,14 @@
archive
aur-ungoogled-chromium
cache
chromium-downloads
chromium-launcher
chromium-src**
old-zips
pkg
src
ungoogled-chromium
ungoogled-chromium-michael*.zst
chromium-launcher.tar.gz
chromium-src-release.tar.gz
aur-confs.tar.gz

135
PKGBUILD Executable file
View File

@ -0,0 +1,135 @@
# Based on aur/chromium-vaapi, with ungoogled-chromium patches, and some extra tweaks by Michael
# Maintainer: Michael Peters <chris.frog@protonmail.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ungoogled-chromium-michael
pkgdesc="Michael's custom build of ungoogled-chromium"
pkgver=101.0.4951.54
pkgrel=1
arch=('x86_64')
license=('BSD')
provides=('chromium')
conflicts=('chromium')
options=('debug' '!lto') # Chromium adds its own flags for ThinLTO
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire'
'java-runtime-headless')
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
'kdialog: support for native dialogs in Plasma'
'org.freedesktop.secrets: password storage backend on GNOME / Xfce'
'kwallet: support for storing passwords in KWallet on Plasma')
source=('chromium-src-release.tar.gz'
'aur-confs.tar.gz'
'chromium-launcher.tar.gz')
sha256sums=('135dd761de526e4ac0ad3de10ac9b0b97f0b0f572aaf2063f53a6a5103a71a0b'
'cb75bd9700a36858b63067fedd1862c79ebc0086a82bf35064b111f3817fee88'
'9cc5da044ec72a2e27b5444ba5a6b6af89dd6608657cb166d9df7461b83e2cee')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2 [snappy]=snappy [zlib]=minizip
)
_unwanted_bundled_libs=(
$(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
)
depends+=(${_system_libs[@]})
package() {
cd "$srcdir/chromium-launcher"
make PREFIX=/usr DESTDIR="$pkgdir" install
install -Dm644 LICENSE \
"$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
cd "$srcdir/chromium-src"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
install -Dm644 ../aur-confs/chromium-drirc-disable-10bpc-color-configs.conf \
"$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -Dm644 chrome/installer/linux/common/desktop.template \
"$pkgdir/usr/share/applications/chromium.desktop"
install -Dm644 chrome/app/resources/manpage.1.in \
"$pkgdir/usr/share/man/man1/chromium.1"
sed -i \
-e 's/@@MENUNAME@@/Chromium/g' \
-e 's/@@PACKAGE@@/chromium/g' \
-e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \
"$pkgdir/usr/share/applications/chromium.desktop" \
"$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
sed -ni \
-e 's/chromium-browser\.desktop/chromium.desktop/' \
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
local toplevel_files=(
chrome_100_percent.pak
chrome_200_percent.pak
chrome_crashpad_handler
resources.pak
v8_context_snapshot.bin
# ANGLE
libEGL.so
libGLESv2.so
# SwiftShader ICD
libvk_swiftshader.so
vk_swiftshader_icd.json
)
if [[ -z ${_system_libs[icu]+set} ]]; then
toplevel_files+=(icudtl.dat)
fi
cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/"
install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak
#install -Dm755 -t "$pkgdir/usr/lib/chromium/swiftshader" out/Release/swiftshader/*.so
for size in 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}

135
PKGBUILD.backup Executable file
View File

@ -0,0 +1,135 @@
# Based on aur/chromium-vaapi, with ungoogled-chromium patches, and some extra tweaks by Michael
# Maintainer: Michael Peters <chris.frog@protonmail.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ungoogled-chromium-michael
pkgdesc="Michael's custom build of ungoogled-chromium"
pkgver=101.0.4951.54
pkgrel=1
arch=('x86_64')
license=('BSD')
provides=('chromium')
conflicts=('chromium')
options=('debug' '!lto') # Chromium adds its own flags for ThinLTO
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire'
'java-runtime-headless')
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
'kdialog: support for native dialogs in Plasma'
'org.freedesktop.secrets: password storage backend on GNOME / Xfce'
'kwallet: support for storing passwords in KWallet on Plasma')
source=('chromium-src-release.tar.gz'
'aur-confs.tar.gz'
'chromium-launcher.tar.gz')
sha256sums=('d377e88d1b998c61e0d4e65a1a3578f1e21869063f21766fccde8eb60b7fcbcb'
'cb75bd9700a36858b63067fedd1862c79ebc0086a82bf35064b111f3817fee88'
'ca5a54b9c50c94c4d1496f529ca7970f5d2fc51bc7546746c132cccdc5d89920')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2 [snappy]=snappy [zlib]=minizip
)
_unwanted_bundled_libs=(
$(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
)
depends+=(${_system_libs[@]})
package() {
cd "$srcdir/chromium-launcher"
make PREFIX=/usr DESTDIR="$pkgdir" install
install -Dm644 LICENSE \
"$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
cd "$srcdir/chromium-src"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
install -Dm644 ../aur-confs/chromium-drirc-disable-10bpc-color-configs.conf \
"$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -Dm644 chrome/installer/linux/common/desktop.template \
"$pkgdir/usr/share/applications/chromium.desktop"
install -Dm644 chrome/app/resources/manpage.1.in \
"$pkgdir/usr/share/man/man1/chromium.1"
sed -i \
-e 's/@@MENUNAME@@/Chromium/g' \
-e 's/@@PACKAGE@@/chromium/g' \
-e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \
"$pkgdir/usr/share/applications/chromium.desktop" \
"$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
sed -ni \
-e 's/chromium-browser\.desktop/chromium.desktop/' \
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
local toplevel_files=(
chrome_100_percent.pak
chrome_200_percent.pak
chrome_crashpad_handler
resources.pak
v8_context_snapshot.bin
# ANGLE
libEGL.so
libGLESv2.so
# SwiftShader ICD
libvk_swiftshader.so
vk_swiftshader_icd.json
)
if [[ -z ${_system_libs[icu]+set} ]]; then
toplevel_files+=(icudtl.dat)
fi
cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/"
install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak
install -Dm755 -t "$pkgdir/usr/lib/chromium/swiftshader" out/Release/swiftshader/*.so
for size in 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}

135
PKGBUILD.template Executable file
View File

@ -0,0 +1,135 @@
# Based on aur/chromium-vaapi, with ungoogled-chromium patches, and some extra tweaks by Michael
# Maintainer: Michael Peters <chris.frog@protonmail.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ungoogled-chromium-michael
pkgdesc="Michael's custom build of ungoogled-chromium"
pkgver=101.0.4951.54
pkgrel=1
arch=('x86_64')
license=('BSD')
provides=('chromium')
conflicts=('chromium')
options=('debug' '!lto') # Chromium adds its own flags for ThinLTO
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire'
'java-runtime-headless')
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
'kdialog: support for native dialogs in Plasma'
'org.freedesktop.secrets: password storage backend on GNOME / Xfce'
'kwallet: support for storing passwords in KWallet on Plasma')
source=('chromium-src-release.tar.gz'
'aur-confs.tar.gz'
'chromium-launcher.tar.gz')
sha256sums=('<chromium-src-release.tar.gz-sha256sum>'
'<aur-confs.tar.gz-sha256sum>'
'<chromium-launcher.tar.gz-sha256sum>')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2 [snappy]=snappy [zlib]=minizip
)
_unwanted_bundled_libs=(
$(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
)
depends+=(${_system_libs[@]})
package() {
cd "$srcdir/chromium-launcher"
make PREFIX=/usr DESTDIR="$pkgdir" install
install -Dm644 LICENSE \
"$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
cd "$srcdir/chromium-src"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
install -Dm644 ../aur-confs/chromium-drirc-disable-10bpc-color-configs.conf \
"$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -Dm644 chrome/installer/linux/common/desktop.template \
"$pkgdir/usr/share/applications/chromium.desktop"
install -Dm644 chrome/app/resources/manpage.1.in \
"$pkgdir/usr/share/man/man1/chromium.1"
sed -i \
-e 's/@@MENUNAME@@/Chromium/g' \
-e 's/@@PACKAGE@@/chromium/g' \
-e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \
"$pkgdir/usr/share/applications/chromium.desktop" \
"$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
sed -ni \
-e 's/chromium-browser\.desktop/chromium.desktop/' \
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
local toplevel_files=(
chrome_100_percent.pak
chrome_200_percent.pak
chrome_crashpad_handler
resources.pak
v8_context_snapshot.bin
# ANGLE
libEGL.so
libGLESv2.so
# SwiftShader ICD
libvk_swiftshader.so
vk_swiftshader_icd.json
)
if [[ -z ${_system_libs[icu]+set} ]]; then
toplevel_files+=(icudtl.dat)
fi
cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/"
install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak
#install -Dm755 -t "$pkgdir/usr/lib/chromium/swiftshader" out/Release/swiftshader/*.so
for size in 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}

289
aur-PKGBUILD Normal file
View File

@ -0,0 +1,289 @@
# Maintainer: Seppia <seppia@seppio.fish>
# Maintainer: JustKidding <jk@vin.ovh>
# Based on aur/chromium-vaapi, with ungoogled-chromium patches
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ungoogled-chromium
pkgver=101.0.4951.54
pkgrel=1
_launcher_ver=8
_gcc_patchset=4
pkgdesc="A lightweight approach to removing Google web service dependency"
arch=('x86_64')
url="https://github.com/Eloston/ungoogled-chromium"
license=('BSD')
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire'
'java-runtime-headless')
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
'kdialog: support for native dialogs in Plasma'
'org.freedesktop.secrets: password storage backend on GNOME / Xfce'
'kwallet: support for storing passwords in KWallet on Plasma')
options=('debug' '!lto') # Chromium adds its own flags for ThinLTO
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz
https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz
enable-GlobalMediaControlsCastStartStop.patch
chromium-libxml-unbundle.patch
sql-make-VirtualCursor-standard-layout-type.patch
use-oauth2-client-switches-as-default.patch)
sha256sums=('c26cc6fd453d9a42a6b5e46fa4f3ee62ed368bb78101512b6816bc5d8f4200b5'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
'8ed519d21ccd8b382ddd384e9c15306a60d2e3495f48a62dea07c9be9bbffebd'
'779fb13f2494209d3a7f1f23a823e59b9dded601866d3ab095937a1a04e19ac6'
'fd3bf124aacc45f2d0a4f1dd86303fa7f2a3d4f4eeaf33854631d6cb39e12485'
'b94b2e88f63cfb7087486508b8139599c89f96d7a4181c61fec4b4e250ca327a'
'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711')
provides=('chromium')
conflicts=('chromium')
_uc_usr=Eloston
_uc_ver=$pkgver-1
source=(${source[@]}
$pkgname-$_uc_ver.tar.gz::https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz
chromium-drirc-disable-10bpc-color-configs.conf
wayland-egl.patch)
sha256sums=(${sha256sums[@]}
'8c5da085191a8586bf52ff3bbd0548f1af0fe1792c5db8530d4b158df83a092b'
'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb'
'34d08ea93cb4762cb33c7cffe931358008af32265fc720f2762f0179c3973574')
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2
[snappy]=snappy
[zlib]=minizip
)
_unwanted_bundled_libs=(
$(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
)
depends+=(${_system_libs[@]})
prepare() {
cd "$srcdir/chromium-$pkgver"
# Allow building against system libraries in official builds
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
# https://crbug.com/893950
sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
third_party/blink/renderer/core/xml/*.cc \
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
third_party/libxml/chromium/*.cc \
third_party/maldoca/src/maldoca/ole/oss_utils.h
# Use the --oauth2-client-id= and --oauth2-client-secret= switches for
# setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at
# runtime -- this allows signing into Chromium without baked-in values
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
# Upstream fixes
# Revert kGlobalMediaControlsCastStartStop enabled by default
# https://crbug.com/1314342
patch -Rp1 -F3 -i ../enable-GlobalMediaControlsCastStartStop.patch
# https://chromium-review.googlesource.com/c/chromium/src/+/3488058
patch -Np1 -i ../chromium-libxml-unbundle.patch
# https://chromium-review.googlesource.com/c/chromium/src/+/2862724
patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch
# Fixes for building with libstdc++ instead of libc++
#patch -Np1 -i ../patches/
# Wayland/EGL regression (crbug #1071528 #1071550)
patch -Np1 -i ../wayland-egl.patch
# Ungoogled Chromium changes
_ungoogled_repo="$srcdir/$pkgname-$_uc_ver"
_utils="${_ungoogled_repo}/utils"
python "$_utils/prune_binaries.py" ./ "$_ungoogled_repo/pruning.list"
python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches"
python "$_utils/domain_substitution.py" apply -r "$_ungoogled_repo/domain_regex.list" \
-f "$_ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./
# Link to system tools required by the build
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
ln -s /usr/bin/java third_party/jdk/current/bin/
# Remove bundled libraries for which we will use the system copies; this
# *should* do what the remove_bundled_libraries.py script does, with the
# added benefit of not having to list all the remaining libraries
local _lib
for _lib in ${_unwanted_bundled_libs[@]}; do
find "third_party/$_lib" -type f \
\! -path "third_party/$_lib/chromium/*" \
\! -path "third_party/$_lib/google/*" \
\! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
\! -regex '.*\.\(gn\|gni\|isolate\)' \
-delete
done
./build/linux/unbundle/replace_gn_files.py \
--system-libraries "${!_system_libs[@]}"
}
build() {
make -C chromium-launcher-$_launcher_ver
cd "$srcdir/chromium-$pkgver"
export CC=clang
export CXX=clang++
export AR=ar
export NM=nm
local _flags=(
'custom_toolchain="//build/toolchain/linux/unbundle:default"'
'host_toolchain="//build/toolchain/linux/unbundle:default"'
'is_official_build=true' # implies is_cfi=true on x86_64
'symbol_level=0' # sufficient for backtraces on x86(_64)
'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile
'disable_fieldtrial_testing_config=true'
'blink_enable_generated_code_formatting=false'
'ffmpeg_branding="Chrome"'
'proprietary_codecs=true'
'rtc_use_pipewire=true'
'link_pulseaudio=true'
'use_gnome_keyring=false'
'use_sysroot=false'
'use_custom_libcxx=false'
'enable_widevine=true'
)
if [[ -n ${_system_libs[icu]+set} ]]; then
_flags+=('icu_use_data_file=false')
fi
# Append ungoogled chromium flags to _flags array
_ungoogled_repo="$srcdir/$pkgname-$_uc_ver"
readarray -t -O ${#_flags[@]} _flags < "${_ungoogled_repo}/flags.gn"
# Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
CFLAGS+=' -Wno-builtin-macro-redefined'
CXXFLAGS+=' -Wno-builtin-macro-redefined'
CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__='
# Do not warn about unknown warning options
CFLAGS+=' -Wno-unknown-warning-option'
CXXFLAGS+=' -Wno-unknown-warning-option'
# Let Chromium set its own symbol level
CFLAGS=${CFLAGS/-g }
CXXFLAGS=${CXXFLAGS/-g }
# https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123
CFLAGS=${CFLAGS/-fexceptions}
CFLAGS=${CFLAGS/-fcf-protection}
CXXFLAGS=${CXXFLAGS/-fexceptions}
CXXFLAGS=${CXXFLAGS/-fcf-protection}
# This appears to cause random segfaults when combined with ThinLTO
# https://bugs.archlinux.org/task/73518
CFLAGS=${CFLAGS/-fstack-clash-protection}
CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
# https://crbug.com/957519#c122
CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}
gn gen out/Release --args="${_flags[*]}"
ninja -C out/Release chrome chrome_sandbox chromedriver
}
package() {
cd chromium-launcher-$_launcher_ver
make PREFIX=/usr DESTDIR="$pkgdir" install
install -Dm644 LICENSE \
"$pkgdir/usr/share/licenses/chromium/LICENSE.launcher"
cd "$srcdir/chromium-$pkgver"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \
"$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
install -Dm644 chrome/installer/linux/common/desktop.template \
"$pkgdir/usr/share/applications/chromium.desktop"
install -Dm644 chrome/app/resources/manpage.1.in \
"$pkgdir/usr/share/man/man1/chromium.1"
sed -i \
-e 's/@@MENUNAME@@/Chromium/g' \
-e 's/@@PACKAGE@@/chromium/g' \
-e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \
"$pkgdir/usr/share/applications/chromium.desktop" \
"$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
sed -ni \
-e 's/chromium-browser\.desktop/chromium.desktop/' \
-e '/<update_contact>/d' \
-e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
-e '/^<?xml/,$p' \
"$pkgdir/usr/share/metainfo/chromium.appdata.xml"
local toplevel_files=(
chrome_100_percent.pak
chrome_200_percent.pak
chrome_crashpad_handler
resources.pak
v8_context_snapshot.bin
# ANGLE
libEGL.so
libGLESv2.so
# SwiftShader ICD
libvk_swiftshader.so
vk_swiftshader_icd.json
)
if [[ -z ${_system_libs[icu]+set} ]]; then
toplevel_files+=(icudtl.dat)
fi
cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/"
install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak
install -Dm755 -t "$pkgdir/usr/lib/chromium/swiftshader" out/Release/swiftshader/*.so
for size in 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}
# vim:set ts=2 sw=2 et:

View File

@ -0,0 +1,15 @@
<!--
Disable 10 bpc color configs; fixes VAAPI playback.
https://bugs.freedesktop.org/show_bug.cgi?id=106490
-->
<driconf>
<device>
<application name="Chromium" executable="chromium">
<option name="allow_rgb10_configs" value="false" />
</application>
</device>
</driconf>

11
aur-mods.sh Executable file
View File

@ -0,0 +1,11 @@
# Allow building against system libraries in official builds
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
# https://crbug.com/893950
sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
third_party/blink/renderer/core/xml/*.cc \
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
third_party/libxml/chromium/*.cc \
third_party/maldoca/src/maldoca/ole/oss_utils.h

View File

@ -0,0 +1,32 @@
From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001
From: Muyao Xu <muyaoxu@google.com>
Date: Thu, 20 Jan 2022 23:46:21 +0000
Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by
default
The feature is rolled out to 100% stable through finch for M96+.
This CL enables it by default and fixes some unit tests failures.
Bug: 1287242, 1287305
Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Commit-Queue: Muyao Xu <muyaoxu@google.com>
Cr-Commit-Position: refs/heads/main@{#961658}
---
chrome/browser/media/router/media_router_feature.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
index f28f9b0b802..a8d544f7d6d 100644
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -33,7 +33,7 @@ const base::Feature kMediaRouter{"MediaRouter",
const base::Feature kCastAllowAllIPsFeature{"CastAllowAllIPs",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kGlobalMediaControlsCastStartStop{
- "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT};
+ "GlobalMediaControlsCastStartStop", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kAllowAllSitesToInitiateMirroring{
"AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDialMediaRouteProvider{"DialMediaRouteProvider",

View File

@ -0,0 +1,18 @@
--- chromium-102.0.5005.61/build/config/compiler/BUILD.gn.orig 2022-05-19 10:35:52.991415777 +0000
+++ chromium-102.0.5005.61/build/config/compiler/BUILD.gn 2022-05-19 10:36:11.102017131 +0000
@@ -1538,15 +1538,6 @@ config("default_warnings") {
cflags += [ "-Wno-deprecated-non-prototype" ]
}
- if (!is_nacl && !(is_chromeos ||
- default_toolchain == "//build/toolchain/cros:target")) {
- # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out
- cflags += [
- "-Xclang",
- "-no-opaque-pointers",
- ]
- }
-
if (is_fuchsia) {
# TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
cflags += [ "-Wno-deprecated-copy" ]

View File

@ -0,0 +1,333 @@
From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Sat, 2 Apr 2022 05:13:53 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125
commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526
Created with:
roll-dep src/third_party/ffmpeg
Fixed: 1293918
Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng
Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#988253}
---
.../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++---------
media/ffmpeg/ffmpeg_common.cc | 11 +++----
media/filters/audio_file_reader.cc | 9 +++---
media/filters/audio_file_reader_unittest.cc | 6 ++--
.../filters/audio_video_metadata_extractor.cc | 11 +++++--
.../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++--
...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +-
media/filters/ffmpeg_audio_decoder.cc | 13 +++++----
8 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
index e4fc3f460e2..9b1ad9f7675 100644
--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext(
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
- codec_context->channels = config.channel_count;
+ codec_context->ch_layout.nb_channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format,
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
- decoded_audio_size / av_frame.channels;
- for (int i = 0; i < av_frame.channels; ++i) {
+ decoded_audio_size / av_frame.ch_layout.nb_channels;
+ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize(
// Success!
decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
samples_per_second_ = config.samples_per_second;
- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
+ bytes_per_frame_ =
+ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
output_timestamp_helper_ =
std::make_unique<AudioTimestampHelper>(config.samples_per_second);
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer(
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
- frame->channels != channels_ || frame->format != av_sample_format_) {
+ frame->ch_layout.nb_channels != channels_ ||
+ frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
- << samples_per_second_ << ", Channels: " << frame->channels
- << " vs " << channels_ << ", Sample Format: " << frame->format
- << " vs " << av_sample_format_;
+ << samples_per_second_
+ << ", Channels: " << frame->ch_layout.nb_channels << " vs "
+ << channels_ << ", Sample Format: " << frame->format << " vs "
+ << av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
- nullptr, codec_context_->channels, frame->nb_samples,
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
- frame->nb_samples,
- codec_context_->sample_fmt, 1);
+ *total_size += av_samples_get_buffer_size(
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
+ codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
return true;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 87ca8969626..76f03d6608e 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
- codec_context->channels > 8
+ codec_context->ch_layout.nb_channels > 8
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
- codec_context->channels);
+ : ChannelLayoutToChromeChannelLayout(
+ codec_context->ch_layout.u.mask,
+ codec_context->ch_layout.nb_channels);
int sample_rate = codec_context->sample_rate;
switch (codec) {
@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->channels);
+ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config,
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
- codec_context->channels = config.channels();
+ codec_context->ch_layout.nb_channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index 5f257bdfaa6..e1be5aa9a5b 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() {
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
- codec_context_->channels) ==
+ if (ChannelLayoutToChromeChannelLayout(
+ codec_context_->ch_layout.u.mask,
+ codec_context_->ch_layout.nb_channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame(
if (frames_read < 0)
return false;
- const int channels = frame->channels;
+ const int channels = frame->ch_layout.nb_channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
index 2aba7927a31..1f45a50cace 100644
--- a/media/filters/audio_file_reader_unittest.cc
+++ b/media/filters/audio_file_reader_unittest.cc
@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test {
EXPECT_FALSE(reader_->Open());
}
- void RunTestFailingDecode(const char* fn) {
+ void RunTestFailingDecode(const char* fn, int expect_read = 0) {
Initialize(fn);
EXPECT_TRUE(reader_->Open());
std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
}
void RunTestPartialDecode(const char* fn) {
@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
}
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
- RunTestFailingDecode("midstream_config_change.mp3");
+ RunTestFailingDecode("midstream_config_change.mp3", 42624);
}
#endif
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
index 185819eb936..69ff508c221 100644
--- a/media/filters/audio_video_metadata_extractor.cc
+++ b/media/filters/audio_video_metadata_extractor.cc
@@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source,
if (!stream)
continue;
+ void* display_matrix =
+ av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
+ if (display_matrix) {
+ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+ static_cast<int32_t*>(display_matrix))
+ .rotation;
+ info.tags["rotate"] = base::NumberToString(rotation_);
+ }
+
// Extract dictionary from streams also. Needed for containers that attach
// metadata to contained streams instead the container itself, like OGG.
ExtractDictionary(stream->metadata, &info.tags);
@@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata,
if (raw_tags->find(tag->key) == raw_tags->end())
(*raw_tags)[tag->key] = tag->value;
- if (ExtractInt(tag, "rotate", &rotation_))
- continue;
if (ExtractString(tag, "album", &album_))
continue;
if (ExtractString(tag, "artist", &artist_))
diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
index 6f231c85729..ca5e5fb927d 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
- channel_configuration_ != stream_codec_parameters_->channels ||
+ channel_configuration_ !=
+ stream_codec_parameters_->ch_layout.nb_channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
- stream_codec_parameters_->channels,
+ stream_codec_parameters_->ch_layout.nb_channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
- channel_configuration_ = stream_codec_parameters_->channels;
+ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
frame_length_ = header_plus_packet_size;
}
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
index 1fd4c5ccd7d..f59bcd8fdaf 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.channels = 2;
+ test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc
index 6a56c675f7d..4615fdeb3fb 100644
--- a/media/filters/ffmpeg_audio_decoder.cc
+++ b/media/filters/ffmpeg_audio_decoder.cc
@@ -28,7 +28,7 @@ namespace media {
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
- return frame->channels;
+ return frame->ch_layout.nb_channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer,
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
- codec_context_->channel_layout, codec_context_->channels);
+ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
// Success!
av_sample_format_ = codec_context_->sample_fmt;
- if (codec_context_->channels != config.channels()) {
+ if (codec_context_->ch_layout.nb_channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
- << codec_context_->channels << " channels";
+ << codec_context_->ch_layout.nb_channels << " channels";
ReleaseFFmpegResources();
state_ = DecoderState::kUninitialized;
return false;
@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
- if (s->channels != channels) {
+ if (s->ch_layout.nb_channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
+ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
+ s->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";

View File

@ -0,0 +1,238 @@
From 144479ad7b4287bee4067f95e4218f614798a865 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 16 Jan 2022 19:15:26 +0000
Subject: [PATCH] sql: make VirtualCursor standard layout type
sql::recover::VirtualCursor needs to be a standard layout type, but
has members of type std::unique_ptr. However, std::unique_ptr is not
guaranteed to be standard layout. Compiling with clang combined with
gcc-11 libstdc++ fails because of this.
Bug: 1189788
Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
---
sql/recover_module/btree.cc | 18 ++++++++++++------
sql/recover_module/btree.h | 21 +++++++++++++++------
sql/recover_module/cursor.cc | 24 ++++++++++++------------
sql/recover_module/cursor.h | 2 +-
sql/recover_module/pager.cc | 5 ++---
sql/recover_module/pager.h | 6 +++---
6 files changed, 45 insertions(+), 31 deletions(-)
diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
index cc9420e5c05..f12d8fa32a2 100644
--- a/sql/recover_module/btree.cc
+++ b/sql/recover_module/btree.cc
@@ -136,16 +136,22 @@ static_assert(std::is_trivially_destructible<LeafPageDecoder>::value,
"Move the destructor to the .cc file if it's non-trival");
#endif // !DCHECK_IS_ON()
-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
- : page_id_(db_reader->page_id()),
- db_reader_(db_reader),
- cell_count_(ComputeCellCount(db_reader)),
- next_read_index_(0),
- last_record_size_(0) {
+LeafPageDecoder::LeafPageDecoder() noexcept = default;
+
+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
+ page_id_ = db_reader->page_id();
+ db_reader_ = db_reader;
+ cell_count_ = ComputeCellCount(db_reader);
+ next_read_index_ = 0;
+ last_record_size_ = 0;
DCHECK(IsOnValidPage(db_reader));
DCHECK(DatabasePageReader::IsValidPageId(page_id_));
}
+void LeafPageDecoder::Reset() {
+ db_reader_ = nullptr;
+}
+
bool LeafPageDecoder::TryAdvance() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(CanAdvance());
diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
index eaa087a5c52..df0e0c937c0 100644
--- a/sql/recover_module/btree.h
+++ b/sql/recover_module/btree.h
@@ -101,9 +101,7 @@ class LeafPageDecoder {
public:
// Creates a decoder for a DatabasePageReader's last read page.
//
- // |db_reader| must have been used to read an inner page of a table B-tree.
- // |db_reader| must outlive this instance.
- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
+ LeafPageDecoder() noexcept;
~LeafPageDecoder() noexcept = default;
LeafPageDecoder(const LeafPageDecoder&) = delete;
@@ -151,6 +149,17 @@ class LeafPageDecoder {
// read as long as CanAdvance() returns true.
bool TryAdvance();
+ // Initialize with DatabasePageReader
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+ void Initialize(DatabasePageReader* db_reader);
+
+ // Reset internal DatabasePageReader
+ void Reset();
+
+ // True if DatabasePageReader is valid
+ bool IsValid() { return (db_reader_ != nullptr); }
+
// True if the given reader may point to an inner page in a table B-tree.
//
// The last ReadPage() call on |db_reader| must have succeeded.
@@ -164,14 +173,14 @@ class LeafPageDecoder {
static int ComputeCellCount(DatabasePageReader* db_reader);
// The number of the B-tree page this reader is reading.
- const int64_t page_id_;
+ int64_t page_id_;
// Used to read the tree page.
//
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the DatabasePageReader outlives this.
- DatabasePageReader* const db_reader_;
+ DatabasePageReader* db_reader_;
// Caches the ComputeCellCount() value for this reader's page.
- const int cell_count_ = ComputeCellCount(db_reader_);
+ int cell_count_;
// The reader's cursor state.
//
diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
index 4f827edf1b4..240de4999fe 100644
--- a/sql/recover_module/cursor.cc
+++ b/sql/recover_module/cursor.cc
@@ -28,7 +28,7 @@ VirtualCursor::~VirtualCursor() {
int VirtualCursor::First() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
inner_decoders_.clear();
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
AppendPageDecoder(table_->root_page_id());
return Next();
@@ -38,18 +38,18 @@ int VirtualCursor::Next() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
record_reader_.Reset();
- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
- if (leaf_decoder_.get()) {
- if (!leaf_decoder_->CanAdvance()) {
+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
+ if (leaf_decoder_.IsValid()) {
+ if (!leaf_decoder_.CanAdvance()) {
// The leaf has been exhausted. Remove it from the DFS stack.
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
continue;
}
- if (!leaf_decoder_->TryAdvance())
+ if (!leaf_decoder_.TryAdvance())
continue;
- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
- leaf_decoder_->last_record_offset())) {
+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
+ leaf_decoder_.last_record_offset())) {
continue;
}
if (!record_reader_.Initialize())
@@ -101,13 +101,13 @@ int VirtualCursor::ReadColumn(int column_index,
int64_t VirtualCursor::RowId() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(record_reader_.IsInitialized());
- DCHECK(leaf_decoder_.get());
- return leaf_decoder_->last_record_rowid();
+ DCHECK(leaf_decoder_.IsValid());
+ return leaf_decoder_.last_record_rowid();
}
void VirtualCursor::AppendPageDecoder(int page_id) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- DCHECK(leaf_decoder_.get() == nullptr)
+ DCHECK(!leaf_decoder_.IsValid())
<< __func__
<< " must only be called when the current path has no leaf decoder";
@@ -115,7 +115,7 @@ void VirtualCursor::AppendPageDecoder(int page_id) {
return;
if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
+ leaf_decoder_.Initialize(&db_reader_);
return;
}
diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
index 845b7852648..cc4e85f83f9 100644
--- a/sql/recover_module/cursor.h
+++ b/sql/recover_module/cursor.h
@@ -130,7 +130,7 @@ class VirtualCursor {
std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
// Decodes the leaf page containing records.
- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
+ LeafPageDecoder leaf_decoder_;
SEQUENCE_CHECKER(sequence_checker_);
};
diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
index 58e75de2704..69d98cef98d 100644
--- a/sql/recover_module/pager.cc
+++ b/sql/recover_module/pager.cc
@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPageId <= std::numeric_limits<int>::max(),
"ints are not appropriate for representing page IDs");
DatabasePageReader::DatabasePageReader(VirtualTable* table)
- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
- table_(table) {
+ : page_data_(table->page_size()), table_(table) {
DCHECK(table != nullptr);
DCHECK(IsValidPageSize(table->page_size()));
}
@@ -58,7 +57,7 @@ int DatabasePageReader::ReadPage(int page_id) {
"The |read_offset| computation above may overflow");
int sqlite_status =
- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
+ RawRead(sqlite_file, read_size, read_offset, page_data_.data());
// |page_id_| needs to be set to kInvalidPageId if the read failed.
// Otherwise, future ReadPage() calls with the previous |page_id_| value
diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
index 07cac3cb989..d08f0932fab 100644
--- a/sql/recover_module/pager.h
+++ b/sql/recover_module/pager.h
@@ -6,8 +6,8 @@
#define SQL_RECOVER_MODULE_PAGER_H_
#include <cstdint>
-#include <memory>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/memory/raw_ptr.h"
@@ -72,7 +72,7 @@ class DatabasePageReader {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_NE(page_id_, kInvalidPageId)
<< "Successful ReadPage() required before accessing pager state";
- return page_data_.get();
+ return page_data_.data();
}
// The number of bytes in the page read by the last ReadPage() call.
@@ -139,7 +139,7 @@ class DatabasePageReader {
int page_id_ = kInvalidPageId;
// Stores the bytes of the last page successfully read by ReadPage().
// The content is undefined if the last call to ReadPage() did not succeed.
- const std::unique_ptr<uint8_t[]> page_data_;
+ std::vector<uint8_t> page_data_;
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the VirtualTable outlives this.
const raw_ptr<VirtualTable> table_;

View File

@ -0,0 +1,17 @@
diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc
--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000
+++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000
@@ -154,11 +154,11 @@ class APIKeyCache {
std::string default_client_id = CalculateKeyValue(
GOOGLE_DEFAULT_CLIENT_ID,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
std::string(), environment.get(), command_line, gaia_config);
std::string default_client_secret = CalculateKeyValue(
GOOGLE_DEFAULT_CLIENT_SECRET,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
std::string(), environment.get(), command_line, gaia_config);
// We currently only allow overriding the baked-in values for the

View File

@ -0,0 +1,22 @@
--- a/ui/gl/gl_image_native_pixmap.cc 2020-05-18 11:40:06.000000000 -0700
+++ b/ui/gl/gl_image_native_pixmap.cc 2020-05-22 02:07:16.007770442 -0700
@@ -288,6 +288,8 @@
std::move(scoped_fd));
}
+ handle.planes[0].size = size_.GetArea();
+
return handle;
#endif // !defined(OS_FUCHSIA)
}
--- a/gpu/command_buffer/service/error_state.cc 2020-05-18 11:39:22.000000000 -0700
+++ b/gpu/command_buffer/service/error_state.cc 2020-05-22 13:43:09.181180388 -0700
@@ -115,6 +115,8 @@
// buffer.
error = GL_NO_ERROR;
}
+ if (error == GL_INVALID_ENUM)
+ error = GL_NO_ERROR;
return error;
}

94
build.sh Executable file
View File

@ -0,0 +1,94 @@
# Pulled from PKGBUILD on AUR
# Possible replacements are listed in chromium-src/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2
[snappy]=snappy
[zlib]=minizip
)
build() {
export CC=clang
export CXX=clang++
export AR=ar
export NM=nm
local _flags=(
'custom_toolchain="//build/toolchain/linux/unbundle:default"'
'host_toolchain="//build/toolchain/linux/unbundle:default"'
'is_official_build=true' # implies is_cfi=true on x86_64
'symbol_level=0' # sufficient for backtraces on x86(_64)
'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile
'disable_fieldtrial_testing_config=true'
'blink_enable_generated_code_formatting=false'
'ffmpeg_branding="Chrome"'
'proprietary_codecs=true'
'rtc_use_pipewire=true'
'link_pulseaudio=true'
'use_gnome_keyring=false'
'use_sysroot=false'
'use_custom_libcxx=false'
'enable_widevine=true'
)
if [[ -n ${_system_libs[icu]+set} ]]; then
_flags+=('icu_use_data_file=false')
fi
# Append ungoogled chromium flags to _flags array
_ungoogled_repo="../ungoogled-chromium"
readarray -t -O ${#_flags[@]} _flags < "${_ungoogled_repo}/flags.gn"
# Facilitate deterministic builds (taken from chromium-src/config/compiler/BUILD.gn)
CFLAGS+=' -Wno-builtin-macro-redefined'
CXXFLAGS+=' -Wno-builtin-macro-redefined'
CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__='
# Do not warn about unknown warning options
CFLAGS+=' -Wno-unknown-warning-option'
CXXFLAGS+=' -Wno-unknown-warning-option'
# Let Chromium set its own symbol level
CFLAGS=${CFLAGS/-g }
CXXFLAGS=${CXXFLAGS/-g }
# https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123
CFLAGS=${CFLAGS/-fexceptions}
CFLAGS=${CFLAGS/-fcf-protection}
CXXFLAGS=${CXXFLAGS/-fexceptions}
CXXFLAGS=${CXXFLAGS/-fcf-protection}
# This appears to cause random segfaults when combined with ThinLTO
# https://bugs.archlinux.org/task/73518
CFLAGS=${CFLAGS/-fstack-clash-protection}
CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
# https://crbug.com/957519#c122
CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}
# echo python build/util/lastchange.py -o build/util/LASTCHANGE
# python build/util/lastchange.py -o build/util/LASTCHANGE
echo gn gen out/Release --args="${_flags[*]}"
gn gen out/Release --args="${_flags[*]}"
echo ninja -C out/release chrome chrome_sandbox chromedriver
ninja -C out/Release chrome chrome_sandbox chromedriver
}
build

50
configure-libraries.sh Executable file
View File

@ -0,0 +1,50 @@
# From AUR PKGBUILD
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
# Keys are the names in the above script; values are the dependencies in Arch
declare -gA _system_libs=(
[ffmpeg]=ffmpeg
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
[libpng]=libpng
#[libvpx]=libvpx
[libwebp]=libwebp
[libxml]=libxml2
[libxslt]=libxslt
[opus]=opus
[re2]=re2
[snappy]=snappy
[zlib]=minizip
)
_unwanted_bundled_libs=(
$(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/')
)
prepare() {
# Link to system tools required by the build
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
ln -s /usr/bin/java third_party/jdk/current/bin/
local _lib
for _lib in ${_unwanted_bundled_libs[@]}; do
find "third_party/$_lib" -type f \
\! -path "third_party/$_lib/chromium/*" \
\! -path "third_party/$_lib/google/*" \
\! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
\! -regex '.*\.\(gn\|gni\|isolate\)' \
-delete
done
./build/linux/unbundle/replace_gn_files.py \
--system-libraries "${!_system_libs[@]}"
echo "done"
}
prepare

124
makefile Normal file
View File

@ -0,0 +1,124 @@
# Build requires gn and ninja
# also clang, clang++, ar, nm
# ungoogled-chromium way
retrieve:
mkdir -p chromium-downloads
./ungoogled-chromium/utils/downloads.py retrieve -c chromium-downloads -i ./ungoogled-chromium/downloads.ini
unpack:
./ungoogled-chromium/utils/downloads.py unpack -c chromium-downloads -i ./ungoogled-chromium/downloads.ini -- chromium-src
# google way
checkout:
mkdir -p repo
export PATH="$$PATH:$${HOME}/builds/chromium/depot_tools" && cd repo && fetch --nohooks chromium
# AUR Preparation Steps
apply-aur-mods:
cd chromium-src && ../aur-mods.sh
apply-aur-patches:
# Use the --oauth2-client-id= and --oauth2-client-secret= switches for
# setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at
# runtime -- this allows signing into Chromium without baked-in values
cd chromium-src && patch -Np1 -i ../aur-patches/use-oauth2-client-switches-as-default.patch
# Remove '-Xclang -no-opaque-pointers' flag not supported by our clang
cd chromium-src && patch -Np1 -i ../aur-patches/remove-no-opaque-pointers-flag.patch
# Upstream fixes
# Revert kGlobalMediaControlsCastStartStop enabled by default
# https://crbug.com/1314342
cd chromium-src && patch -Rp1 -F3 -i ../aur-patches/enable-GlobalMediaControlsCastStartStop.patch
# https://chromium-review.googlesource.com/c/chromium/src/+/3488058
#archived cd chromium-src && patch -Np1 -i ../aur-patches/chromium-libxml-unbundle.patch
# Revert ffmpeg roll requiring new channel layout API support
# https://crbug.com/1325301
cd chromium-src && patch -Rp1 -i ../aur-patches/roll-src-third_party-ffmpeg.patch
# https://chromium-review.googlesource.com/c/chromium/src/+/2862724
cd chromium-src && patch -Np1 -i ../aur-patches/sql-make-VirtualCursor-standard-layout-type.patch
# Wayland/EGL regression (crbug #1071528 #1071550)
cd chromium-src && patch -Np1 -i ../aur-patches/wayland-egl.patch
# Ungoogled Chromium Steps
prune-binaries:
./ungoogled-chromium/utils/prune_binaries.py chromium-src ./ungoogled-chromium/pruning.list
apply-ungoogle-patches:
./ungoogled-chromium/utils/patches.py apply chromium-src ./ungoogled-chromium/patches
apply-michael-patches:
cd chromium-src && patch -Np1 -i ../michael-patches/michael-customizations.patch
subst-domains:
mkdir -p chromium-src/cache
./ungoogled-chromium/utils/domain_substitution.py apply \
-r ./ungoogled-chromium/domain_regex.list \
-f ./ungoogled-chromium/domain_substitution.list \
-c chromium-src/cache/domsubcache.tar.gz \
chromium-src
# More AUR Preparation Steps
configure-libraries:
cd chromium-src && ../configure-libraries.sh
# Build the package
build-chromium:
cd chromium-src && ../build.sh
build-launcher:
cd chromium-launcher && make
clean-zips:
rm chromium-src-release.tar.gz
rm chromium-launcher.tar.gz
rm aur-confs.tar.gz
#chromium-src/out/Release/swiftshader/*.so \
create-zips:
apack chromium-src-release.tar.gz \
chromium-src/LICENSE \
chromium-src/out/Release/chrome \
chromium-src/out/Release/chromedriver \
chromium-src/out/Release/chrome_sandbox \
chromium-src/out/Release/chrome_100_percent.pak \
chromium-src/out/Release/chrome_200_percent.pak \
chromium-src/out/Release/chrome_crashpad_handler \
chromium-src/out/Release/resources.pak \
chromium-src/out/Release/v8_context_snapshot.bin \
chromium-src/out/Release/libEGL.so \
chromium-src/out/Release/libGLESv2.so \
chromium-src/out/Release/libvk_swiftshader.so \
chromium-src/out/Release/vk_swiftshader_icd.json\
chromium-src/out/Release/locales/*.pak \
chromium-src/chrome/app/theme/chromium/product_logo_*.png \
chromium-src/chrome/app/theme/default_100_percent/chromium/product_logo_*.png \
chromium-src/chrome/installer/linux/common/desktop.template \
chromium-src/chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
chromium-src/chrome/app/resources/manpage.1.in
apack chromium-launcher.tar.gz \
chromium-launcher
apack aur-confs.tar.gz \
aur-confs/chromium-drirc-disable-10bpc-color-configs.conf
create-pkgbuild:
cp PKGBUILD.template PKGBUILD
sed -i "s/<chromium-src-release.tar.gz-sha256sum>/$$(sha256sum chromium-src-release.tar.gz | awk '{ print $$1 }')/" PKGBUILD
sed -i "s/<aur-confs.tar.gz-sha256sum>/$$(sha256sum aur-confs.tar.gz | awk '{ print $$1 }')/" PKGBUILD
sed -i "s/<chromium-launcher.tar.gz-sha256sum>/$$(sha256sum chromium-launcher.tar.gz | awk '{ print $$1 }')/" PKGBUILD
makepkg:
makepkg
install:
makepkg --install

View File

@ -0,0 +1,212 @@
diff --git a/chrome/browser/ui/tabs/tab_menu_model.cc b/chrome/browser/ui/tabs/tab_menu_model.cc
index 08b078d90..a2cdc60be 100644
--- a/chrome/browser/ui/tabs/tab_menu_model.cc
+++ b/chrome/browser/ui/tabs/tab_menu_model.cc
@@ -49,47 +49,51 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
}
int num_tabs = indices.size();
+ // New Tab
AddItemWithStringId(TabStripModel::CommandNewTabToRight,
base::i18n::IsRTL() ? IDS_TAB_CXMENU_NEWTABTOLEFT
: IDS_TAB_CXMENU_NEWTABTORIGHT);
- if (reading_list::switches::IsReadingListEnabled() &&
- !tab_strip->profile()->IsGuestSession()) {
- AddItem(
- TabStripModel::CommandAddToReadLater,
- l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_READ_LATER, num_tabs));
- SetEnabledAt(GetItemCount() - 1,
- tab_strip->IsReadLaterSupportedForAny(indices));
- if (base::FeatureList::IsEnabled(features::kReadLaterNewBadgePromo))
- SetIsNewFeatureAt(GetItemCount() - 1, true);
- }
- if (ExistingTabGroupSubMenuModel::ShouldShowSubmenu(tab_strip, index)) {
- // Create submenu with existing groups
- add_to_existing_group_submenu_ =
- std::make_unique<ExistingTabGroupSubMenuModel>(delegate(), tab_strip,
- index);
- AddSubMenu(TabStripModel::CommandAddToExistingGroup,
- l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_ADD_TAB_TO_GROUP,
- num_tabs),
- add_to_existing_group_submenu_.get());
- if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
- SetIsNewFeatureAt(GetItemCount() - 1, true);
- } else {
- AddItem(TabStripModel::CommandAddToNewGroup,
- l10n_util::GetPluralStringFUTF16(
- IDS_TAB_CXMENU_ADD_TAB_TO_NEW_GROUP, num_tabs));
- SetElementIdentifierAt(GetItemCount() - 1, kAddToNewGroupItemIdentifier);
- if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
- SetIsNewFeatureAt(GetItemCount() - 1, true);
- }
-
- for (const auto& selection : indices) {
- if (tab_strip->GetTabGroupForTab(selection).has_value()) {
- AddItemWithStringId(TabStripModel::CommandRemoveFromGroup,
- IDS_TAB_CXMENU_REMOVE_TAB_FROM_GROUP);
- break;
- }
- }
+ // Add to reading list (removed)
+ // if (reading_list::switches::IsReadingListEnabled() &&
+ // !tab_strip->profile()->IsGuestSession()) {
+ // AddItem(
+ // TabStripModel::CommandAddToReadLater,
+ // l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_READ_LATER, num_tabs));
+ // SetEnabledAt(GetItemCount() - 1,
+ // tab_strip->IsReadLaterSupportedForAny(indices));
+ // if (base::FeatureList::IsEnabled(features::kReadLaterNewBadgePromo))
+ // SetIsNewFeatureAt(GetItemCount() - 1, true);
+ // }
+ // Change tab group (removed)
+ // if (ExistingTabGroupSubMenuModel::ShouldShowSubmenu(tab_strip, index)) {
+ // // Create submenu with existing groups
+ // add_to_existing_group_submenu_ =
+ // std::make_unique<ExistingTabGroupSubMenuModel>(delegate(), tab_strip,
+ // index);
+ // AddSubMenu(TabStripModel::CommandAddToExistingGroup,
+ // l10n_util::GetPluralStringFUTF16(IDS_TAB_CXMENU_ADD_TAB_TO_GROUP,
+ // num_tabs),
+ // add_to_existing_group_submenu_.get());
+ // if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
+ // SetIsNewFeatureAt(GetItemCount() - 1, true);
+ // } else {
+ // AddItem(TabStripModel::CommandAddToNewGroup,
+ // l10n_util::GetPluralStringFUTF16(
+ // IDS_TAB_CXMENU_ADD_TAB_TO_NEW_GROUP, num_tabs));
+ // SetElementIdentifierAt(GetItemCount() - 1, kAddToNewGroupItemIdentifier);
+ // if (base::FeatureList::IsEnabled(features::kTabGroupsNewBadgePromo))
+ // SetIsNewFeatureAt(GetItemCount() - 1, true);
+ // }
+ //
+ // for (const auto& selection : indices) {
+ // if (tab_strip->GetTabGroupForTab(selection).has_value()) {
+ // AddItemWithStringId(TabStripModel::CommandRemoveFromGroup,
+ // IDS_TAB_CXMENU_REMOVE_TAB_FROM_GROUP);
+ // break;
+ // }
+ // }
+ // New Window / Move to other window
if (ExistingWindowSubMenuModel::ShouldShowSubmenu(tab_strip->profile())) {
// Create submenu with existing windows
add_to_existing_window_submenu_ = ExistingWindowSubMenuModel::Create(
@@ -105,9 +109,17 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
}
AddSeparator(ui::NORMAL_SEPARATOR);
- AddItemWithStringId(TabStripModel::CommandReload, IDS_TAB_CXMENU_RELOAD);
- AddItemWithStringId(TabStripModel::CommandDuplicate,
- IDS_TAB_CXMENU_DUPLICATE);
+ // AddItemWithStringId(TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB);
+ AddItemWithStringId(TabStripModel::CommandCloseOtherTabs,
+ IDS_TAB_CXMENU_CLOSEOTHERTABS);
+ AddItemWithStringId(TabStripModel::CommandCloseTabsToRight,
+ base::i18n::IsRTL() ? IDS_TAB_CXMENU_CLOSETABSTOLEFT
+ : IDS_TAB_CXMENU_CLOSETABSTORIGHT);
+
+ AddSeparator(ui::NORMAL_SEPARATOR);
+ // AddItemWithStringId(TabStripModel::CommandReload, IDS_TAB_CXMENU_RELOAD);
+ // AddItemWithStringId(TabStripModel::CommandDuplicate,
+ // IDS_TAB_CXMENU_DUPLICATE);
bool will_pin = tab_strip->WillContextMenuPin(index);
AddItemWithStringId(
TabStripModel::CommandTogglePinned,
@@ -159,14 +171,6 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
#endif
}
}
-
- AddSeparator(ui::NORMAL_SEPARATOR);
- AddItemWithStringId(TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB);
- AddItemWithStringId(TabStripModel::CommandCloseOtherTabs,
- IDS_TAB_CXMENU_CLOSEOTHERTABS);
- AddItemWithStringId(TabStripModel::CommandCloseTabsToRight,
- base::i18n::IsRTL() ? IDS_TAB_CXMENU_CLOSETABSTOLEFT
- : IDS_TAB_CXMENU_CLOSETABSTORIGHT);
}
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TabMenuModel,
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
index 1e741368e..fac2b5f51 100644
--- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
+++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
@@ -142,7 +142,8 @@ TabStripRegionView::TabStripRegionView(std::unique_ptr<TabStrip> tab_strip) {
}
if (browser->is_type_normal() &&
- !base::CommandLine::ForCurrentProcess()->HasSwitch("remove-tabsearch-button")) {
+ !base::CommandLine::ForCurrentProcess()->HasSwitch("remove-tabsearch-button") &&
+ false) {
auto tab_search_button = std::make_unique<TabSearchButton>(tab_strip_);
tab_search_button->SetTooltipText(
l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_SEARCH));
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 03e8c0fb9..2acc440b1 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -354,14 +354,15 @@ void LocationBarView::Init() {
params.types_enabled.push_back(PageActionIconType::kSaveAutofillAddress);
}
}
- if (browser_) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- params.types_enabled.push_back(PageActionIconType::kSharingHub);
-#else
- if (sharing_hub::SharingHubOmniboxEnabled(profile_) && !is_popup_mode_)
- params.types_enabled.push_back(PageActionIconType::kSharingHub);
-#endif
- }
+ // Remove sharing hub icon
+// if (browser_) {
+// #if BUILDFLAG(IS_CHROMEOS_ASH)
+// params.types_enabled.push_back(PageActionIconType::kSharingHub);
+// #else
+// if (sharing_hub::SharingHubOmniboxEnabled(profile_) && !is_popup_mode_)
+// params.types_enabled.push_back(PageActionIconType::kSharingHub);
+// #endif
+// }
if (browser_ && !is_popup_mode_)
params.types_enabled.push_back(PageActionIconType::kBookmarkStar);
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
index 76fce2124..cfe392364 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -378,20 +378,22 @@ void ToolbarView::Init() {
if (send_tab_to_self_button)
send_tab_to_self_button_ = AddChildView(std::move(send_tab_to_self_button));
- if (side_panel_button)
- side_panel_button_ = AddChildView(std::move(side_panel_button));
-
- if (toolbar_account_icon_container) {
- toolbar_account_icon_container_ =
- AddChildView(std::move(toolbar_account_icon_container));
- avatar_ = toolbar_account_icon_container_->avatar_button();
- } else {
- // TODO(crbug.com/932818): Remove this once the
- // |kAutofillEnableToolbarStatusChip| is fully launched.
- avatar_ =
- AddChildView(std::make_unique<AvatarToolbarButton>(browser_view_));
- avatar_->SetVisible(show_avatar_toolbar_button);
- }
+ // Remove side panel
+ // if (side_panel_button)
+ // side_panel_button_ = AddChildView(std::move(side_panel_button));
+
+ // Remove toolbar
+ // if (toolbar_account_icon_container) {
+ // toolbar_account_icon_container_ =
+ // AddChildView(std::move(toolbar_account_icon_container));
+ // avatar_ = toolbar_account_icon_container_->avatar_button();
+ // } else {
+ // // TODO(crbug.com/932818): Remove this once the
+ // // |kAutofillEnableToolbarStatusChip| is fully launched.
+ // avatar_ =
+ // AddChildView(std::make_unique<AvatarToolbarButton>(browser_view_));
+ // avatar_->SetVisible(show_avatar_toolbar_button);
+ // }
auto app_menu_button = std::make_unique<BrowserAppMenuButton>(this);
app_menu_button->SetFlipCanvasOnPaintForRTLUI(true);