Merge pull request #5836 from guillaumelecerf/chrome-le10

[le10] Multiple chrome fixes/enhancements
This commit is contained in:
mglae 2021-10-31 17:49:15 +01:00 committed by GitHub
commit c9a4dc5c42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 70 additions and 29 deletions

View File

@ -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 109
- chrome: update to 95.0.4638.54 - chrome: update to 95.0.4638.54
- at-spi2-core: update to 2.42.0 - at-spi2-core: update to 2.42.0

View File

@ -5,7 +5,7 @@ PKG_NAME="chrome"
PKG_VERSION="1.0" PKG_VERSION="1.0"
# curl -s http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages | grep -B 1 Version # 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_VERSION_NUMBER="95.0.4638.54"
PKG_REV="109" PKG_REV="110"
PKG_ARCH="x86_64" PKG_ARCH="x86_64"
PKG_LICENSE="Custom" PKG_LICENSE="Custom"
PKG_SITE="http://www.google.com/chrome" PKG_SITE="http://www.google.com/chrome"
@ -67,4 +67,6 @@ addon() {
post_install_addon() { post_install_addon() {
sed -e "s/@DISTRO_PKG_SETTINGS_ID@/${DISTRO_PKG_SETTINGS_ID}/g" -i "${INSTALL}/default.py" 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}/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"
} }

View File

@ -44,15 +44,15 @@ LIBVA_DRIVER_NAME=''
case $VAAPI_MODE in case $VAAPI_MODE in
'intel') 'intel')
LIBVA_DRIVER_NAME='i965' LIBVA_DRIVER_NAME='i965'
chrome_OPTS="$chrome_OPTS --enable-accelerated-video" chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder"
;; ;;
'amd') 'amd')
LIBVA_DRIVER_NAME='vdpau' LIBVA_DRIVER_NAME='vdpau'
chrome_OPTS="$chrome_OPTS --enable-accelerated-video" chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder"
;; ;;
'nvidia') 'nvidia')
LIBVA_DRIVER_NAME='vdpau' 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' LIBGL_ALWAYS_SOFTWARE='1'
@ -73,16 +73,29 @@ case $RASTER_MODE in
esac esac
# alsa # alsa
if [ ! -z $ALSA_DEVICE ]; then if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE" # 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 fi
# HACK!!! to get sound at Chrome stop pulseaudio # dark mode
systemctl stop pulseaudio 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 # start chrome
LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \ LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \
$chrome_OPTS \ $chrome_OPTS \
"$USER_AGENT" \
--no-sandbox \ --no-sandbox \
--user-data-dir=$ADDON_HOME/profile \ --user-data-dir=$ADDON_HOME/profile \
--test-type $@ \ --test-type $@ \
@ -94,12 +107,8 @@ then
kill $UNCLUTTER_PID kill $UNCLUTTER_PID
fi 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 sleep 5
systemctl start pulseaudio if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
# restart pulseaudio when using an Alsa device
systemctl start pulseaudio
fi

View File

@ -35,13 +35,20 @@ def startchrome(args):
new_env['RASTER_MODE'] = __addon__.getSetting('RASTER_MODE') new_env['RASTER_MODE'] = __addon__.getSetting('RASTER_MODE')
new_env['DARK_MODE'] = __addon__.getSetting('DARK_MODE') new_env['DARK_MODE'] = __addon__.getSetting('DARK_MODE')
new_env['ALSA_DEVICE'] = ''
if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true': if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true':
alsa_device = __addon__.getSetting('CUST_AUDIODEVICE_STR') audio_device = __addon__.getSetting('CUST_AUDIODEVICE_STR')
else: else:
alsa_device = getAudioDevice() audio_device = getAudioDevice()
if not alsa_device == None and not alsa_device == '':
new_env['ALSA_DEVICE'] = alsa_device 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 + ' ' + \ chrome_params = args + ' ' + \
__addon__.getSetting('HOMEPAGE') __addon__.getSetting('HOMEPAGE')
@ -57,7 +64,7 @@ def isRuning(pname):
return False return False
def getAudioDevice(): def getAudioDevice():
dev = json.loads(xbmc.executeJSONRPC(json.dumps({ return json.loads(xbmc.executeJSONRPC(json.dumps({
"jsonrpc": "2.0", "jsonrpc": "2.0",
"method": "Settings.GetSettingValue", "method": "Settings.GetSettingValue",
"params": { "params": {
@ -65,15 +72,20 @@ def getAudioDevice():
}, },
"id": 1, "id": 1,
})))['result']['value'] })))['result']['value']
def getAudioDeviceType(dev):
if dev.startswith("ALSA:"): if dev.startswith("ALSA:"):
dev = dev.split("ALSA:")[1] return "ALSA"
if dev == "@": if dev.startswith("PULSE:"):
return None return "PULSE"
if dev.startswith("@:"): return None
dev = dev.split("@:")[1]
else: def getAlsaAudioDevice(dev):
# not ALSA dev = dev.split("ALSA:")[1]
if dev == "@":
return None return None
if dev.startswith("@:"):
dev = dev.split("@:")[1]
if dev.startswith("CARD="): if dev.startswith("CARD="):
dev = "plughw:" + dev dev = "plughw:" + dev
return dev return dev

View File

@ -48,3 +48,11 @@ msgstr ""
msgctxt "#30010" msgctxt "#30010"
msgid "Dark Mode" msgid "Dark Mode"
msgstr "" msgstr ""
msgctxt "#30011"
msgid "Use Custom User-Agent"
msgstr ""
msgctxt "#30012"
msgid "User-Agent"
msgstr ""

View File

@ -12,5 +12,7 @@
<setting id="CUST_AUDIODEVICE_STR" type="text" label="30008" visible="eq(-1,true)" subsetting="true" default="" /> <setting id="CUST_AUDIODEVICE_STR" type="text" label="30008" visible="eq(-1,true)" subsetting="true" default="" />
<setting id="HIDE_CURSOR" type="bool" label="30009" default="false" /> <setting id="HIDE_CURSOR" type="bool" label="30009" default="false" />
<setting id="DARK_MODE" type="bool" label="30010" default="false" /> <setting id="DARK_MODE" type="bool" label="30010" default="false" />
<setting id="USE_CUST_USERAGENT" type="bool" label="30011" default="false" />
<setting id="CUST_USERAGENT_STR" type="text" label="30012" visible="eq(-1,true)" subsetting="true" default="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/@CHROME_VERSION@" />
</category> </category>
</settings> </settings>

View File

@ -8,4 +8,6 @@
<setting id="VAAPI_MODE" default="true">intel</setting> <setting id="VAAPI_MODE" default="true">intel</setting>
<setting id="WINDOW_MODE" default="true">maximized</setting> <setting id="WINDOW_MODE" default="true">maximized</setting>
<setting id="DARK_MODE" default="true">false</setting> <setting id="DARK_MODE" default="true">false</setting>
<setting id="USE_CUST_USERAGENT" default="true">false</setting>
<setting id="CUST_USERAGENT_STR" default="true">Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/@CHROME_VERSION@</setting>
</settings> </settings>