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 2db2e0711a..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" @@ -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 1556fa95a6..55a5148594 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' @@ -73,16 +73,29 @@ 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 +# dark mode +if [ "$DARK_MODE" == "true" ] +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 $@ \ @@ -94,12 +107,8 @@ then kill $UNCLUTTER_PID fi -# dark mode -if [ "$DARK_MODE" == "true" ] -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..82dd0c27cf 100644 --- a/packages/addons/browser/chrome/source/default.py +++ b/packages/addons/browser/chrome/source/default.py @@ -35,13 +35,20 @@ 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 + + if __addon__.getSetting('USE_CUST_USERAGENT') == 'true': + new_env['USER_AGENT'] = __addon__.getSetting('CUST_USERAGENT_STR') chrome_params = args + ' ' + \ __addon__.getSetting('HOMEPAGE') @@ -57,7 +64,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 +72,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 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@