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@