Short:        Modern Amiga Web Browser with JS
Uploader:     biuro@cdlabel.info (Pawel Nowak)
Author:       Juen/APX+NAH+R3D (Pawel Nowak)
Type:         comm/www
Version:      0.8.6
Architecture: m68k-amigaos

Amelinium 0.8.6 - Web browser for classic Amiga
================================================

Support author on patreon: 
https://www.patreon.com/user?u=3166416

Always new version here: http://juen.in

Early development release. Expect bugs. 

Compatibility first, speed later. Work in progress.

Requirements:
- bsdsocket.library v4+ (works with IMPBOX bsdsocket.library!)
- AmiSSL v5 for HTTPS support (without that still http:// sites works fine)

Included builds:
- Amelinium        - 68000 (works on all Amigas, slowest)
- Amelinium_020    - 68020+
- Amelinium_040    - 68040+
- Amelinium_060    - 68060+ (fastest, recommended for RTG)
- Amelinium_low    - AmigaOS 1.3 (Kickstart 34+), no images
- Amelinium_020_JS - 68020+ with built-in JavaScript (experimental)
- Amelinium_040_JS - 68040+ with built-in JavaScript (experimental)
- Amelinium_060_JS - 68060+ with built-in JavaScript (experimental)

Known issues:
- Some CSS2.1 features not yet implemented 
- Many CSS3 features not yet implemented 
- JavaScript: experimental (in the _JS builds) - DOM scripting and 
  some of jQuery work; heavy frameworks (e.g. Google's Closure) still not
- Many pages may render incorrectly
- Slow on 68000, usable on 68030+ (faster from cache)

Keyboard shortcuts:
- Up/Down       - scroll
- Shift+Up/Down - page scroll
- Space         - page down
- Backspace     - page up
- Home/End      - top / bottom of page
- Amiga = / -   - zoom in / out (also on the Page menu)
- Esc           - stop loading / close
- F5            - reload
- Amiga-C/X/V   - copy / cut / paste the URL

Acknowledgments:
  ttengine.library by Grzegorz Kraszewski (krashan@teleinfo.pb.bialystok.pl) -
    high-quality TrueType rendering for AmigaOS / MorphOS / OS4.
    http://amiga.pl/ttengine - used with author's permission.
  Liberation Fonts (Red Hat, SIL OFL 1.1) - metric-compatible Arial /
    Times / Courier replacements.
  DejaVu Sans (DejaVu Fonts project, Bitstream Vera license) - used
    when CSS names Verdana or Tahoma; matches their wider metrics
    where Liberation Sans (Arial-metric) would be too narrow.
  AmiSSL by Oliver Roberts - TLS for HTTPS.
  stb_image (public domain) - PNG/GIF decoding.
  TJpgDec by ChaN (BSD-style, 2021) - tiny JPEG decoder with
    scale-on-decode (1/2, 1/4, 1/8). http://elm-chan.org/fsw/tjpgd/
    Replaces stb_image for JPEG - same input, half the RAM and
    much faster on oversized photo thumbnails.
  Amiga Core Fonts for the Web (Amiga Information Center, 2000) -
    bitmap fallback when TT is unavailable.

History:
  0.8.6 - Fixed a freeze of the whole machine when the window was
          resized two or three times in a row.

          When a new version is out, the update window can now
          install it for you: it downloads exactly the build you
          are running, saves it over the program file (the old one
          is kept as .old) and restarts the browser.

          Buttons and links that do their work through JavaScript
          - "javascript:" links and handlers that return false, like
          the ppa.pl news and forum vote "+" - now do just that
          instead of jumping to a wrong page or the front page. Such
          AJAX actions also send the request header servers expect,
          so the vote actually registers.

  0.8.5 - Downloads now open their own window (like a classic
          browser) with a progress bar, speed and time remaining,
          plus Pause/Resume and Cancel - and the browser stays
          usable while they run. Each file gets its own window, a
          finished download closes itself, and closing the browser
          while downloads are still going leaves them running until
          they finish or you cancel them. The download window
          reopens where you last left it, and the last folder you
          saved to is remembered across launches.
		  
          Settings -> "Save mode as default" remembers the screen
          mode you're on (or Workbench).

          Fixed a crash (yellow guru) on some sites whose
          stylesheets were in the disk cache - e.g. DuckDuckGo.

		  Save and download dialogs now work with EITHER asl.library
		  or reqtools.library

          Big forms (e.g. cookie-consent pages like Google's) now
          submit correctly instead of failing with a server error -
          the form data is no longer truncated, and when a page has
          two forms with the same target (Accept / Reject) only the
          clicked form's fields are sent.
		  
          More JavaScript-heavy sites now work: dynamically
          added <script> tags run, real XMLHttpRequest and
          fetch(), and a wider set of browser APIs, so modern
          single-page-app code loads instead of stalling.
  0.8.4 - Right-click context menu (Chrome-style pop-up) with
          actions for whatever is under the pointer: over a link
          - Copy link address, Save link as; over an image - Save
          image, Copy image address, Open image; in a text field
          - Cut, Copy, Paste; plus Back, Forward, Reload, Save
          page and add/remove bookmark. Right-click empty page
          area and the normal Amiga menu bar opens instead.
          Copy, cut and paste in the address bar (right-Amiga
          C/X/V, or the new Edit menu) - share a URL, or paste
          one in. Icon ToolTypes: set URL, PROXYHOST, PROXYPORT,
          AGA, WB or DEBUG from the program icon's Information
          window - no Shell needed. Home and End jump to the top
          and bottom of the page. Amiga +/- zooms the page in and
          out (Page menu too). The Stop button now reacts while a
          page is rendering or pulling many stylesheets, not only
          between fetches. New "Firefox (Linux)" choice in the
          Agent menu, to look like a desktop browser to sites that
          turn Amiga browsers away.
  0.8.3 - Grab the scroll knob and drag it - the page now scrolls
          live while you hold the mouse, instead of only jumping
          when you release. Save Page As reopens in the last
          drawer you saved to (now with asl.library too, not just
          ReqTools).
  0.8.2 - Frames! Classic <frameset>/<frame> pages now render
          properly. New Stop button (next to Go) aborts a slow page. 
		  The whole interface - title bar, menus,
          toolbar, address and status bars - now uses your system
          default font and grows to fit its size (page content
          keeps its own fonts). The HTTP proxy now fetches page
          images too, not just the HTML. Pages with large
          stylesheets keep their look on reload. Much more
          JavaScript runs - jQuery 3.x now parses - plus
          URLSearchParams, Image(), FontFace, insertAdjacentHTML
          and location/navigator fixes. Table-layout click fix.
          Cookie-consent banners now display and respond correctly.
          Faster scrolling on content-heavy pages, and table cell
          backgrounds no longer spill past their blocks.
  0.8.1 - HTTP Basic Auth: pages behind .htpasswd now prompt for a
          login/password. Much smoother screen updates - JavaScript
          changes, checkbox/radio clicks and typing in text areas
          redraw only what changed instead of flashing the whole page.
          Links inside JavaScript menus (e.g. a mobile "log in") now
          follow through. Tables with align=center are centred.
  0.8.0 - Optional built-in JavaScript (NodeAmiga engine), experimental.
          DOM scripting, events, timers, jQuery; cookies and localStorage
          from script. See jsdemo.html for a live tour.
  0.7.6 - Big CSS layout-conformance pass.
		  Client-side image maps - clickable <area> regions. 
		  Smoother image downscaling on truecolor RTG. 
          Non-AGA fix: an own screen below 8 bitplanes.
  0.7.5 - Big RTG overhaul, every depth now renders correctly:
          exact text colour and images/backgrounds on 8-bit and
          16-bit RTG (including alpha icons and tiled/strip
          backgrounds), and crisp TTF text on 16-bit (rendered via
          TTEngine coverage maps composited over the real
          background - no more glitched word backgrounds). On-the-fly
          screen-mode switch redraws the whole page at the new depth;
          light toolbar forced on 8-bit. Forms: POST with an empty
          action="" keeps the page's query string.
          Disk image cache fixes: no more recoverable-guru memory
          crash on chipset/AGA (interleaved-bitmap planes were
          saved/loaded past their buffer); cached images now carry
          the screen depth in their key, so reopening a page at a
          different colour depth re-fetches instead of showing
          garbled pictures.
  0.7.4 - TJpgDec replaces stb_image for JPEG
          with scale-on-decode (1/2, 1/4, 1/8). Parsed CSS
          disk cache (cp_<crc>) - warm visits skip the full
          cascade pass. Lazy off-screen image decode - only
          images that land in the viewport are decoded; the
          rest stay encoded until you scroll them in. Raw
          image bytes cached on disk (r_<crc>) so F5 / next
          visit skips the network for off-screen images.
          Stage-2 fast path: keep parsed DOM + computed
          styles from stage 1, re-run only layout when image
          dims become known. RTG gradient one-shot
          WritePixelArray, eviction skipped on RTG.
          Fixes around ASL/ReqTools save dialogs.
          Much faster style resolution on big pages.
  0.7.3 - Alpha-mask cache (per-image, native size).
          Warm-visit skips stage-1 paint
          when manifest hits. Menu text uses DETAILPEN
          explicitly (was washed-out gray).
		  Bugfixes! Find now works again...
          Menu reorganization: Search, Amiga, Debug, Test.
  0.7.2 - Light GUI option, triple-slot keep-alive image
          cache, TTF metrics consistency fix across
          TTF toggle and page nav and more
  0.7.1 - Fix: TTF rendering on Workbench screen at startup
  0.7.0 - TTF, GUI, many CSS3 features, and many CSS2.1
          bugfixes and also new features, and also
		  new bugs :)
  0.6.0 - Real flexbox (all directions, wrap, grow/shrink,
          justify/align/order), real CSS Grid (tracks, gap,
          template-areas), :before/:after content +
          counter() / counter-reset, linear-gradient
          backgrounds (truecolor RTG, banded chipset),
          var() + CSS custom properties, :first-letter,
          @media px/em/rem, border-collapse Sec.17.6.2.1
          conflict resolution, <col width>, table-layout:
          fixed, HTML5 auto-tbody injection, <del>/<ins>/
          <mark>, cookie Max-Age/Expires, vh/vw, font:
          numeric weight + lighter, ::lang(), extended
          list-style-type, fixes for shrink-to-fit autotables,
          inside-marker spacing, font-size quantization
  0.5.3 - Local pages from disk (Work:..., PROGDIR:...,
          file://...), binary file check (executables /
          archives go to Save-As instead of showing),
          bookmarks sidebar, prefs file with per-mode
          window position/size memory, AmigaOS 4 mouse
          wheel
  0.5.2 - Save-As goes where you pick, position:fixed CB,
          @media em units, auto-refresh etc...
  0.5.1 - Download fix, pointer, faster draw
  0.5.0 - HTML forms, basic table/flex/grid
          layout, and many more...
  0.4.0 - More CSS, some CSS3, better fonts,
          real shadows, rounds, transparent svg and many many more
  0.3.0 - More CSS 2.1 compatibility, Proxy etc...
