Skip to content

Commit

Permalink
chromium: Add chrome-virtual-keyboard recipe
Browse files Browse the repository at this point in the history
chrome-virtual-keyboard is an extension to chromium that
has a javascript on-screen keyboard that allow users
to use chromium without a physical keyboard.

According to chrome webstore, there are over 700K users.

limitations:
    * upstream hasn't maintained this extension for a long time
    * not all textbox will work, notably iframes

leveraging the chromium flag:
--extension-load="" to load a local unpacked extension.

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
  • Loading branch information
Yi Fan Yu committed Sep 19, 2021
1 parent ee752be commit 79bce74
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
2 changes: 2 additions & 0 deletions meta-chromium/classes/chromium-extension-package.bbclass
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# class for defining extension dir for chromium
CHROMIUM_EXTENSION_DIR = "${datadir}/chromium/extensions"
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
SUMMARY = "Chromium Virtual Keyboard"
DESCRIPTION = "Virtual Keyboard Extension for Chromium/Chrome"
HOMEPAGE = "https://apps.xontab.com/VirtualKeyboard"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a8366463bacd4f2ec5edd419e8a113ff"

SRC_URI = " \
git://github.com/xontab/${BPN}.git \
"
SRCREV = "e2b9adf4885cc4ed600cd9bccb77e0df8ff549aa"
S = "${WORKDIR}/git"
PV = "1.11.3+git${SRCPV}"

inherit allarch chromium-extension-package

do_compile[noexec] = "1"

do_install() {
install -d ${D}${CHROMIUM_EXTENSION_DIR}/
cp -r ${S} ${D}${CHROMIUM_EXTENSION_DIR}/${BPN}

# remove unecessary artifacts
rm -f ${D}${CHROMIUM_EXTENSION_DIR}/${BPN}/_config.yml
rm -rf ${D}${CHROMIUM_EXTENSION_DIR}/${BPN}/.git/
}

FILES_${PN} += "${CHROMIUM_EXTENSION_DIR}/${BPN}"
5 changes: 3 additions & 2 deletions meta-chromium/recipes-browser/chromium/chromium-gn.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ require chromium.inc
require chromium-unbundle.inc
require gn-utils.inc

inherit features_check gtk-icon-cache qemu
inherit features_check gtk-icon-cache qemu chromium-extension-package

# The actual directory name in out/ is irrelevant for GN.
OUTPUT_DIR = "out/Release"
Expand Down Expand Up @@ -327,6 +327,7 @@ GN_ARGS:append:libc-musl = ' use_allocator_shim=false use_allocator="none"'
CHROMIUM_EXTRA_ARGS ?= " \
${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-gl=egl', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'kiosk-mode', '--kiosk --no-first-run --incognito', '', d)} \
--load-extension=\$(find ${CHROMIUM_EXTENSION_DIR} -maxdepth 1 | sed 1d | tr '\\\\n' , ) \
"

# V8's JIT infrastructure requires binaries such as mksnapshot and
Expand Down Expand Up @@ -443,7 +444,7 @@ do_install() {

# Add extra command line arguments to the chromium-wrapper script by
# modifying the dummy "CHROME_EXTRA_ARGS" line
sed -i "s/^CHROME_EXTRA_ARGS=\"\"/CHROME_EXTRA_ARGS=\"${CHROMIUM_EXTRA_ARGS}\"/" ${D}${libdir}/chromium/chromium-wrapper
sed -i "s#^CHROME_EXTRA_ARGS=\"\"#CHROME_EXTRA_ARGS=\"${CHROMIUM_EXTRA_ARGS}\"#" ${D}${libdir}/chromium/chromium-wrapper

# This is ANGLE, not to be confused with the similarly named files under swiftshader/
if [ -e libEGL.so ]; then
Expand Down

0 comments on commit 79bce74

Please sign in to comment.