Appendix B: Changes and fixes in iCab 3.0 beta 352
Appendix B
Changes and fixes in iCab 3.0 beta 352
Beta 352 fixes a problem with the "check for update" feature
(because of a wrong "version" resource iCab did always report that
a new version is available).
GUI related changes
- When switching off and on the navigation or location toolbars
the smiley was not always initialized correctly, so it could have
shown the wrong status afterwards.
- Removed the "User defined" items from the "default encoding"
menu which are no longer needed in iCab 3.0.
- In the download dialog the "desktop" button was only available
when the download destination was set to the download folder.
- The favorites toolbar does now have an "overflow" button to the
right if there're too many favorites in the toolbar. Clicking the
"overflow" button will open a menu where the "hidden" favorites can
be accessed.
JavaScript related changes
- When HTML elements which own a JavaScript event handler where
not nested correctly, it could happen that the event handlers were
not always called when needed.
- INPUT elements which were created through JavaScript event
handlers didn't get the reference to their corresponding FORM
element.
- Fixed some Unicode issues of InScript.
- Fixed a possible crash: If JavaScript code redirected to a new
page but the download of the new page must have been delayed until
the script code was executed completely, iCab could have deleted a
certain object too early which was still needed by the JavaScript
code.
- If JavaScript code preloaded multiple images into the same
Image object "at the same time" and one of these images was not
available on the server, the "busy" indicator did never stop.
- XMLHttpRequest for JavaScript implemented. "Google Suggest"
will now work.
- If JavaScript code has set and modified the z-index values of
nested absolute positioned elements where some of these didi not
have a z-index before, clicks within these elements could be not
always processed correctly.
- The "Classic" version of iCab could crash if JavaScript code
replaced the page by other code.
- When JavaScript code opened a new URL iCab did not always send
the "referrer" HTTP header.
- iCab could crash if JavaScript code deleted an image
immediately after its download was finished.
- New InScript version included which supports event handler for
the "window" and "document" objects.
Plug-in related changes
- Local PDF files were opened as text files when the PDF plug-in
was not available or disabled instead of being opened by an
external PDF viewer.
- Mac OS X browser plug-ins are now also recognized when they
have the extension ".bundle" instead of ".plug-in".
- The SVG plug-in was not always recognized correctly.
- QuickTime movies which were embedded via OBJECT and which are
located on the local disk were not loaded.
Layout related changes
- When the destination element of a link with "fragment"
identifier was relative positioned, iCab didn't take the offset
into account when scrolling to this element.
- Solved some problems with the label for ISINDEX (only a few
languages were affected)
- Now end tags will be recognized even if the ">" is missing,
in case another tag will come next.
- Invalid shape definitions of image maps will work better
now.
- Processing the alignment of block elements via ALIGN attribute
is now more similar "Gecko" and IE browsers.
- The invalid value "_new" in the TARGET attribute will be now
treated like "_blank".
- Processing a "floating" element with negative "margin-top" and
a height of "0" could lead to an endless loop.
- Some web pages do use a wrong text encoding/charset
information, so the text will be displayed with some "garbage"
characters. This could not be corrected in iCab because it did
always use the given charset information according to the web
standards. Only when the page and the server didn't provide a
charset information, iCab did use its default encoding. Now the
user can always select a new "default encoding" and iCab will
rerender the current page according to this new encoding. This way
it is possible to temporarily overwrite the wrong (or correct)
encoding information of the web page. Reloading the page will again
use the information that is provided by the web page.
- FIELDSET/LEGEND will be handled slightly different to avoid
that some web pages can mess up the layout.
- Processing of incorrect HTML comments was slightly changed.
(the last change had caused y small glitch in the Acid2-Test, this
is now fixed again).
- If links where located inside LABEL elements, mouse clicks were
only passed to the elements which are addressed by the LABEL
elements, but not passed to the links.
"Classic" related changes
- Workaround for some bugs in Apple's Unicode Engine of Mac OS
9.1 or older.
- Important bug fix for the "Classic" version of iCab, which
could crash if images of web pages could not be loaded.
Other changes
- Workaround for misconfigured web servers implemented, which
send wrong "Content-Type" information for plug-in data.
- Fixed a possible crash: if a new cookie was not fully processed
when the download which tries to set this cookie was aborted, iCab
could crash.
- If the web server explicitly used an empty charset iCab could
not display the web page.
- Invalid charset encodings in the "Content-Type" information
will be now ignored.
- Fixed a problem when synchronizing threads, which could cause
some crashes.
- When printing the "title" in the head was always replaced by
the URL.
- Mac OS X 10.4 has some strange bugs when doing Drag&Drop in
Unicode input fields: it copies the clipboard instead of the
dragged text. So now iCab is doing Drag&Drop in HTML Form
elements itself.
- When autofilling forms iCab will try to find out if the page
URL contains a session ID and will then ignore this ID when
searching for saved form data. Otherwise a session ID could disable
the autofill feature because the URL is always different and so the
saved form data can never be identified correctly.
New features in iCab 3.0 Beta 350
- New Command: Cmd-Shift-F sets the focus into the search field
of the toolbar (if available).
- New Command: Cmd-Alt-Shift-F searches the current text
selection in the default search engine. The result will be
displayed in a new window/tab.
- New options for selecting text in web pages:
- Double-click selects a single word
- Click and holding down the mouse button to select text at word
boundaries.
- Three-foldclick selects a whole line
- Double-click and holding down the mouse button to select text
at line boundaries
- Four-foldclick selects a whole section or paragraph
- Three-foldclick and holding down the mouse button to select
text at paragraph boundaries
- Five-foldclick selects the whole document - If popup windows
were blocked (see the JavaScript filter options), an icon will
appear in the status bar. Clicking this icon will open a popup menu
where these blocked windows can be opened manually and you can
allow popup windows for this site/domain for the future (this will
automatically create a filter in the filter manager)
- New menu item "Files of the website" in the "Tools" menu. This
menu item will open a window where all the files are listed, which
are used on the current web page. Control-Click into the header
buttons to configure which information you want to see and hide the
rest. Drag the header buttons to reorder the columns.
Double-clicking certain files will open them in the browser window.
Control-click the files to open the contextual menu, where you can
choose where you want to open the files (current window, new
windows, new Tab, external application)
- In the "Classic" version of iCab, there's a new option in the
preferences dialog to disable the Unicode input fields (MLTE -
Multilanguage Text Edit) of the Mac OS, so iCab will use the "old"
Text Edit routines instead. This way you're loosing the ability to
enter Unicode text or characters which are not part of the language
of your system. But this helps in older Mac OS releases where the
Unicode edit fields (MLTE) were far to buggy to be usable (users
reported that on some systems only parts of the input were
evaluated, which results in incomplete form data. Also "out of
memory" messages were probably caused by the MLTE edit fields).
This option is only available in "Classic" Mac OS (Mac OS X has no
such problems) and should be only used if you have problems with
HTML forms.
- In the View menu you can change the Browser identity easily.
This setting will change the network identity setting, the
JavaScript identity and the MSIE/NN4 DOM settings, so they match
the settings of the selected browser.
- It is possible to pass new certificates to iCab. Certificate
files can be copied into the folder "<home
directory>/Library/Application Support/iCab/ Certificates/"
under Mac OS X and "System/Application Support/iCab/ Certificates/"
under Mac OS 8/9. A more comfortable preferences panel for this
will follow in on one of the next releases.
- There's new preferences panel "Programs" in the preferences
dialog of the Mac OS X version of iCab. Here you can configure all
the default Internet applications you're using. Please not that
these settings are system settings and not iCab settings. It's the
system that needs these settings, not iCab. Unfortunately Apple has
removed these settings in the past from the system preferences, so
it was more and more difficult to change these settings
easily.
- If a website contains a link to a RSS feed, a small RSS icon
will appear in the status bar at the right side. Clicking on the
icon will open a popup menu where all the RSS feeds are listed.
Selecting a feed will open it in the default RSS reader that is
configured in your system (use the new "Programs" preferences panel
to do so)
General Information about iCab 3.0
This beta version has still some limitations:
Printing isn't fully working in the Classic version of
iCab
(because of bugs in printing Unicode text in "Classic" Mac OS) -
It is not yet optimized for speed.
Forms Manager
In the tools menu you'll now find the "forms manager", which
allows to automatically fill out forms.
There are three levels to help filling out forms. For each level
there's one Tab in the forms manager window:
- first tab: "Input fields"
While typing letters in form fields, iCab can autocomplete your
input based on the words in the list of these settings. You can
add/delete/edit items to/from this list here. But you can also add
new items through the contextual menu of form fields (control-click
in the field to open the contextual menu): selecting "Remember test
for field-based autocompletion" from the contextual menu will add
the current content of the form field into the list.
- second tab: "All Forms"
In this level, all forms of all websites will be addressed.
Whenever you select the menu item "Fill out forms" from the "View"
menu, iCab will try to fill out each form field based on the data
from the list in this settings panel. iCab will look for the
ID/NAME attribute (HTML code) of the input field, if it matches one
of the names of the "name of field" column of the list, iCab will
insert the corresponding "value" from the list into the form field.
The "name of field" column can contain multiple names, separated by
comma. You can add new items directly here, but also through the
contextual menu of the input field by selecting "Remember Input
field and Text for general form completion" from the contextual
menu. Works well for general fields where you have to enter name,
street and city, because most web authors tend to label these
fields with "name", "street" and "city". Other less common fields
may not work here.
An example, how this can look like:
name of field Value
--------------------------
vorname, firstname Alexander
nachname, lastname Clauss
strasse, street Retuerallee 39
ort, city, town Darmstadt
plz, zip, zipcode 64297
- third tab "Special websites"
Here iCab will handle complete forms (including checkboxes, popup
buttons etc.) of certain websites. Using the menu item "Save forms"
from the "View" menu iCab saves all forms of the current page.
Using the menu item "Fill out forms" fill out the form of the
current page, if they were saved before. In the list of these
settings, you'll find the URL of each site, iCab has saved the form
data.
The settings of tab 3 has higher priority than the settings of
tab 2.
Search field in Toolbar
It is now possible to delete all saved search keywords.
Importing Bookmarks
iCab is able to import the bookmarks from Safari, Opera,
Mozilla, Netscape, Phoenix, FireFox, OmniWeb, Internet Explorer and
Netscape Navigator. iCab automatically asks to import bookmarks
when launched the very first time (that means there're no
preferences found). But you can manually import bookmarks at any
time as well, by selecting "import" from the "hotlist" menu.
CSS 2.0/2.1 Support
iCab 3.0 supports CSS 2.0/2.1 probably more complete than most
other browsers. In the archive you'll find some HTML/CSS test files
(text in German) which show most of the CSS 2.1 features.
Another good test for CSS is:
http://www.csszengarden.com/
Unicode
iCab 3.0 is based on Apples Unicode Engine ATSUI. ATSUI is
available since Mac OS 8.5, but it is suggested to use Mac
OS 9 or newer, because ATSUI lacks some important features
under Mac OS 8.5/8.6. Mac OS X will give the best results.
So iCab 3.0 currently doesn't run on 68K Macs (Mac OS 8.5 is not
available for 68K).
Error report
The error report lists now also errors in StyleSheets and XHTML
code.
TITLE Attribute
Under Mac OS X the TITLE attribute will be shown as Tooltip.
Under Classic the TITLE attribute will be shown in the status bar,
like before (classic doesn't support tooltips).
ACCESSKEY Attribute
iCab 3.0 will now use [Control][Letter] for the ACCESSKEY
attribute (which is the same in Safari, FireFox and Opera).
iCab uses the following StyleSheet for ACCESSKEY:
*[accesskey]:after {
content: "[" attr(accesskey) "]";
font-size: 80%;
vertical-align: super;}
In the preferences (Web Content/Display) and in the filter
manager this stylesheet can be switched off, in case there's a
conflict with some websites which are using a different approach to
visualize the accesskey attribute.
<back to iCab 3.0 Beta:
The Last New Browser for the Classic Mac OS?>