I have been looking at stopping the Amiga front end from #including
desktop/browser_private.h, like I did for the Windows front end earlier
The big problem with the Amiga code at the moment is that the tabs
implementation seems to depend on being able to dereference struct
browser_window (bw), to get to the struct gui_window (gw).
So, for example, to set the Amiga front end's scroll offset for the
window, it starts with a struct gui_window_2 (gw2), which I assume is the
main window containing all the tabs, then it goes to the bw (representing
current tab?), then the gw:
The gui management of tabs should not depend on core data structures.
I suggest that the gw2 be changed to have a pointer to a gw representing
the current tab, and add a pointer to bw entry in the gw. So to get the
scroll_y it would be:
And to use the core browser_window_* functions, you'd be passing the bw
Does that seem doable Chris?
Michael Drake (tlsa) http://www.netsurf-browser.org/
It seems like netsurf is a great candidate for providing HTML based UI in apps. Is this something anyone has tried from a technical point of view?
Does the current licensing support this for paid for apps or is netsurf licensable for such purposes?
I am pleased to be able to announce that I have enabled the persistent
source object cache on the RISC OS build. This means that RISC OS CI
builds from #1956 onwards have the capability to store cacheable
objects fetched from from the web to disc.
This cache will reduce the amount of data downloaded for many web
pages (in some cases dramatically) and should improve the overall user
The tradeoff here is using disc space (and some memory for book
keeping) in return for a reduction in bandwidth usage and latency. If
your system has limited disc or memory you may wish to disable this
The amount of disc used for this cache is selected using the
disc_cache_size option in the choices file. The RISC OS frontend does
not currently have a user interface to set this value. The cache value
is number of bytes to use on disc and a value of 0 will disable the
cache completely. The default value is set to a gigabyte.
This feature uses the !Cache resource from Adam Richardson which is
distributed as part of the !Boot resources in every CI release
build. The !Boot should be merged to get this installed. If !Cache is
not available the cache will be disabled.
Over the weekend 6th-9th June the bugtracker and CI system have been
intermitantly unavailable, returning 503 error messages and similar.
This was caused by a half broken network switch at our hosting
provider. As this hosting is provided to us without cost there is no
However this morning the issue was fixed and everything should be back
to correct operation. Please let me know if this is not the case.
OK, second attempt at international domain name support.
I've had to import some unrestricted code from elsewhere, due to the
necessity of Unicode normalisation and other things. It is working
and conforming to the spec, as far as I read it.
A couple of minor issues/todos:
1. If an invalid URL is encountered during page layout/box conversion,
NetSurf gives a BoxConvert warning and the page is never displayed.
This is caused by my new code making nsurl_create return
NSERROR_BAD_URL when an IDN fails the compliance checks.
I've not been able to work out where in the core this error code is
terminating page layout.
Page showing this problem:
2. If a frontend wants to display the UTF-8 version of an IDN then
currently the URL needs stripping into component parts, the host run
through idna_decode() and the whole thing put back together again.
This should probably be handled by nsurl but I'm not sure of the best
way to implement it.
3. There are some to-dos noted in code comments for further compliance
checking. They are optional in the spec, and I don't see any need to
implement them - anything invalid will be rejected by DNS. Most of
the mandatory checks seem overkill anyway, given that there is
stricter checking at DNS registration time.
I have included the optional decode-reencode check for already encoded
addresses to weed out any undecodeable nonsense the user might have
typed in, but it doesn't bother to do normalisation or validity
checking of the decoded address before re-encoding it (maybe it
should, I'm not sure, the spec was vague on this point).
I have had a brief review of your libdom branch. I'm very impressed with the
majority of the content of your work. However there are a few small problems.
1. You've not checked whitespace changes overall. There's a number of files
with trailing whitespace introduced by you, and DOMTSHandler is suffering from
tab vs. space on some of the lines.
2. You have managed to check in a number of .swp files which need clearing out.
3. You have not quite managed to get all the headers installed during 'make
install' meaning NetSurf cannot build against a libdom from your branch.
If you can fix 2 and 3 then the branch would be mergeable providing NetSurf
behaves. Fixing 1 would be nice too.
You might want to learn about `git rebase -i` so you can clean up your commits
without making extra cleanup commits.
Let me know when you're ready for a new review.
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
In response  to
I had another look at it and couldn't see anything wrong with the
nsfont_split function. I cleaned it up slightly in , which should not
have changed the behaviour at all.
I think it's possible that the problem is in ami_font_width_glyph.
One way for the symptoms you get is for ami_font_width_glyph to be
returning different widths for the same character when it is at the end of
a paragraph, and when it is followed by a space.
So some difference due to kerning when the next character (char2 in
ami_font_width_glyph) is ' ' vs '\0'.
Because I constified the data pointed to by the utf16 and utf16next
pointers in  I had to fix up ami_font_width_glyph in  to fix the
build. There's a chance that commit  may have solved the problem, or
there's a chance I've broken it further if ESetInfo can't handle char2
Anyway, I think it's worth investigating the ami_font_width_glyph
function's behaviour with ' ' and '\0' for char2.
 I tried to register an account there a few hours ago, but perhaps that
Michael Drake (tlsa) http://www.netsurf-browser.org/