# Preferences

## Browser

In this category you'll find all general settings for iCab.

General
  These are the settings for the general appearance and the user interface.
  Windows
    When opening new windows these can be either empty, or iCab can automatically load the homepage in these windows.

    When iCab is launched, iCab can open an empty window, a window with the homepage or no browser window at all.

    In case another applications want to open a web page in iCab, iCab can open this page in a new window, a new tab or in the currently active window/tab. In the latter case the currently displayed web page would be overwritten by the new web page.

    You can also choose a color scheme for the browser toolbar buttons.

  Tabs
    Tabs can be used to open multiple web pages at the same time in a single window. Tabs are enabled by default, but if you don't like to open multiple web pages in a single window, you can switch off Tabs support. If Tabs support is enabled you can configure iCab so that it will automatically open a new Tab instead of a window when a web page tries to open a new window. Also when opening new Tabs they can be configured to open in the background by default. This is useful if you want to keep the currently displayed document visible even when a web page opens a new Tab.

    By default the shortcut Cmd-W closes a window. But when multiple Tabs are present in a window, it's usually not intended to close the whole window. Usually the user only wants to close a Tab. So you can configure if Cmd-W closes the whole window or only the active Tab. If Cmd-W closes the Tab only, you can use Cmd-Shift-W to close the whole window.

    If a window only contains one single document, iCab can hide the Tab toolbar to save space on the screen. The Tabs toolbar will be automatically displayed when another Tab is created.

    Clicking a link on a web site will usually open the new web page in the same window or Tab, replacing the old web page. When holding down the Shift, Option and/or command key while clicking links you can open them in new windows or Tabs in the background or in the foreground. Which keyboard shortcuts will have which effect depends on some of the Tabs settings. In the Tabs preferences panel the keyboard shortcuts are shown, which are valid with the current settings.

  Contextual menu
    In this panel you can configure which items will be added into the contextual menu of the browser. If you do not need certain menu items you can remove them from the contextual menu to keep the menu smaller.

    Many of the menu items can be used for more then one element at the same time (for example for the web page itself, the link that was hit and the image that is the link). To avoid that the menu gets too large and overloaded it's possible to group most of the menu items in submenus where each submenu will address a certain element type (like images, links, pages and frames).

    The Page Overview provides a list of all headings of the web page which can be directly accessed through the contextual menu. Also all links of the web page can be listed in the contextual menu. This can be sometimes useful to find "hidden" links.

  Advanced Features
    These features are usually not important for all users, so iCab can be configured to disable these features to make the main menu smaller. Features which are checked here are accessible through the main menu, features which are unchecked are removed from the main menu.

    Enabling the E-Mail features you can open the email application from within iCab and you can send the URL of the current web page via Email to someone else.

    The "Prefetch" feature can be used to load certain links of a web page in the background while the web page is displayed. This can be useful on certain "News" sites when you only have a slow internet connection and you want to read most of the linked articles. While reading one article, others can be loaded in the background so when you later go to the next, you don't have to wait until it is loaded. But this feature requires that the web page tells the browser which links are safe to be "prefetched". Only few web pages are doing this.

    The Session Feature can be used to save the current session (the current windows and Tabs, their content and their location on the screen) into a file or to load such a session file again and restore the browser state to the saved state at any time.

    The Automatic Update feature is meant for web developers. When loading a local file in iCab with the automatic update feature enabled, iCab will automatically update its browser window whenever the file has changed. So you can use iCab as a "live preview" for an HTML document that is currently edited in another application like an editor.

    The Speak Text feature can be used to let iCab read web pages aloud. This works fine with English texts, for non-English texts the default voices of the MacOS won't work that great.

  Other
    In the Offline mode iCab won't load anything from the internet. When you open a web page in Offline mode you have visited before, iCab will try to load the data from the Web Cache. The Offline mode can be useful if you want to revisit web pages when no internet connection is available (for example when you travel in a train or plane). It is possible to configure iCab so that it will always switch on the Offline mode when it is launched.

    When the option "Allow launching applications" is enabled you can browse through the folders of your hard disk and launch applications with a simple mouse click from within iCab. If this option is unchecked, you can't launch iCab from within iCab.

    When the option "open local files in external applications" is checked, iCab will try to find a suitable application for all the files iCab can't display itself, to open the files in these external applications.

    iCab can be configured to need a confirmation to do certain actions, like quitting while windows are open, or opening more than a certain number of pages at the same time.

Fonts & Language
  In iCab you can configure your preferred language and iCab will ask the server to send back the page in this language if available. Some web servers provide their content in different languages and if they offer your preferred language, you'll automatically get the web page in this language. Using the user-defined language setting you can even provide a list of languages and their priorities (Example: "`de;q=0.9,en;q=0.5,*`" means you prefer German (de) with the priority value or 0.9 over English (en) with a priority value of 0.5. The priority value can have a value between 0.0 and 1.0).

  A web page can use different fonts for different font families. In this panel you can configure which fonts to use for which font family. You can also select font sizes for the standard font and the fixed with fonts, as well as the minimum font size. If a web page tries to use a smaller font size than the minimum font size, the text is displayed with the minimum font size. The minimum font size setting can be used to make sure that the text is always large enough so you can read it.

Bookmarks
  In this panel you configure the settings for the Bookmarks. The "Add menu item 'Open As Tabs' in bookmarks submenus" will insert a new menu item in all submenus of the bookmarks menu which will allow to open all the bookmarks within this submenu as Tabs at once.

  iCab can check if the web pages which are saved as bookmarks have changed or are updated on the server. Each bookmark has its own private setting for this checks. In the Bookmarks preferences you can configure the default settings for the checks for all newly created bookmarks (in the bookmarks window you can modify these settings for each bookmark again). The checks can be started manually through the Bookmarks menu or automatically based on certain time periods. Manual checks will only check bookmarks which are allowed to be checked, so if you don't want a bookmark to be checked at all, select the option Don't check. After a bookmark is checked, the result of this check is displayed in an icon. You can configure how long this icon will show the check result (this makes sense because you usually don't want to have a bookmarks flagged as "changed" for a longer time).

History
  Here you can configure how many web pages can be stored in the history and you can delete the history.
Default Pages
  In this panel you can enter the URL of the Home Page (which can be opened using the menu item Navigate > Home Page) and the URL of a search engine (which can be opened using the menu item Navigate > Search Site).
Programs
  In this panel you can select all the default applications for different internet protocols, like http/https, ftp, mail etc. iCab will automatically pass URLs for these URL protocols to the applications which are configured for these protocols.

## Web Content

Page Layout
  In this panel you'll find all the basic settings which can modify the layout or appearance of web pages.

  You can configure iCab to ignore all of the colors the web page wants to use and use your own color definitions instead.

  You can do the same for the fonts: allow the web page to choose the fonts or always use the fonts you've selected.

  If you enable the language-specific quotes then iCab will use the quote characters that are normally used in the language of the text.

  The option "Use Tab key to navigator between links" can be used to use the Tab key to navigate not only between text field but also between links so you can navigate within and between web pages using the keyboard.

  Some web pages do allow to activate links or form element via keyboard shortcuts but they do not display these shortcuts in any way. The option "Show Accesskey shortcuts" makes these shortcuts visible in the web page, so you'll see which keyboard shortcut will work for which page element.

JavaScript
  In this panel you can switch on/off Javascript completely but you can also switch on/off only certain JavaScript features. For example when you disallow JavaScript code to automatically open new windows without user interaction, you'll block most of the annoying advertising popup windows.

  Configuring a user-defined JavaScript code, you can even modify the structure and content of each web page that is loaded in iCab. This is a very powerful feature, but you'll need some knowledge about HTML and JavaScript.

Java
  In this panel you can switch on/off the execution of Java applets.
Images/IFRAMEs
  In this panel you can switch on/off image and IFRAME display.

  The option "Scale images to window width" affects only image files which are directly loaded in the browser window (images which are not embedded in a web page). When enabled, images that are larger than the window will be scaled down so they will be completely visible in the window.

Style Sheets
  In this panel you can switch on/off the usage of Style Sheets (CSS). You can also add any number of user-defined Style Sheets in a list. You can select and enable these user-defined Style Sheets at any time from within the menu View > Style Sheet. User-defined Style Sheets can be used to modify the layout and appearance of a web page.
Plug-ins
  In this panel you can enable/disable the browser Plugins (Flash, Quicktime etc.) which are available. You can also enable/disable all the file types each of the Plugins is allowed to load. If you want to download a certain file type instead of displaying it in a window, you can switch off this file type in the plugins list.

## Network

Network
  When you click a link on web page A to go to web page B, the browser will request the data for the new page from Server B and will also tell B that the user is coming from A (this is done using the HTTP Referrer). Some web pages are using the referrer to make sure that the user will get access to certain areas of the web site through the proper entry points only. But the referrer can be also a security problem because it reveals the URL from the web site the user is coming from to the new server. And if this URL contains some private data or some login data, this data is also revealed to foreign servers and criminals could use these data to get access to private and protected areas of web sites (like accounts to a web mail provider, your customer page of a web show, etc.) Because of this security issue of the HTTP Referrer iCab will by default send the Referrer only within the same server. When going from Server A to Server B iCab won't include the referrer and no private data can be revealed to foreign servers. Also many Firewalls and Proxies will filter out the referrer information for security reasons. But unfortunately there are many badly programmed web pages in the web which do require that the referrer information is sent between different servers/domains. So you can configure iCab to Always send the Referrer as well. This is what other browser are always doing, though as written above, this can be a security risk. Instead of configuring iCab globally to always send the referrer, you should better use the Filter Manager to create a filter which will only use the "always send the Referrer" setting on the servers/domains which require this. In the preferences dialog keep the default setting at "only within same server" so iCab will use the secure setting on all other web pages.

  In this panel you can also configure iCab to log all the HTTP headers which are sent by iCab to the servers and which are sent from the servers to iCab. This feature can be used to analyze the communication between iCab and web servers.

Downloads
  In this panel you can configure all the default settings for new Downloads for the Download Manager. If you create a new download, it will use the settings from this panel as initial settings.
Cookies
  Here you can configure all the Cookie settings.
Identity
  Many web pages are written for only 2 or 3 browsers (like Firefox, Internet Explorer and maybe Safari or Opera) and they won't work if the browser can't be identified as one of these "supported" browsers. This makes no sense, but unfortunately many web developers don't have much knowledge about the web so it is very common to check for a browser identity instead of to check for the existence of the browser features that are required for the web page. And so many web pages will refuse to work in iCab even if the web page would work perfectly in iCab. This is why iCab (and many other Browsers) allow to change their browser identity to be able to identify themselves as another browser. Then the web page or Web server "thinks" that iCab is another supported browser and then do no longer block the browser and the web page will work fine. In iCab 4 the "Safari 3" identity will usually work best on almost all web pages which would otherwise refuse to work with iCab 4 (if a page works in Safari 3 it will also work in iCab when iCab identifies itself as Safari 3). But some web pages may need another identity to accept iCab. Fortunately most web pages do not require to use a false identity to work properly.

  You can change this setting in the View menu as well, which is much faster than opening the preferences dialog.

Security
  International Domain Names (IDN) are domain names which can contain language-specific letters and glyphs. They don't need to contain only ASCII letters. So Japanese users can have real Japanese letters in their domain names, Russian users can have domain names with cyrillic letters etc. This is great in general, but unfortunately this will also create a new security issue. The problem is that many languages do have certain letters which look very similar or even identical to letters of other languages. This makes it possible to create domain names which look like well known domain names, but they are nevertheless completely different domain names. For example there is a cyrillic letter which looks identical to "a", so someone could use a domain name like "www.apple.com" where the "a" is not the ASCII-"a" but instead the cyrillic "a". Thought the domain name looks like the one from the company with the Apple logo, it's not the same. Criminals could provide a false Apple web page under this "cyrillic" apple.com domain name and users who believe that they are on the real Apple web site could enter their login data, credit card data etc. to buy a new Mac, but they only reveal their private and sensible data to these criminals.

  So there must be some way to protect the user from such "dangerous" domain names. But it's not easy to decide if a domain name is dangerous, because the usage of a cyrillic "a" which is dangerous in "apple.com" is not dangerous at all when used in another really cyrillic domain name.

  iCab therefore offers several options to configure the usage of IDNs. You can switch off the support for IDNs completely. iCab will still be able to open the web pages which do use these IDNs, but the domain names will be only displayed in their ASCII-equivalent domain name, which looks very "cryptic". This way a false domain name like "apple.com" with a cyrillic "a" can't be mixed up with the real apple.com domain anymore, the false domain will no longer displayed as "apple.com". When configuring iCab to show all IDNs then all domain names will be shown even if they are dangerous (like "apple.com" with a cyrillic "a"). This setting should be avoided, because there's a security risk to mix up domain names. iCab also provides a list where you can enter the domain names which you trust and where you know that they are safe. iCab can be configured to show the IDNs which are in this list and to don't show all the other IDNs. iCab can also identify all the "secure letters" in each language which do not look similar to other letters from other languages. And as long as only these secure letters are used in IDNs, iCab would be able to display these IDNs without security risk.

  You can open the Keychain application of the MacOS from within the security panel. The Keychain application is used to store all the server certificates for secure web pages.

## Other

Searches
  iCab provides a list of internet search engines which can be accessed through the search field and the URL field in the browser toolbar to start a Search in the internet. This list can be edited in this preferences panel.

  Each search engine entry in the list has a name, a key (optional. It is used to address the search engine from within the URL field), an URL, POST data and the text encoding. The URL, POST data and the encoding information are very sensible data, and when editing these you have to make sure that everything is correct and everything is exactly as the search engine expects this data. If the search engine uses the HTTP GET method to start the search, the POST field must be empty. If the search engine uses HTTP POST, the URL and the POST field must be filled out. In any case the parameter for the search request must be the very last parameter in the URL (when using GET) or the POST field (when using POST). If the encoding field is empty, iCab assumes that the UTF-8 encoding have to be used to encode the search request.

  In general it is not recommended to edit more that the name and the key fields in this preferences panel. If you want to add a new search engine, it is recommended to do this in the following way (then iCab will collect all the needed data for the GET, POST and encoding fields itself, the user has not to do this himself): Open the web page with the search engine you want to add in a browser window. Now control-click (right-click) somewhere within the search form (usually it's the best to hit the "submit" button of the form) to open the contextual menu and here select the menu item Add Form to Search field. Then iCab will collect all the data for this form so that it can be added to the internet search engine list. The data is displayed in a dialog box, here you'll usually only need to define a key letter to use the search engine from within the URL field.

Kiosk
  In this panel you can configure all the parameters of the Kiosk Modus.
Cache
  In this panel you can configure the caches that are used by iCab. The "Disk Cache" is used to save all data that is loaded from the web on disk, so when the page is visited later again, iCab doesn't have to load all the data again from the internet but instead can load the data from the disk much faster. Also when in Offline mode iCab can load all the web pages that were visited before from the web cache, so you don't need an internet connection. This can be useful when being in a train or plane where there's no internet connection. The larger the disk cache is, the more pages can be visited in Offline mode.

  The option Load files from best source will load web pages from the web cache or the internet, depending of the "modified" status that the server provides for this page. This is usually the best setting.

  The option Always load files from the Web can be used to force loading all web pages from the web, even if they are still available in the Web cache. This can be useful on web pages which change very often, but where the server "forgets" to tell the browser that the page has updated. So the Browser might load a cached version of the page though the page on the server has updated and has already another content.

  The option Always load files from the cache will load the web pages from the cache even if the server has already updated the page. Only if the page is not yet in the cache, the page is loaded from the internet.

  iCab can be configured to clear the caches when quitting. But the caches can be also cleared manually.

Autocomplete
  The URL Autocompletion feature is used to provide the user with a list of URLs which match the text that is already entered in the URL field. So the user will usually only need to enter a few letters and can then just select one of the suggested URLs to open the correct web page. iCab can get the URLs for the URL suggestion list from the bookmarks and the history. You can configure from where iCab should get the URLs. Enabling the option "Preselect first suggestion" means that the first suggestion will be automatically selected, so you only need to press the return key to open this URL. Disabling this option you have to manually select one of the suggestions first in order to use it.

  It's also possible to exclude certain URL schemes from the URL suggestion list. This makes sense for certain URL schemes like "ftp" which is usually only used for downloads and you probably don't want to start the same download again from within the URL field.

  In case you're entering only a single word in the URL field, iCab can automatically treat this as domain name and add the missing parts. For example when you enter "apple", iCab can automatically add the missing parts so it will open "www.apple.com". In case you prefer the top level domain "de" instead of "com" you can also configure iCab so that it would open "www.apple.de".

Error Report
  iCab is able to check the HTML and CSS code of a web page for errors and violations against the web standards. The errors are then listed in the Error Report window and a Smiley icon in the browser window will show the general error status. If the web page doesn't tell the browser which HTML standard was used, you can configure which Web Standard iCab should use to check for errors in the HTML code. You can also configure how many errors iCab should list. If you're are not interested in the errors you can also switch off the error report feature.
Show source
  iCab is able to display the source code of a web page itself or alternatively call an external text editor to open the source code. In this panel you can configure which external application should be used to open the source code. When clicking the Source button in the browser toolbar, iCab will open the source code itself or in the external editor, as configured here. If you click the Source button while the Shift key is pressed, iCab will just do the opposite.