Miscellaneous Ramblings
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:
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?>
Join us on Facebook, follow us on Twitter or Google+, or subscribe to our RSS news feed
Charles Moore has been a freelance journalist since 1987 and began writing for Mac websites in May 1998. His The Road Warrior column was a regular feature on MacOpinion, he is news editor at Applelinks.com and a columnist at MacPrices.net. If you find his articles helpful, please consider making a donation to his tip jar.
Links for the Day
- Mac of the Day: eMac, (2002.04.29. 50 lb. 17" white G4 eMac replaced the iMac for the education market.)
- Support Low End Mac