[#811]
Re: Amelinium Web Browser
@BULI,
post #810
https://juen.in <-- download! dziekuje za wsparcie! https://juen.in/support
1.2.5
- IMPORTANT when upgrading: Amelinium_040, Amelinium_060 and their _JS
versions now need a real maths coprocessor. A 68EC040, 68LC040, 68EC060 or
68LC060 has none and will refuse to start, saying so. Use Amelinium_020 or
Amelinium_020_JS on those machines - that is what they were getting
anyway, because until now the accelerated builds linked 68000 libraries.
In exchange the 040 and 060 builds now really use the processor they are
named after: JavaScript arithmetic runs on the coprocessor instead of in
software, and pictures decode faster.
- New: video playback. A <video> with an MP4 file (H.264 picture, AAC
sound) shows its poster and a player bar with play/pause and a seek
groove, and starts playing while the file is still arriving. Clicking
anywhere on the groove jumps there, even far past what has arrived - the
download simply restarts from that point. Sound goes through Paula in
stereo, the picture through a built-in H.264 decoder, each in its own
process so the browser stays usable. The download is held in a fixed
16 MB ring on disk, so a long film does not need its full size in free
space. Available in the 040 and 060 builds and in the AROS, AmigaOS 4 and
PPC-card builds; the 68000 and 020 builds do not carry the decoders.
- New: a YouTube watch address opens in Amelinium's own player page instead
of youtube.com, which needs JavaScript and cannot load here. The page shows
the title, channel and length. Settings -> Video quality picks 144p (the
default), 240p, 360p or sound only; Settings -> Video playback picks how
often a new picture is decoded - key frames only by default, which costs
least. At 1, 6, 12 or 24 frames per second the frames that are not going
to be shown and that no other frame depends on (more than half of a
YouTube film) are skipped without decoding. Decoding a picture is heavy
work: a 640x360 frame can take seconds on a plain 040, so 144p is the
setting for a classic machine.
In the builds with JavaScript, 144p and 240p play for the whole length of
the film, fetched the way YouTube's own embedded player fetches them
(YouTube's player code is downloaded once and kept in the cache), and
the seek groove jumps anywhere in them, backwards too. The
builds without JavaScript get 144p and 240p only up to about a minute of
film; anything longer comes as 360p there, and the player page says so.
- New: WWW -> Video -> "YouTube search (Invidious)" - a YouTube search page
light enough to render here. Opening one of its videos asks whether to
play it in Amelinium's own player, with "Always" if you want it to stop
asking.
- New: Amelinium_WOS and Emalinium_WOS - a WarpOS build for a PPC card in a
classic Amiga, with JavaScript, HTTPS and TrueType fonts. This is the
FIRST version of this target and it may not be perfect - please report
what you run into. One thing is known already: laying out a page takes
considerably longer on it than on the PowerUP build of the same page, so
a big site will feel slow.
- Faster: JavaScript source is read a quarter to a third faster, so
script-heavy pages get going sooner - YouTube's player code alone is
ready about eight seconds earlier on a 68040. How scripts behave does not
change.
- Better picture on AGA/ECS: the browser's own screen is now opened
interleaved, so a picture on its way to the screen no longer flashes in
wrong colours while it is drawn plane by plane - most visibly with every
new frame of a video. RTG screens are not affected.
- Fixed: a download that the server cut short was reported as finished,
leaving a half file that looked whole. It is now shown as interrupted,
and Resume continues it from where it stopped.
- Fixed: JavaScript: dates written with a time zone or in e-mail form
(new Date("2026-09-24T10:00:00+02:00"), Date.parse) were read wrong or
not at all; obj[key]() evaluated obj twice; slice, splice and friends
misbehaved when given Infinity; a typed array's .buffer was a method
instead of a property; eval() inside a function could not see the
function's own variables; btoa and atob mishandled characters above 127;
a regular expression right after if (...), for (...) or while (...) made
the whole script fail to load (Babel, among others). And from the second
page of a session on, some built-in functions - Number.isInteger,
String.fromCharCode, Boolean's methods, DataView and typed array methods
among them - could silently turn into unrelated functions, so scripts
that worked on the first page failed on the next one.
- Fixed: HTML entities written without a semicolon - < > & and the
rest of the legacy list - now decode, as they do in every other browser.
They appear in plenty of old pages.
- Fixed: with many bookmarks the menu silently stopped at the fortieth one.
It now fits as many as the screen can show and splits into B1, B2, ... when
it needs to.
- Fixed: Page -> View Source ignored the scrollbar arrows, did not follow the
knob while dragging, and drew with the page font instead of the screen font.
- Fixed: clicking a #name anchor, or opening an address that carries one, now
jumps to it.
- Fixed: images embedded in the page itself (data: URLs) longer than about a
kilobyte were not loaded at all.
- Fixed: text-align set on a table did not reach its cells.
- New: PageUp and PageDown scroll a page, on keyboards that have them
(a PC-style keyboard on AmigaOS 4 or AROS).
- Fixed: selecting text and copying it could pick up a second copy of part of
the selection, and a selection finished outside the window was not copied
at all.
- Fixed: a plain .txt file was rendered far too large and did not wrap.
- Fixed: SVG pictures written directly into a page now draw their outlines,
lines and text - until now only the filled shapes appeared, so logos and
icons made of strokes were blank and labels were missing.
- Fixed: an <a name="..."> anchor with no href was drawn as a blue underlined
link.
- Fixed: a crash on AROS on pages that use :hover on an element with no
parent.
- Fixed: many page layouts now match other browsers more closely, found by
comparing sites element by element. Among them: menus built from floating
list items with height:100% links no longer collapse to nothing; a
"sticky footer" page (html, body { height: 100% }) is as tall as the
window; table rows ignore min-height and max-height as other browsers do;
percentage margins inside flex rows (Bootstrap column offsets) land in the
right place; hidden SVG icon sheets take no space; a floating box with a
horizontal rule inside is no longer twice as wide; the gap above a heading
after an invisible "skip to content" link is correct; flex items align,
wrap and line up on text like elsewhere; line-height written as calc()
works; rem sizes follow a root font size set through a variable; a text
field with a percentage width no longer pushes a table wider than the
page; and <input type="hidden"> never takes space, whatever the page's
stylesheet says. Also: max-height: none now lifts an earlier limit, so
sections that open without JavaScript are no longer empty; Tailwind class
names with escaped characters (such as [&>svg]:h-full) match; an SVG with
only a height keeps its proportions; </br> breaks the line as in every
browser; custom element names longer than eleven letters match in
selectors; the -webkit- spellings of flexbox work; media queries for
features Amelinium does not know no longer apply by accident;
:first-child and similar conditions on a parent in a selector are
checked; :any-link and :not() on a parent element work; Tailwind's
space-y-* spacing and its @property variables apply; ::before and
::after built from several rules or inside @layer get all of them;
children of a display: contents box inside a flex or grid container
become blocks; calc() widths of flex items keep their pixel part;
left: auto (and the other sides) cancels an earlier value; a very wide
logo keeps its proportions under max-width; and a page opened from disk
finds its stylesheets and pictures when they are addressed as ./ or ../.
Further: rules that start with an attribute, such as
[role=complementary] h3 or [x] .a+.b, apply; percentage padding on flex
items, and padding or margin written with calc() in the shorthand
(Tailwind), come out right; text placed straight into a flex container no
longer takes the container's own width; an SVG icon given only a width
keeps its proportions; a selector like .menu > a i no longer reaches icons
nested deeper; and alternate style sheets (rel="alternate stylesheet")
are no longer applied on top of the main one.
- Emalinium: the message list now really sorts by date, newest first, and
stays sorted after deleting a message. The Compose window opens far larger,
can be resized, and keeps what you have typed while you resize it. Its
scrollbar arrows work too.