What is Wayfarer? Wayfarer is the latest web browser for MorphOS, based on a recent branch of WebKit. Features Based on a Jan-2024 WebKitGTK tree, supports most modern websites Audio playback including HLS Video playback including MediaSource support Built-in AdBlock Plus files support Download and Bookmarks managers Encryption of passwords via cryptostorage.library Support for custom / self-signed server certificates Written in ObjectiveC and C++ HISTORY: Version 7.8 Fixed a regression in OpenURL support Improved handling of Open File and OpenURL to allow loading of files with non-ascii characters Version 7.7 Fixed WebAnimations support Fixed several issues with the internal refresh loop Fixed taking screenshots of scrolled-down pages file:// handling fixes Updated libxml2 Version 7.6 Fixed a bug in Youtube steering A/V synchronization fixes Improved handling of audio stream switching when playing media in MSE mode Version 7.5 Fixed HLS Live video playback (live Youtube streams on mobile frontend) Fixed reported crashes Version 7.4 Reworked the Settings UI It's now possible to use different browser settings for the 1st path component of an url Added a special Youtube setting that can cause direct loads of www.youtube.com to redirect to mobile or tv pages Optimizations in how per-url settings are handled internally Fixed a race in video player Fixed a regression where resolving a mimetype from file extension for remote resources would get overriden to an incorrect mimetype Fixed reported crashes Version 7.3 Rebased to WebKitGTK 2.42.5 Version 7.2 Rebased to WebKitGTK 2.42.4 Adjusted JSString maximum length limit Version 7.1 Rebased to WebKitGTK 2.42.3 Fixed a network thread deadlock when resuming downloads Changed the '+' button to always adds tabs at the end URL bar would stay empty when moving a tab to a new window, fixed Selection redraw issues fixed Added Save Screenshot to the Debug menu Worked around and fixed reported crashes Version 7.0 Rebased to WebKitGTK 2.42.2 Improved clipboard support Fixed the saved passwords editor Version 6.6 Rebased to WebKitGTK 2.40.5 DOM Timer throttling may now increase over time when enabled in settings Re-configured DOM timer intervals to improve performance on some websites Added a workaround for PayPal rendering issues Version 6.5 Updated User-Agent code, Safari is now the default user-agent on new installs Fixed a crash if ahi.device has failed to open Fixed a problem with AdBlock code blocking all requests if loading of its data has failed Version 6.4 Fixed a race condition in audio playback initialization Version 6.3 Rewritten the audio decoder to use AHI's device interface Fixed a bug in the MSE media player where a video that's played till the end could not be replayed Fixed a regression when closing tabs Fixed a problem with media duration not being correctly reported to the HTMLMediaElement, leading to things like YT's seeking not working or Bandcamp not skipping to the next track Checks if Core web fonts are missing and runs WebFontsInstaller when prompted Version 6.2 Added AdBlocker settings with three different data sets Improved search vs URL detection in the URL string Added "Paste and Go" to the URL string context menu New tabs are now being added after the active tab (can be changed in Settings/Interface) Added a Font Code Path setting and changed the default to Simple on slower machines. This was previously forced to Complex to allow ligature handling, but could lead to very poor performance when editing text, etc Fine-tuned redraw handling while editing text Updated EasyList AdBlocker data Updated libwebp to address its various recent CVEs Updated sqlite, nghttp2, curl and psl libraries Version 6.1 Downloads and network cache writes now use asyncio.library Adjusted SSL ciphers to try to default to ones that are faster on PowerPC (prefer CHACHA20_POLY1305_SHA256 over AES) Checks whether lo0 interface is enabled and warns if not (Wayfarer is unable to resolve DNS addresses with loopback interface disabled) Improved error handling in auto-updater Version 6.0 Rebased to WebKitGTK 2.40.2 Implemented Bookmarks filtering Password manager now stores port numbers too, making it possible to have multiple services requiring login handled on the same domain (as a side effect, all old passwords have been promoted to port 443/https) Added a popup if audio initialization has failed Added a way to manually add passwords in the Password Settings Youtube MSE playback improvements Fixed HTTP authentication popup saving credentials for a wrong host in case of redirection Fixed a redraw issue when opening print panel while page is still loading Fixed to default mimeType to text/html if missing in response from server Fixed a couple of minor memory leaks Updated libnix and libpng16 both with additional Altivec optimizations Updated libxml2, libwebp Version 5.5 Wayfarer will now auto-update on quit when using the Check for updates functionality Fixed a bug in Downloads window which wouldn't always allow resuming a failed download Enabled mjpeg support in ffmpeg (enables audio playback in JellyFin) Updated cURL Version 5.4 Fixed a resource leak when a download was initiated with a click on a link to a file, which would eventually exhaust allowed connections to a host User Scripts can now be bundled with a CSS file Updated cURL Implemented an (advanced) setting to tweak HTTP/2 support in order to workaround issues with some servers and cURL Updated bundled youtube scripts. See the FAQ for instructions on how to update scripts Version 5.3 Fixed file:/// handling to resolve issues with relative file schema URIs Added a workaround for a NetStack bug in MorphOS 3.14-3.18 that potentially trashes memory via bogus errno pointer Updated cURL and sqlite Version 5.2 Enabled Async Clipboard APIs in WebKit (fixes github.com being very slow) Added a Youtube userscript that removes gradients from the player area Updated easylist adblock data Version 5.1 Fixed a MediaSource player crash if the incoming chunk has a higher # of streams than the current chunk Download As asl's path can now be stored separately from the standard download path Avoid redraws when WebKit calls a scroll function despite offsets not changing Improved tab key navigation Hotkey tweaks Version 5.0 Rebased to WebKitGTK 2.38.5 Added a setting to place the cookies SQL database in RAM and synchronize it on quit/periodically to reduce disk I/O Added a User Scripts manager UI Bookmarks editor UI improvements Version 4.9 Added a workaround for YT changing quality mid-stream by simply feeding the player video data in different format instead of using the MSE APIs to do this Added a workaround for MSE initialization race with seeking for streams not starting at pos=0 Updated cURL and nghttp2 libraries Updated EasyList Version 4.8 Cherrypicked a cURL fix for socks proxies failing Version 4.7 Removed the requirement of latest openssl3.libary in order to run Wayfarer Update check will also optionally check if openssl3.library is latest Localization strings cosmetics Version 4.6 Fixed a race condition in OffscreenCanvas leading to use after free Fixed the 'Import HAR' button in the Web Inspector Drag image handling improvements Implemented drag images for links Changed the cURL thread priority Updated cURL, png, webp and sqlite libraries Version 4.5 Updated libcURL to fix issues with HTTP/2 Version 4.4 Massive performance gains in decoding of large file images Loading progress bar colour can now be configured in Interface settings Cherrypicked OffscreenCanvas fixes from latest WebKit sources Added handling of very long filenames when finalizing a download Fixed a bad free call in the media decoder Disabled some stray debug Version 4.3 Implemented the full WebKit WebInspector Deprecated Eruda Enabled anchor's download attribute Implemented download support for data blobs and data URLs Fixed BigInt64 types in TypedArrays Optimized some TypedArray operations Version 4.2 Rebased to WebKitGTK 2.36.8 Updated cURL and other libs Version 4.1 Rebased to WebKitGTK 2.36.7 Updated EasyList AdBlocker database Updated cURL and other libs Version 4.0 Rebased to WebKitGTK 2.36.3 HLS stream qualities also accessible from the Media menu Updated cURL and other libs Version 3.9 Implemented ClearKey DRM support for HLS media streams Implemented HLS stream quality switching accessible from the media popup Added configurable touch events emulation (think Youtube-Mobile seeking slider) Refactored the HLS player to allow MPEG-TS playback Live HLS streams now start playing closer to the current time Improved stream end position reporting to get some streaming services correctly skip to next stream after playing ads Updated libcurl Version 3.8 Implemented basic drag & drop of web elements within a page Fixed scrollbar positions after switching between tabs Version 3.7 Rewritten MediaSource player state machines to improve seeking, end-of-stream handling Fixed a bug that caused a/v decoders to keep increasing the read-ahead decoded frame buffers infinitely (causing out-of-memory sooner or later during playback) Fixed a memory leak in a/v de-multiplexer Refactored the HLS player to enable seeking in terminated playlists Reduced the memory footprint of MediaSource playback Fixed video position reporting for MediaStreams w/o an audio track Rewritten the right mouse button handling Improved the media popup, added stream information Fixed input handling in fullscreen mode Updated OpenJPEG Version 3.6 Added code to skip redraws of web contents entirely when Wayfarer is on an invisible screen Added an Amazon Fire Stick user agent to settings, works well with youtube.com/tv Removed 'Skip All Frames' loop filter option Fixed a possible crash in the MediaSource player Checks if a file exists and asks to overwrite in Download As.. requester Version 3.5 Fixed a mis-compilation regression in JSCore Version 3.4 Fixed a regression in HTTP AUTH handling Version 3.3 HTTP HEAD requests to resources would poison the Curl disk cache with 0-byte files, leading to websites failing to load/work correctly Minor speed improvements in JavaScriptCore and timing code Improved refresh speeds when typing text on websites showing animated contents as you type The HLS player will iterate through all streams of the master playlist now if a selected sub playlist fails to play Re-worked post-seeking playback restart to avoid auto-start of streams that start playback from non-0 position Fixed audio buffer under-run handling Invisible video streams fixed not to enable overlay Improved invalid certificate error handling UI flows Disabled touch events support Version 3.2 Implemented WOFF/WOFF2 fonts support Improved ligatures support Worked around a possible crash in JavaScript Fixed the Polish catalog's encoding Version 3.1 Fixed a crash on exiting fullscreen mode Version 3.0 Updated WebKit code base to the WebKitGTK 2.34.6 release Added a Media menu with playback controls hotkeys Added cookie/cache cleaning menu options Password save requester pops up on more sites now No longer writes partial files into the Curl cache Launcher removes PROGDIR:ICU since it is no longer required Fixed downloads from itch.io Improved network error handling in the media player Cleaned up console log output into dprintf Fixed the base URL for HLS media chunks (fixes cnn.com, etc) Version 2.9 Implemented Proxy settings Added right mouse button override settings that make it possible to open the default context menu on websites that try to block it Fixed several edge cases where Wayfarer's url bar wouldn't correctly show page's url Added code to handle "ContentDisposition: attachment" to trigger downloading instead of displaying the target url Fixed 'Reload' to work after a failed page load Downloaded filename had 1st letter truncated in some cases due to a bug in header parsing Enabled USE_NEW_THEME in WebKit to change how some controls are drawn Default CSS tweaks to prevent invisible checkboxes/radio buttons Version 2.8 Altivec code paths for a lot of WebAudio routines, optimized sin/cos computations in StereoPanner Fast code paths for feColorMatrix (approximately 6 times faster than WebCore code) Recompiled to fix a bug with longcalls in GCC, which caused it to miscompile the code in some cases leading to crashes Improved the ContentDisposition header parser in WebKit Detects expired certificates in the certificate viewer Added a way to delete saved self-signed certificates, disabled the ability to 'trust' invalid/expired (not self signed) certificates Fixed a regression in HTTP AUTH handling that caused downloads from password protected pages to fail Version 2.7 Worked around random crashes that may have been observed in 2.6 Significantly improved performance of various threading checks across WebKit Worked around an issue in objc runtime that caused Wayfarer to stall during download notifications. Do note that notifications must be reconfigured in Magic Beacon as some keywords have changed. Improved handling of websites that constatly request http auth credentials instead of caching the state Version 2.6 Implemented Web Notifications and Download notifications via Magic Beacon. See the FAQ for more information Added browser tab pinning (via tab context menu). Disables tab close button and hotkeys Use Clipboard unit 1 for HTML paste operations like Odyssey does Linked against OpenSSL 3.0 Fixed a WebAudio crash on bahn.de Enabled Intersection Observer (fixes github.com) Fixed an issue which caused some of the settings to display wrong state when opening settings for a given host directly from the menu Version 2.5 Fixed a severe memory leak in JavaScriptCore, up to 5MB+ were being leaked per one page load in case of websites using SQL/IDB Fixed to terminate Audio Worklet threads (which has also leaked a JavaScript VM) on pages using WebAudio Implemented a warning (yellow shield icon) for mixed HTTPS/HTTP website content Updated OpenSSL to 1.1.1l Fixed a bug in Curl backend / networking that caused WebSockets to fail Removed MorphOS 3.14 threading workarounds Lowered WebAudio audio thread priority Fixed Download Image As... to popup a requester Disabled Download As window's menu Fixed double-clicking on downloaded items in Downloads view where Download As was used Version 2.4 Implemented Download As... WebAudio support for sample playback (while Google Translate text to speech works just fine, most online MOD players will be too slow) Implemented a Media flags popup Improved SSL certificate verification to avoid cases where a website wouldn't load due to cert not matching the hostname, but cert viewer window would assume the cert is fine and would not present buttons allowing to ignore/save cert Worked around an issue that prevented further popups from showing up if the main window was resized while a popup was up Reload button state wasn't properly refreshed when switching between tabs Fixed a crash and status bar issues when browsing page history for cached pages Certificate viewer may now be localized Version 2.3 Reimplemented fullscreen support to display contents on a separate screen Implemented HLS stream A/V synchronization for streams that contain no timestamps MediaSource playback improvements, including workarounds for broken websites Implemented code to stall the video pipeline when audio stalls Fixed a crash in ffmpeg h264 decoder Version 2.2 Fixed duration handling in the Media Source player Disabled focus frame on some elements since it wasn't always redrawn correctly Fixed a low-memory related crash in the PNG decoder Tweaked ICU data checks to try and detect broken installations Added a workaround for Wayfarer not shutting down (may still be up to 30s) Fixed setting media playback variables after prefs were reset Version 2.1 ICU files will now be loaded from PROGDIR if missing in MOSSYS Updated EasyList adblocker data Fixed wheel scrolling in subframes Fixed a race condition in HLS player Fixed a widely reported crash in H264 decoding Fixed a potential crash in bookmarks code Version 2.0 Rebased to latest stable WebKitGTK (2.32.1) Implemented Dark Mode Fixed a crash in HLS video playback Worked around an issue preventing sites from loading, etc after quit confirmation requester got cancelled Fixed webkit message log functionality that crashed if the resulting message contained formatting sequences Changed rendering of elements like checkmarks that were missing on some websites Out-of-RAM crashes no longer bring up the Send Bugreport messagebox Version 1.21 Fixed a crash on player exit Fixed an issue where player settings weren't correctly applied when loading pages Fixed an issue where wrong player settings were used in some code paths Fixed a problem with quitting Wayfarer Version 1.20 Mitigated a problem with TLS that would often cause crashes when Wayfarer was used alongside Iris Addressed some potential ffmpeg abort() calls as seen in bugreported crashes Fixed to trim long titles in Tabs menu Version 1.19 Implemented video playback statistics (Youtube's Stats for Nerds will now show decoded frame counts, etc) Fixes in HLS Live playback on YT Reduced frame drops when playing video Fixed to correctly display rotated photos Version 1.18 Fixed to update page's url when traversing history Updated ffmpeg to 4.4 Improved player's handling of bogus stream data Partially mitigated a player memory leak Version 1.17 Media playback settings are now per-host Removed the media playback popup requester mode Various improvements in the player pipeline, including improved HLS Version 1.16 Disables screensaver while playing video Fixed a crash when shutting down the video decoder Version 1.15 Enabled Media playback on PowerPC CPUs without Altivec Improved audio seeking Fixed switching between playing multiple streams A lot of MediaSource player improvements, fixes in quality change, seeking, re-play Fixed playback of HLS videos Version 1.14 Fixed a regression in cURL code Version 1.13 HLS support can now be disabled in settings Fixed a regression in cURL code Fixed a crash in media playback initialization Minor player improvements Disabled media playback support for CPUs other than the G4 and G5 family Version 1.12 Overlay based video playback, requires updated cgxvideo.library (included in the archive) Experimental MediaSource support Added a Media settings tab Improved HLS audio playback Implemented basic fullscreen (window) mode Implement redraw throttling to prevent pages from taking up all the CPU time for redraws Updated to the latest FFMpeg4 Updated to latest OpenSSL and cURL Fixed Wayfarer being stuck on quit forever Fixed issues with invalid download sizes for large files or with unknown size Fixed Tab->Move to New Window... Fixed an bug where chunked file uploads would fail Improved resource cleanup on page hibernation Version 1.11 Optimized Curl cache warm-up to be several magnitudes faster Don't popup download requesters for webpage components that have no valid mime type and aren't the main url itself Updated EasyList filter data Optimized not to attempt loading media at all if the page settings are set to block it Reworked localizable string formats to use @key@ instead of %d, etc to avoid crashes with incorrect translations Improved handling of custom/unsupported protocols Fixed Offline Storage settings UI Fixed Recently closed tabs menu Fixed a networking crash Fixed a memtrash in the loader code when closing Wayfarer on its own screen Version 1.10 Fixed a potential crash in AHI code Version 1.9 Implemented an audio player, including audio in video files Codec coverage basically the same as in Odyssey, with Opus and MPEG-TS support added Implemented HLS chunk-based media playback for many live radio streams Configurable popup on media load, with download option Fixed a case where mouse pointer would no longer change above links after scrolling with mmb Fixed not to mangle the file path after resuming a download with name prefix set Fixed to disable menus in several popup windows Fixed to ensure the Sessions folder is always present Worked around a race condition in MUI where it would crash trying to show a help bubble for a tab being closed at the same time Version 1.8 Added jpeg2k support via OpenJPEG Reports browser locale based on system locales Added a Translation service support w/ settings Added session quicksave hotkeys Improved wheel scrolling and mouse cursor code Adjusted page/wheel scrolling deltas to be in-line with WebCore's suggested values Scrolling page content is now possible with mmb pressed Esc key deactivates the WebKit container, instead of being swallowed Improved the cURL thread loop Various UI improvements in the Printing Mode Improved shutdown times Linked against latest OpenSSL 1.1.1i and cURL 7.74.0 Fixed RMB to not select word under cursor if there already is a selection in editable components Fixed pasting text into editors handling paste via JS/DOM Events Fixed a crash in FavIcon loader Fixed a crash when logging into AppleID Fixed a crash when closing a window with tabs that are pending website load Fixed early startup issues where OpenURL could send OPEN commands before Wayfarer fully initializes Fixed a race condition in curl cache handling Fixed a use-after-free when closing a window or loading a session Worked around a bug causing some localized strings to be empty Download name scheme is stored when a download begins, so subsequent settings changes won't affect it Page reload actually skips curl caches now Command keys are no longer eaten by webkit Loader now catches all ObjC terminal errors Version 1.7 Implemented an optional online version check Added a Safari/iPad spoofing option Tweaked to save settings periodically after edits Added Local Storage and Application Cache settings Enabled Application Cache Worked around servers that compress file downloads Fixed a crash when opening host settings from menu Version 1.6 Fully WSIWYG printing system Spell checking support Undo/Redo support Networking thread optimized to use less CPU Built with optimized OpenSSL for faster HTTPS connections Added tons of help bubbles across the app Added an option to log console messages to ramdebug Added quit requester options to the Settings tab Added a setting to popup downloads tab on new downloads Tries to use current tab for Downloads/Settings/Bookmarks if empty Added an Error column to the download list Added a context menu to the download list (copy path/url) Download URL updates on redirects 'Download' Context menu will now use OpenURL for ftp/mailto links Fixed resuming of downloads after error Fixed to handle multiselection in the download list Improved the Stop/Reload button; Reload forces a full reload (disregarding disk caches) Fixed ctrl key handling in the text editor Fixed a nasty 5 random-address bytes memtrash at the end of JS Promise handling that was the main source of instability on pages like PayPal, ebay, etc Fixed a use-after-free in WTF's file system support Fixed a crash when editing quicklink submenus Prevents re-opening screen when loading a session Disabled a bunch of memtrashing code paths in audio processing support Fixed an out-of-mem crash in WebCore's JPEG decoder Fixed a crash when adding quicklinks Fixed size overflow on >4GB downloads Fixed a potential browser crash after a hibernation Version 1.5 Wayfarer now starts via a loader app Added an early loading splash window, shutdown splash window (via loader) Crashes in Wayfarer are caught by the loader which cleans up the windows and as many resources as possible, usually allowing a restart of the application Implemented a way to send bugreports directly after a crash, including debug information and the most recently visited URLs Added Eruda web inspector integration It's now possible to select a session to load on application start or automatically re-store the previous state Sessions store the active tab Enabled the Intersection Observer in WebCore Reduced the number of SQL file writes Separate interpolation setting for image links Quicklink buttons respect favicon settings, update on favicon changes Added a file requester to the downloads path in Settings Added quit confirmation requester settings Fixed navigating to wayfarer:// links without explicitly doing it from the menu Fixed CPU clock detection code Fixed a double-start issue where the 2nd instance would not quit Fixed a potential crash in favicon code Fixed right shift key handling in some hotkeys Fixed tab button backgrounds Fixed ghost effects after closing tabs on some MUI configurations Version 1.4 Fixed an issue where adding a link to bookmarks via menu would try to insert it to a wrong tree node in a Bookmarks tab Rolled back some compilation setting tweaks since they were causing issues on some G4 cpus Version 1.3 Minor performance improvements, mostly on G5 Fixed lists in settings displaying no text, sometimes crashing Fixed url string background offsets Activate an exiting tab instead of adding a new one for downloads/bookmarks/settings Fixed tab buttons becoming invisible or corrupt on some configs Fixed an issue where adding a link to quick links via menu would display them in a wrong location in the Bookmarks tab Fixed quicklink buttons to respect releasing mouse of of button bounds Version 1.2 Implemented Quick Links Implemented favicons Enabled support for WebP images Updated libcurl Fixed blob: support Fixed file name encoding and cookie issues in downloads Fixed Bookmarks menus to show more depth levels Fixed a crash on exit caused by the password autofill manager Fixed a crash on exit in WebCore's fileapi Fixed Copy image URL context menu function Version 1.1 Implemented Search Engines settings UI Implemented a 'Do not ask to save passwords' setting Space+Shift does reverse scroll now Updated to latest OpenSSL and nghttp2 Fixed handling of IDN/Unicode chars typed into the URL bar Fixed loading of files from the Curl cache, which in some cases resulted in images failing to decode (or decode as text) Fixed SCREENTOFRONT Fixed the default CSS file load path (caused default radios and checkmarks to be missing on some sites) Fixed an issue with sticky border scrollers Fixed not to leak the volume name when uploading files straight from the volume root path Implemented workarounds for OpenURL callers that don't pass correctly escaped URIs (like YAM) Updated the OWB importer Version 1.0 Initial public release for MorphOS 3.14