My progress at porting Ladybird, the SerenityOS Browser

I’ve already thought about using the same bookmarks for my native Ladybird port (but not the Qt one, that shouldn’t contain so much platform-dependent stuff).
I also think that it’s better to have the same bookmarks everywhere.
But let’s see how it progresses before planning too much.
First I need to get my patches upstreamed, then I can start working on a browser on top of it.

3 Likes

FWIW I do have a use for both in-app tabs in WebPositive and S&T. For example, three Web+ windows grouped together:

  • One window with development-related tabs (i.e. GitHub, GitLab, Codeberg, etc.)
  • One window with communication-related tabs (i.e. Discord, Tildes, /kbin, etc.)
  • One window for everything else

This effectively creates a tab grouping system unique to Haiku. Also doing the same with Terminal too, usually with one window for development and another for sysadmin/everything else.

The biggest issue with this workflow is not being able to detach/re-attach and reorder tabs. Being able to do both would make it very adaptable and complete.

2 Likes

Yeah stack and tile is nice but not quite enough for heavy use like in a Browser (I know people with 100+ tabs and many groups of tabs open).

So Tab grouping/stacking (as in each top level tab would actually be a list of tabs clicking it returns to the last open tab in that group + opens a selection drop down that goes away when focus is lost). Something like that.

Tab searching, click on a tab and type to match to the header… type enter to select the current autocompleted tab etc… or arrow keys clicking to narrow down.

Also, what Web+ does when the network doesn’t resolve might need improvement, currently it just kind of does nothing which isn’t ideal UI wise… firefox/chrome for instance after a bit notify the user that thereis a network issue. Anyway that’s just my throughts after using it a bit the other day I haven’t been on haiku daily in awhile.

Then window tabs should be improved instead reinventing the wheel in each application.

I suspect that some tools for searching by window title name already exist in Haiku. If no, easy to implement.

3 Likes

Yes that was exactly what I meant… as S&T improvements.

Haiku S&T has so much potential for improvements. I prefer the Haiku-native way very much instead of other OS’ ways.

3 Likes

I have this exact same workflow. It’s very much like the two level tab stacks of the vivaldi browser. Agree that if you could move tabs within a window and between windows it would be perfect.

I’m not saying that Web+ shouldn’t be forward thinking in its innovation as far as UI/UX goes. However, Web+ should have taken a lot of its UI/UX cues from Net+. Like the main toolbar being to the right of the URL/search field.

And you don’t want my fingers in the Web+ codebase. I’m terrible at C/C++.

Or allow moving it around… I’ve moved my toolbar stuff from the left to the right hand side since forever on Firefox.

4 Likes

I have very good news on upstreaming Haiku support to SerenityOS:
My pull request that enables building Ladybird on Haiku has been merged just a few minutes ago.
That means you can now clone the Serenity repo, build it and it will just work without any other patches required.

19 Likes

Any chance to get building Serenity OS itself on Haiku?

I haven’t experimented with that yet, but it may be possible.
Won’t be much fun for me, however, as I can build with only one core due to that old bug that crashes pre-Ryzen AMD CPUs if you put too much stress on them :confused:

Dear @nipos ,
Thanks for efforts and info about Ladybird Haiku support phase.
I am surely going to install as an upgrade … once it will be available for 32bit Haiku in the Haikuports repo.

Which bug is that?

https://dev.haiku-os.org/ticket/14082 and #15817 (System restarts instantly trying heavy terminal compilation) – Haiku (which both seem to be about the same thing)

Hi! i get this error at 1/2321 i followed your steps to compile from the first post

In file included from /boot/home/serenity/AK/IDAllocator.h:11,
                 from /boot/home/serenity/Userland/Libraries/LibCore/EventLoopImplementationUnix.cpp:7:
/boot/home/serenity/AK/Random.h: In function 'void AK::fill_with_random(Bytes)':
/boot/home/serenity/AK/Random.h:25:5: error: 'arc4random_buf' was not declared in this scope
   25 |     arc4random_buf(bytes.data(), bytes.size())

Thanks. Even with a recent nightly?

arc4random_buf() was added to the nightlies recently, but it is not present on beta4.

So it seems you need to use Haiku >= hrev57247 for this to work.

3 Likes

Yes, the reason for that is still more or less unknown so I don’t expect this to get fixed that soon.

That worked, thanks, compiled without any issue using the hrev57268

2 Likes