« Hardware, Devices & Gadgets | Main | In Private »

Tue, May 06, 2008

iCab 4.1.1

Last weekend Alexander released a new public version of iCab. There are quite a few bug fixes, changes and enhancements since the last public version (4.0.1).

I have been asked why these release notes don't appear on icab.de, where they belong. Honestly, I don't know. It's Alexander's decision. But as long as the release history isn't available anywhere else, I'll post it here so Google (and other web crawlers) can search it.

So, here's a copy of Alexander's readme file (which you'll find in the iCab download archives as well):

New Features:
  • New feature implemented: "Tab Overview". The "Tab Overview" can be activated from within the "Window" menu or by clicking the new icon at the right side of the Tabs Toolbar in the browser window. The "Tab Overview" requires at least MacOSX 10.4.x. The "Tab Overview" is something like Exposé for Tabs. When activated, all Tabs will be shown as small thumbnail images ontop of a dark transparent fullscreen window (like Dashboard). You can easily identify the Tabs, activate another Tab and also delete Tabs. This can be done either using the mouse but also using the keyboard: Tab/Shift-Tab and the arrow keys can be used to select a new Tab, the "Return", "Enter" or "Space" keys can be used to activate the selected Tab, the "Backspace" or "Delete" keys will close the selected tab and the "ESC" key will close the "Tab Overview" itself.
  • iCab recognizes geo-tagged web pages. The status bar now has an additional icon which indicates if the currently displayed web page is geo-tagged via META tag. Clicking the icon will then open a popup menu where the location is displayed in plain text (if provided by the web page) and when selecting the menu item in the popup menu the location is shown in google maps (At the moment the popup menu of this GeoTag icon will only have one menu item. Later it may have additional menu items for geo-tagged images or other geo-tagged media that is found in the web page).
  • In the Filter Manager there's a new text field in the "Page Layout" panel where CSS code can be entered that will be applied to the web pages which are addressed by the filter. The new advertising filter which you can find in the iCab archive uses this new field to filter out the ad banners of the mactechnews.com web site. So you should replace the old advertising filter by the new one if you're using this filter.
  • New setting added in the "Special websites" section of the "Forms Manager". It's now possible to change the form checks to be less strict. This way filling out forms can be made as comfortable as in other browsers (but also as insecure as in other browsers).
  • Using MacOSX 10.5.x the contexual menu of the browser will now also include meu items to search the text selection in the "Dictionary" and in "Spotlight".
  • In the URL completion preferences it is now possible to configure which URL schemes iCab should use for the URL completion feature and which schemes it should ignore.
  • The contextual menu in the browser window can now be also opened by holding down the left mouse button for a while, if this feature is enabled in the Preferences dialog in the "General > Contextual Menu" panel. The standard way to open the contextual menu (Right-Click or Control-Click) does always work.
  • It's now possible to enter Cmd-Return, Cmd-Shift-Return, Cmd-Alt-Return and Cmd-Alt-Shift-Return in the URL field and Search field of the browser toolbar to open the URL or search result in a new window or Tab in the background or foreground.
  • Syntax hilighting for the source code window implemented
  • Colors and bold face text in the error report window help to find the important keywords.
  • The HTML attributes "cite" and "longdesc" are now also listed in the "Link Manager" window.
  • Double-clicking in the background of the Tabs toolbar will now also create a new Tab.
  • When searching in the History window iCab will now also search in closed folders, opening them automatically when needed.
  • When loading files from a local disk ("file:" URLs) iCab will now show a "proxy" icon in the titlebar of the window. Control-Clicking or Cmd-Clicking the proxy icon will display a popup menu where you can access all the parent folders of the local file, so it's very easy to locate the file in the Finder..
  • Added a new option in the Tabs settings to swap the keyboard shortcuts for new windows and new Tabs. Before this shortcut swap was bound to the option "Open Tabs instead of Windows". Now these are individual settings. This way you can get the same shortcuts as in Safari (which doesn't have the option "Open Tabs instead of Windows").
  • In the Network settings you can now configure if iCab should process FTP links itself or if the external FTP application that is configured in the system as default FTP application is called instead to precess the FTP link.
  • When loading Session files iCab will now (optionally) ask if it is OK to overwrite the current session with the one from the file or if the current session should be saved before the file will be loaded. This confirmation can be anabled/disabled in the "General" preferences in the "Other" tab.
  • Javascript code is now able to use databases (via "window.openDatabase()")
  • When saving a web page, iCab will now also offer to save it as PDF file. So it is no longer necessary to use the "print" command to save it as PDF file. Using the "save" command is much more intuitive.
  • The "YouTube Video Download" filter from the folder "Filter Manager Examples" is improved now. It will now offer to download the video as Flash movie or as MP4 movie (though the MP4 format is not yet avaiable for all videos). So when you're already using the Youtube download filter you should import the new filter again to replace the old one.
  • The new keyboard shortcut Control-Alt-T can be used to switch on the Tabs Toolbar when it is hidden (for example because the window only contains one single document and iCab is configured to hide the Tabs toolbar in this case). The shortcut can be useful if the user wants to drag the document of this window as Tab into another window to combine the two windows into a single one.
  • iCab now supports the ".url" files of Internet Explorer (Windows or Mac version). These files are the windows counterpart of the "webloc" files on the Mac.
  • French translation added (Thanks to Pierre Rudloff)
  • Help is now available in English as well.
  • When explicitly opening a link in a window by the user the "Referrer" information gets no longer lost.
  • The "Save" button in the PDF view (a PDF document is opened without any PDF plugin) does work now in iCab as well.
  • When changing the titles of bookmarks in the Favorites folder of the Bookmarks window, iCab didn't update the Favorites toolbars immediately.
  • JavaScript bookmarkslets can now open windows even when the JavaScript setting "open windows without user interaction" is unchecked.
  • Bugfix for the shareware reminder dialog box which could cause a crash in very rare circumstances under MacOSX 10.4.x.
  • The error report feature didn't always select the right location in the sourcecode when showing the error location. This happened only when the source code contained some Unicode characters from a "higher" Unicode code page.
  • If the Force-Quit-Command was disabled in the Kiosk preferences, which also disables Exposé and Dashboard, Exposé and Dashboard were not enabled again when the Kioks mode was left.
  • Small adaption to the new WebKit release (Safari 3.1) where the click with the third mouse button (middle button) didn't work anymore. Now iCab hooks itself into internal WebKit structures to get such clicks again.
  • When the user edits the URL of a finished download to repeat the same download with a different URL, some internal Download settings did not refect the new URL immediately.
  • If the option "Stack windows" is enabled in the Window preferences, iCab will no longer remeber the sizes of all the open browser windows. This is only done when this setting is switched off.
  • When quitting iCab while downloads are still running, iCab now asks the user if iCab should really abort the downloads and quit.
  • Asking for the number of windows in AppleScript did also take the closed and invisible windows into account. This doesn't happen anymore.
  • The "Search" window will now always on the active "Screen" when "Spaces" of Leopard is active.
  • Bugfix for the Error report. iCab could crash if an extrenal CSS file was completely empty.
  • When imported bookmarks files did use an invalid text encoding, bookmark titles with non-ASCII characters could be imported with an empty title instead. Now iCab will try out different encodings and if none will result in valid text, iCab will just remove the invalid characters and keep the rest.
Posted by Thomas Much at 19:50
Categories: Browsers, iCab & InScript

Sat, Mar 08, 2008

iCab 4.0.1

Three weeks ago a new public version of the now WebKit-based browser iCab has been released. Here's an excerpt from the version history included with the iCab archive:

New Features:
  • Added localized resources for Danish, Norwegian, Russian, Chinese, Japanese, Spanish (thanks to Mogens Thyregod, Leif Halvard Silli, Michael Krekin, Hans Yu, i_zac, Manuel Montero Barro)
  • When saving a web page it's now also possible to save it as plain text.
  • Under MacOSX 10.5 the contextual menu will now include special menu items for PDF files when PDF files are displayed.
  • In MacOSX 10.4.11 and later the TEXTAREA fields in web pages can now be resized
  • In MacOSX 10.4.11 and later iCab will now enable the Web-Inspector of the MacOS. The Web-Inspector can be opened by choosing the menu item "Element Information" from within the contextual menu.
  • Added support for the JavaScript call "print()"
  • It's now possible to use small icons in the browser toolbar.
  • New option in the "Page Layout" preferences to enable support for language-specific quote characters
  • It' now possible to drag URLs into the Tabs toolbar to open it as Tab.
  • iCab can be configured in the bookmarks preferences to add a menu item "Open as tabs" in each submenu of the bookmarks menu to open all the menu items of such a submenu menu as Tabs.
  • In the search engine settings you can now also set the text encoding that should be used for the search engine.
  • Help files in German are available (English ones will follow)
  • The size of the searchbox in the browser toolbar was not processed correctly
  • iCab now rechecks if all the plugins that were available before are still available when it is launched.
  • Fixed a bug in AppleScript support which prevented that URL-Manager can get the history of the active Tab
  • Fixed a bug which could prevent that certain old WebArchives from iCab 2/3 could be loaded.
  • Fixed several bugs in Kiosk mode
  • Page Overview and the Links overview didn't work for XHTML documents.
  • Fixed a bug so that JavaScript Bookmarklets will be accepted even when they contain characters that are not allowed in URLs.
  • Fixed some bugs in Download Manager which affected the download of whole web sites.
  • When printing iCab didn't repect the landscape mode setting.
  • Fixed a problem when importing Omniweb Bookmarks.
  • Fixed several bugs in the error report which reported a few false error messages.
  • Added a workaround for a bug in MacOSX which can cause that all Cookies are deleted. This MacOS bug also affects other browsers like Safari. In iCab this is now fixed when the private Cookies storage of iCab is used (which is the default).
  • Fixes some minor issues in MacOSX 10.3.9 where some MacOSX 10.4.x/10.5. features that are used by iCab are not available.
Posted by Thomas Much at 21:27
Categories: Browsers, iCab & InScript

Fri, Jan 04, 2008

iCab 4.0.0 and iCab 3.0.5 Public Releases

Happy New Year 2008 to you all!

In case you didn't notice: Alexander released two new public iCab versions on January 1.

iCab 4.0.0 is the very first public version of the now Cocoa and Webkit based complete rewrite of the cute little internet taxi. It requires Mac OS X 10.3.9 or later and is available as an Universal Binary version.

iCab 3.0.5 is a maintainance release of the older code base that still uses Carbon and its own rendering engine. For Max OS X it's available both as Universal Binary and PPC. For Classic Mac OS you can download a PPC release.

Posted by Thomas Much at 18:47
Categories: Browsers, iCab & InScript

Sun, Dec 09, 2007

iCab 4.0.0 Beta 14 (and 3.0.3 Beta 465)

On Tuesday, Alexander released two new iCab beta versions (available for registered users only). The first one is iCab 3.0.3 Beta 465 and it fixes a small security problem (security checks were too strict; https pages are now allowed to access http pages from the same domain).

The second one is the very first semi-public version of iCab 4.0 (Beta 14). Yes, believe your eyes, a complete rewrite of iCab is in the works! iCab 4.0 is a Cocoa application, and it uses Apple's/Safari's WebKit instead of iCab 3's own rendering engine and JavaScript implementation (i.e. InScript will be history soon).

iCab 4 requires Mac OS X 10.3.9 or later, although Mac OS X 10.4 or 10.5 is recommended. Here is what Alexander has to say about the new version:

iCab 4 is completely rewritten using the Cocoa API of MacOSX (iCab 3 is using the older Carbon API). The whole user interface of iCab can now fully use all the MacOSX features which are only available in Cocoa. So iCab 4 should look much better in MacOSX than before. Dialog boxes and windows are cleaned up, so some old settings which don't make much sense anymore are removed, some settings are modified and some new features are added.

Because of all the changes, iCab 4 doesn't read the old preferences from iCab 3 anymore and also the old filter manager configurations are no longer supported (the new filter manager has changed too much). But iCab will read the old Hotlist file, read and write WebArchives, read the old session files, so all the important data should be automatically imported from the old iCab 3.

More information about what has changed and what has been enhanced can be found in the archive's readme file.

Posted by Thomas Much at 18:29
Categories: iCab & InScript

Mon, Oct 22, 2007

iCab 3.0.3 Beta 461

More than two weeks ago Alexander released a small bugfix update for registered iCab users:

  • Workaround for JavaScript code which expects a reentrant script engine.
  • Fixed a bug when converting certain cyrilic upper case letters into lower case letters (and vice verca)
  • Bugfix for certain styles when set for BODY and HTML elements.
  • Workaround for the "more" menu of google.com, which expects that browsers ignore all web standards when resolving relative URLs like "#".

Now, I'm off to make myself some chocolate and wait for the next major iCab release.

Posted by Thomas Much at 20:46
Categories: iCab & InScript

Thu, Aug 23, 2007

iCab 3.0.3 Beta 460

Yesterday another iCab beta version was released in which Alexander fixed a JavaScript security issue:

  • Fixed a security problem: For JavaScript event handlers the "Same-Origin-Policy" did not always work correctly, so "foreign" web pages could be able to intercept event handlers from other web pages.
  • In certain very rare circumstances it could happen that iCab could no longer load any images until it was restarted. This happend if images display ways disabled and a web page defined an "onerror" handler (JavaScript) for an ordinary <img> tag which would just assign another image URL to the tag when the loading of the image failed.
Posted by Thomas Much at 11:16
Categories: iCab & InScript

Wed, Aug 15, 2007

iCab 3.0.3 Beta 459

Again, a small iCab update with some bug fixes was released today:

  • When printing certain HTML structures iCab could crash on Intel Macs because of a "division by zero" error.
  • Setting the FavIcon could crash under certain circumstances.

All these small fixes look like some finishing work. Maybe a new public version is being readied for release?

Posted by Thomas Much at 21:09
Categories: iCab & InScript

Wed, Aug 08, 2007

iCab 3.0.3 Beta 458

Today Alexander released a small iCab update (available for registered users only):

  • The number of loops in GIF animations was not correctly handled.
  • In the Filter manager the radio buttons in the network panel didn't work in a few language versions of iCab.
  • Invalid GIF animations could cause crashes.
Posted by Thomas Much at 17:50
Categories: iCab & InScript

Tue, Jul 24, 2007

iCab 3.0.3 Beta 457

Yesterday Alexander released yet another iCab beta version:

  • In HTML Image maps the attribute shape="default" was not processed correctly. Only if the "COORDS" attribut was present this was handled correctly, though the "COORDS" attibute is not used in this case.
  • Under MacOS 8/9 (native, not in the "classic" environent of MacOSX) oversized popup menus in web pages with many thousands of menu items could crash iCab because of an internal size limit of 32K for menu structures in the MacOS. That means native MacOS 8/9 can not handle menus which needs more than 32 KB of memory internally. iCab did try to clalculate the approx. memory usage of a menu, but this didn't always work, probably because of the usage of Unicode which may require twice as much memory for the menus as well. iCab will therefore will limit the number menu items under MacOS 8/9 even more so such large menus won't crash anymore.
  • Under MacOSX the OpenTransport call OTIdle() won't be used anymore because this call is probably responsible for some of the crashes.
Posted by Thomas Much at 14:25
Categories: iCab & InScript

Tue, Jul 17, 2007

iCab 3.0.3 Beta 455

Today, Alexander released iCab beta 455. The latest betas are available for registered users only, but let's hope that there will be a new public version before the current public version becomes one year old at the end of August...

The new beta version contains bug fixes as usual - and lots of compatibility fixes for other browsers' quirks:

  • Unknown HTML attributes in the EMBED tag are no longer reported as error, because these attributes are treated as parameters for the plugin.
  • If JS code tries to split text nodes at a location that lies beyond the text boundaries iCab doesn't always return an index error anymore. Some web sites don't work anymore if iCab would return an error in this error condition.
  • iCab now supports the "onscroll" and "onmousewheel" events (JavaScript).
  • IFRAMEs do now always get an HTML document assigned to, even if the web site defines the IFRAME without an document (the "SRC" attribute is not defined). Some web pages don't work anymore if an empty IFRAME element doesn't have a complete HTML document, because they try to access the non-existing document before(!) they define the document for the IFRAME (and other browsers do allow this).
  • iCab internal threads are no longer connected so closely, hopefully this will fix some of the crashes.
  • In "Quirks" mode iCab ignores that the CLASS attribute in HTML has to be treated as case-sensitive, because some web pages also don't case about this and won't look right if iCab would follow the web standards here.
  • In general a <input type="image"> without NAME attribut can not be a "successful control", which means that the value of this button is never included in the form data when the form is submitted ("successful controls" must have a NAME attribut). But there're web pages which nevertheless require that for this special case (<input type="image">) the value is included using the names "x" and "y" (which can be a problem if these parameters would be used in other elements of the form. But other browsers are doing this as well, so iCab mimics the (wrong) behaviour of the other browsers as well.
  • "list-item" elements which are declared as "float" using CSS are no longer treated as "list-item" element.
  • Added a workaround for web pages, which try to open an URL which conatins characters that are not allowed in URLs.
  • Atom feeds will be now also listed in the RSS Icon popup of the staus bar.
  • If iCab was launched the very first time on the Mac and no other web browser was launched before on this Mac, iCab would hang. iCab looked for bookmark files of other browsers to offer that these bookmarks can be imported in iCab. But this didn't work correctly, if no other bookmarks were found.
  • For "hover" effects using CSS rules iCab has always tested if the "hover" effect does require to layout the document again (if the size of an element changes) or if it is enough to redraw a certain element (for example if only the color changes). But sometimes iCab did even layout the page again, even if this was not really necessary.
  • Added a workaround for a bug in MRJ (Java for "Classic" MacOS). If a Java applet opens a web page in a certain target frame or window, iCab did use a certain "unicode-aware" MRJ function to ask for the target. Unfortunately MRJ only returns garbage when it should return Unicode text. Now iCab uses the non-unicode functions to ask for the target.
  • Added a workaround for badly written JavaScript menu libraries, which assume that the Browser would never use the actual visibility state of HTML elements if the state is changed within an event handler.
    The problem: Hovering over an area "A" will open another area "M" the menu. Then the user would normally move the mouse over the menu "M" so select a certain menu item. To programm this, one would write code for onmouseover and onmouseout event handlers. When moving the mouse over "A" "M" must be made visible. When leaving "A" without moving the mouse over "M" the menu "M" must be closed again. And also while the mouse is over "M" the menu "M" must be kept open.
    There's a menu library in the web, which only defines the following rules.
    • mouse over "A": make "M" visible
    • mouse leaves "A": hide "M"
    • mouse over "M": make "M" visible
    • mouse leaves "M": hide "M"
    But must not be working (even it does in other Browsers) because of the follwoing situation: The user moves the mouse from "A" to "M" (which is what the user will do to use the menu). Here one my thing that two events will occur: "A is left" and "the mouse is over M". But this is not always true. It depends on the order the events will be generated and delivered.
    In case the event "A is left" is generated first, this will close the menu "M" and then the mouse can no longer be over "M" and the second event will never occur. The menu will close as soon as the mouse leaves "A". In case the event "mouse is over M" is created first, the menu will stay open until the event "A is left" is delivered (which will be directly after the first event was delivered), and because this event will close the menu, the result is the same: The menu will close as soon as the use moves the mouse from "A" to "M". the menu won't work at all.
    In other browsers the menu stays open, though this is wrong (see above). iCab now follows the bahaviour of the other browsers, even this doesn't really make sense.
Posted by Thomas Much at 23:23
Categories: iCab & InScript

Mon, Jun 18, 2007

iCab 3.0.3 Beta 452

Yesterday, on June 17, a new iCab beta was released to registered users. There are some fixes and improvements, among them my long-standing wish for the option to not automatically select the first suggestion in the URL autocompletion popup:

  • When loading plugin data by simulating the Windows Active-X API on web sites which do use the proprietary windows technology, iCab will now initiatesome additional checks to make sure that a wrong base URL setting could lead to the wrong URL for the pugin data.
  • In the Classic version of iCab the build-in RSS-Reader could not be replaced by an external one by placing the external one (RSSReader.html) into the folder /System/Application Support/iCab/ when running natively in MacOS 8.x or 9.x. Running in the "Classic" environment of MacOSX everything worked fine.
  • Added a new option in the "URL autocomplete" settings of the preferences dialog. It is now possible to configure iCab to either automatically select the first suggestion of the autocomplete list which opens just below the location field (which also was the standard behaviour before) or to select nothing automatically, so the user has to explicitly use the arrow-up/down keys to select one of the autocomplete suggestions (the latter is the standard behaviour of Firefox).
  • Fixed an error when checking certificates. iCab could display a message about an invalid certificate even if the certificate was valid.
  • Saving and fillong out forms automatically (using the menu items in the "View" menu) now uses slightly relaxed rules. Before a "session ID" in the URL for the form submission could be the reason that iCab won't be able to fill out the form with saved form data, because the different URL tiggered the "security" handler which then refuses to fill out form data in "foreign" forms. Now iCab tries to find out if a different URL is different only because of a session ID and so allows to fill out the form data when it failed before.
Posted by Thomas Much at 17:41
Categories: iCab & InScript

Mon, Jun 04, 2007

iCab 3.0.3 Beta 451 - Atomic

iCab beta 451 fixes several bugs and adds the possibility to display Atom feeds with the built-in RSS reader. Here is Alexander's complete list of changes in the new version:

  • Workaround for a bug in classic MacOS if not using the Unicode TextEdit fields in web forms. In certain circumstances the non-Unicode text fields could cause a crash if the text field was empty when trying to insert some text.
  • Added a workaround for the buggy Javascript code of the yahoo image search feature when using the Firefox identity setting. Yahoo uses the most complicated way one can think of to open the back/forward links. It first deactivates the links to do the whole processing via JavaScript. The JS code then will first load a small image file that is never used at all. But only after this image was downloaded, the javascript code will open the original link now. But unfortunately it initializes some variables after they are needed when processing some of the JavaScript events. So iCab will now delay som of the events to give the yahoo script more time for initializing these variables.
  • Bugfix for the CSS rule "html { font-family: inherit; }, which could cause a crash. The HTML element is the root element (it has no parents) and therefore can't inherit anything from its parent elements. iCab did nevertheless try to inherit from its non-existing parents.
  • Checking the validity of SSL certificates could fail because of a buffer that was too small. So iCab could have reported an invalid certificate which was valid.
  • Added an optimization for the new ebay layout and the new pull down menus of the ebay site. These menus are very badly programmed. The menu code uses a special exception handling for Safari and IE browsers. And this special code is programmed in a way so that it does all the "expensive" calculations which are needed for Safari or IE before(!) testing if these calculations are necessary, and so in iCab these calculations are done multiple times and afterwards the result is ignored because iCab is neither Safari or IE. Also these calculations are don is way which is most ineffective and even "dangerous" because it can lead to many problems. The optimization for ebay is to cache requests to the HTML code that can be retreived by "innerHTML" in JavaScript.
  • The optimization for activating/deactivating StyleSheets from within JavaScript didn't work correctly if only a single StyleSheet was deactivated in a JavaScript call.
  • The build in RSS reader does now also support "Atom" feeds. Also if the RSS feed does not provide any links to the articles (which is usually the case when the articles ar already part of the RSS feed) the article list will get much more room and the content area where the article links would be opened otherwise gets less space.
  • The enhanced RSS reader is now also available in the classic version of iCab.
Posted by Thomas Much at 13:23
Categories: iCab & InScript

Tue, May 29, 2007

iCab 3.0.3 Beta 450

On Wednesday of last week Alexander published a new iCab beta version. Again, there are lots of bug fixes:

  • In the error report the password could be displayed on web pages which require HTTP authentication. Now, iCab filters out all passords which are encoded in the URLs.
  • If form data was submitted via JavaScript and the form result should open in a new window, it could be nevertheless displayed in the same window.
  • Fixed a "Dead-Lock" which could occur in synchronous XMLHTTPRequest calls where the server sets a cookie.
  • Added a workaround for buggy routers or other devices which can be configured with a web interface. It seems that many of these devices are returning totally invald HTTP responses to the browser, lacking the required HTTP header. Now iCab should be able to deal with this.
  • The new build-in RSS-Reader (from Beta 447) does now also support video podcasts so that it is now possible to display the videos inline (if the required QT plugin is installed).
  • Apple's "URL-Access" will now no longer be supported. Until now this was supported only in the "classic" version of iCab as alternative to OpenSSL for secure and encrypted web pages. But because the "classic" MacOS wasn't updated for years most of the certificates required for secure web access are already expired. So supporting "URLAccess" doesn't make much sense anymore. In general this shouldn't change anything because "OpenSSL" already was the default setting for years in iCab.
  • Removing a seperation line from the browser toolbar could crash.
  • In "data:" URLs the "charset" parameter will be supported as well, if this makes sense for the data type that is empedded this way.
  • "document.styleSheets" isn't supported by InScript yet. But iCab simulates this now so JavaScript code using this property in a certain way will now work.
  • Small modification added to render the totally messy HTML code of excite.com.
  • If InScript called the garbage collector from within the onUnload handler, iCab could crash in certain circumstances.
Posted by Thomas Much at 17:29
Categories: iCab & InScript

Tue, May 08, 2007

iCab 3.0.3 Beta 449

Yesterday was bugfixing time again. Here is Alexander's list of fixes in the latest iCab beta:

  • If web servers use a value of "text/plain" in the "Content-Type" header then iCab now uses much more detailed checks if the data is really in text format. Unfortunately many web servers are not configured correctly and use "text/plain" for a large number od non-text file formats. Previously iCab was able to recognize binary file formats even when declared as text files. Now iCab will also try to "recognize" HTML code when declared as text but when it should not be declared this way. This is not easy because HTML is also a text file.
  • Fixed a new bug which could cause a crash when text was formatted as "SmallCaps".
  • The color of the "ALT" text in images will be now correctly set according to the text color of the content of the image.
  • Bugfix for "first-line" (CSS) when the first line contains some images.
  • SVG images will be no longer recognized as XML files.
  • If in the JavaScript onSubmit handler opens a new page using "location.href" and(!) tells the browser to submit the FORM normally, then iCab did open the new page and then was unable to submit the FORM (because opening the page leaves the old page). But some web pages (like www.weather.com) are doing this stupid thing and assume that the Form submit "wins". Now iCab will cancel the opening of the page (via "location.href") if the form will be submitten normally.
Posted by Thomas Much at 19:24
Edited on: Tue, May 29, 2007 17:35
Categories: iCab & InScript

Thu, May 03, 2007

iCab 3.0.3 Beta 448

Today Alexander released yet another iCab beta version. Again, he fixed several bugs, among them a memory leak in my InScript code concerning regular expressions (thanks for finding and fixing this one!):

  • If JavaScript code created an IFRAME element and then before the document for this IFRAME could be loaded, tried to get the JavaScript references to the not-yet-existing document, iCab did return a NULL value. Some scripts won't work anymore when this happens. Now iCab creates a JavaScript references even for not-yet-existing documents to avoid these problems.
  • Fixed a bug which could result in a crash, if many documents were downloaded at the same time and the network layer of the MacOS could not deliver all the data immediately to iCab.
  • If IMG elements were redefined as "table-cell" via CSS the images were not shown.
  • Fixed two memory leaks in iCab
  • Added a workaround for a certain memory leak of MacOSX.
Posted by Thomas Much at 17:43
Edited on: Tue, May 29, 2007 17:35
Categories: iCab & InScript

Wed, May 02, 2007

iCab 3.0.3 Beta 445..447

In April, three new iCab versions were released for beta testing. They contain mostly bug fixes. However, the latest beta adds an improved RSS reader:

iCab Beta 447 (2007-04-27)
  • In the MacOSX version of iCab the build-in RSS-Reader is now more comfortable All topics in the RSS feed are listed in a sidebar and their content can be hidden or can be made visible. The linked artivles can be displayed inline so that the sidebar with the other items remains visible.
  • RSS-Feeds are now recognized even when the server declares these feeds as HTML documents.
  • Workaround for "meta refresh" elements which are not formatted correctly.
  • The line numbers in the error report could be wrong in certain circumstances.
  • If in the CSS property "font-family" the flag "!important" was also set, this "!important" keyword could be treated as part of a font name. This is now fixed.
  • Fixed a crash which could occur if JavaScript code removed the element within an onclicked handler for which the onclicked handler was defined.
  • Scrolling HTML elements without a scrollbar via JavaScript didn't work until now.
  • Vendor-specific CSS properties (like the ones with the prefix "-moz-") will no longer be treated as error in the error report.
iCab Beta 446 (2007-04-17)
  • The default font setting was assigned to the BODY element, which could cause problems when CSS code assigns font settings to the HTML tag.
  • The list of search engines in the preferences dialog can be now reordered via Drag&Drop.
  • Web forms with a TARGET value of "_parent" which was submitted via JavaScript did open the result in the grandparent frame instead of the parent frame.
  • Bugfix for JavaScript code that requests a list of all tags with a certain tag name. iCab did also inspect the children of the found tags, which is wrong.
  • If URLs including a password (this is not allowed in HTTP URLs but which is nevertheless common in the web), the password contains the "#" character, icab didn't process the URL correctly.
  • Bugfix for creating tables via JavaScript.
  • Bugfix for "javascript:" URLs that are stored in the Hotlist, where the JavaScript code cotains certain characters which are not allowed in URLs.
  • Bugfix for the onclick handler of a parent element of a link, which could prevent the default action of the link.
iCab Beta 445 (2007-04-06)
  • Bugfixes for background images in first-letter/first-line pseudo elements.
  • If JS code modiefied CSS properties which would only require a screen refresh (and the layout doesn't change), if could happen that some child nodes were not updated correctly as well.
  • If JS code added a node in the HTML tree in a certain location and then tries to remove this node from another (invalid) location, iCab could crash.
  • Changing the "src" property in FRAME knodes via JS did not update the frame content.
  • Small optimization for enabling/disabling certain stylesheets via JS. Until now, iCab has feflown the web page each time a stylesheet was enabled or disabled. Now iCab waits until the current JS call is over. Because most "Stylesheet switchers" do first disable all stylesheets and then enable one again, the new behaviour of iCab would prevent many reflows.
  • Added a workaround for web pages which expect that tables will not move below floating elements when there's not enough room left next to these floating elements for the tables.
  • Bugfix for negative "margins" in "floats".
  • Added a workaround for HTML/XHTML documents which do introduce self-defined tags (which is not allowed) for certain tasks (probably server-related tasks), and when these self-defined tags do match extisting HTML tags, only that they are used in another context.
  • Fixed the search for cookies in the cookie list. When cookies where deleted, the "find next" command could have ignored the next item in the cookies list.
  • Jumping to an anchor (#xxx) in documents which were requested by a POST command could result in reloading the page from the server again.
  • Modified the special treatment for empty fragment identifiers in links (href="#") so that poorly written JS code, where the return value for onclick events was not specified, would do what the author meant, and not what he has programmed.
  • On Intel Macs documents encoded in UTF-16 with non-Intel byteorder were not correctly displayed when the web page declared the document with a totally wrong charset information.
  • Fixed a crash which could occur if JS code openes a new document in an IFRAME and then deletes the IFRAME in the same call before it has a chance to open the new document.
  • Small modification for the "classic" PDF plugin from Adobe which requires a special parameter to make sure that the PDF-toolbars are not switched off.
  • Fixed a focus issue when JS code sets the focus into a form field whil iCab is in the background.
  • When "downloading" Flash movies ("video/flv") from within the "Cache Browser" of iCab iCab will now set the file type and file creator of a quicktime movie for the Flash file if the MacOS does not have a suitable file type and creator code.
  • iCab didn't sent onkeyup events (JavaScript) when JS code prevented the default action in onkeydown or onkeypress events.
  • Workaround for invalid nesting of <Hn> and <P> tags.
  • The "Accept" attribute was always reported as error, even if it was allowed.
  • If more downloads were started than allowed (can be configured in the download preferences) iCab crashed when it tried to make the new download wait.
  • When searching in the Hotlist or History window the fields "must contain" and "exclude" are now also available.
  • If a web server of proxy asks for authentication and offers multiple methods for this, iCab did only try the first method. If this method was not supported by iCab the authentication failed. Now iCab will look for the alternate methods as well and use these if supported.
  • There's a trick to create GIF images with more than 256 colors. But this trick did only work in the UB version of iCab until now. Now the PPC version for MacOSX does also support these secial GIF images.
Posted by Thomas Much at 20:55
Edited on: Tue, May 29, 2007 17:34
Categories: iCab & InScript

Tue, Mar 06, 2007

iCab 3.0.3 Beta 444

Last Thursday another iCab beta version was released. It contains mostly bug fixes, according to Alexander's release history:

  • Ebay seems to introduce a new form for selling items (at least in ebay Germany you can now choose between the new form and the old one). This new form is not very well done and many parts don't work in Safari, Firefox and Opera on the Mac (I can only guess that at the moment only IE on Windows will work with the new form). I've added some new workarounds and modifications in iCab, so iCab can now use the new form without any serious issues. For example Uploading images will now work with the new ebay form because iCab now follows Safari/Firefox instead of Opera in accessing the JavaScript property "opener" from within IFRAMEs.
  • Bugfix. the onclick event is now delivered after the onmouseup event.
  • Bugfix for FTP server which use the DOS format for directory listings.
  • Bugfix for Plugins in the "Classic" version of iCab. Plugins did not always get the time to update their area in the browser area.
  • iCab now also supports the IE event handler onBeforeLoad
  • Under MacOSX the unused "Help" menu in the contextual menu is now removed. This is not possible under Classic because the help menu is handled by the MacOS in contextual menus.
  • Bugfix for relativ positioned elements in table cells.
Posted by Thomas Much at 11:21
Edited on: Tue, May 29, 2007 17:34
Categories: iCab & InScript

Tue, Feb 27, 2007

iCab 3.0.3 Beta 441..443 - Tab Previews

During the last few weeks registered iCab users found three new iCab beta versions using iCab's update checker. The Mac OS X versions now have the ability to display the contents of an inactive tab as a kind of tooltip when the mouse cursor hovers over the tab's title (this can be switched off in the preferences under General > Tabs).

Tab Preview

And as usual, there are lots of bug fixes and small improvements. Here's the complete list, taken from Alexander's release history:

  • Important bugfix which fixes a crash when closing a web page (either by closing a tab or window or by opening a new web page). A certain structure which is created to hold the default value for the default color of the CSS shorthand property "border-bottom" when the color was not given in the CSS code was not initialized properly.
  • If in JavaScript code the call "open()" was used instead of "window.open()", which have both a different task, iCab will now check if really "open()" was meant here or if it is likely that "window.open()" was meant. iCab may then interpret the call depending of the context.
  • Because of a bug in Apple's XCode iCab could crash in certain circumstances when JavaScript code manipulates the HTML tree an a certain way.
  • Added a workaournd for JavaScript code which uses non-breaking space characters instead of normal space characters. In general non-breaking space characters must be treated like normal "letters", but other browsers treat non-breaking spaces in JavaScript code as normal spaces instead. So now, iCab will do this as well.
  • Accessing the TBODY elements of a table via JavaScript did also take the TBODY elements of nested tables into account, which is wrong.
  • empty stylesheet files (file size of 0 Bytes) did crash iCab
  • Fixed an serious bug which could cause the simple javaScript document.write() calls overwrite the document instead of just adding some new text.
  • Small correction for CSS selectors ">", "+" and "~" whose first element is missing.
  • Small modification for accepting cookies: Even when cookies are generally switched off, cookies which are only valid for the current session can be accepted automatically if this was explicitly configured in the cookie preferences.
  • When deleting a button from a certain location in the navigation toolbar, iCab could crash.
  • Small optimization for calculating DOMCoreListGetLength (JavaScript). iCab will now use a cache for these values, which speeds up several web pages which do not save the values themselves and instead let calculate these values multiple times by the browser.
  • In the Universal Binary version, iCab will add the real DPI value for the screen resolution which is measured by the MacOS into the user defined edit field in the CSS preferences, when resetting to the "Factory settings". This way it is no longer necessary to measure the exact screen resolution (dpi) with a ruler (if the display itself supports this auto detection of the dpi value) in case you don't want to use the predefined default values (which is still the best option in general).
  • When importing certificates in ".cer" format, line breaks in DOS format did confuse iCab.
  • Importing of certificates didn't work under "native" MacOS 8/9 (it did work fine when running iCab in the "Classic" environment).
  • Workaround for a bug in the MacOS added, where icab gets a wrong result when measuring the widths of text lines.
  • If a JavaScript onclick handler for INPUT elements tells the browser to prevent the default action of the element, iCab will now ignore this for text fields.
  • Workaround added for the XML/HTTP shortcut "/>", which is often used even in HTML where this is wrong. In general this is not a problem, but for a few special HTML tags this can nevertheless cause some problems.
  • UTF-16 encoded web pages with Intel-byteorder were not shown correctly on PowerPC Macs.
  • Fixed a problem with absolutly positioned tables which were moved to the right using the "right" property of CSS.
  • If "frame" pages set a new URL for the top frame via JavaScript and the URL is identical to the current URL of the top frame, the frame won't be reloaded anymore.
  • While an alerbox is open that was opened by JavaScript code, loading a new web page will be now delayed until the alert box is closed again.
  • Fixed a problem in JavaScript, which caused flickr.com to show error messages even when everything works fine.
  • Quirks modus slightly modified for handling uppercase/lowercase letters in ID attributes in "HTML 4 traditional".
  • Links which started with "../" were never recognized as "visited".
  • Now, also in the PowerPC version for MacOSX the saved forms ("View" > "Save forms"/ "fill out forms") will be saved in the keychain of the MacOS if the keychain is activated in iCab. Until now this was only done in the Universal Binary version.
  • very large images with percentage widths inside tables could make the table much larger then expected.
Posted by Thomas Much at 19:31
Edited on: Tue, May 29, 2007 17:33
Categories: iCab & InScript

Fri, Feb 02, 2007

iWoz surfing with iCab

I just finished reading "iWoz", in which Steve "Woz" Wozniak describes his view on Apple's history. An interesting and fun book to read!

A few pages before the end Woz talks about the old (classic) Mac OS constantly crashing - until his son downloaded iCab to replace (the now discontinued) IE:mac. Suddenly the crashes were gone!

While it wasn't new to me that Woz was using iCab (I don't know if he still uses it on Mac OS X), I was delighted about iCab being mentioned in such a prominent book :-)

Posted by Thomas Much at 14:08
Categories: iCab & InScript

Mon, Jan 15, 2007

iCab 3.0.3 Beta 438 - Growl

Growl Today's iCab beta version 438 adds support for Growl to notify the user about finished downloads and some other events (note that this feature is supported by the Universal Binary version only). The other items mentioned in Alexander's release history concern better support for CSS3 and some bugfixes:

  • iCab supports the CSS 3 properties border-left-colors, border-right-colors, border-top-colors and border-bottom-colors. Using these properties a list of colors can be defined. The browser uses the first color for the outer pixelline of the border, the second color for the next pixel line of the border etc. iCab also supports the "Mozilla" prefix "-moz-" for these properties, so that iCab can display the colors correctly on web pages, which do only use the "-moz-" prefix assuming that currently only Mozilla compatible browsers do support these properties. Unlike Firefox iCab does also support the border-style propertie in combination with these colors. Firefox always assumes "border-style: solid" if multiple colors are defined for the border.
  • iCab supports the CSS 3 border styles "dot-dash" and "dot-dot-dash".
  • iCab now supports the CSS 3 color definition function hsl() which can be now also used as alternative to the function rgb():
    hsl(hue[number], saturation[%], lightness[%])
  • Fixed a crash when JavaScript events were delivered to HTML or BODY elements which were positioned absolutely.
  • Alt-Clicks on non-link areas were not reported as event to JavaScript code.
  • The GetHeader() method of XMLHTTPRequest objects didn't work.
  • Fixed another crash when iCab renders certain invalid HTML code.
  • Plugin data which was removed by JavaScript was still active.
  • The modified workaround for invalid tables from beta 434 is now modified again to fix a problem with some other faulty web pages.
  • Workaround implemented for web web pages where all end tags are missing.
  • The workaround for printing image with alpha channel in the UB version is now also implemented in the PowerPC version, because new MacOSX releases don't print these images anymore, otherwise.
  • If JavaScript code did pass HTML code instead of a tag name to the "CreateNode" method, iCab did accept this and created a single element with the HTML code as tag name. Now iCab rejects this and reports an error.
  • multiple values for the CSS Properties "border-*-width" were not reported as error.
  • If iCab was configured to ignore color definitions of web pages, iCab didn't ignore the color of the FONT tags for underlines when the page was rendered in "Quirks" mode.
  • When pasting text into the search or URL field special characters (like the German umlaut charcaters) got lost.
Posted by Thomas Much at 22:24
Categories: iCab & InScript