Haikuwebkit minibrowser preview

I’ve uploaded v0.4 which is working but where I need to clean up things.

You can however test it on R1 Beta6 :
https://www.haikuinsider.org/files/package-minibrowser-v0.4.zip

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

Before launching it in the Terminal :
pkgman install libavif

A most important for WebInspector:
export WEBKIT_INSPECTOR_RESOURCES_PATH=/boot/home/config/non-packaged/data/WebKit/inspector/

The TimeLines tab is not working and not all icons are available.
You can right Click>“Inspect Element”
Or you can open menu File>Inspect Page (it will do an on/off of the webinpector in the current viewtab)

Happy debugging :wink:

7 Likes

Having now tab keyboard focus navigation :slight_smile:

16 Likes

A lot of things remain but moving in the right direction :wink:

Screenshot posted from minibrowser

10 Likes

Looks like you are on your way to reimplement webpositive from minibrowser :smiley:

Congrats on the progress

Considering beta6 has just been released it may be a good time to start rebasing webpositive. Though this may make it hardly useable on the nightlies… Personally I think this is ok though

What do you mean?

We don’t have to merge work-in-progress rebases.

The person who decides to rebase WebPositive can work in a branch until they are done and ready to share their work.

No need to break everyone’s browser while they do so.

I would personally wait a little bit before the webpositive part.

Things which are in the todo and not yet implemented (some are in early stage):

  • async popup menu/submenus
  • find in page
  • zoom/unzoom
  • content blocker
  • window.open
  • download manager
  • TLS

But it depends how useable it would expected to be in the nightlies

Branches in gerrit are a bit icky. And I expect this to be an effort severeall people (can) contribute to.

I don’t see why the expectation is that nothing ever breaks in the nightlies, especially when it would make refactoring and development radically easier

(and to properly weed out all the bugs and missing functionality we first have to rebase it so we can figure out which parts are missing and wrong. There is almost no way to make it work perfectly on the “first try”… )

because people use them for testing the work in progress system, to varying degrees. Allow the nightlies to be “temporarily” broken and we’ll never ship a good release again. It’s our testing and integration branch, it can’t also be our development branch at the same time. And a single development branch for however many people are working on Haiku isn’t going to work.

I don’t know what’s “icky” about using branches in Gerrit. It looks like a pretty normal git server to me so you can create branches. Or if you don’t like that you can create a “webpositive2” directory next to webpositive, but I think that goes in the “branches, but worse” category?

If you mean just pushing a branch to the repo, sure I can do that, but I’m not really sure how that interacts with gerrit… I only know single commits there and the “topics” (i.e tag some commits together)

Ideally I’d want a branch that other developers can propose changes towards just as easily as with the normal branch

Yes, that’s what we do for the beta branches already. If I remember correctly, all people with commit access can create branches starting wito a “dev” prefix (push to ref/heads/dev_mycoolbranch) and then people can push changes for review to that branch (push to refs/for/dev_mycoolbranch)

I will try in a few weeks to propose a version of MiniBrowser to test.

The idea ** during that period ** would be to have some feedback if some websites still have issues with webkit2.

The current version is quite stable from my point of view (except the videos part which should be a dedicated additional task and not sure relative to webkit2).

It will be also the occasion to showcase the functionalities that apps like WebPositive -or any other ones- will inherit when they will use webkit2 (like WebInspector addition).

Note: the scope of MiniBrowser is testing purpose only, the target will be WebPositive for end user.

The focus of current MiniBrowser is to use as much as possible what WebKit/WebKit2 can propose (for instance there’s a built-in content blocker), but not to try to polish the GUI part which is what WebPositive should propose :slight_smile:

8 Likes

I’m currently exploring compiling webkit2 via cross compilation from Debian to the Haiku 32 bits target.

The bad news is that it’s actually failing during the launch of mini browser under Haiku 32 bits with a symbol not found :ZTIN7WebCore15PlatformDisplayE

The good news is that cross compiling from Debian was successfully done one time without any showstopper.

As it was never done before (from what I know) it requires additional work/analysis, and I will retry the whole process one more time to understand where it’s failing.

3 Likes

libwebcore. If cross compile, check -m32/-m64 setup and webcore export of Haiku Platform Display within compiler output.

Ex: haikuwebkit/Source/WebCore/platform/PlatformExportMacros.h at haiku · haiku/haikuwebkit · GitHub

Figure your doing this within a 64-bit container bypassing the 32-bit build memory constraints.

MiniBrowser cross compiled, the next step is to fix the call to NetworkProcess which is failing

11 Likes

Bug identified and fixed :slight_smile:

First time MiniBrowser cross compiled and running on Haiku 32 bits !

Next steps are:

  • Cross compiling fixes identified to commit
  • Runtime errors fixes to commit
  • Document the cross compilation how-to with debian os & testing with qemu
19 Likes