CHARON(1)                                               CHARON(1)

     NAME
          charon - web browser

     SYNOPSIS
          charon [ -option [value] ] [url]

     DESCRIPTION
          Charon is the Inferno graphical web browser, supporting a
          variety of web standards for the download, viewing, automa-
          tion and navigation of web based information and images.

          The browser runs under the wm(1) window manager, or directly
          on the draw(3) and cons(3) devices.  When charon starts, it
          checks to see if wm is running; if it is then charon creates
          a new wm window for its display, otherwise it uses the whole
          area of the display device.

          Charon implements an image cache to help reduce the overhead
          of revisiting pages.  The image cache resides in memory for
          the duration of a session.  The cache is managed by discard-
          ing least recently used images once the cache bounds have
          been reached.  Currently, charon does not provide a general
          purpose web cache; all other resources have to be reloaded
          when needed.

        Navigation
          Charon provides navigation controls familiar to any web-
          surfer: back, forward, reload, home, stop and URL entry.
          Navigation of web-based information is by means of following
          HTML links, this is done by clicking on them using mouse
          button-1, or the touch-screen.  Clicking mouse button-2 on a
          link causes its address to be displayed in the status line
          of charon's display.  Navigation to other information is
          achieved by clicking on the URL entry field and typing the
          address of the resource, followed by the Enter key.

          The retrieval and processing of the current page is immedi-
          ately terminated by clicking the Stop button.

          As resources are browsed, a history of their web addresses
          (URLs) is built up.  At any time you can navigate forwards
          and backwards through this list using the Forward and Back
          buttons.  Additionally, clicking the History button, dis-
          plays the entire history list as a set of links enabling the
          user to quickly jump to any position in the list.

          Sometimes, it is not possible to retrieve all of the compo-
          nents of a web document at the time that it is requested.
          Often this is because the remote server is very busy or not
          available.  This can result in the presentation of the

     Page 1                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

          document being incomplete or even corrupted.  Clicking the
          Reload button causes charon to attempt to retrieve the cur-
          rent document and all of its components again.

          Charon displays a progress panel to indicate the download
          status of each of the components of the current document.
          The progress panel is displayed at the bottom of the charon
          window.  Each component of the current document is repre-
          sented by a rectangular block in the progress panel.  As the
          download of a component progresses, its corresponding block
          is gradually filled in.  If an error occurs while download-
          ing or processing the component, its block is coloured red.
          The component address and amount downloaded, or reason for
          failure, can be obtained by clicking mouse button-1 on its
          progress block.

        Web Standards
          Standards are the life-blood of the World-Wide-Web; without
          them, the web could not exist.  Web standards are under con-
          stant review with revised editions and complete new stan-
          dards being published all of the time.  This section lists
          the standards supported by charon at the time of writing
          this manual entry.  The version of the standard is given, if
          appropriate, alongside any comments on its implementation.

          Protocols      HTTP versions 1.0 and 1.1

                         HTTPS: SSL Protocol versions 2.0 and 3.0.
                         X.509.v3 server certificates.

                         FTP: charon supports retrieval of plain text
                         files only, directory listings are not gener-
                         ated.

                         FILE: Charon attempts to determine the file
                         type by a combination of the filename exten-
                         sion and examination of the first few bytes
                         of the file.  Directory listings are not gen-
                         erated.

          HTML           It is intended that charon supports HTML ver-
                         sion 3.2, but in reality there is no single
                         standard!  Charon attempts to be as close as
                         possible to Netscape Navigator Version 3 in
                         terms of its markup support.  Obvious bugs in
                         Navigator 3 and the Netscape security model
                         have not been adopted.

          JavaScript     Charon implements ECMAscript-262 2nd Edition,
                         which is roughly equivalent to JavaScript1.1.
                         The ECMA-262 standard does not define the
                         host objects and classes that should

     Page 2                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

                         implemented by the browser.  Charon imple-
                         ments the set of host objects and classes of
                         Netscape Navigator version 3.

          Encodings      US_Ascii, ISO_8859_1, UTF_8, Unicode (big-
                         endian)

          Images         GIF87a and GIF89a - animated GIFs always
                         loop.
                         JPEG, XBitmap, Inferno BIT image(6) format.

        Configuration
          While using charon, a sub-set of the configuration options
          can be modified.  Clicking the Configuration button displays
          a config popup window, enabling the user to modify the cur-
          rent values of the available options.

          The full set of configuration options can be modified on the
          command line or in a configuration file.  Comand line
          options are processed after the configuration file.  The
          configuration file is loaded from /usr/user/charon/config
          where user is obtained by reading the file /dev/user.  If
          this file does not exist, the file
          /services/config/charon.cfg is read instead.  Options are
          processed in order; some options override settings affected
          by others and so the order in which they are used is impor-
          tant.

          Options are specified using a key, value pair.  On the com-
          mand line this takes the form:

               -key value

          Where -key and value are individual items in the argument
          list to charon.

          In the config file options take the form:

               key=value

          Where value is the remainder of the input line after the `='
          character.  Any text lines in the config file that start
          with a `#' character are ignored as comment lines.

     OPTIONS
          userdir
              The directory where charon expects to find its configu-
              ration files such as, bookmark and cookie files.  The
              default value is /usr/user/charon/ where user is
              obtained by reading the file /dev/user.
          starturl
              Specifies the URL of the first document to be displayed

     Page 3                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

              by charon at startup.  The default value is
              file://localhost/services/webget/start.html
          homeurl
              Specifies the URL of the document to retrieve when the
              Home button is clicked.  The homeurl can only be changed
              if the change_homeurl option is enabled.  Setting
              homeurl also set the value of the starturl option.  The
              default value is
              file://localhost/services/webget/start.html
          change_homeurl
              Enables editing of the Home URL in the configuration
              popup window.  A non-zero integer value enables this
              option, all other values disable it This option also
              enables the homeurl option. The default value is 1.
          helpurl
              Specifies the URL of the document to retrieve when the
              Help button is clicked.  The default value is
              file://localhost/services/webget/help.html
          httpproxy
              Specifies the host name and port of a web proxy server.
              The address is given in the form of a URL, where the
              optional port number can be specified after the server
              name by separating them by a colon `:'.  The default
              value is the empty string, specifying that no web proxy
              server should be used.
          noproxy or noproxydoms
              Specifies a list of network domains for which a web
              proxy should not be used.  The domains in the list can
              be separated by semicolon, comma, space or tab charac-
              ters.  The default value is the empty list.
          usessl
              Extends SSL support.  Accepted values are ``v2'' and
              ``v3''.  Initially SSL support is configured off.
              Enabling version 1 or version 2 support restricts SSL
              support to that specific version.  Specifying the option
              twice, once with each of the options, enables dual ver-
              sion SSL support whereby the remote server is probed to
              determine which version it supports.  Some servers only
              support one of the versions and may not tolerate the
              special version2/3 probe.
          buttons
              Specifies the set of buttons that appear on the window
              manager title-bar.  The buttons are given as a list of
              button names separated by comma, space or tab charac-
              ters.  Valid button names are help, resize and hide.
              The default value is for all buttons to be displayed.
          defaultwidth or width
              Set the initial window width.  This option is only mean-
              ingful when running under the window manager.  If the
              specified width exceeds the screen width then the screen
              width is used.  The default value is 630.
          defaultheight or height

     Page 4                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

              Set the initial height of the main display panel, this
              does not include the height of the control and progress
              panels.  This option is only meaningful when running
              under the window manager.  If the total height of the
              charon window exceeds the screen height, the main dis-
              play panel height will be reduced to fit.  The default
              value is 450.
          x and/or y
              Set the initial window position.  These options are only
              meaningful when running under the window manager.  The
              default value for both options is 0.
          imagelvl
              Specify how to handle image components of a document.
              This option takes a numeric argument.  A value of 0 pre-
              vents images from being downloaded or displayed.  A
              value of 1 will download and display images but not ani-
              mate GIFS - only the first frame of an animated GIF will
              be displayed.  A value of 2 or more enables full image
              processing.  The default value enables full image pro-
              cessing.
          imagecachenum
              Specify the maximum number of images that can remain
              resident in the image cache.  The default value is 60.
          imagecachemem
              Specify the maximum amount of image memory available to
              the image cache in bytes.  The cache is managed such
              that neither the imagecachenum nor imagecachemem limits
              are exceeded.  The image cache tries to ensure that no
              more than 80% of available system image memory is taken
              by the cache, irrespective of the value of this option.
              The default value is 80% of the system image memory that
              was available when charon was started.
          docookies
              Enable cookie handling.  A non-zero numeric value
              enables cookie handling, all other values disable it.
              The cookie cache is maintained in the cookies file in
              the userdir directory.  The default value is 0, cookie
              handling disabled.
          doscripts
              Enable JavaScript support.  A non-zero numeric value
              enables JavaScript, all other values disable it.  The
              default value is 0, JavaScript processing disabled.
          showprogress
              A non-zero numeric value results in the progress panel
              being displayed.  All other values hide the progress
              panel, leaving more vertical space for the main display
              area.  The default value is 1, causing the progress
              panel to be displayed
          http
              Set the version of HTTP to use when communicating with
              web servers.  Supported versions are 1.0 and 1.1.  Any
              value other than 1.1 results in HTTP1.0 being used.  The

     Page 5                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

              default value is 1.0.
          nthreads
              Specifies the maximum number of concurrent downloads of
              document components.  Generally, if this number is
              higher, pages will complete faster as charon will not
              have to wait for the download of one component to com-
              plete before another can be started.  The downside is
              that a higher number of concurrent downloads will use
              more memory during the download process.  The default
              value is 4.

     FILES
          /services/config/charon.cfg  The default configuration file.
          userdir/config               The user specific configuration
                                       file.  userdir is given by the
                                       value of the userdir option.
          userdir/cookies              The cookie cache.  userdir is
                                       given by the value of the
                                       userdir option.
          /services/webget/start.html  The default start page.
          /services/webget/help.html   The default help page.

     SOURCE
          /appl/charon/          The main charon source files.
          /appl/lib/ecmascript/  Javascript (ECMA-262) implementation.

     BUGS
          Charon has more than its fair share of real bugs.  The fol-
          lowing list documents the problems that are most likely to
          be encountered.

          Charon implements its table layout as per the algorithm
          described in rfc1942.  This sometimes results in table-based
          documents being laid out differently to other browsers.

          JavaScript is a source of many problems.  Many scripts do
          not specify the language version they employ.  Additionally
          different language versions and browsers imply a different
          set of host objects and classes.  Such differences often
          give rise to syntax or null reference errors.  This whole
          situation places a great burden on the script author to
          write safe and compliant scripts; unfortunately authors are
          rarely aware of this burden!

          The following elements of JavaScript1.1 are not fully imple-
          mented:

          Document.applets, Document.embeds and Document.plugins: Java
          Applets are not supported, the arrays are always empty.

          Document.onunload: The property exists and can be assigned
          to, but the event is never raised.

     Page 6                       Plan 9            (printed 12/22/24)

     CHARON(1)                                               CHARON(1)

          Window.open(): A new window is never opened. If a URL is
          specified for the new window, the current document will be
          replaced with that of the new URL.

          Other annoyances include:

          Window resize forces a complete document reload.

          Frames in a frameset are processed one at a time, not con-
          currently.

          It is not possible to save downloaded data to file.  This is
          particularly annoying for MIME types that charon does not
          support.

          The history list can get confused, especially when following
          links in framesets before the complete frameset has been
          downloaded.

     Page 7                       Plan 9            (printed 12/22/24)