[EXPERIMENTAL] WebKit-based web browser

Hello CoreELEC community :wave:!

I am testing out a build of WebKit web browser designed for embedded devices (specifically WPE port).
You can find out more about this browser here.

UNSTABLE

Some features will not work, you may experience browser crashing and this browser won’t always behave like your typical desktop web browsers. You have been warned!
Please only report errors in this thread!

GitHub

If you want to see how I built webkit on CoreELEC build system, check it out here.
https://github.com/TheChoconut/CoreELEC/tree/coreelec-20

How-to use

CoreELEC 20 is required to run the browser.

  1. Download latest browser.webkit addon: https://www.dropbox.com/sh/gq12jaubs7nymmg/AAAircdKSChj6UnZCoGFadHQa?dl=0
  2. Unzip the file on /storage. It should create a folder called browser.webkit
  3. Use cd ~/browser.webkit/bin to get to the binary folder.
  4. Stop kodi: systemctl stop kodi
  5. Run browser:
    LD_LIBRARY_PATH=~/browser.webkit/lib LD_PRELOAD=/usr/lib/libamcodec.so WEBKIT_INJECTED_BUNDLE_PATH=~/browser.webkit/lib/ GST_PLUGIN_PATH=~/browser.webkit/lib/gst_plugins GIO_EXTRA_MODULES=~/browser.webkit/lib/modules WPE_AML_CURSOR=1 ./cog [URL]

To close the browser, use Ctrl+C on the terminal or kill the process.
Return back to kodi with systemctl start kodi

Known issues

  • Youtube doesn’t work
  • Video and audio playback is buggy and lags
  • No CDM support

You should use a keyboard and/or mouse to control the browser. Keyboard shortcuts are missing, audio/video playback is not finished.

3 Likes

Hello,

The most explosive news I’ve read lately in the CoreELEC Universe.
I’ve been waiting for this for a long time and it seems to have finally happened.
There are some bugs, but I believe they will be fixed in time.

In short: it’s a revolution and I’m very happy.

Kind regards…

I’m getting the following errors (CE20 alpha2):

/storage/browser.webkit/bin/cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
/storage/browser.webkit/bin/cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by ./cog)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libwpe-1.0.so.1)
./cog: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /storage/browser.webkit/lib/libcairo.so.2)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libcairo.so.2)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libepoxy.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libgstpbutils-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libpsl.so.5)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libunistring.so.2)

Linux CoreELEC 4.9.269 #1 SMP PREEMPT Sun Aug 28 00:37:23 UTC 2022 aarch64 GNU/Linux

Well, this is unfortunate. Looks like you have to use the latest nightly in order to use this since glib is too old… I’ll try to compile for Alpha2

EDIT: I’ve compiled a new addon based on the Alpha2 repo, so try with 20.0.102.

When I run GIO_EXTRA_MODULES=~/browser.webkit/lib/modules WPE_AML_CURSOR=1 ./cog [URL] I get

Snap-2022-08-29-00-10-29

I am using the latest nightly.

Something didnt get set as executable. Probably cog.
Try chmod +x cog

Thanks. That got me a step further.

Now I get the following errors.

./cog: /usr/lib/libc.so.6: version GLIBC_2.34' not found (required by ./cog) ./cog: /usr/lib/libc.so.6: version GLIBC_2.34’ not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0) ./cog: /usr/lib/libm.so.6: version GLIBC_2.35’ not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0) ./cog: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.30’ not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libwpe-1.0.so.1) ./cog: /usr/lib/libm.so.6: version GLIBC_2.35’ not found (required by /storage/browser.webkit/lib/libcairo.so.2)
./cog: /usr/lib/libc.so.6: version GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libcairo.so.2) ./cog: /usr/lib/libc.so.6: version GLIBC_2.33’ not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0)
./cog: /usr/lib/libc.so.6: version GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0) ./cog: /usr/lib/libc.so.6: version GLIBC_2.34’ not found (required by /storage/browser.webkit/lib/libepoxy.so.0)
./cog: /usr/lib/libc.so.6: version GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libicuuc.so.71) ./cog: /usr/lib/libc.so.6: version GLIBC_2.33’ not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /storage/browser.webkit/lib/libicuuc.so.71) ./cog: /usr/lib/libc.so.6: version GLIBC_2.33’ not found (required by /storage/browser.webkit/lib/libgstpbutils-1.0.so.0)
./cog: /usr/lib/libc.so.6: version GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libpsl.so.5) ./cog: /usr/lib/libc.so.6: version GLIBC_2.34’ not found (required by /storage/browser.webkit/lib/libunistring.so.2)

Is this with the latest zip file?

I tried with both.

Looks like you have to use the latest nightly

I can confirm first one is working with latest nightly.

I have similar bugs probably on the latest version of CE nightly
CoreELEC (official): 19.5-Matrix_nightly_20220829 (Amlogic-ng.arm)
Linux CoreELEC 4.9.269 #1 SMP PREEMPT Mon Aug 29 00:37:37 UTC 2022 aarch64 GNU/Linux
browser.webkit-20.0.102.zip

LD_LIBRARY_PATH=~/browser.webkit/lib LD_PRELOAD=/usr/lib/libamcodec.so WEBKIT_INJECTED_BUNDLE_PATH=~/browser.webkit/lib/ GST_PLUGIN_PATH=~/browser.webkit/lib/gst_plugins GIO_EXTRA_MODULES=~/browser.webkit/lib/modules WPE_AML_CURSOR=1 ./cog [URL]
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by ./cog)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /storage/browser.webkit/lib/libWPEWebKit-1.1.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libwpe-1.0.so.1)
./cog: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /storage/browser.webkit/lib/libcairo.so.2)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libcairo.so.2)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libgstreamer-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libepoxy.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libicuuc.so.71)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libgstpbutils-1.0.so.0)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /storage/browser.webkit/lib/libpsl.so.5)
./cog: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /storage/browser.webkit/lib/libunistring.so.2)

You have to run CoreELEC 20 Nexus latest nightly. You are trying to run it on CoreELEC 19…

It would therefore be worth removing the line from the opening post that states ‘Not built yet for CoreELEC19, but it should work’.

1 Like

however, I stay with CE 19.5 matrix for now … but at a free moment I will try the new version of CE 20 already on a new SD card … because the upgrade may be dangerous for my configuration.

1 Like