Short: Web browser with JS + HTML mail client Uploader: biuro@cdlabel.info (Pawel Nowak) Author: Juen/APX+NAH+R3D (Pawel Nowak) Type: comm/www Version: 1.2.9 Architecture: m68k-amigaos; ppc-amigaos; ppc-morphos; ppc-powerup; ppc-warpup; i386-aros Amelinium 1.2.9 - web browser AND mail client for classic Amiga =============================================================== Support me: http://juen.in/support Always new version here: http://juen.in A browser AND a mail client. The archive holds two programs that share one rendering engine, so a message with HTML and CSS looks the same in your inbox as a page does in the browser: Amelinium - the web browser Emalinium - the mail client (POP3 / IMAP / SMTP). It is not a plain-text reader: a message is laid out by the SAME engine as a web page. Requirements: - bsdsocket.library v4+ (works with IMPBOX bsdsocket.library!) - AmiSSL v5 for HTTPS support (without that still http:// sites works fine) - On AROS you need NEITHER of the two: the AROS builds carry their own TCP through the system and TLS 1.2 / 1.3 built into the executable, so HTTPS works with nothing else installed. - On AmigaOS 4 (PowerPC) it is the same as on 68k: bsdsocket from the system and AmiSSL v5 for HTTPS. - On a PPC card in a classic Amiga (Blizzard PPC / CyberStorm PPC under OS 3.x) the PowerUP (_PUP) and WarpOS (_WOS) builds carry their own TLS 1.2 / 1.3, like the AROS ones, so HTTPS needs no AmiSSL. The PowerUP builds set up their own stack. The WarpOS builds cannot, and need a BIGGER STACK than the shell gives by default: stack 600000 (from Shell, once per shell) STACK=600000 (in the icon's Tool Types, for Workbench) With less than 256 KB a WarpOS build says so and exits instead of stopping halfway through a deep page. The AROS builds (all four: i386, i386 ABI v0, x86_64 and aarch64) need NO extra library at all - not AmiSSL, and nothing to copy into LIBS:. Only the AROS system itself and its bsdsocket.library. Their TLS (1.2 and 1.3) is BUILT INTO the executable, so the download is one file and there is no library drawer to install. Why: AmiSSL has no AROS release at all. What ships for Amiga is m68k HUNK code, and an AROS system loads ELF - so the choice was a built-in TLS or no https at all on that machine. Third-party code in the AROS and PPC-card builds: Mbed TLS 3.6.7 (https://www.trustedfirmware.org/projects/mbed-tls/) is compiled into the AROS, PowerUP (_PUP) and WarpOS (_WOS) executables, unmodified. It is dual-licensed Apache-2.0 OR GPL-2.0-or-later - you may take it under either. The full text is in mbedtls-LICENSE.txt next to this readme. The 68k and AmigaOS 4 builds do not contain it; they use AmiSSL. !! HTTPS is encrypted but the server's CERTIFICATE IS NOT VERIFIED - i do not check who is on the other end. Treat it as protection against passive eavesdropping, not against an attacker who can redirect your traffic. The same applies to Emalinium's mail passwords. Builds: - Amelinium - 68000 (works on all Amigas, slowest) - Amelinium_020 - 68020+ - Amelinium_040 - 68040 WITH FPU (not 68EC040/68LC040) - Amelinium_060 - 68060 WITH FPU, fastest (not 68EC060/68LC060) - Amelinium_low - AmigaOS 1.3 (Kickstart 34+). No images, no downloads and NO MENU BAR - so no settings, bookmarks, tabs or About. - Amelinium_020_JS - 68020+ with built-in JavaScript - Amelinium_040_JS - 68040 WITH FPU, with built-in JavaScript - Amelinium_060_JS - 68060 WITH FPU, with built-in JavaScript - Emalinium - the mail client (any 68020+) The 040 and 060 builds use the maths coprocessor, so they need a full 68040 or 68060. On a 68EC040, 68LC040, 68EC060 or 68LC060 - the versions sold without a coprocessor - use Amelinium_020 or Amelinium_020_JS, which never use one. This only changes how fast JavaScript runs; page layout uses no floating point at all. Like any 68040/68060 program, they also need the CPU's own 68040.library or 68060.library in LIBS: - it supplies the instructions the chip leaves to software. - Amelinium_AROS_i386 - AROS on i386 (32-bit x86 PC), with JavaScript - Amelinium_AROS_x86_64 - AROS on x86_64 (64-bit PC, ABI v11), with JavaScript - Amelinium_AROS_aarch64 - AROS on 64-bit ARM (Raspberry Pi 3/4/5), with JavaScript - Amelinium_AROS_i386_v0 - AROS ABI v0 on i386 - the classic 32-bit line from axrt.org, with JavaScript. ABI v0 and ABI v1 are DIFFERENT systems: take the file that matches the AROS you installed. - Emalinium_AROS_i386 - the mail client on AROS i386 (ABI v1) - Emalinium_AROS_x86_64 - the mail client on AROS x86_64 (ABI v11) - Emalinium_AROS_aarch64 - the mail client on AROS 64-bit ARM - Emalinium_AROS_i386_v0 - the mail client on AROS ABI v0 (i386) - Amelinium_OS4 - AmigaOS 4.x on PowerPC - Emalinium_OS4 - the mail client on AmigaOS 4.x (PowerPC) - Amelinium_PUP - PowerUP: a PPC card in a classic Amiga (Blizzard PPC / CyberStorm PPC under OS 3.x). With JavaScript and HTTPS. Needs no AmiSSL - TLS is built in. - Emalinium_PUP - the mail client on the same PowerUP cards - Amelinium_MOS - MorphOS (PowerPC), with JavaScript and HTTPS. Needs no AmiSSL - TLS is built in. This is the FIRST release of this target, so it may not be perfect yet. - Emalinium_MOS - the mail client on MorphOS, also a first release - Amelinium_WOS - WarpOS on the same PPC cards (Blizzard PPC / CyberStorm PPC under OS 3.x). With JavaScript and HTTPS. Needs no AmiSSL - TLS is built in. This is the FIRST release of this target, so it may not be perfect yet. - Emalinium_WOS - the mail client on WarpOS, also a first release Known issues: - JavaScript: in the _JS builds. DOM scripting works, and so do jQuery, Prototype, script.aculo.us and Lightbox - including a jQuery packed with the Dean Edwards packer. Heavy frameworks (e.g. Google's Closure) still do not. A page whose scripts do a great deal of work will be slow: the interpreter is not fast, and that is the honest limit. - No : a page that draws with it shows nothing there. - rotate() / skew() / matrix() are parsed but not drawn (translate() and scale() are) - Some pages may still render incorrectly - please report them - Slow on 68000, usable on 68030+ (faster from cache) If the browser will not start after an update: The update keeps the previous program next to it as .old, so rename that back over and you are running the old version again. Up to 1.1.1 an update download that stalled could be installed even though it was incomplete, which leaves a file the system cannot load; from 1.1.2 the download is checked and a broken one is refused. Command line: Amelinium [URL] [options] -screen WxH[xD] open an own screen of that size, skipping the mode requester - e.g. `-screen 1024x768x24` on an RTG card or `-screen 1280x512` on AGA. Picks the deepest mode the size offers when D is left out. This is the quickest way to a usable window on a big screen. -aga 640x512 8-bitplane PAL screen, no requester -wb open on the Workbench screen -js run page scripts everywhere, ignoring the per-site list. By default scripts are OFF until you allow a site, because one advertising bundle can exhaust the machine's memory. -ttf use TrueType fonts, downloading them first if they are not in PROGDIR:ttfonts yet. Same as the `ttf` toolbar button, but usable from a script or an icon. -proxy-host H -proxy-port P send everything through an HTTP proxy The same settings are available from the icon's Tool Types: URL, PROXYHOST, PROXYPORT, AGA, WB. Keyboard shortcuts: - Up/Down - scroll - Shift+Up/Down - page scroll - Space - page down - Backspace - page up - PageUp/PageDown - page up / down (PC-style keyboards) - Home/End - top / bottom of page - Amiga = / - - zoom in / out (also on the Page menu) - Esc - stop loading / stop a runaway script / close - F5 - reload - Amiga-C/X/V - copy / cut / paste: the form field you are typing in, the text you selected on the page, or the URL bar - Amiga-T / W - new tab / close tab (also on the Tabs menu) - Ctrl+click - open link in a background tab - Middle-click - open link in a background tab (3-button mouse) - Shift+click - open link in a new tab and go there - Amiga-B / F - back / forward - Amiga-H - home page - Amiga-L - jump to the address bar (selects what is there, so you can just type the next address) - Amiga-G - go to the address in the bar - Amiga-S - save this page - Amiga-/ - find on page - Amiga-. - random page - Amiga-? - about Pictures: GIF, JPEG, PNG, BMP and ICO are decoded on the Amiga, by the browser itself. Decoded pictures are cached on disk, so a second visit paints them without decoding again. !! SVG, WebP and AVIF FILES cannot be decoded here - there is no code on this machine that reads them. (An written directly into the page is different: Amelinium draws that itself and nothing leaves the machine.) Those files go out to a PUBLIC RASTERISER (images.weserv.nl), which converts them to PNG and sends that back. The address of the picture therefore leaves your machine and reaches a third party, which is worth knowing: it is the price of seeing an icon set that a modern site ships as SVG. Everything else is fetched straight from the site. Turning images off in the Settings menu stops both. Video: In the 040 and 060 builds and in the AROS, AmigaOS 4 and PPC-card builds, a
now moves the content after it below the floating element, as it did in the browsers these pages were written for - Widths above 200% are honoured. A block asking for 600% came out three times too narrow, which broke wide sliders and carousels - align on an image submit button now floats it, like every other browser - vertical-align written in a stylesheet now works for super, sub, text-top and text-bottom; table cells set to baseline line their text up on one baseline instead of sitting at the top - Percentage widths now get their exact share of the container instead of always rounding down. Three columns at 33.333% fill a 999px container exactly, where before they lost three pixels - for blocks, floats and inline-blocks alike, and for columns sized with box-sizing: border-box. Two 50% columns in an odd-width container still sit side by side, and a min-width or max-width on such a column is no longer overridden - Cookies a site marks SameSite=Strict or SameSite=Lax are no longer sent when another site's page pulls that site's images or stylesheets. They still go out normally when you open the site yourself, and when the site loads its own files - A page's images, stylesheets and scripts now name that page as the referrer. They used to name the page you were on before it - Search menu: lite.duckduckgo.com added - A failed connection now says WHAT went wrong - the reply timed out, the connection was reset, the server closed without answering, the request could not be sent - instead of a single "Connection Failed" for every case. Going Back or switching tabs also names the HTTP status, and says so plainly when the browser itself refused (a redirect to https on a build without AmiSSL) - Start page redesigned 1.2.1 - Fixed pages laid out with frames that set both rows and columns: they came up as a blank page, because only one of the two was read - A page that asks to reload itself after a number of seconds now waits that long. Weather, webcam and departure boards reloaded at once, over and over, and were unusable - Dropping a file icon from Workbench onto the browser window opens it. Works when the browser runs on the Workbench screen - Emalinium shows the body of messages that used to read "(No viewable content)": those whose text sits behind more than 32 attachments, and those with an unusually long MIME boundary - Emalinium: a long subject no longer runs under the message list scroll bar - Fixed sites that stopped loading with "cannot connect" and no error code once enough cookies had piled up - Google News and Pouet were reported. The request grew past its buffer and never finished; deleting the cookies drawer used to be the only cure - Fixed opening files on a volume whose name contains a space, such as the standard "Ram Disk:". They were taken for web addresses 1.2.0 - Added Emalinium, the mail client, for all four AROS targets - Fixed addresses containing a space: they went to the server unencoded, so a server answered 400 where every other browser gets 200. It affects every request the browser makes - pages, images, style sheets and downloads - Fixed typing national characters into form fields. Letters such as a, o and a with diacritics did nothing at all, and pasting them did nothing either, so a password with one in it could not be entered - Fixed pages that hide or show their own parts with a style sheet built by a script - Fixed the message list in Emalinium: it has its own scroll bar and grows with the window, instead of showing a handful of messages. Its arrows are no longer painted over by the list itself, and the counter in the header stays empty until a mailbox is open - Dragging a selection across a page no longer repaints the whole page, so it flickers far less on a long one - Improved layout in several places, so pages come out closer to what other browsers show: lengths in em now follow the element's own font size, fixed-width text keeps its smaller default size, flexible boxes shrink by the rule, and old pages get the font size a browser gives them in tables - Added demozoo.org to the WWW menu and removed thedaemons.space, which no longer answers - Fixed the text size on pages that set it on the root element twice, once through :root and once through html. The whole page was drawn a couple of points too small - Fixed grids whose column widths are written with calc() or left to the browser: their contents were laid out one under another, each across the full width, instead of side by side - Fixed line spacing where a page asks for the font's own spacing, and made !important work for that property - Fixed rules with several parts, such as ".header nav li a", applying to links that had nothing to do with that header - they were styled as if they belonged to the menu - Fixed pages built with Tailwind: one escaped character in a class name made every nested rule in that style sheet dead - Fixed background images given directly on an element (style="background- image:url(...)"). They were never loaded, so a banner showed as empty space - Fixed
, , , , <listing> and <optgroup>, which were unknown to the layout and ran into the surrounding text - Fixed hidden form fields taking up room in flexible boxes 1.1.9 - Text on a page can be selected by dragging the mouse over it, and the copy shortcut puts it on the clipboard. A site that forbids selection in its style sheet is obeyed, exactly as in any other browser - Text in Greek, Cyrillic or Polish no longer disappears on pages that use a downloaded font. Such fonts are usually cut down to the Latin letters, and the characters they lack were being drawn as nothing, leaving what looked like huge gaps between words. A missing character now comes from a built-in face, and only that character changes - the rest of the word keeps the page's own font - View Source no longer redraws the whole text every time the mouse moves over its window, and dragging the scroll bar's knob no longer fights with the pointer 1.1.8 - Web fonts are used when a site offers them as TrueType. Icon fonts - Font Awesome, Bootstrap Icons, Material Icons - draw real symbols now instead of empty boxes, because they place their glyphs at private code points that only the site's own font carries. Each font is fetched once into the ttfonts drawer and reused on later visits - Fixed downloads coming out corrupt from servers that send a file in chunks. The chunk headers were being written into the file, so it was a few dozen bytes too long and would not open. Affects every download, not just fonts - Shopping baskets and other content hidden behind <noscript> no longer disappear when scripts are on. A shop that hides its cart for script-less visitors was hiding it from us as well - Accepting a cookie notice is remembered between sessions. The date the page hands us was written in a format we misread as the year 12, so every such cookie expired the moment the browser closed - View Source shows the whole document: it has a scroll bar now, and long lines wrap instead of being cut at the window edge. A minified page is one very long line, so previously only its first screenful was reachable - The document's default font is now serif, as in every desktop browser. Pages that name no font of their own - most of the older web - were being laid out too wide - A byte order mark at the start of a style sheet no longer swallows the sheet's first rule. Today that rule is usually the one carrying a theme's colours, sizes and spacing, so the whole page was affected - Tags written inside an HTML comment are no longer obeyed. A commented-out style block was still being applied and a commented-out style sheet still fetched - Text no longer breaks after a single character on pages that size a column in "ch" units, which we were reading as plain pixels - align="justify" works on paragraphs, and a space at the end of a line no longer takes up room - which also nudged centred and right-aligned lines into place - Margins and padding on the <html> element now inset the page, and <hr align=...> is placed where it belongs - A list inside a list no longer leaves a gap under it, and line heights match the browser on serif faces - Old markup of the form <p>...<b><h3>...</h3></b> keeps the bold inside the heading, the way every browser reconstructs it - A rule written for a part of a widget we do not draw (::file-selector- button, ::placeholder and the like) is dropped instead of being applied to the element itself - A horizontal margin on a link or span no longer pushes what follows onto the next line, which was making rows twice as tall - Boxes positioned with left+right or top+bottom take their margins into account, and a box sized by top+bottom now has that height before its content is laid out - so icons centred inside it land in the middle - A flex item keeps its contents' margins to itself, so a column no longer comes out short by the margin of whatever is inside it - Characters whose UTF-8 form ends in the byte A0 - the dagger, several currency signs, and some icon-font symbols - are drawn as one character again instead of three - system-ui is recognised as a font family, so sheets that ask for the system face get a sans-serif one - Emalinium saves every attachment of a message, one after another, and works on a machine that has only reqtools.library - both saving an attachment and adding one to a message you are writing - A file requester opened with no remembered drawer starts in PROGDIR: instead of nowhere in particular, which was misbehaving on AROS - Guarded against a crash on AROS aarch64 when picking a screen mode: the number of colours is now read from the screen instead of assumed 1.1.7 - Uploading a picture to a site that does it with its own scripts now works end to end - postimages.org was refusing every attempt with "Automated uploads are not allowed via the website" because we left out headers that every browser sends (Origin, Referer and the three Sec-Fetch-* ones), and a file picker opened from a script now opens the requester as it should - Fixed downloading release files from GitHub. The file list inside "Assets" is fetched only when you expand it, which we did not do at all, and the signed download address that follows was being cut short, so the download came back as an error - Fixed buttons on sites built with Bootstrap being greyed out and refusing clicks everywhere, and text fields inside a button-and-field group being one character wide - Fixed a crash on AROS 64-bit, reported when opening github.com. AROS builds also get a much bigger stack, which they never did before - A <textarea> that is too small for its text now scrolls and shows a scrollbar instead of locking up - Pages now receive every kind of event they listen for - mouse movement, key presses, the wheel, pointer events - where before only a click and a mousedown ever reached them. Scripts waiting on the rest no longer hang - The busy pointer no longer stays up after a click that did nothing - Fixed Date.now() and new Date().getTime() disagreeing by the whole timezone offset - two hours here - The start page is now short and links to this readme, locally and online - Added postimages.org to the WWW menu 1.1.6 - Text in a form field can now be SELECTED - with the mouse (click puts the cursor where you clicked, drag selects), with Shift+arrows, and the selection is what Cut and Copy take. Editor toolbars on forums finally do what they say: the bold/italic buttons wrap what you highlighted - Fixed the text in a field jumping a few pixels, and sometimes reflowing, the moment you clicked into it. A field is now drawn the same way whether it has the cursor or not - Fixed uploading a file from a form without JavaScript. <input type=file> used to be an ordinary text field: you could type in it, and what you typed was sent instead of the file - Uploads that go through a page's own scripts work too (FileReader, FormData, XMLHttpRequest). A file's contents never pass through the script engine - they go from disk straight into the request - so a photo does not have to fit in memory twice - A download can now be RESUMED. An interrupted transfer keeps what it already has, the download window gains a Resume button, and the unfinished entry stays on the downloads list with its own Resume link - Fixed the download list and the about page losing their scroll position when switching tabs, going Back or pressing F5 - Fixed one failed page load making every later page load without images or stylesheets until the browser was restarted - Fixed prefs.txt written by a Windows text editor losing its first setting - Notepad adds a marker at the start of the file, and that marker was read as part of the setting's name - Font size keywords (small, large, x-large and the rest) came out one step too small, and did not follow the font family. Dates, bylines and captions on news sites were a size too small and wrapped where they should not - Font sizes given in viewport units (1.4vw and the like) meant one pixel - the text was there but invisible - Fixed percentage sizes on a box positioned outside the flow measuring against the box itself instead of against what contains it - ::before / ::after with no content no longer leave an empty box behind, which used to push list text onto the next line - Fixed rules of the "> * + *" shape - the usual way to space sections and lists today - applying everywhere on the page instead of to one level - Fixed a rule naming three or more parents (".a .b .c .d") losing the middle one, so it applied far more widely than written - on wikipedia every table of contents entry was affected - Fixed a parent named by tag ("header .thing") being dropped when the element itself had a class, so the rule applied to every ".thing" on the page - Stylesheets are now merged in document order when a <style> block sits between two <link>s, which is how a page decides which of two equal rules wins - A stylesheet linked for a narrow screen (media="(max-width:699px)") is no longer applied on a wide one - pages that ship a separate mobile sheet were getting both - Fixed a rule that names a parent further up ("#main ul > li > a") not applying when anything sat between that parent and the rest of the chain - Fixed columns coming out too wide, and a picture with a percentage size limit freezing its column at full width - Fixed a box laid out as a table (display:table) with padding of its own coming out wider than the room it had - the padding was added outside the box, so everything under it was too wide as well - box-sizing:border-box is now honoured on a stated table width, which is what the reset nearly every modern page uses asks for - :open is understood, so a closed <dialog> or <details> stays closed - calc(), min(), max() and clamp() work as a grid track size, and var() in grid-template-columns now reaches the layout - such grids used to collapse to a single column - Grid tracks written as minmax() are bounded by the space actually free - Fixed line-height smaller than the font being raised to the font's height - the standard way of collapsing a row you are not meant to see - flex-grow inside a column now works; before, items with "flex: 1" in a column came out with no height at all - Fixed max-height and min-height on an image in a block, and a percentage max-width letting an image shrink - the ordinary "img { max-width: 100% }" of every modern page - Several sizing fixes for boxes measured inside flex and grid: a box's own min-width/max-width now bounds what it asks its parent for - Fixed element.title reading back empty on every element of every page - option.text can be assigned, which is how scripts fill drop-down lists - Text in a <textarea> no longer shows a stray glyph at the end of each line on servers that send CRLF - most forums do - new String("x") and new Number(7) now carry their value, so scripts that wrap text before working on it no longer insert "[object Object]" - Functions have a prototype chain of their own, so classes written with "extends" and compiled down to older JavaScript work - Blob, File, FileReader and URL.createObjectURL exist, and a Worker can be started from a Blob - today's usual way of running one without a separate .js file - The whole stream family (ReadableStream, WritableStream, TransformStream) and Reflect are implemented - Object.prototype.toString.call(null) says [object Null] - New WWW menu section Amiga GR (amiga.gr), and theoasisbbs.com under Sites 2 - New -fixed option: honour position:fixed from the command line, the same setting as Settings -> Respect position:fixed 1.1.5 - New target Amelinium_AROS_i386_v0 - AROS ABI v0, the classic 32-bit line from axrt.org. ABI v0 and ABI v1 are different systems, so take the file that matches the AROS you installed - Fixed changing the screen mode running a string of menu entries nobody picked - it would end up loading the downloads page over and over and the browser had to be restarted - New -zoom N option, so a zoom level can be set from the command line as well as from the Page menu - Fixed a zoomed page shrinking further every time one of its scripts changed anything, until the text was unreadable - Fixed the two buttons of the download window coming out blank. Their labels are now coloured against what is really drawn under them, so they stay readable whatever the screen palette is and whatever draws the buttons - including systems that give them their own look - Fixed new Function("...") returning nothing, which killed anti-bot and packed scripts on their first line, and added globalThis - Fixed x["length"], x["charAt"](1) and every other bracket form doing nothing on text, numbers, true/false, functions and symbols - obfuscated and minified scripts write nearly every call that way - Fixed two classes extending different parents in one file: the second one took the first one's parent - Fixed any empty function in a file that also uses "class X extends Y" hanging the browser - Fixed a class member whose name is computed (class X { [name]() {} }) or written as text being stored under the wrong name - among other things this is how a class is made iterable, and such a class was simply not iterable here - Fixed { get [name]() {} } in an object being a syntax error, which threw away the whole script file it appeared in - Very large whole numbers (BigInt) now hold five times as many digits, so the arithmetic behind today's anti-bot checks no longer refuses to start. Only a page that actually uses such numbers pays for the extra memory - Pages using a rule that asks about an attribute on a parent as well as on the element itself are no longer skipped - on github this is what hides the navigation icons on a narrow window, as it does in Chrome - Container queries (@container) are now understood. A page can size a part of itself against the box it sits in rather than against the window, and until now every such rule was skipped. A page that does not use them is unaffected - Pages that build part of themselves with document.write now show it. Five of the sites we test against use it, and on one of them it is the search box, which simply was not there before 1.1.4 - Two more sites in the WWW menu: whdownload.com and amigaworld.net - A page can now be scrolled while its pictures are still loading - the mouse wheel, the cursor keys and the scrollbars all work from the moment the text is on screen - The address bar now uses the largest font that fits the toolbar row instead of the smallest one - Fixed styling being dropped on pages that use very long class names, as CSS modules generate them - github lost part of its layout that way - Fixed icons drawn as SVG inside the page not appearing at all on pages that use many of them - github lost its logo and its menu button - Fixed background-color: currentColor doing nothing on an element (it worked on ::before / ::after), which is how github draws its menu button - Fixed colours and spacing on pages whose stylesheet writes custom property names with capital letters (github, a1k) - Fixed rules with more than one :where() being thrown away - Fixed long declarations using var() being cut in half and dropped - Fixed font: 1.4rem/1.5 ... being read as 1 pixel, which shrank whole menus on pages that size text in rem - Fixed selectors written as .a > * > .b matching nothing - Fixed an <svg> icon being placed BEFORE the text it belongs to, so it appeared on the wrong side of a button - Fixed line-height: 0 having no effect, and rows staying too tall - Fixed grid columns written as minmax(0, auto) coming out zero wide, which made button labels disappear - Fixed flex: 100% being read as three separate values, so flex rows that should wrap stayed on one line and ran off screen - Fixed the first line of an inline-flex or inline-grid box sitting too high, which made whole rows of links too tall - Fixed style="width:0%" and style="width:150%" being ignored - this is how progress bars and sliders are written - Fixed attribute selectors: only 17 of about 60 attribute names were known, so [hidden] and most others matched nothing - Fixed a :not() naming a class longer than 15 characters excluding nothing while still winning over the rule it was written to refine - Fixed an inline-flex or inline-grid box coming out too narrow, so an icon next to a label stuck out of its own link - Fixed an empty flex item taking one pixel of the row instead of none - Fixed grid columns written as min-content or max-content being widened to fill the container, which pushed button labels out of place and broke short words across two lines - Fixed an icon inside a grid button overflowing its own slot, which shifted the label left by the icon margin - Fixed a grid column of zero width still taking one pixel - Fixed a box positioned inside a flex container ignoring the container's alignment unless that container was itself positioned - github placed the buttons above its file list 40 pixels too low - Fixed the Search button and Enter doing nothing on a form written between <table> and <tr> (whdownload.com) - Fixed a frame staying blank when its address is relative - the other frames of the same page hid the problem (triumph.no) - Fixed pictures inside a frame losing their transparency, so GIFs with a transparent background came out on a solid block - Fixed a frame ignoring its own character set, so accented letters were drawn wrong even though the frame declared the encoding - Fixed pictures being lost for good when a server asks the browser to slow down (HTTP 429) - it now waits as long as the server asks and tries again - Fixed aminet.net stalling on Kickstart 1.3 and on any machine short of memory: every stylesheet reserved almost 2 MB whatever its size, and now takes only what its text needs - Fixed Amiga-V typing a letter into a form field instead of pasting, and doing nothing at all in the address bar - Fixed pressing Amiga-V in the address bar loading the downloads page over and over and locking the browser up - a menu item nobody picked - Fixed the status bar staying on "Converting image" for good after the page had finished, once scrolling brought a new icon into view 1.1.3 - New target Amelinium_AROS_aarch64 - AROS on 64-bit ARM (Raspberry Pi 3/4/5). Same engine as every other target. - Settings: the WEBP/SVG image proxy can now be switched off - Fixed a page getting a horizontal scrollbar because a line refused to break before a nowrap element - Fixed the page background jumping when only part of the page was redrawn, e.g. under the mouse pointer - Fixed tables built with a <form> between <table> and <tr> - rows are no longer pulled out of the table - Fixed a crash on start on machines with no TCP/IP stack 1.1.2 - New target Amelinium_AROS_x86_64 - AROS on 64-bit PCs. Same browser as everywhere else: https, pictures, TrueType fonts and JavaScript all work - Fixed the AROS x86_64 build crashing on the first picture of any page - The user agent now says which build is running (AROS i386 or AROS x86_64), instead of just "AROS" - Fixed 1.1.1 hanging with corrupted graphics on every page - a rewrite of the tag scanner had dropped the line that sets where a tag's attributes begin, so every tag of every page was parsed from a stray address - Fixed pages showing raw markup as text when an attribute value contains a literal > - the tag now ends at the quote that closes the value, in both parsers (this is the EAB "The Zone" report) - Fixed text meant only for screen readers being painted over the page: clip: rect() now really clips - Fixed elements hidden with large negative offsets (left:-9999px) coming back on screen - the value was being read as a percentage - Fixed table columns growing instead of shrinking when a cell states a width: the stated width is now a hint for the column, not its minimum - Fixed a form field set to width:100% stretching its table and squeezing the button beside it narrower than its own label - Fixed pictures and form controls coming out too wide on pages that use box-sizing: border-box - Fixed a table cell that is floated or absolutely positioned losing its layout and rendering nothing - Fixed grid columns written as 1.45fr being laid out as 1.4fr - Old table layouts without a DOCTYPE: a collapsible space no longer makes a row taller, and a cell no longer takes on its children's margins - Fixed flex rows overflowing when one item could not shrink - Fixed the last word of a broken-up long word being measured too narrow - Back, Forward and switching tabs now follow server redirects - Addresses typed with a capitalised scheme are shown lower-case, and a site is recognised whatever the case of its host name - Fixed connections to older (HTTP/1.0) servers being kept after the server had closed them - Two more phone user agents in the Agent menu - An interrupted update download is no longer installed over the browser: a transfer that stalls is reported as a failure, and the downloaded file is checked for completeness before it replaces the program 1.1.1 - JavaScript now works in the AROS i386 build - the JS button is no longer greyed out there - Added the Popover API: an element with the popover attribute stays hidden until it is shown, and popovertarget buttons open it without JavaScript - Fixed images going missing on pages that load many at once - our own decoding time was being charged against the other downloads - Fixed one failed connection writing off a whole host, so the rest of a gallery was skipped - Fixed frameset images: they now reuse connections, retry once, and can go through the SVG/WebP rasteriser like every other picture - Fixed addresses typed HTTP:// or HttpS:// being treated as unknown - the scheme is case-insensitive (RFC 3986) - Fixed the URL field text sitting one pixel too high and too far left 1.1.0 - New target Amelinium_AROS_i386, with TLS 1.2 and 1.3 BUILT IN - no AmiSSL and no extra library to install; AmiSSL has no AROS release at all - Images now load six at a time instead of two, and the browser backs off by itself when a server refuses that many - Fixed three separate ways pictures could silently go missing - Faster layout and text measurement on heavy pages - Fixed "no AmiSSL for https" on AROS sending the user after a library that does not exist for that machine