mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
chrome: initial add-on
This commit is contained in:
parent
dff2142ce9
commit
6b4eac3ba1
2
packages/addons/browser/chrome/changelog.txt
Normal file
2
packages/addons/browser/chrome/changelog.txt
Normal file
@ -0,0 +1,2 @@
|
||||
100
|
||||
- initial release
|
1
packages/addons/browser/chrome/config/Xdefaults
Normal file
1
packages/addons/browser/chrome/config/Xdefaults
Normal file
@ -0,0 +1 @@
|
||||
Xft.dpi: 96
|
13
packages/addons/browser/chrome/config/pango.modules
Normal file
13
packages/addons/browser/chrome/config/pango.modules
Normal file
@ -0,0 +1,13 @@
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc common:
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:*
|
||||
/storage/.kodi/addons/browser.chrome/pango-modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:*
|
||||
|
10
packages/addons/browser/chrome/config/pangorc
Normal file
10
packages/addons/browser/chrome/config/pangorc
Normal file
@ -0,0 +1,10 @@
|
||||
#
|
||||
# pangorc file for uninstalled operation. If pango-viewer is run with
|
||||
# this file in the current directory it will set it as PANGO_RC_FILE
|
||||
#
|
||||
|
||||
[Pango]
|
||||
ModuleFiles = /storage/.kodi/addons/browser.chrome/config/pango.modules
|
||||
|
||||
[PangoX]
|
||||
AliasFiles = /storage/.kodi/addons/browser.chrome/config/pangx.aliases
|
104
packages/addons/browser/chrome/config/pixbuf.loaders.cache
Normal file
104
packages/addons/browser/chrome/config/pixbuf.loaders.cache
Normal file
@ -0,0 +1,104 @@
|
||||
# How to generate those file
|
||||
# cd /LE/build.LibreELEC-Generic/gdk-pixbuf-2.36.12/.install_pkg/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders
|
||||
# cp /LE/build.LibreELEC-Generic/gdk-pixbuf-2.36.12/.install_pkg/usr/bin/gdk-pixbuf-query-loaders .
|
||||
# ./gdk-pixbuf-query-loaders *.so > pixbuf.loaders.cache
|
||||
|
||||
|
||||
# GdkPixbuf Image Loader Modules file
|
||||
# Automatically generated file, do not edit
|
||||
# Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.36.12
|
||||
#
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-ani.so"
|
||||
"ani" 4 "gdk-pixbuf" "Windows animated cursor" "LGPL"
|
||||
"application/x-navi-animation" ""
|
||||
"ani" ""
|
||||
"RIFF ACON" " xxxx " 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-bmp.so"
|
||||
"bmp" 5 "gdk-pixbuf" "BMP" "LGPL"
|
||||
"image/bmp" "image/x-bmp" "image/x-MS-bmp" ""
|
||||
"bmp" ""
|
||||
"BM" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-gif.so"
|
||||
"gif" 4 "gdk-pixbuf" "GIF" "LGPL"
|
||||
"image/gif" ""
|
||||
"gif" ""
|
||||
"GIF8" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-icns.so"
|
||||
"icns" 4 "gdk-pixbuf" "MacOS X icon" "GPL"
|
||||
"image/x-icns" ""
|
||||
"icns" ""
|
||||
"icns" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-ico.so"
|
||||
"ico" 5 "gdk-pixbuf" "Windows icon" "LGPL"
|
||||
"image/x-icon" "image/x-ico" "image/x-win-bitmap" "image/vnd.microsoft.icon" "application/ico" "image/ico" "image/icon" "text/ico" ""
|
||||
"ico" "cur" ""
|
||||
" \001 " "zz znz" 100
|
||||
" \002 " "zz znz" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-jpeg.so"
|
||||
"jpeg" 5 "gdk-pixbuf" "JPEG" "LGPL"
|
||||
"image/jpeg" ""
|
||||
"jpeg" "jpe" "jpg" ""
|
||||
"\377\330" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-png.so"
|
||||
"png" 5 "gdk-pixbuf" "PNG" "LGPL"
|
||||
"image/png" ""
|
||||
"png" ""
|
||||
"\211PNG\r\n\032\n" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-pnm.so"
|
||||
"pnm" 4 "gdk-pixbuf" "PNM/PBM/PGM/PPM" "LGPL"
|
||||
"image/x-portable-anymap" "image/x-portable-bitmap" "image/x-portable-graymap" "image/x-portable-pixmap" ""
|
||||
"pnm" "pbm" "pgm" "ppm" ""
|
||||
"P1" "" 100
|
||||
"P2" "" 100
|
||||
"P3" "" 100
|
||||
"P4" "" 100
|
||||
"P5" "" 100
|
||||
"P6" "" 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-qtif.so"
|
||||
"qtif" 4 "gdk-pixbuf" "QuickTime" "LGPL"
|
||||
"image/x-quicktime" "image/qtif" ""
|
||||
"qtif" "qif" ""
|
||||
"abcdidsc" "xxxx " 100
|
||||
"abcdidat" "xxxx " 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-tga.so"
|
||||
"tga" 4 "gdk-pixbuf" "Targa" "LGPL"
|
||||
"image/x-tga" ""
|
||||
"tga" "targa" ""
|
||||
" \001\001" "x " 100
|
||||
" \001\t" "x " 100
|
||||
" \002" "xz " 99
|
||||
" \003" "xz " 100
|
||||
" \n" "xz " 100
|
||||
" \v" "xz " 100
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-tiff.so"
|
||||
"tiff" 5 "gdk-pixbuf" "TIFF" "LGPL"
|
||||
"image/tiff" ""
|
||||
"tiff" "tif" ""
|
||||
"MM *" " z " 100
|
||||
"II* " " z" 100
|
||||
"II* \020 CR\002 " " z zzz z" 0
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-xbm.so"
|
||||
"xbm" 4 "gdk-pixbuf" "XBM" "LGPL"
|
||||
"image/x-xbitmap" ""
|
||||
"xbm" ""
|
||||
"#define " "" 100
|
||||
"/*" "" 50
|
||||
|
||||
"/storage/.kodi/addons/browser.chrome/gdk-pixbuf-modules/libpixbufloader-xpm.so"
|
||||
"xpm" 4 "gdk-pixbuf" "XPM" "LGPL"
|
||||
"image/x-xpixmap" ""
|
||||
"xpm" ""
|
||||
"/* XPM */" "" 100
|
||||
|
||||
|
BIN
packages/addons/browser/chrome/icon/icon.png
Normal file
BIN
packages/addons/browser/chrome/icon/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
117
packages/addons/browser/chrome/package.mk
Normal file
117
packages/addons/browser/chrome/package.mk
Normal file
@ -0,0 +1,117 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="chrome"
|
||||
PKG_VERSION="1.0"
|
||||
PKG_REV="100"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="Custom"
|
||||
PKG_SITE="http://www.google.com/chrome"
|
||||
PKG_DEPENDS_TARGET="toolchain at-spi2-atk atk cairo chrome-libXcomposite \
|
||||
chrome-libXdamage chrome-libXfixes chrome-libXi chrome-libXrender \
|
||||
chrome-libXtst chrome-libxcb cups gdk-pixbuf gtk3 harfbuzz \
|
||||
libXcursor libxss nss pango scrnsaverproto unclutter"
|
||||
PKG_SECTION="browser"
|
||||
PKG_SHORTDESC="Google Chrome Browser"
|
||||
PKG_LONGDESC="Google Chrome Browser"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Chrome"
|
||||
PKG_ADDON_TYPE="xbmc.python.script"
|
||||
PKG_ADDON_PROVIDES="executable"
|
||||
|
||||
make_target() {
|
||||
:
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/config \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# config
|
||||
cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
|
||||
# atk
|
||||
cp -PL $(get_build_dir atk)/.install_pkg/usr/lib/libatk-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# cairo
|
||||
cp -PL $(get_build_dir cairo)/.install_pkg/usr/lib/libcairo-gobject.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir cairo)/.install_pkg/usr/lib/libcairo.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# gdk-pixbuf
|
||||
cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/libgdk_pixbuf-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# gdk-pixbuf modules
|
||||
cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/* $ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules
|
||||
|
||||
# gtk3 gdk3
|
||||
cp -PL $(get_build_dir gtk3)/.install_pkg/usr/lib/libgtk-3.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir gtk3)/.install_pkg/usr/lib/libgdk-3.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# harfbuzz
|
||||
cp -PL $(get_build_dir harfbuzz)/.install_pkg/usr/lib/libharfbuzz.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir harfbuzz)/.install_pkg/usr/lib/libharfbuzz-icu.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libatk-bridge
|
||||
cp -PL $(get_build_dir at-spi2-atk)/.install_pkg/usr/lib/libatk-bridge-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libatspi
|
||||
cp -PL $(get_build_dir at-spi2-core)/.install_pkg/usr/lib/libatspi.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libcups
|
||||
cp -PL $(get_build_dir cups)/cups/libcups.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libxcb
|
||||
cp -PL $(get_build_dir chrome-libxcb)/.install_pkg/usr/lib/libxcb.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXcomposite
|
||||
cp -PL $(get_build_dir chrome-libXcomposite)/.install_pkg/usr/lib/libXcomposite.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXcursor
|
||||
cp -PL $(get_build_dir libXcursor)/.install_pkg/usr/lib/libXcursor.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXdamage
|
||||
cp -PL $(get_build_dir chrome-libXdamage)/.install_pkg/usr/lib/libXdamage.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXfixes
|
||||
cp -PL $(get_build_dir chrome-libXfixes)/.install_pkg/usr/lib/libXfixes.so.3 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXi
|
||||
cp -PL $(get_build_dir chrome-libXi)/.install_pkg/usr/lib/libXi.so.6 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXrender
|
||||
cp -PL $(get_build_dir chrome-libXrender)/.install_pkg/usr/lib/libXrender.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libxss
|
||||
cp -PL $(get_build_dir libxss)/.install_pkg/usr/lib/libXss.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# libXtst
|
||||
cp -PL $(get_build_dir chrome-libXtst)/.install_pkg/usr/lib/libXtst.so.6 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# pango
|
||||
cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpangocairo-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpango-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpangoft2-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# unclutter
|
||||
cp -P $(get_build_dir unclutter)/.install_pkg/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
}
|
94
packages/addons/browser/chrome/source/bin/chrome-downloader
Normal file
94
packages/addons/browser/chrome/source/bin/chrome-downloader
Normal file
@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2018-present Team LibreELEC
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
oe_setup_addon browser.chrome
|
||||
|
||||
ICON=$ADDON_DIR/resources/icon.png
|
||||
CONTROL_FILE=/tmp/curl.done
|
||||
DATA_FILE=/tmp/curl.data
|
||||
|
||||
# check chrome version
|
||||
case "$1" in
|
||||
'latest')
|
||||
CHROME_VER="$(curl -s https://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/other.xml.gz | \
|
||||
gzip -df | awk -F\" '/pkgid.*-stable/{ print $10 }')"
|
||||
;;
|
||||
'repo')
|
||||
CHROME_VER="67.0.3396.87"
|
||||
;;
|
||||
*)
|
||||
echo "Usage $0 { latest | repo }"
|
||||
exit 0;
|
||||
;;
|
||||
esac
|
||||
|
||||
# check for enough free disk space
|
||||
if [ $(df . | awk 'END {print $4}') -lt 400000 ]; then
|
||||
kodi-send --action="Notification(Not enough disk space, at least 400mb are required,30000,${ICON})" >/dev/null
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
# remove install status and folders
|
||||
if [ -f $ADDON_DIR/extract.ok ]; then
|
||||
rm $ADDON_DIR/extract.ok
|
||||
fi
|
||||
|
||||
if [ -d $ADDON_DIR/chrome-bin ]; then
|
||||
rm -rf $ADDON_DIR/chrome-bin
|
||||
fi
|
||||
|
||||
if [ -d $ADDON_DIR/tmp_download ]; then
|
||||
rm -rf $ADDON_DIR/tmp_download
|
||||
fi
|
||||
|
||||
# create tmp download dir
|
||||
mkdir -p $ADDON_DIR/tmp_download
|
||||
cd $ADDON_DIR/tmp_download
|
||||
|
||||
echo "Downloading Chrome version $CHROME_VER"
|
||||
|
||||
# download chrome
|
||||
rm -f ${CONTROL_FILE} ${DATA_FILE}
|
||||
(
|
||||
curl -# -O -C - http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_$CHROME_VER-1_amd64.deb 2>${DATA_FILE}
|
||||
touch ${CONTROL_FILE}
|
||||
) | \
|
||||
while [ : ]; do
|
||||
[ -f ${DATA_FILE} ] && prog="$(tr '\r' '\n' < ${DATA_FILE} | tail -n 1 | sed -r 's/^[# ]+/#/;s/^[^0-9]*//g')" || prog=
|
||||
kodi-send --action="Notification(Downloading Chrome,"${prog:-0.0%}",3000,${ICON})" >/dev/null
|
||||
[ -f ${CONTROL_FILE} ] && break
|
||||
sleep 4
|
||||
done
|
||||
|
||||
rm -f ${CONTROL_FILE} ${DATA_FILE}
|
||||
|
||||
## extract chrome
|
||||
# extrat chrome.deb
|
||||
kodi-send --action="Notification(Extracting Chrome,starting,1000,${ICON})" >/dev/null
|
||||
ar -x google-chrome-stable_$CHROME_VER-1_amd64.deb
|
||||
|
||||
# extract data.tar.xz to chrome-bin directory
|
||||
mkdir $ADDON_DIR/chrome-bin
|
||||
tar xf data.tar.xz --strip-components=4 -C $ADDON_DIR/chrome-bin ./opt/google/chrome
|
||||
|
||||
# cleanup
|
||||
rm -rf $ADDON_DIR/tmp_download
|
||||
touch $ADDON_DIR/extract.ok
|
||||
kodi-send --action="Notification(Extracting Chrome,finished,1000,${ICON})" >/dev/null
|
113
packages/addons/browser/chrome/source/bin/chrome-start
Normal file
113
packages/addons/browser/chrome/source/bin/chrome-start
Normal file
@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present Team LibreELEC
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
. /etc/profile
|
||||
oe_setup_addon browser.chrome
|
||||
|
||||
# check if chrome is already successful installed
|
||||
if [ ! -f "$ADDON_DIR/extract.ok" ]; then
|
||||
cd $ADDON_DIR
|
||||
chrome-downloader repo
|
||||
fi
|
||||
|
||||
if [ -e $ADDON_HOME/env ]
|
||||
then
|
||||
. $ADDON_HOME/env
|
||||
fi
|
||||
|
||||
# fix file permissons (zip packaging)
|
||||
chmod +x $ADDON_DIR/chrome-bin/chrome
|
||||
chmod 4755 $ADDON_DIR/chrome-bin/chrome-sandbox
|
||||
|
||||
# make sure we use "own" gtk/pango/nss/etc
|
||||
export LD_LIBRARY_PATH=$ADDON_DIR/lib
|
||||
|
||||
# configure pango/pixbuf
|
||||
export PANGO_RC_FILE=$ADDON_DIR/config/pangorc
|
||||
export GDK_PIXBUF_MODULE_FILE=$ADDON_DIR/config/pixbuf.loaders.cache
|
||||
|
||||
# font rendering in gtk widgets is brokeen with nvidia blob. use our Xdefaults
|
||||
export XENVIRONMENT=$ADDON_DIR/config/Xdefaults
|
||||
|
||||
# start unclutter
|
||||
if [ "$HIDE_CURSOR" == "true" ]
|
||||
then
|
||||
unclutter &
|
||||
UNCLUTTER_PID=$!
|
||||
fi
|
||||
|
||||
# vaapi
|
||||
LIBVA_DRIVERS_PATH="/usr/lib/dri:$ADDON_DIR/lib"
|
||||
LIBVA_DRIVER_NAME=''
|
||||
case $VAAPI_MODE in
|
||||
'intel')
|
||||
LIBVA_DRIVER_NAME='i965'
|
||||
chrome_OPTS="$chrome_OPTS --enable-accelerated-video"
|
||||
;;
|
||||
'amd')
|
||||
LIBVA_DRIVER_NAME='vdpau'
|
||||
chrome_OPTS="$chrome_OPTS --enable-accelerated-video"
|
||||
;;
|
||||
'nvidia')
|
||||
LIBVA_DRIVER_NAME='vdpau'
|
||||
chrome_OPTS="$chrome_OPTS --enable-accelerated-video --allow-no-sandbox-job --disable-gpu-sandbox"
|
||||
;;
|
||||
*)
|
||||
LIBGL_ALWAYS_SOFTWARE='1'
|
||||
export LIBGL_ALWAYS_SOFTWARE
|
||||
esac
|
||||
export LIBVA_DRIVER_NAME LIBVA_DRIVERS_PATH
|
||||
|
||||
# windowed
|
||||
case $WINDOW_MODE in
|
||||
'maximized') chrome_OPTS="$chrome_OPTS --start-maximized";;
|
||||
'kiosk') chrome_OPTS="$chrome_OPTS --kiosk";;
|
||||
esac
|
||||
|
||||
# rasterization
|
||||
case $RASTER_MODE in
|
||||
'off') chrome_OPTS="$chrome_OPTS --disable-accelerated-2d-canvas --disable-gpu-compositing";;
|
||||
'force') chrome_OPTS="$chrome_OPTS --enable-gpu-rasterization --enable-accelerated-2d-canvas --ignore-gpu-blacklist";;
|
||||
esac
|
||||
|
||||
# alsa
|
||||
if [ ! -z $ALSA_DEVICE ]; then
|
||||
chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE"
|
||||
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 \
|
||||
--no-sandbox \
|
||||
--user-data-dir=$ADDON_HOME/profile \
|
||||
--test-type $@ \
|
||||
2>&1 | tee $ADDON_LOG_FILE
|
||||
|
||||
# kill unclutter
|
||||
if [ "$HIDE_CURSOR" == "true" ]
|
||||
then
|
||||
kill $UNCLUTTER_PID
|
||||
fi
|
||||
|
||||
# HACK!!! to get sound at Kodi start pulseaudio
|
||||
sleep 5
|
||||
systemctl start pulseaudio
|
116
packages/addons/browser/chrome/source/default.py
Normal file
116
packages/addons/browser/chrome/source/default.py
Normal file
@ -0,0 +1,116 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2018-present Team LibreELEC
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# LibreELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# LibreELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import xbmcaddon
|
||||
import subprocess
|
||||
from xml.dom.minidom import parse
|
||||
|
||||
sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
|
||||
|
||||
import oe
|
||||
|
||||
__addon__ = xbmcaddon.Addon();
|
||||
__path__ = os.path.join(__addon__.getAddonInfo('path'), 'bin') + '/'
|
||||
|
||||
pauseXBMC = __addon__.getSetting("PAUSE_XBMC")
|
||||
|
||||
def pauseXbmc():
|
||||
if pauseXBMC == "true":
|
||||
xbmc.executebuiltin("PlayerControl(Stop)")
|
||||
xbmc.audioSuspend()
|
||||
xbmc.enableNavSounds(False)
|
||||
|
||||
def resumeXbmc():
|
||||
if pauseXBMC == "true":
|
||||
xbmc.audioResume()
|
||||
xbmc.enableNavSounds(True)
|
||||
|
||||
def startchrome(args):
|
||||
try:
|
||||
new_env = os.environ.copy()
|
||||
new_env['VAAPI_MODE'] = __addon__.getSetting('VAAPI_MODE')
|
||||
new_env['WINDOW_MODE'] = __addon__.getSetting('WINDOW_MODE')
|
||||
new_env['RASTER_MODE'] = __addon__.getSetting('RASTER_MODE')
|
||||
|
||||
new_env['ALSA_DEVICE'] = ''
|
||||
if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true':
|
||||
alsa_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
|
||||
|
||||
chrome_params = args + ' ' + \
|
||||
__addon__.getSetting('HOMEPAGE')
|
||||
subprocess.call(__path__ + 'chrome-start ' + chrome_params, shell=True, env=new_env)
|
||||
except Exception, e:
|
||||
oe.dbg_log('chrome', unicode(e))
|
||||
|
||||
def isRuning(pname):
|
||||
tmp = os.popen("ps -Af").read()
|
||||
pcount = tmp.count(pname)
|
||||
if pcount > 0:
|
||||
return True
|
||||
return False
|
||||
|
||||
def getAudioDevice():
|
||||
try:
|
||||
dom = parse("/storage/.kodi/userdata/guisettings.xml")
|
||||
audiooutput=dom.getElementsByTagName('audiooutput')
|
||||
for node in audiooutput:
|
||||
dev = node.getElementsByTagName('audiodevice')[0].childNodes[0].nodeValue
|
||||
if dev.startswith("ALSA:"):
|
||||
dev = dev.split("ALSA:")[1]
|
||||
if dev == "@":
|
||||
return None
|
||||
if dev.startswith("@:"):
|
||||
dev = dev.split("@:")[1]
|
||||
else:
|
||||
# not ALSA
|
||||
return None
|
||||
except:
|
||||
return None
|
||||
if dev.startswith("CARD="):
|
||||
dev = "plughw:" + dev
|
||||
return dev
|
||||
|
||||
if (not __addon__.getSetting("firstrun")):
|
||||
__addon__.setSetting("firstrun", "1")
|
||||
__addon__.openSettings()
|
||||
|
||||
try:
|
||||
args = ' '.join(sys.argv[1:])
|
||||
except:
|
||||
args = ""
|
||||
|
||||
if args == 'widevine':
|
||||
install_widevine()
|
||||
elif args == 'flash':
|
||||
install_flash()
|
||||
else:
|
||||
if not isRuning('chrome'):
|
||||
pauseXbmc()
|
||||
startchrome(args)
|
||||
while isRuning('chrome'):
|
||||
time.sleep(1)
|
||||
resumeXbmc()
|
||||
|
@ -0,0 +1,46 @@
|
||||
# Kodi Media Center language file
|
||||
# Addon Name: chrome
|
||||
# Addon id: browser.chrome
|
||||
# Addon Provider: Team LibreELEC
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "Chrome Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30002"
|
||||
msgid "Stop Kodi Player and Suspend AudioEngine"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30003"
|
||||
msgid "HW Acceleration Mode"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30004"
|
||||
msgid "Rasterization Mode"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30005"
|
||||
msgid "Window Mode"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30006"
|
||||
msgid "Default Homepage"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30007"
|
||||
msgid "Use Custom Audio Device"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30008"
|
||||
msgid "Audio Device"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30009"
|
||||
msgid "Hide Cursor"
|
||||
msgstr ""
|
15
packages/addons/browser/chrome/source/resources/settings.xml
Normal file
15
packages/addons/browser/chrome/source/resources/settings.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting label="30001" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="PAUSE_XBMC" type="bool" label="30002" default="true" />
|
||||
<setting id="VAAPI_MODE" type="labelenum" label="30003" values="off|intel|amd|nvidia" default="intel"/>
|
||||
<setting id="RASTER_MODE" type="labelenum" label="30004" values="default|off|force" default="default" subsetting="true" enable="!eq(-1,0)"/>
|
||||
<setting id="WINDOW_MODE" type="labelenum" label="30005" values="maximized|kiosk|none" default="maximized" />
|
||||
<setting id="HOMEPAGE" type="text" label="30006" default="https://libreelec.tv" />
|
||||
<setting id="USE_CUST_AUDIODEVICE" type="bool" label="30007" default="false" />
|
||||
<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" />
|
||||
</category>
|
||||
</settings>
|
10
packages/addons/browser/chrome/source/settings-default.xml
Normal file
10
packages/addons/browser/chrome/source/settings-default.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<settings version="2">
|
||||
<setting id="CUST_AUDIODEVICE_STR" default="true"></setting>
|
||||
<setting id="HIDE_CURSOR" default="true">false</setting>
|
||||
<setting id="HOMEPAGE" default="true">https://libreelec.tv</setting>
|
||||
<setting id="PAUSE_XBMC">true</setting>
|
||||
<setting id="RASTER_MODE" default="true">default</setting>
|
||||
<setting id="USE_CUST_AUDIODEVICE" default="true">false</setting>
|
||||
<setting id="VAAPI_MODE" default="true">intel</setting>
|
||||
<setting id="WINDOW_MODE" default="true">maximized</setting>
|
||||
</settings>
|
Loading…
x
Reference in New Issue
Block a user