April 2006

Fri, Apr 28, 2006

Lucky Plant in Bloom

When I got my "Lucky Plant" - a dry trunk - some years ago, I was told
that this was some kind of Yucca
shrub. I gave it some water (well, actually, lots of water), put
it in one of my east windows and after some weeks the first leaves
appeared.

I nearly forgot about this strange little plant, until I gave it some
fertilizer a few weeks ago... All of a sudden there were flower buds!
Now it's in full bloom (every evening some of the little white flowers
open and are wilted by next morning already). And what a sweet, pleasant
scent all over the room!

The fragrance finally led me to its true name (the vendor got the class
and order right, but the genus wrong). It's a Dracaena
shrub - "dracaena fragrans" to be exact.

Sat, Apr 22, 2006

iCab 3.0.2 Beta 408 Drops a Shadow (or Two)

The Mac OS X version of iCab beta 408 supports the CSS property
"text-shadow", making it the second browser after Safari with this
feature, and probably the first browser to get it right completely:

Safari 2.0.3 does not support multiple shadows and misalignes the shadow
by one pixel. You can check if and how your browser supports text
shadows here.

"text-shadow" was defined in CSS2,
has been removed in CSS
2.1, but might become part of CSS3
again.

And again, Alexander included lots of bug fixes in this new beta version:

In SELECT elements the onclick handler (JavaScript) will now be called
after the mousedown handler instead of before the mousedown handler.

In ther "Classic" version of iCab the download of whole web sites onto
an external disk didn't work. iCab saved the files in the iCab folder
instead. This is fixed now.

When directly opening an image in the browser window iCab sometimes
scaled down larger images to fit into the window even when iCab was
configured not to do this.

In case a web site redefined the BODY tag as "inline-block" the
scrollbars were not always shown when needed.

Changing the "z-Index" value via CSS while "hovering" over certain
elements did not change the "stack context". Because of this elements
which should be drawn on top of some other elements could be still
covered by them.

iCab did ignore the "width" of the CSS property "outline" when defined
for inline elements.

Fixed a small glitch for positioned elements where the "top" property
is not defined (or "auto").

On elements that had been created by ":before" or ":after" (CSS), CSS
rules might have been applied twice if these elements were affected by
":hover" effects.

Now, the internal RSS-Reader of iCab also supports ATOM feeds.

The backup file of the hotlist was also "updated" when the old hotlist
file was missing or damaged, and so the backup was also empty (a
"copy" of the missing hotlist file). This is now fixed.

The user defined Stylesheet could not be switched on/off when there
was no open Browser window.

Fixed a small problem when parsing the HTML code that is created by
JavaScript code via "document.write". Normally the code should be
parsed immediately so that the JavaScript code is able to see the
newly created code in the same script call. Because of a small bug, it
could happen that the newly created code was parsed after the script
call was finished.

Wed, Apr 12, 2006

iCab 3.0.2 Beta 406

The second iCab beta version within two days fixes some bugs on Classic
Mac OS and some others in general:

Under the "classic" MacOS iCab could freeze when loading RSS feeds

Under "classic" MacOS iCab could crash when the non-Unicode text edit
fields were configured for HTML forms and when a web page inserts more
than 32KB of text in these fields. The "classic" MacOS can not handle
more than 32K of text, but will accept more and then crash. Now iCab
will shorten the text to 32KB if needed.

Invalid usage of colspan="0" in tables could crash iCab.

Small bugfix for "first-letter" pseudo element.

When dragging text within a form field you can now hold down the
option key to copy the text instead of moving it.

In the Cache browser a random character was appended to some of the
URls in the list.

When loading FavIcons iCab will now ignore Authentification requestes.

Mon, Apr 10, 2006

iCab 3.0.2 Beta 405

iCab beta 405 is mostly a bugfix release, so it looks like it's time for
a new public preview soon :-). This version includes the new InScript
release 188 which adds more JavaScript 1.6 compatibility. Here's the
official release history:

Fixed a small bug with "floats" and negative margins.

A workaround implemented for web sites which use a buggy "server-push"
implementation for web cams (invalid definition or usage of the
"boundary" markers in the "multipart" data stream of the server).

Until now the "onmouseup" JavaScript event was delivered directly
after the "onclick" event. Now the "onmouseup" event comes first.

Bugfix for the "favorites toolbar" where the "overflow button"
overlaps the last item in the toolbar if a certain number of entries
in the favorites were reached.

Small bugfix in calculating "line-height".

Added some workarounds for the new code of the nytimes page. The new
code of the NYT page introduces tons of new bugs and errors in the
HTML and CSS code.

Fixed a bug when "normalizing" text nodes in the HTML tree via
JavaScript.

The special case where COLSPAN or ROWSPAN is set to "0" is now handled
according to the web standards instead of following the wrong
interpretation of IE or Safari.

Fixed a problem with the MARQUEE tag, which was shown with a too large
width in certain circumstances.

Fixed a small glitch when an element was positioned via "position:
fixed".

Added a special workaround for web pages where almost all required end
tags are missing and therefore the "HTML tree" was transformed to a
"list" (which slows down the processing very much).

When CAPTION elements were hidden, the COL and COLGROUP elements which
were defined directly after the hidden CAPTION elements were ignored.
This is fixed now.

If JavaScript code closed a window and immediately opened it again
within the same JavaScript call, the window was not opened.

In "Window" menu the window titles were not shown with all the Unicode
characters.

In the Download Manager when download limit of 2GB or more was
defined, iCab didn't download anything.

InScript Release 188

The latest InScript release adds the complete set of Array
and String generics as introduced by Mozilla in JavaScript 1.6. I've
published a list of these generic functions last
year.

The support for XMLHttpRequest - and thus the ability to create new
documents - being a few months old already, I finally found some time to
expose this functionality via the standard DOM function document.implementation.createDocument(),
although support for doctypes is still missing. However, you can create
HTML documents with createHTMLDocument(),
which isn't part of the final standard (it was dropped from an earlier
draft), but since some other browsers support it, too, it can be
considered a de-facto standard.

One strange compatibility fix is included: The semicolon after do..while
can be omitted completely now. I did not know this was allowed at all,
since there is no line break after the statement and so automatic
semicolon insertion (as defined by ECMAScript) will not work. Now
there's a special treatment for scripts like this one:

Fri, Apr 07, 2006

Opera and Acid2 - and iCab?

More and more browsers pass the Acid2
test, this is good news! Now Opera
9 has passed the test, too, well before Firefox or Internet
Explorer. Congratulations!

Less good news is this assertion
that Konqueror and iCab fail to pass the test because they do not hide
the document's scrollbars. Hiding the scrollbars is not strictly
neccessary to pass the test, and therefore the inventors of the test
awarded the second and third place of the "test race" to iCab and
Konqueror, respectively (with Safari as the winner and Prince and Opera
following on places four and five). Unfortunately, someone took this
claim for true and changed the Acid2 history in Wikipedia...
So it's time for a clarification why hiding the scrollbars is not
necessary to pass the Acid2 test, and here it is:

The assertion is based on the following line from the test's CSS source
code:

The comment explicitely references section 11.1.1 from the CSS
2.1 draft, let's have a look there:

hidden

This value indicates that the content is clipped and that no
scrolling user interface should be provided to view the content
outside the clipping region.

The important word here is "should", because the same document defines
exactly what this word means (section 3.1):

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 (see [RFC2119]).
However, for readability, these words do not appear in all uppercase
letters in this specification.

This word, or the adjective "RECOMMENDED", mean that there may
exist valid reasons in particular circumstances to ignore a particular
item, but the full implications must be understood and carefully
weighed before choosing a different course.

iCab's decision to display scrollbars is carefully weighed and has a
simple reason - usability.
There are pages out there where "webdesigners" assume a certain screen
size, and if iCab would hide the scrollbars as "desired", these pages
would be unusable.

You might argue that the Acid2 test is about predictability of the
layout, and you're right. But whether there are scrollbars on the
viewport or not does not affect the layout of the Acid2 test at all, so
the scrollbars are simply irrelevant for a predictable layout. And
that's most probably the reason why WaSP
declared iCab (and Konqueror) Acid2 compliant even with scrollbars on
the viewport (i.e. on the document). For good reason: Acid2 is a test
for a predictable layout, but not against usability.

Conclusion: Opera passes Acid2, as do Konqueror and iCab.

In the meantime, there have been different test cases that detach the
scrollbar from the viewport via CSS, i.e. the document's scrollbar is
not necessarily displayed on the border of the window (outside of the
document's content). In these cases the layout might depend on the
visibility of the scrollbars, so from iCab 3.0 Beta 400 on there is a
switch to detach the scrollbars and hide them if the CSS rules say so.
But this option is switched off by default - again, for usability
reasons. And again, this is not relevant for Acid2, since it keeps the
scrollbars attached to the window border.