Release History
AWeb 3.6 Beta 8
Major New Features
- HTTP keep-alive support is now enabled for faster page loading, including on HTTPS/TLS connections
- Images are lazy decoded: “below the fold” images are not decoded until they are about to be displayed, reducing early Chip RAM pressure and improving perceived load speed
- Optional enhanced text rendering using ttengine.library for TrueType/OpenType fonts (including anti-aliasing on 15bpp+ screens)
- Full UTF-8 content rendering when using ttengine.library, including improved font matching and diagnostics
- AWeb now requires AmiSSL 5.27 for TLS connections; if missing, the user can be directed to download it from Aminet
- New AWebLog logging system: centralised, timestamped syslog/RFC3164-style logs with reduced noise, and debug output is no longer HTTP-only
- Optional conservative blocking of third-party CSS/JavaScript to avoid modern tracking/advertising code that can trip AWeb's parsers
Improvements
- Cache-Control response handling (
no-store, no-cache, max-age, must-revalidate) improves cache freshness and correctness; POST responses are not written to the disk cache
- Screen title: uses locale.library for localised number formatting, and now includes the full protocol and domain of the current document URL
- Richer status window messages for more event types; with debug enabled, status events are mirrored to the console log
- When ttengine.library is available, standard bitmap fonts are not bulk-preloaded at startup, reducing memory usage
- User-Agent defaults have been updated for better real-world compatibility, and now include the detected AmigaOS version rather than a hardcoded value
- Amiga volume paths entered as locations (e.g. Work:) are normalised into file:/// URLs automatically
- Updated ARexx accessors and preference handling to align preference file structures with the internal prefs model, avoiding legacy corruption cases
- MARQUEE support is temporarily disabled again due to system deadlocks, pending further work
Bug Fixes
- Keep-alive correctness: failed keep-alive requests are retried with a fresh connection; same-domain fetches no longer self-cancel when a prior connection is still open
- HTTPS keep-alive pooling now accounts for pending SSL/TLS read state, preventing TLS desynchronisation on reuse; SSL cleanup/teardown is bounded to avoid shutdown deadlocks
- SSL reads no longer hang indefinitely by driving SSL I/O with bounded WANT_READ/WANT_WRITE loops and timeouts
- gzip + chunked transfer decoding is hardened to avoid premature final-chunk detection and to preserve terminal chunk framing across decompression
- 304 Not Modified revalidation paths on pooled connections no longer race task-break handling
- Disk cache corruption edge cases after fetch errors/reloads are eliminated by preventing stray payload data being appended to cached entries after an error
- External .css and .js assets are cached correctly on disk again
- file:// URL content is no longer copied to the disk cache unnecessarily
- Incremental HTML parsing across split reads (non-advancing loops); added support for the XML apostrophe entity (
'); data: URL parts are tied to the owning document for cleanup; avoids undefined behaviour from libc isspace() on non-ASCII bytes
- <SCRIPT> tag parsing no longer misinterprets HTML-like inner content as markup
- SPAN style state now push/pops correctly so styles do not leak into following content
- CSS engine fixes: corrected font-family application; removed redundant/duplicate style passes; BODY no longer receives incorrect generic selector application; caps added on total rules and per-element selector matches to bound memory use
- Many memory leaks and lifetime bugs identified using MemLog and SegTracker (including allocator deadlocks and JavaScript/XHR shutdown edge cases)
- Image transparency masks use small row-wise reads instead of one huge temporary buffer; very large temporary background bitmaps are refused above a conservative size guard
- HTTP/SSL teardown with keep-alive: correct close order; no socket-stack cleanup while pooled TLS connections are still active
- HTTP: larger request lines and headers; reliable header completion on 304/401; download filenames from Content-Disposition and query strings
- Lazy image decode after iconify; CSS background lazy-decode regression
- JavaScript: Date/Math time, Function.prototype.call, arguments, window.scroll/scrollTo, setTimeout, and onclick after navigation
- Prefs containing AWebPath: rejected as legacy; URL bar only treats strings with
: as bare Amiga paths
- Image decode: Fast RAM first, Chip display copy; no Chip memory pools; PNG plugin P96 guard
- UI: BOOPSI/window and clip-stack leaks; popup menus no longer steal window focus
AWeb 3.6 Alpha 7
Major New Features
- DataType images now render with transparency if picture.datatype is v47 or higher, where also supported by the DataType in question
- New HTML elements: SPAN and experimental MARQUEE
- For the first time on Amiga, XMLHttpRequest support for AJAX-style sites, with ARexx commands to match
- AWeb is now a commodity and can be managed by Exchange (Show/Hide maps to iconify)
- Experimental ttengine.library support for native TrueType/OpenType fonts with anti-aliasing on full-colour screenmodes when the library is installed
- FTP module: FTPS (FTP over TLS, e.g. implicit TLS on port 990); not SFTP
Improvements
- AWeb no longer renders a placeholder image and border if an IMG element source is missing
- Improved viewport width sizing: viewport meta tag as a width hint, plus frame layout so top-level content width tracks the window inner width where appropriate
- Experimental modern toolbar layout (minimal design; Reload also functions as Stop). Not enabled in the public release build.
- Improved font-related CSS: font-family and font-size (size keywords, px, pt, em, ex, %)
- Additional CSS: :hover and :active (correct hover target per element), list-style-image, background-repeat and related background properties, margins on all sides, background-color: transparent, transform: translate, percentage top/left, and @import merging into the active sheet
- Descendant and child selectors use a DIV parse stack so nesting matches the document; stale class/id are cleared when a tag omits them
- External stylesheet readiness is tracked so colours and rules reapply once CSS finishes loading (reduces races with cached or late sheets)
- Layout: fewer unnecessary full-frame repaints when embedded images finish decoding at the same dimensions; document notifies the frame only when new markup was actually consumed
- All binaries rebuilt with relevant SAS/C optimisations
- User-Agent spoof mode emits exactly the string configured in preferences (standard User-Agent: line only, no extra "Spoofed by" suffix)
- HTTP requests send Accept-Language after fixed headers when locale.library provides a usable two-letter or five-character (xx-yy) preference, with a sensible fallback
- The AWeb3 directory is automatically created in ENVARC: if it does not already exist, so preferences save correctly
- BitMap allocations declare BMF_DISPLAYABLE for hardware-accelerated blitting with graphics cards
- PNG AWebPlugin: PNG write functions removed from the build; binary size reduced to about 140KB
Bug Fixes
- Table spacing:
cellspacing="0" no longer overridden by default 2-pixel spacing
- Rendering fixes in bgalign reintegrated from AWeb 3.5
- Buttons activating ARexx scripts could sometimes cause an illegal instruction guru
- HTML and CSS string matching uses utility.library Stricmp()/Strnicmp() instead of stricmp()/strnicmp()
- Content-Length: not expected when chunked encoding is used; gzip downloads compare Content-Length to compressed payload bytes where applicable
- Memory leak when releasing multipart boundary data in the HTTP stack
- MARQUEE animation timer could cause an ISI panic on OS4
- Numerous JavaScript engine performance and stability improvements
- Clipboard operations leaked memory and corrupted the memlist
- HTML text buffer expansion and insertion: null-terminate and copy only valid lengths
- JavaScript robustness: Escape() %XX uses unsigned bytes; RegExp match slicing; instanceof walks prototype chain; shift operators initialized; try/catch safe if catch binding missing; string lexer correct for \xNN escapes; reserved words (switch, try/catch/finally, instanceof) recognized
- Object/JavaScript setup: correct Amessage field dispatch; Jallowgc() during setup to avoid GC during fragile initialization (reduces deadlocks)
AWeb 3.6 Alpha 6
Major New Features
- More CSS properties are now supported, including padding, margin, position, top, left, right, bottom, border, vertical-align, text-align, and combined table cell styles
- CSS colors can now be specified in either hex swatch format or by name
- HTTP Range (RFC 7233) support added for fast automatic resume of incomplete requests, should mean fewer page assets failing to load
- In order to support Multipart MIME viewing in the future, AWeb now parses cid: and data: URL types for inline binary attachments
- view-source: in the URL bar is now supported, allowing you to view any URL as plain text (but note this does not work correctly with 30x redirects)
- Mozilla bookmarks files can now be imported into your AWeb Hotlist
- ICO format images such as any favicon.ico are converted on the fly into regular BMP format images and then passed to DataTypes to render
- AWeb now comes with an ARexx script for easily enabling the Protoweb.org proxy - browse the web as if it's 1999!
Improvements
- Connections that are still loading for the current page will immediately be terminated and a new connection will be made when navigating to a new page or reloading
- That same improved connection cancellation now also applies to the Cancel All button in the Network Status window and the Cancel Load menu item and ARexx commands
- When viewing the directory view of the root file:/// it will show volume size and filesystem type rather than the normal directory listing
- All binaries are now built with 68020 optimization enabled
- All locale catalogs from AWeb 3.4 are now included in the distribution
- Default User-Agent strings for spoofing now reflect a variety of real world browsers
- Added new default MIME types for files common in 2025, and set all MIME types to lowercase as specified in RFC 6838
- The PNG AWebPlugin has been updated to use libpng 1.6.43 (but note it is therefore a much bigger binary now)
- Rebuilt with latest AmiSSL 5.25 SDK
- AWeb will now prefer CHACHA20-POLY1305 ciphers over AES-GCM for better performance on Amiga
- Added support for mousewheel scrolling on OS4 and OS3.2
Bug Fixes
- Fixed refactored SSL_CTX management with shared SSL_CTX and proper reference counting
- Fixed loading cached external CSS stylesheets would fail if server returned a 304 Not Modified response
- Fixed redirects for URLs with query strings now work properly - they are marked as volatile to force refresh since query strings change the URL's intent
- Fixed if external CSS stylesheets were in utf-8 format, the parser would get stuck in an infinite loop
- Fixed long standing bug from AWeb 3.4 where wrong struct member was used to reply to the WBStartup ReplyPort, which could cause unpredictable crashes on launch or DSI errors on OS4
- Fixed when Background images were turned off, the background color and body styles were also not applied
- Fixed BUTTON elements now render their inner text as their label instead of being blank or using the object's value property
- Fixed the GIF AWebPlugin now builds a working binary again that doesn't crash on initialization
- Fixed after integrating the AWeb 3.5 changes for bgalign, child elements no longer rendered their own backgrounds when there was a body background image
- Fixed multiple CSS loading issues with cached files, duplicate merging, and invalid buffer returns
- Fixed CSS rendering issues including link color leaking, background color application, and whitespace normalization in <pre> blocks
- Fixed critical race condition in amissl.c that caused intermittent crashes
- Fixed connection reset error reporting when all data has been received
- Fixed memory leaks and corruption in CSS module
AWeb 3.6 Alpha 5
Major New Features
- Experimental inline CSS support for a subset of CSS1 and CSS2 properties, see the CSS Test Page
- Experimental link rel="stylesheet" support for external CSS stylesheets, see the link rel stylesheet Test Page
- XHTML 1.0 support for parsing and rendering XHTML documents, enforcing strict parsing mode when XHTML is detected and implementing CDATA sections
- Experimental support for the gemini:// and spartan:// protocols, new gopher-like networks, and the gemtext markup language they use
- Introducing AWebView a new standalone HTML and Markdown file viewer built using the LOCALONLY build configuration
CSS Features
- Text properties: font-family, font-size, font-style, font-weight, color, text-align, text-decoration, text-transform, white-space
- Layout properties: padding, margin (1-4 value syntax), position, top, left
- Background properties: background-color, background-image
- Border properties: border-style, border-color (parsing only, rendering limited)
- List properties: list-style-type for UL and OL elements
- Line height: line-height property parsing
- CSS Grid: Basic grid layout properties parsing (display: grid, grid-gap, grid-template-columns, grid positioning)
- External stylesheets with CSS selector matching (element, class, ID selectors)
Improvements
- PNG AWebPlugin updated further to version 1.0.69 (latest 1.0.x branch) after it was updated to 1.0.0 by integrating the changes from AWeb 3.5
- PNG AWebPlugin now uses the same zlib as the main AWeb program instead of the previous ancient version
- utf-8 support now handles mapping some 3-byte and 4-byte characters to Latin-1
- TLS connections now safely fail immediately instead of prompting the user to allow unsecure fallback, if secure socket cannot be established
- Further enhancement to the HTTP/1.1 keep-alive support but still disabled in this alpha release build
- Added support for intuition.library 46 Iconify gadget on browser windows
- Right mouse button is now the default input for the context menu instead of middle button
- Entity names are now case-insensitive (both ä and Ä work)
Bug Fixes
- Fixed infinite loops in CSS parser by ensuring parser pointer always advances, even on parse errors
- Fixed CSS length value parsing to properly handle decimal values (.5em, 1.5em) and percentage values (150%)
- Fixed CSS link color styles from affecting body text color
- Fixed CDATA parsing in XHTML documents
- Fixed parsing self-closing tags on malformed websites (e.g. amigaworld.net)
- Fixed null pointer access during argument parsing on launch which failed silently except on OS4 where it throws a DSI error
- Fixed issue where if using a custom CONFIG argument, AWeb now creates the directory for it if it doesn't already exist before saving into it
- Fixed TLS connections are properly cleaned up in all circumstances and AmiSSL libraries are only closed on application exit
- Fixed improvements to chunked encoding handling mean connections to google no longer trigger binary download. Google still doesn't work but at least you'll see their errors pages now
- Added AmiSSLBase validation checks ahead of macro calls to prevent DSI errors sometimes seen on OS4
AWeb 3.6 Alpha 4
New Features
- about.aweblib module now includes about:plugins which will list all loaded AWebPlugin and AWebLib modules
- The file:// protocol now supports browsing and navigating directories as well as viewing files unless a file "index.html" is present in the directory. From here you can view individual files and navigate into subdirectories
- Additionally, if you navigate to the file:/// root URL you will see a list of all mounted volumes
- Added new command line option (and corresponding ToolType) "NOSTARTUP/S". If this is passed, the startup.aweblib plugin will not be run even if it exists and therefore no splash screen will show
- The Documentation now includes test pages for HTML3.2, HTML4.0 and JavaScript 1.1 to make it easy to see exactly how AWeb handles these standards
- theoldnet.com is now a default bookmark and the proxy function has been tested with theoldnet.com's http proxy service for browsing old versions of websites
- To use theoldnet.com proxy, enter "http://theoldnet.com:1996" as the proxy host and port in the Network settings, and set web.archive.org as an exception
- Experimental HTTP/1.1 keep-alive support has been added to the codebase but is not enabled in this build as it requires further testing, and appears to be slower not faster as expected
Improvements
- HTTPS connections now deny use of weak ciphers and TLS versions below 1.2 and also check CN and SAN name matches, with wildcard support, chain validation and Server Name Indication (SNI)
- FONT tags now search first for the named font if it exists on the system, then for the mapped alternative, then for the fallback font for the requested family
- The new about:fonts page now illustrates exactly how AWeb will render the defacto standard web safe fonts on your system with the fonts you have installed
- FORM elements such as INPUT, TEXTAREA, SELECT and BUTTON now render using the current font of the element they are contained within, rather than the system font
Bug Fixes
- Entities are now always rendered as actual characters regardless of the HTML compatibility mode
- Proxy settings are now actually saved - this was completely missing in the original AWeb 3.4 source code
- Broken ReadBytes function in the PNG plugin could cause an infinite loop loading assets from HTTPS connections, now fixed following the JPEG version pattern
AWeb 3.6 Alpha 3
New Features
- On larger screen resolutions (above 640x512) new browser windows will default to a more sensible size rather than full screen
- Closing the last browser window from the close gadget will no longer prompt with an 'Are you sure you want to quit?' requester unless there are transfers still in progress
- AWeb will now use system provided contextual mouse pointers if intuition.library v47 or greater is available, instead of its own custom pointers, for links, text cursors, popup menus and resize handles
- Implemented better content type detection for text formats and image formats from web servers that send unknown or octet-stream content type headers, which should reduce the likelihood of being forced to save a file the browser should be able to render
- HAIKU/S is now a valid alternative to the VVIIV/S (5-7-5.. get it?) command line option "easter egg"
- All remaining Latin-1 XML entities are now supported
- Markdown documents loaded both from files or http(s) URLs are rendered as HTML on the fly
- about: URL protocol now provides a default home page, an about:blank, a fonts test page, and a version information page
- Added a default custom config name (AWeb36a3) to the AWeb icon when launching from Workbench in order to avoid conflict with any preexisting AWeb settings in your ENV:AWeb3 directory
- TLS/SSL connections are now much more secure by default - rejecting anything other than TLS 1.2 and TLS 1.3 and only using strong ciphers
- HTTPS connections now properly verify that the hostname matches the certificate following RFC 6125
Bug Fixes
- Removed an unnecessary additional init SSL function call which may have caused some instability with HTTPS connections
- AWeb really will automatically create the AWeb: assign now if it doesn't already exist, and remove it on exit if it created it. This was broken in 3.6 Alpha 2
- Large files are sometimes truncated, any debugging output on this issue in particular is gratefully received
Security & Stability Improvements
- Task Userdata Race Condition: Fixed critical race condition where multiple concurrent HTTPS connections in the same task could overwrite each other's userdata, causing certificate callbacks to access wrong or freed pointers. Changed from Settaskuserdata() to SSL_set_ex_data()/SSL_get_ex_data() for per-connection context storage
- Certificate Callback Memory Safety: Fixed certificate callback accessing freed memory by clearing ex_data and callback before freeing SSL objects/contexts, and added comprehensive pointer validation
- Buffer Security: Replaced ERR_error_string() with ERR_error_string_n() for safe buffer handling, preventing buffer overruns
- Hostname Validation: Added RFC 1035-compliant length validation for hostnames and certificate names (max 253 chars) with explicit null termination for all string buffers
- SSL Context Cleanup: Fixed SSL context callback cleanup - clear certificate callback before freeing SSL context to prevent callbacks from being called after context is freed
- Pointer Validation: Added comprehensive pointer validation before SSL_connect() to prevent crashes from invalid or corrupted SSL objects
- TLS 1.3 Support: Added TLS 1.3 cipher suites support for modern servers (e.g., github.com)
AWeb 3.6 Alpha 2 - 2025-11-16
Major Changes
- UI Framework: Migrated from ClassAct classes and headers to ReAction equivalents
- Graphics System: Refactored to use P96 instead of Cybergraphics
- SSL Implementation: Completely rewritten to use AmiSSL v5.2
- Build System: Updated smakefiles to build against NDK3.2 and ToolKit SDK
- Executable: Renamed core executable from 'AWeb-II' to simply 'AWeb'
- HTTP/HTTPS Code Refactoring: HTTP module completely rewritten to use HTTP/1.1, gzip and chunked encodings
- Socket timeouts: Socket connections can be arbitrarily terminated at any time and now timeout after 15 seconds of inactivity
User Interface & Display
- Default background color for HTML rendering changed to white
- Images no longer render a border when associated with an <a> link
- Default fonts changed to use the Amiga's default scalable fonts (CGTimes.font, LetterGothic.font) for better rendering quality out of the box, with improved font fallback mechanism to gracefully fall back to bitmap fonts (times.font, courier.font) if scalable fonts are not available, with final fallback to topaz.font
- Added comprehensive web-safe font aliases mapping common web fonts to Amiga scalable fonts:
- Serif fonts: Times New Roman, Times, serif, Georgia, Palatino, Garamond, Book Antiqua andCGTimes.font
- Sans-serif fonts: Arial, Helvetica, sans-serif, Verdana, Trebuchet MS, Tahoma, Lucida Sans Unicode, Comic Sans MS, Impact and CGTriumvirate.font
- Monospace fonts: Courier New, Courier, monospace, Lucida Console, Consolas and LetterGothic.font
Networking & Security
- HTTP client almost completely rewritten to support HTTP 1.1 and added new encodings including chunked and/or gzip and work with Roadshow version of bsdsocket.library headers and AmiSSL 5.2. Includes far more error and bounds checking than original version
- zlib statically linked version included to support gzip encoded http streams. Future plan is to refactor this to use z.library
- Added extensive debugging output for http and amissl modules for developer builds
- Cookies now accepted by default, avoiding requester overload, and they're no longer called 'Netscape Cookies'
Text & Character Support
- Added XML character entities support - many new XML character entities such as • and ’ are now supported and mapped to best Latin-1 equivalent
- Added stopgap UTF-8 conversion to prevent common 'spurious glyphs' issues
- Simple addition to parser to ensure HTML documents starting with XML and DOCTYPE headers don't render spurious text
Configuration & Defaults
- Default search engine changed to BoingSearch.com. Also works with FrogFind.com
- Updated default bookmarks and default search engine is now boingsearch.com
- Updated default search and navigation URLs to websites relevant in 2025, and optimised default settings
- Disk cache location defaults to T:
- No need to run an installer script, AWeb will run from anywhere, though if the plugins are not in the same directory it won't find them unless they are in the AWeb: assign directory
- Command line arguments: Any URL arguments passed on the command line that are missing the URL protocol are assumed to be local files to open instead using the file:// protocol
Build & Development
- Builds again with SAS/C! Does not require gcc, native or cross-compiler to build
- reaction.lib incorporated into build because this is needed to autoopen gradientslider.gadget since NDK3.2 is missing the protos
- The AWebCfg build in the original 3.4 APL release was broken in several ways. Now fixed
- Some refactoring of ezlists and image plugins to build correctly
- Corrected many english grammar issues in default labels and restored buildable catalogs
- Partial update of documentation to reflect reality of 2025
Plugin Updates
- JFIF plugin now uses T: for its temporary working directory location
Critical Bug Fixes
- Memory Corruption: Fixed memory corruption in non-chunked gzip processing where buffer was allocated with first block size but subsequent blocks overflowed the buffer
- Infinite Loop: Fixed infinite loop in chunked+gzip processing when waiting for more data
- Gzip Cleanup: Fixed duplicate gzip processing that could cause corruption or truncation
- Socket Timeouts: Re-enabled and fixed socket timeout handling (SO_RCVTIMEO/SO_SNDTIMEO) to prevent SSL_connect() from hanging indefinitely
- Socket Library Cleanup: Fixed race condition where socketbase library was closed while SSL operations were still in progress
- SSL Connection Handshake: Fixed blocking SSL_connect() implementation to match earlier working version, with fallback to non-blocking I/O only when needed
- Thread-Safe Logging: Implemented thread-safe debug logging using semaphore protection to prevent log corruption from concurrent tasks
- Use-After-Free Bugs: Fixed critical race conditions where Assl objects were freed while still in use by concurrent tasks
- Per-Connection Semaphores: Added per-connection
use_sema semaphore to protect SSL object access vs cleanup operations
- SSL Object Lifecycle: Fixed Assl object lifecycle - Assl_cleanup() no longer frees the struct itself (caller must free after cleanup)
- SSL Context Creation: Fixed concurrent SSL context creation race conditions with global
ssl_init_sema semaphore
- Per-Task AmiSSL Initialization: Fixed per-task AmiSSL initialization - each task now correctly calls InitAmiSSL() and OPENSSL_init_ssl()
- SocketBase Race Conditions: Fixed race condition with global SocketBase pointer by storing per-connection socketbase in Assl struct
- Buffer Validation: Added buffer pointer and length validation in Assl_read() and Assl_write() to prevent overrun
- SSL Error Handling: Enhanced SSL error handling with detailed errno reporting for SSL_ERROR_SYSCALL cases
- SNI (Server Name Indication): Fixed SNI hostname setting using SSL_set_tlsext_host_name() for proper virtual host support
- Non-Blocking I/O: Implemented proper non-blocking SSL handshake with WaitSelect() timeout handling for servers that require it
- Task Exit Handling: Added Checktaskbreak() calls to allow graceful exit during blocking SSL operations
- Opensocket() Validation: Added socketbase validation throughout Opensocket() to detect and handle cases where library is closed during SSL initialization
- Build warnings: Fixed many Library typecast warnings and other build warnings due to type mismatches
- Locale targets: Fixed broken locale/cfglocale object targets in smakefile
- AWeb: Assign: Set default assign path to simply "AWeb:" and now creates the assign automatically on launch if it does not exist, in which case it also removes it on exit. If assign already exists before launch, it does not remove it.
Removed Features
- INet225 Support: Disabled INet225 support - removed all support for socket.library, use a bsdsocket.library instead
- Miami Support: Disabled MiamiSSL support - although Miami supports bsdsocket.library, miamissl.library and miami.library are no longer supported which probably stops Miami's bsdsocket.library working properly too
- CyberGraphX support: Removed (for now anyway) - this build uses P96 instead which should make it more viable under emulation and on OS4
AWeb 3.5 lineage: features integrated into AWeb 3.6
HTTP, redirects, cache, and downloads
- Improved relocation and redirect handling (301 vs 302/307; temporary moves not cached like permanent; smoother logins and "continue" links)
- ETag response storage and
If-None-Match revalidation
- Referer set correctly when following redirects
Content-Disposition parsing for suggested save filenames
HTML, layout, and entities
- INS and DEL elements
- Table layout fixes and bgalign (background alignment on tables)
- Nested tables:
HEIGHT attribute bug fix
- Background image redraw optimisation (fewer full-document redraws when backgrounds change)
- Registered trademark:
® entity interpreted and rendered
JavaScript (engine and document integration)
- JavaScript 1.5 / ECMA-262 3rd edition language level, including RegExp using the PCRE library
- Dynamic garbage collection during script execution (not only at script termination)
- JavaScript source file caching fix (empty cache entries)
onload / onunload after a <SCRIPT> block in <HEAD>
- Tolerant mode: inline event handlers may use
javascript:... URL form
Image onerror handling fixed
- JavaScript
Image objects no longer overwrite unrelated document properties
- DOM-style handlers:
onclick on IMG and OBJECT
- Fastidious and Omnivorous script error modes
Forms, cookies, and chrome
- INPUT and BUTTON (and related controls) usable outside
<FORM> as document GUI with script events
- Cookie non-RFC mode: leading-dot domain (
.host) matches host
- Image context menu: Copy Image URL to Clipboard
- Mousewheel scrolling for OS4
Printing, saving, and Workbench
- Printing:
printer.device v44+ deep bitmaps without requiring TurboPrint only
- Saved files: DefIcons-style icon via
GetDiskObjectNew() when available
Plugins, images, and protocols
- AWebPlugin
startup.c: missing FreeMem fix (all bundled plugins)
- PNG, JFIF, and GIF plugins: 3.5-era engine updates incorporated (PNG subsequently upgraded further to libpng 1.6.x in 3.6)
- Internal GIF decoder: transparency bug fix
- Transparent animated GIFs: background updates when page background handling changed
- Gopher aweblib: 3.5 improvements (types, URL schemes, link generation)
Graphics and stability
- Background bitmap handling uses supported APIs (e.g.
GetBitMapAttrs() / correct bitmap access) so backgrounds are not corrupted on OS4
- Enforcer-related cleanups carried over from 3.5 notes in
body.c, defprefs.c, jcomp.c
- Rendering fixes for bgalign reintegrated
AWeb 3.5
All new features, bug fixes and optimisations from the various releases of AWeb 3.5 have been reintegrated into AWeb 3.6 except where they have been superseded by new features in AWeb 3.6:
- Toolbar layout changes - AWeb 3.6 uses the same toolbar layout as AWeb 3.4 and has an experimental modern toolbar layout as well
- Charset conversion plugin - replaced by built-in UTF-8 support in AWeb 3.6
- Borderless/kiosk window mode - not necessary in 2026
- Multiple MIME entries per type in prefs - not necessary in 2026
- Double-buffered page rendering - uses too much memory for little gain
- FTP plugin changes in AWeb 3.5 - rejected after failing testing
- Arbitrary plugin/library "version 35" renumbering - AWeb 3.6 continues the AWeb 3.4 style instead
- AmiSSL 3 support - replaced by all-new AmiSSL 5.27 support
- gzip http stream support from AWeb 3.5 was not used - instead an all-new HTTP/1.1 implementation with keep-alive and Range (RFC 7233) is new in AWeb 3.6
Known Issues
General Issues
- Setting the disk cache to 0 or a very small size will prevent images from rendering - carried over from original AWeb
- The documentation is still being updated for release 3.6
- Markdown rendering still has some visual glitches
- AWebPlugins are not enabled by default; recent DataTypes are usually faster
- Feedback is welcome on default settings and programs
- Note that view-source: does not work as you might expect with 30x redirects
- With ttengine.library, text size and justification may not always be correct
OS4 Specific Issues
AWeb 3.6 Alpha 7 is the first 3.6 release with no known major issues specific to OS4.
Mousewheel scrolling is now supported again
HTTPS via AmiSSL is now fully functional
Background scroll corruption tied to bgalign is fixed
Known DSI and ISI errors on window open are now fixed
The following issues are specific to running the 3.6 Beta 8 68K build on OS4:
- OS4's built-in DataTypes may not support transparency, so transparent images can look wrong
- The publicly available OS4 build of TTEngine seems to be non functional at this time. But OS4 natively supports TrueType fonts and will use them if available without needing ttengine.library
Back to
index.