Haikuwebkit minibrowser preview

I’ve uploaded an early alpha version with tabs which I will need to polish a little bit.

Don’t expect too much from this version :
Browser might be stuck when launched (just close and relaunch), sites might crash or hang (stability is better than before however), videos playback is slow and you will have many crashes, context menu are not all implemented, etc, etc

However I think it’s “good” enough to have a demo of WebKit2.

Download the zip and extract it into /boot/home/config/non-packaged
“MiniBrowser” will be recognized in the Terminal after this extraction (I hope).

EDIT: new version v0.3 added
EDIT2: you need to install before : pkgman install libavif

https://www.haikuinsider.org/files/package-minibrowser-v0.3.zip

17 Likes

If you copy WebPositve to /boot/home/config/non-packaged/bin after installing your minibrowser files, WebPositve will play youtube videos

3 Likes

Basic test of a few web pages:

Result: Passed (i.e. a few rendering issues)

Test framework:

  1. Perl
    perl Tools/Scripts/test-webkitperl

Result:

All tests successful.
Files=40, Tests=665,  9 wallclock secs ( 0.14 usr  0.06 sys +  7.01 cusr  1.41 csys =  8.63 CPU)
Result: PASS
  1. JSC
perl Tools/Scripts/run-javascriptcore-tests

Result:

98353 tests run
2109 test files skipped
401 tests failed in total
254 tests newly fail
8 tests newly pass
  1. Python:
    python3.10 Tools/Scripts/test-webkitpy

Result:
ValueError: No archives for cryptography-38.0.2 found

  1. Ruby:
    Tools/Scripts/test-webkitruby

Result:

Testing: Tools/Scripts/check-for-inappropriate-macros-in-external-headers
FAIL - test_good_fake_data
FAIL - test_bad_fake_data

Works good on github and youtube audio/video playback. :man_mage: :tropical_drink:
Note: I got a audio lip sync issue, so will need to review it more.
WebProcess tends to linger after app termination/crash - if not a clean exit.

Did a new tab test:

  1. open new tab
  2. close new tab

Result: full app crash vs. the offending tab

WebGL test:


Result: No GL binding (Update: feature disabled in build)

HTML5 test:


Result: Passed

we have never tried opening two websites in different tabs, since MiniBrowser doesn’t support that.

Interesting. I did this…

  1. Loaded two web pages. One web page loaded successfully per tab.
  2. Opened 32+ new tabs in succession. Then, closed them.

Tested with WebPositive 1.3-alpha (haikuwebkit 1.9.29/WebKit 625.1.19) on hrev59783 x64:

  1. Create new window and load different web page than first window. - Result: Passed
  2. Create new tab and load different web page than first tab. - Result: Passed
  3. Go to Youtube.com and play basic video/audio content - Result: Passed
4 Likes

Very nice move to keep user interrested!
Thank you

1 Like

I also downloaded Minibrowser…2 comments on my system…A dependency was missing libavif…i installed it using pkgman.

Furthermore no youtube playback for me…it seems a format error happens… Edit: it worked better next time i tried… It showed some ads :rofl: extremely slow though on my VM

A last thought is that as webkit2 situation improves a flag page should be exposed to users (something similar to chrome://flags …i don’t have a safari based browser right now in front of me…especially related to webgl,webgl2 i believe default settings should be tweaked till situation hits the hardware acceleration wall)

If you check show missing features on html5test.co it will report all missing video and audio features such as webgl webgl2 etc…no need for the first site here

Was just noted on WebGL. Since Web+ is minimalistic, that is just if someone wants to add it - but most of the implemented/ported minimalistic browsers didn’t enable it.

Otter Browser and Epiphany was the next step… before Waterfox and IceWeasel…

Yet, the key is more on some of these websites that require a certain dynamic canvas support to render correctly. Other websites have Content Security handling.

One day we’ll detach from behind WebkitLegacy to engage the WebKit2 engine “the way it was meant.”

Streaming Media (Youtube and the like)… maybe a BufferConsumer…

1 Like

Ok having tabs in minibrowser is really useful to understand additional use cases.
I should fix a problem soon, which should isolate the crash only per tab and not on the application (which is one of the benefit of WebKit2)

3 Likes

Moved these since the original topic was more intended for developer questions to other developers :slight_smile:

I have fixed an issue when closing tab : you should now have a more stable application per tab. The download link above has been updated.

For instance if your tab with YouTube is producing a crash, close it and open a new one, other tabs should not be affected. It should make finding new crashes/bugs easier myself included :slight_smile:

6 Likes

Verified. Thanks.

Ok. Open new window didn’t work. Works for Web+. :smiling_face_with_sunglasses:

At this point… could we fork and “bolt on” Web+ unto WebKit2 backend so we can test it from that perspective ???

Seems we are fixing Minibrowser (maybe, good to do) in hopes it floats into Web+ … but maybe we should put test efforts into Web+ instead…

1 Like

On my side the simple answer is no, and the reason is that it’s simplier for me to start from MiniBrowser because there’s no legacy code.

Imagine you need to do both (1) Webkit2 API + (2) Haiku API + (3) Legacy code from WebPositive + (4) some missing setup from WebKit1 or put some effort on some bugs from WebKit1

I prefer to focus on (1) and (2) but also a (4bis) = any bug or missing features from WebKit1 must be moved to WebKit2 instead of fixing that in WebKit1.

But I’m happy if someone can put that effort right now in WebPositive of course (some portions can be done in parallel I guess)

3 Likes

Better to create a link to WebPositive in /boot/home/config/non-packaged/bin than to copy so that it still updates correctly.

Works great! Plays YouTube vids using much less resources than FireFox based browsers too.

Great work guys!!!

1 Like

I know it’s Alpha level, but cookie.jar files should be moved under ~/config if possible in the future :wink:

1 Like

SVG Testing:

https:/www.w3schools.com/graphics/svg_fegaussianblur.asp

Result: Image is different than in IceWeasel. Also, triggers a debugger “crash” condition.

SVG Drop Shadows - feOffset

Result: Result: Image is different than in IceWeasel. Border colors of picture different.

Web Page loading stop or cancellation:

  1. Use Stop button to cancel/stop a web page while loading.

Result: MiniBrowser shows web page loading is cancelling in status bar, but never shows finished. No indication of a finished stop/cancel operation after 60 seconds.

What is the point of these messages?

Are any of these messages DIRECTLY questioned to you?? Personally??? Got your money on the table?

Purpose is to fix issues with MiniBrowser on Haiku if it is the tool used to preview the WebKit2 functionality. Or, shall we claim no issues with it?

I think there’s something relative to SVG somewhere because I noticed also some crashes in YouTube relative to SVG

1 Like

Ref: Making sure you're not a bot!

Thanks. No worries.

I don’t understand your aproach here, you do know about trac, so why don’t you report issues there with reprroductions? It’s not really helpfull to go “firefox renders differently”. Yes we know that, I have severall tickets filed against haikuwebkit for SVG rendering. So is this a new issue, an old one? You often post messages about some tests you do, but never what test setup or what the actual result is except for a small summary. It’s hard to work with such messages, and mostly they are just noise as a result.

For example in your message you said some site crashes Haikuwebkit, so which version did you test? a version you build yourself, the version DigitalBox provided? and if it does crash it would be great to provide the debug report on the bug tracker.

2 Likes