WebPositive gets polishing

Blog post by stippi on Sat, 2010-04-03 19:55

Hah, you wish! These blog titles are getting way ahead of the progress I make with WebPositive. Or let's say the title is truthful in some ways, but on the other hand perhaps suggesting more substantial progress than what was made. I did turn my attention to fixing a lot of little annoyances and bugs that were reported via various channels, the comments section of this series of blog entries being among the important sources of feedback. So keep the good feedback comming, it's very useful for me!

Before I recap what stuff got done, let me quickly say that I didn't tackle most of the bigger TODO list bullet points I keep mentioning. I did start with getting affine transformation support into the BView graphics stack features, but BAffineTransform, which I reimplemented from it's previous incarnation in order to get rid of introducing Anti-Grain Geometry classes into a public header, is not yet used anywhere. Also I didn't upgrade the WebKit SVN revision that the port is based on. That's in part due to some emails on the webkit-dev list which suggested stability may have seen some regressions, at least in intermediate revisions. I shall review the WebKit change log and make an informed decision about upgrading, otherwise stability could be worse when I just use any random version. Also I did not yet investigate into using the WebCore internal allocator in order to perhaps get rid of some memory misalignment related crashing bugs. No clipping paths, no alpha masks, no advanced compositing modes.

But enough with the depressing tidbits of what I didn't get done and let's look at what I did get done since the last blog post. The last official package was SVN revision 333. Now we're at 382. Let's see...

  • Rendering of box elements with round corners tweaked. (May still render with hard corners due to missing clipping path support. Depends on how much of the box element is visible on the page.)
  • Fixed a crash on program start if you started typing into the URL field really fast.
  • Added General page in settings window with option to specify the maximum age of URLs in the browsing history and the download folder location.
  • Many bugfixes with downloads.
  • Downloads node-monitoring and indication when they are gone or have been removed. Stopping of a download when the file is moved to trash.
  • Display of download progress stats (speed and estimated finish time).
  • Some bugfixes with favicons and they should render better. Opening a link in a new tab will no longer remove the favicon from the current page. Research into some remaining problems suggests problems in the Haiku port of sqlite3.
  • Fixed some graphical glitches when scrolling sub-frames.
  • Fixed weird characters being copied to the clipboard which results into GCC errors when for example pasting code into an editor and trying to compile it.
  • Restoring of document fragments from the system clipboard when it has text/html data.
  • Pages which loaded in the background are rendered properly when switching to their tabs.
  • Text input fields have their frame now properly blended with the background of the page.
  • Custom border styles on menu list input fields have been turned off (as in other browsers) in order not to interfere with the BMenuField look.
  • Fixed problems with programmatic opening of new windows/pages. The GSoC Melange web app was unusable before. The Haiku User Guide translation site is working now. Closing programmatically opened pages will no longer close the entire browser.
  • Implemented better programmatic resizing behavior. Pages will never resize out of the screen space.
  • A fix to passing on mouse moved events to WebCore has enabled displaying URLs for hovered links and tool tips.
  • Implemented whole page zooming support. This option is not yet remembered across sessions, but the default of zooming text only seems to work better in practice anyway, at least IMHO.

As you can see, no big items really stick out, but I hope you still agree that the blog title is still somewhat deserved. :-)

Happy Easter: Download WebPositive (SVN revision 444)

Comments

Re: WebPositive gets polishing

Yet more great work, the stability and speed impress me more with each svn revision. Long may the polishing continue...

Re: WebPositive gets polishing

Thanks for the update! Great stuff!

Since you asked for feedback as comments to your blog posts... :)

After you entered a URL and start loading the page, the focus should switch from the locator text field to the webpage. I keep hitting space to scroll a loaded page, only to realize I'm entering those in the locator.

I still don't see the need for the Go button...

There are still some rendering issues when loading two slow pages in tabs in parallel. Try this:
Open two new tabs.
In tab 2 load https://wave.google.com/wave/?pli=1 which takes an obscene time to finish loading.
Quickly switch to tab 1 and load e.g. http://www.boston.com/bigpicture/ which can also take some seconds.
Now wait until Google Wave finishes in the background tab.
Sooner or later, you'll get the Google Wave page appear on your BigPicture tab.

Regards,
Humdinger

Re: WebPositive gets polishing

The focus is now switched automatically to the web view whenever a load is being initiated (r384).

The Go button is needed. Every browser has one, only usually smaller (like for example the green play button in Firefox or sometimes a symbol of a Return key inside the URL field). In WebPositive, it also serves as Reload button.

Will look into the rendering issues you described later. Possibly not today. :-)

Re: WebPositive gets polishing

stippi wrote:

The focus is now switched automatically to the web view whenever a load is being initiated (r384).

Ah, what a relieve! :) Thanks.
Maybe the Go button should move to the left and become an icon-button.

Quote:

Will look into the rendering issues you described later. Possibly not today. :-)

Sure, find those chocolate eggs first. :)

When you're back and all sugared up, you could also have a look at a redrawing issue. The menu bar and the tab bar expose redrawing artifacts when resizing horizontally.

Theggs!
Humdinger

Re: WebPositive gets polishing

stippi wrote:

The Go button is needed. [...] it also serves as Reload button.

the "Go" "Stop" and "Reload" buttons could be combined in a single one:

  • If you type or modify an URL, you can use the button for "Go".
  • If a page is being load, then, the button can be use to "Stop" loading the page.
  • If the page completed, then, the button can be use to "Refresh" the page.

That would save space on the screen, because Go/Stop/Refresh aren't usefull in the same context.

That said, your Webpositive(and webkit) is awesome.
Keep up the good work.

Re: WebPositive gets polishing

I have no idea what the underlying issue is, but files won't download for me in WebPositive. The file name, along with an empty progress bar, comes up, then nothing happens.

Re: WebPositive gets polishing

Hey!
Sick with creme filled chocolate eggs, I crashed on the sofa to mockup what I've been talking about in another of your blog post comments: Using the locator text field to enter search terms and to find bookmarks instead of only accessing the browsing history.

Have a look at this mockup of a search bar combo.

The standard would be the search function:
You type a term into the text box and the text view with tabs below it pops up. CursorUp/Down selects to search the contents of the current page or use search machines like Google or some MyCroft searches. ENTER starts the search. ESC aborts.
The Tab key switches tabs to search bookmarks or (as right now) the browsing history. Coming to think of it, the "Keywords" tab isn't needed at all. It can be combined in the bookmarks search. Matching bookmarks would be shown with their favicon :: title :: URL :: keywords. ENTER loads the bookmarked page. Alt+Enter loads it in a new tab. CTRL+ENTER could open the bookmark itself for editing.

Regards,
Humdinger

Re: WebPositive gets polishing

When going let say to wikipedia (does not seem to do it with all site) and do a bit of back and foward, it eventually crash the browser (perhaps cache issue). It did that before also.

Another thing i find annoying. If only one tab exist, scrolling with the arrow key work fine, if many tab are open i need to first click in the "BView" of the page (making sure to not click on something linking somewhere) and then the keyboard will scroll fine.

Re: WebPositive gets polishing

The second problem is fixed in r391. The focus view is now remembered per tab. Since the web view will automatically receive focus since a few revisions when a page load is initiated, it will usually have focus now. If you click the URL bar in one tab, then switch to another tab and back, the URL bar will have focus again, even though it didn't have focus in the other tab.

Re: WebPositive gets polishing

I decided to download the latest flurry of changes and went to http://mmlr.dyndns.org/chrome/site/nightlies/index.html looking for the latest nightly but, the latest I am seeing is r384. Where is everybody getting r391 from, the link up top? I prefer to download from the nightlies page since I then know exactly which revision I'm downloading (the revision number is also a part of the file name there).

Alan

Re: WebPositive gets polishing

When I upload a new package, I change the link description in the latest blog post. So the link above points to r382, exactly as it says. If r391 is not available from the nightlies, then I suppose some people built it themselves. Tonight I will upload a new version, I have a much faster link at home, where I will return this evening.

Re: WebPositive gets polishing

Strange, I downloaded from the link above and now have an "About" item under the "Window" menu that tells me that the SVN Revision is 385, sweet! Mind you I'm not complaining. It's realy nice to be able to just go Window>About to see what revision your running and I felt it was too insignificant a feature to ask for. I guess not :-)

Alan

Re: WebPositive gets polishing

Maybe I already uploaded the new version yesterday, it was a bit late and I don't remember. In any case, now I uploaded 391 and also updated the link description again.

Re: WebPositive gets polishing

6foot3 wrote:

Strange, I downloaded from the link above and now have an "About" item under the "Window" menu that tells me that the SVN Revision is 385, sweet!

What's strange is that it shows r385, since the About window was added in r387, if I read the changelog correctly.

Re: WebPositive gets polishing

luroh wrote:
6foot3 wrote:

Strange, I downloaded from the link above and now have an "About" item under the "Window" menu that tells me that the SVN Revision is 385, sweet!

What's strange is that it shows r385, since the About window was added in r387, if I read the changelog correctly.

For anyone else puzzled over this, please disregard my comment above, stippi's local copy and the WebPositive repository most likely differed at the time of him creating the "r385" build - they were not yet synced to the same revision number. Thanks to DeadYak for explaining on IRC.

Re: WebPositive gets polishing

Here some interesting test: http://html5test.com/

Re: WebPositive gets polishing

PLEASE, Please, please add an "about" menu to the program to make it easy to identify which version we are running.

Re: WebPositive gets polishing

Ok, the About window can now be accessed from any browser window and since r387 it contains the SVN revision information.

Re: WebPositive gets polishing

stippi wrote:

Ok, the About window can now be accessed from any browser window and since r387 it contains the SVN revision information.

Thank you.

Re: WebPositive gets polishing

If you go to youtube.com, it will show the page for half a second, and then the page will go blank. After that, you cannot visit any website without restarting WebPositive.

Re: WebPositive gets polishing

You didn't have to restart WebPositive, switching between tabs would fix it. But the bug is now fixed in r389, thanks for giving a reproducable test-case. The GMX Mail 2010 beta was also randomly giving problems with this bug.

Re: WebPositive gets polishing

How about add possible to open link in new tab with "left click+alt"?

Re: WebPositive gets polishing

Hi,
i like a 2D Icon in the Nav. Bar, this looks clear and simple. I like the Net+ NavBar ;-)

And the TabView, when i start the Web+ then have no TabView as default ( I like this from Terminal App)

Fullscreen is nice too :-)

stargater

Re: WebPositive gets polishing

With r391, i can crash the browser from going from on tab to the other if youtube is one of them (at least no longer a white blank page). Perhaps this is related to the page focus as if all other page i go focus on page work, on you tube it seem a hit or miss, perhaps something get set 2 time making the whole thing crash.

I don't remember if you ever made a comment about the multitasking side of thing. But if i load a page in the background, i pretty much can't slide in the page i watch, that is the only thing that seem to remote the native feel to me so far.

* as informative data, the wikipedia crash i mentioned earlier is still present in that build.

Re: WebPositive gets polishing

If you can make your own builds, please try r398 to see if the youtube page switching crash is fixed. (I couldn't reproduce it in the first place.)

Yes WebKit is single threaded. Other ports don't use CURL as a backend, and their network backend implementation supports asynchronous resource loading. This may be possible with CURL as well, have not investigated it yet.

Webkit 2

Hey Stippi. Dont know if you've heard the news, but Apple just published WebKit 2, which essentially uses a split process model (just like Google Chrome) to enhance performance.

https://lists.webkit.org/pipermail/webkit-dev/2010-April/012235.html

Re: WebPositive gets polishing

Very good progress so far...

when will WebPositiv be able to print?

I am very happy with the performance already...

Re: WebPositive gets polishing

I did not try r398, but the youtube tab switching bug don't seem to happen in r404. Wikipedia back and forth arrow bug is still there.

Re: WebPositive gets polishing

Yep, ever more polished (yay!) but still not quite as usable as the early builds on earlier Haikus somehow (we'll get there :) ).

On regular gmail, it (immediately after logging in) loses its ajax connection with the server in the main pane and the gtalk pane. It keeps retrying forever but never succeeds. Unfortunately, the standard version just recently (past few days) stopped fully loading on BeZilla, so it'd be really nice timing if it started working on Web+ (regular ajax gmail has always had this problem for me on Web+...hopefully you're able to reproduce it on your machine?)

Thanks stippi!
Kev

Re: WebPositive gets polishing

That's most likely a problem with the curl backend, which almost none of the other webkit ports are using. Unfortunately it's too early to say how easy that would be to fix, since depending on the source of the problem it might ultimately mean replacing the network backend, which would be a non-trivial amount of work, though it might be feasible to use Chromium's without too much effort. We shall see.