- Debugger: Getting mixed signals
- 'Packaging Infrastructure' Contract Weekly Report #4
- Haiku monthly activity report - 06/2015
- 'Packaging Infrastructure' Contract Weekly Report #3
- 'Packaging Infrastructure' Contract Weekly Report #2
- GCI 2014 winners trip report (mentor side)
- TeX Live and LyX; Changes to the boot code
- 'Packaging Infrastructure' Contract Weekly Report #1
- Beginning of 'Packaging Infrastructure' Contract
- Haiku monthly activity report - 05/2015
WebPositive emerges
Wow, it's been 10 days already since I posted my first blog entry on my work on WebKit and the native web browser. Of course my continous updates to the package I posted in my first article will probably have spoiled most of the surprise, but HaikuLauncher has been reduced again into just a bare browser shell, while a new codebase, WebPositive, has been split off from it. Using WebPositive has become a whole lot more pleasing in the meantime. For those of you who have not followed the comments to the original blog, these are the things implemented since my first post on the project:
- Big WebKit API cleanup (BWebView, BWebPage, etc).
- Fixed crashes and oddities with downloads.
- Fixed various other crashing bugs.
- Fixed rendering bugs with transparent text.
- Vastly improved desktop integration.
- Big improvements in rendering efficiency.
- Handling of WebCore navigation events has been greatly improved which results in a lot more sites working.
- Added stop loading button.
- Mouse wheel event fixes (Michael Lotz).
- Fixed dispatching keyboard events to the correct frame (Michael Lotz).
- Completely rewritten tab view.
- Favicon support.
- Many more keyboard shortcuts and some convenience mouse actions (in part by Ryan Leavengood).
- Rewritten timer implementation has vastly improved redraw lags.
- Autocompletion for the URL text field (using, with his permission, great quality code from Beam by Oliver Tappe).
- Smooth scrolling by avoiding to redraw the whole frame on each scroll.
So far, I've been working fulltime on WebPositive, often from ninish in the morning to about midnight, with some pauses in between of course. Except for missing bookmark support and an almost useless browsing history menu (because seemingly unsorted), WebPositive has become quite usable - which makes me very happy of course. Some stuff doesn't work yet, like sending mails in the advanced GMail interface, or clicking links which open new pages from within sub-frames. There need to be application settings, like download location or default fonts. Context menu support is completely missing yet, although some work has already been done to implement them in the original WebKit port. There needs to be persistency across WebPositive sessions. And of course once these more basic features are all in place, I would like to tackle plugin support or maybe HTML5 audio/video support even before that (unless Ryan beats me to it :-). And the browser needs to become an optional package when building Haiku.
All that will probably take the better half of tomorrow, but I should still have some time left for web surfing as a reward.
The feedback I have gotten to my first blog post, but also via mail and in IRC, has been overwhelming! I am glad for the useful feature requests, some of which have been low hanging fruit and I tried to implement them quickly. From what I hear, the donations to Haiku, Inc. have increased a lot, and this makes me feel very glad! Without the sponsoring, I wouldn't be able to work on WebPositive as much as I am right now, and progress would be much slower. Some bugs are really hard to track down and it can be frustrating and take hours. WebPositive would be nowhere as nice to use as it already is without your support! So thank you!
The next days I will just continue by working on any random missing feature that will make basic browsing more usable. Thanks for reading and all the encouragement already given! Oh and I almost forgot:
Download WebPositive (svn revision 444)
Have fun!
- stippi's blog
- Login or register to post comments

Comments
Re: WebPositive emerges
For all the feature requests it might be nice if you guys could document them somewhere, either in a Haiku Wiki or maybe on the WebPositive/WebKit Trac on http://mmlr.dyndns.org (though I do not know if everyone can just create an account there.) Or even just as emails on the haiku-webkit mailing list. This will also stop your long posts here from getting lost due to the SPAM filters (though we still need a solution for that.)
This way we have a nice easy to read list of features requests. And then people like me who only have a small amount of time to work on this can grab small features which Stephan may not want to work on now (since he has higher priorities.)
Also regarding a global download window which AlienSoldier mentioned, I have definitely had thoughts about this for a while. Since previously the browser was my priority I never had time to work on this, but now that Stephan is heading the browser work I might now have time. But it still might take a while to implement.
The long term plans would be to support HTTP, FTP, BitTorrent and whatever else with plug-ins, and have nice global options for bandwidth limiting, etc. Also it would be nice to have a command-line program to start downloads with this system instead of wget or whatever. As far as integrating it with Tracker, I'm not sure, but I could certainly try to mimic the Tracker GUI for file operation progress.
As part of the above work I would like to investigate the adding of download progress to icons in Tracker (like on NetPositive), but as Stephan says it is more complicated due to the vector icons. It is certainly possible to do, but would likely need to be done as a Haiku feature which could then be used by other programs.
Re: WebPositive emerges
...This will also stop your long posts here from getting lost due to the SPAM filters (though we still need a solution for that.)
Sorry for the off-topic comment, but the Spam module is actually working as expected. The problem is that the queue of comments marked as spam is not being monitored anymore (probably for several months). As a result, many legitimate comments never get published, which probably confuses the learning feature of the spam filter, and most likely also increases the likelihood of certain users being labeled as spammers.
I left a comment with the specifics on the #haiku-web channel, so hopefully the web admin(s) will take care of this at some point.
Re: WebPositive emerges
As far as integrating it with Tracker, I'm not sure, but I could certainly try to mimic the Tracker GUI for file operation progress.
Seem Francois have something like that in mind: http://revolf.free.fr/beos/shots/TrackerTasksMockup.png
Re: WebPositive emerges
For middle mouse wheel I am used to scroll 3 Lines a time...
Its faster but not too fast...
Web+ scrolls 1...
Could be included in a future settings dialogue...
Btw. drag and drop works with url..
Re: WebPositive emerges
Thanks so much, everyone involved in the Webkit port for Haiku and WebPositive! The browser is awesome! Finally being able to ditch Firefox/BeZilla feels so good. Also, stippi, the cursors you made are great!
For all the feature requests it might be nice if you guys could document them somewhere, either in a Haiku Wiki or maybe on the WebPositive/WebKit Trac on http://mmlr.dyndns.org (though I do not know if everyone can just create an account there.) Or even just as emails on the haiku-webkit mailing list. This will also stop your long posts here from getting lost due to the SPAM filters (though we still need a solution for that.)
Sounds reasonable, but how do we go about it? Should we create a ticket on the Trac for every feature request?
Re: WebPositive emerges
Sounds reasonable, but how do we go about it? Should we create a ticket on the Trac for every feature request?
It may be more sensible to wait a bit until Web+ is moved into Haiku's SVN (this is planned, I assume). This also gives Stippi a bit more time to implement the obvious features.
Regards,
Humdinger
Re: WebPositive emerges
I love the rev325 nightly! Finally bookmarks and history. Nice.
Re: WebPositive emerges
Where are rev325 for download?
Re: WebPositive emerges
You'll find nightly builds of Web+ at http://mmlr.dyndns.org. Note, that you often (like with r325 now) also need to run a current Haiku nightly. Stephan often tweaks some system component while working on the browser, like string handling in the app_server recently.
So it's probably best to delete the old Web+ version only after you've successfully tested the new one.
Regards,
Humdinger
Re: WebPositive emerges
Call me a dumb - but WebPositive does not want to start up on my Haiku R1/alpha 1 installation. It claims that the following libraries are missing: libicu-common.so.4.2, libicu-data.so.4.2, libpng.so.1.2, libz.so.1 and liblocale.so. Do I need a recent build of Haiku to try it? Or is it just a matter of finding those libraries somewhere (but where)?
Re: WebPositive emerges
It won't run on Alpha 1 at all, it needs a current nightly of Haiku because it depends on new features that've been added.
Re: WebPositive emerges
If I understood correctly it needs nightly build that it not older than 2 days as back then stippi added new icons which WebPositive needs.
BTW. Excellent work stippi. Before WebPositive I have never seen any browser to start in 2 secs in my secondary Athlon64 based computer.
Re: WebPositive emerges
BTW. Excellent work stippi. Before WebPositive I have never seen any browser to start in 2 secs in my secondary Athlon64 based computer.
About which 2 secs you are talking? Web+ starts instantly! (Celeron M 430 1733Mhz, 1Gb RAM)
Re: WebPositive emerges
BTW. Excellent work stippi. Before WebPositive I have never seen any browser to start in 2 secs in my secondary Athlon64 based computer.
About which 2 secs you are talking? Web+ starts instantly! (Celeron M 430 1733Mhz, 1Gb RAM)
I have to agree. Even on my old(ish) Thinkpad X31 (1.4 GHz) it starts in an instant.
WebPositive broken by libping.so.1.4
Recent changes to libpng have broken WebPositive. I moved an old copy of pibpng.so.1.2 from /boot/system/lib/gcc4 on an older haiku install ( r35571) to the lib directory /boot/apps/WebPositive/lib to make it work again..,. WebPositive 307 and Haiku r35863.
Re: WebPositive emerges
The next version of the package should fix the libpng issue. For now, providing a libpng.so.1.2 from a previous Haiku package is the way to go. Since I am currently implementing some new features in the Haiku app_server for WebPositive, the next release will again require an absolutely current version of Haiku anyway.
Sorry for the inconvenience that is caused, but I guess that's what you get for living on the bleeding edge... :-)
Re: WebPositive emerges
Since I am currently implementing some new features in the Haiku app_server for WebPositive, the next release will again require an absolutely current version of Haiku anyway.
But it is a good thing! since that you're are improving app_server!
Re: WebPositive emerges
How about add to Web+ functional which let you change charset for web pages?
Re: WebPositive emerges
Looking better each time! Some minor bugs, r325 nightly from mmlr, Haiku r35899:
Thanks and keep it it up!
Re: WebPositive emerges
Thanks for all the feedback, guys! I hope to write another blog entry soon. At the moment, I am working a bit on the Haiku app_server to support some features I need in the WebKit port. I've been following the release of the IE9 test platform, and checked out the tests in WebPositive. It shows there is more support needed in BView drawing. Stuff like clipping paths and alpha masks don't even seem to be the most pressing issues, but missing stroke dashing and transformations really seem to spoil the SVG fun. :-) Today, I've been extending the BShape support for elliptical arcs as a start.
On the other hand, some stuff works quite well. For example, if there are multiple offscreen bitmaps involved (I'll post a link to an interesting test page in my next blog), the app_server provides multi-threaded drawing. Unfortunately, WebPositive needs to synchronize with the app_server at some points, so this isn't fully exploited.
Scaled, alpha-blended bitmap drawing in the Haiku app_server seems to be quite fast (thanks to Christian Packman). We wipe the floor with Google Chrome on the Flying Bitmap test, although the downscaling of bitmaps is much better quality in Google Chrome. Microsoft seems to have done some good work with their new graphics engine. It's just very surprising that they do it only now, considering all the resources they have available.