From 73b0cec823b70d7c0e523b2378f43727f60bd780 Mon Sep 17 00:00:00 2001 From: Guillaume LECERF Date: Sat, 18 Sep 2021 13:14:08 +0200 Subject: [PATCH 1/5] chrome: use pulseaudio when available --- .../browser/chrome/source/bin/chrome-start | 17 +++++---- .../addons/browser/chrome/source/default.py | 35 ++++++++++++------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/packages/addons/browser/chrome/source/bin/chrome-start b/packages/addons/browser/chrome/source/bin/chrome-start index 1556fa95a6..05db015542 100644 --- a/packages/addons/browser/chrome/source/bin/chrome-start +++ b/packages/addons/browser/chrome/source/bin/chrome-start @@ -73,13 +73,14 @@ case $RASTER_MODE in esac # alsa -if [ ! -z $ALSA_DEVICE ]; then - chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE" +if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then + # stop pulseaudio when using an Alsa device + systemctl stop pulseaudio + if [ ! -z $ALSA_DEVICE ]; then + chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE" + fi fi -# HACK!!! to get sound at Chrome stop pulseaudio -systemctl stop pulseaudio - # start chrome LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \ $chrome_OPTS \ @@ -100,6 +101,8 @@ then chrome_OPTS="$chrome_OPTS --force-dark-mode" fi -# HACK!!! to get sound at Kodi start pulseaudio sleep 5 -systemctl start pulseaudio +if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then + # restart pulseaudio when using an Alsa device + systemctl start pulseaudio +fi diff --git a/packages/addons/browser/chrome/source/default.py b/packages/addons/browser/chrome/source/default.py index 59bbd15b7b..48494514cc 100644 --- a/packages/addons/browser/chrome/source/default.py +++ b/packages/addons/browser/chrome/source/default.py @@ -35,13 +35,17 @@ def startchrome(args): new_env['RASTER_MODE'] = __addon__.getSetting('RASTER_MODE') new_env['DARK_MODE'] = __addon__.getSetting('DARK_MODE') - new_env['ALSA_DEVICE'] = '' if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true': - alsa_device = __addon__.getSetting('CUST_AUDIODEVICE_STR') + audio_device = __addon__.getSetting('CUST_AUDIODEVICE_STR') else: - alsa_device = getAudioDevice() - if not alsa_device == None and not alsa_device == '': - new_env['ALSA_DEVICE'] = alsa_device + audio_device = getAudioDevice() + + new_env['AUDIO_DEVICE_TYPE'] = getAudioDeviceType(audio_device) + if new_env['AUDIO_DEVICE_TYPE'] == "ALSA": + new_env['ALSA_DEVICE'] = '' + alsa_device = getAlsaAudioDevice(audio_device) + if not alsa_device == None and not alsa_device == '': + new_env['ALSA_DEVICE'] = alsa_device chrome_params = args + ' ' + \ __addon__.getSetting('HOMEPAGE') @@ -57,7 +61,7 @@ def isRuning(pname): return False def getAudioDevice(): - dev = json.loads(xbmc.executeJSONRPC(json.dumps({ + return json.loads(xbmc.executeJSONRPC(json.dumps({ "jsonrpc": "2.0", "method": "Settings.GetSettingValue", "params": { @@ -65,15 +69,20 @@ def getAudioDevice(): }, "id": 1, })))['result']['value'] + +def getAudioDeviceType(dev): if dev.startswith("ALSA:"): - dev = dev.split("ALSA:")[1] - if dev == "@": - return None - if dev.startswith("@:"): - dev = dev.split("@:")[1] - else: - # not ALSA + return "ALSA" + if dev.startswith("PULSE:"): + return "PULSE" + return None + +def getAlsaAudioDevice(dev): + dev = dev.split("ALSA:")[1] + if dev == "@": return None + if dev.startswith("@:"): + dev = dev.split("@:")[1] if dev.startswith("CARD="): dev = "plughw:" + dev return dev From 03e5973a68f80c838bc5accd99ae3c4ffa279b6d Mon Sep 17 00:00:00 2001 From: Guillaume LECERF Date: Mon, 13 Sep 2021 20:29:32 +0200 Subject: [PATCH 2/5] chrome: fix dark mode toggle Fixes: 788fcf6 --- .../addons/browser/chrome/source/bin/chrome-start | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/addons/browser/chrome/source/bin/chrome-start b/packages/addons/browser/chrome/source/bin/chrome-start index 05db015542..046eef6eb3 100644 --- a/packages/addons/browser/chrome/source/bin/chrome-start +++ b/packages/addons/browser/chrome/source/bin/chrome-start @@ -81,6 +81,12 @@ if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then fi fi +# dark mode +if [ "$DARK_MODE" == "true" ] +then + chrome_OPTS="$chrome_OPTS --force-dark-mode" +fi + # start chrome LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \ $chrome_OPTS \ @@ -95,12 +101,6 @@ then kill $UNCLUTTER_PID fi -# dark mode -if [ "$DARK_MODE" == "true" ] -then - chrome_OPTS="$chrome_OPTS --force-dark-mode" -fi - sleep 5 if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then # restart pulseaudio when using an Alsa device From 8f290b41dcb5f083be7967f05e7ceba77ef2e25e Mon Sep 17 00:00:00 2001 From: Guillaume LECERF Date: Sun, 19 Sep 2021 12:46:11 +0200 Subject: [PATCH 3/5] chrome: versions >=91 use new flags to enable hardware accelerated video decode --- packages/addons/browser/chrome/source/bin/chrome-start | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/addons/browser/chrome/source/bin/chrome-start b/packages/addons/browser/chrome/source/bin/chrome-start index 046eef6eb3..175a1c278e 100644 --- a/packages/addons/browser/chrome/source/bin/chrome-start +++ b/packages/addons/browser/chrome/source/bin/chrome-start @@ -44,15 +44,15 @@ LIBVA_DRIVER_NAME='' case $VAAPI_MODE in 'intel') LIBVA_DRIVER_NAME='i965' - chrome_OPTS="$chrome_OPTS --enable-accelerated-video" + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" ;; 'amd') LIBVA_DRIVER_NAME='vdpau' - chrome_OPTS="$chrome_OPTS --enable-accelerated-video" + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder" ;; 'nvidia') LIBVA_DRIVER_NAME='vdpau' - chrome_OPTS="$chrome_OPTS --enable-accelerated-video --allow-no-sandbox-job --disable-gpu-sandbox" + chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder --allow-no-sandbox-job --disable-gpu-sandbox" ;; *) LIBGL_ALWAYS_SOFTWARE='1' From d073e49aa311496c179fa2cab8f1f4c880c8c53f Mon Sep 17 00:00:00 2001 From: Guillaume LECERF Date: Mon, 13 Sep 2021 22:01:29 +0200 Subject: [PATCH 4/5] chrome: allow setting a custom user-agent --- packages/addons/browser/chrome/package.mk | 2 ++ packages/addons/browser/chrome/source/bin/chrome-start | 6 ++++++ packages/addons/browser/chrome/source/default.py | 3 +++ .../chrome/source/resources/language/English/strings.po | 8 ++++++++ .../addons/browser/chrome/source/resources/settings.xml | 2 ++ .../addons/browser/chrome/source/settings-default.xml | 2 ++ 6 files changed, 23 insertions(+) diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk index 2db2e0711a..22311ce7df 100644 --- a/packages/addons/browser/chrome/package.mk +++ b/packages/addons/browser/chrome/package.mk @@ -67,4 +67,6 @@ addon() { post_install_addon() { sed -e "s/@DISTRO_PKG_SETTINGS_ID@/${DISTRO_PKG_SETTINGS_ID}/g" -i "${INSTALL}/default.py" sed -e "s/@CHROME_VERSION@/${PKG_VERSION_NUMBER}/g" -i "${INSTALL}/bin/chrome-downloader" + sed -e "s/@CHROME_VERSION@/${PKG_VERSION_NUMBER}/g" -i "${INSTALL}/resources/settings.xml" + sed -e "s/@CHROME_VERSION@/${PKG_VERSION_NUMBER}/g" -i "${INSTALL}/settings-default.xml" } diff --git a/packages/addons/browser/chrome/source/bin/chrome-start b/packages/addons/browser/chrome/source/bin/chrome-start index 175a1c278e..55a5148594 100644 --- a/packages/addons/browser/chrome/source/bin/chrome-start +++ b/packages/addons/browser/chrome/source/bin/chrome-start @@ -87,9 +87,15 @@ then chrome_OPTS="$chrome_OPTS --force-dark-mode" fi +# User-Agent +if [ ! -z "$USER_AGENT" ]; then + USER_AGENT="--user-agent=$USER_AGENT" +fi + # start chrome LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \ $chrome_OPTS \ + "$USER_AGENT" \ --no-sandbox \ --user-data-dir=$ADDON_HOME/profile \ --test-type $@ \ diff --git a/packages/addons/browser/chrome/source/default.py b/packages/addons/browser/chrome/source/default.py index 48494514cc..82dd0c27cf 100644 --- a/packages/addons/browser/chrome/source/default.py +++ b/packages/addons/browser/chrome/source/default.py @@ -47,6 +47,9 @@ def startchrome(args): if not alsa_device == None and not alsa_device == '': new_env['ALSA_DEVICE'] = alsa_device + if __addon__.getSetting('USE_CUST_USERAGENT') == 'true': + new_env['USER_AGENT'] = __addon__.getSetting('CUST_USERAGENT_STR') + chrome_params = args + ' ' + \ __addon__.getSetting('HOMEPAGE') subprocess.call(__path__ + 'chrome-start ' + chrome_params, shell=True, env=new_env) diff --git a/packages/addons/browser/chrome/source/resources/language/English/strings.po b/packages/addons/browser/chrome/source/resources/language/English/strings.po index 4c26b2b14e..fae61d28fe 100644 --- a/packages/addons/browser/chrome/source/resources/language/English/strings.po +++ b/packages/addons/browser/chrome/source/resources/language/English/strings.po @@ -48,3 +48,11 @@ msgstr "" msgctxt "#30010" msgid "Dark Mode" msgstr "" + +msgctxt "#30011" +msgid "Use Custom User-Agent" +msgstr "" + +msgctxt "#30012" +msgid "User-Agent" +msgstr "" diff --git a/packages/addons/browser/chrome/source/resources/settings.xml b/packages/addons/browser/chrome/source/resources/settings.xml index ca2e02c5ce..a75e773660 100644 --- a/packages/addons/browser/chrome/source/resources/settings.xml +++ b/packages/addons/browser/chrome/source/resources/settings.xml @@ -12,5 +12,7 @@ + + diff --git a/packages/addons/browser/chrome/source/settings-default.xml b/packages/addons/browser/chrome/source/settings-default.xml index 6b013a482a..2517fcad47 100644 --- a/packages/addons/browser/chrome/source/settings-default.xml +++ b/packages/addons/browser/chrome/source/settings-default.xml @@ -8,4 +8,6 @@ intel maximized false + false + Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/@CHROME_VERSION@ From d28bb7c9fb8b9ed6f289dab4a6391468b743a7d1 Mon Sep 17 00:00:00 2001 From: Guillaume LECERF Date: Sun, 24 Oct 2021 19:31:40 +0200 Subject: [PATCH 5/5] chrome: update changelog --- packages/addons/browser/chrome/changelog.txt | 6 ++++++ packages/addons/browser/chrome/package.mk | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/addons/browser/chrome/changelog.txt b/packages/addons/browser/chrome/changelog.txt index 613aab6ceb..250c019541 100644 --- a/packages/addons/browser/chrome/changelog.txt +++ b/packages/addons/browser/chrome/changelog.txt @@ -1,3 +1,9 @@ +110 +- fix dark mode toggle +- versions >=91 use new flags to enable hardware accelerated video decode +- allow setting a custom user-agent +- use pulseaudio when available + 109 - chrome: update to 95.0.4638.54 - at-spi2-core: update to 2.42.0 diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk index 22311ce7df..9cff6140ba 100644 --- a/packages/addons/browser/chrome/package.mk +++ b/packages/addons/browser/chrome/package.mk @@ -5,7 +5,7 @@ PKG_NAME="chrome" PKG_VERSION="1.0" # curl -s http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages | grep -B 1 Version PKG_VERSION_NUMBER="95.0.4638.54" -PKG_REV="109" +PKG_REV="110" PKG_ARCH="x86_64" PKG_LICENSE="Custom" PKG_SITE="http://www.google.com/chrome"