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?
The NetSurf developers are happy to announce NetSurf 3.2. This release
contains many bug fixes and improvements.
It is available to download from http://www.netsurf-browser.org/
Binaries are available now for RISC OS and AmigaOS 4 systems.
NetSurf 3.2 is primarily a bug-fix release. In addition to bug fixes and
tidy-ups, a disc cache feature has been added, and a little work has
been done to improve CSS3 support. Several of the front ends have
received quite a bit of attention, with new features and improvements;
notably the GTK, AmigaOS 4 and Framebuffer front ends. We recommend all
A more detailed and complete list of changes is given below.
Core / All platforms
* Improved building on OpenBSD.
* Improved interface between front ends and core.
* Improved internal URL handling.
* Cleaned up many internal interfaces.
* Added support for disc caching.
* Fixed treeview selection issue.
* Fixed line breaking of plain text with multi-byte sequences.
* Improved out-of-memory handling.
* Added support for overflow-x and overflow-y CSS3 properties.
* Improved web search feature.
* Improved internal task scheduling.
* Improved support for Unicode URLs.
* Fixed issue relating to CSS imports.
* Improved debug dumping of box trees.
* Fixed SSL certificate viewer lifetimes bug.
* Fixed HTML ordered list numbering issue.
* Fixed DOM tree debug dump.
* Fixed handling of malformed URLs.
* Fixed text selection.
* LibCSS library (CSS parser and selection engine):
+ Added support for CSS3 overflow-x and overflow-y properties.
+ Fix to !important handling with play-during property.
+ Improved test coverage.
* LibDOM library (Document Object Model):
+ Implemented many missing specialisations of HTMLElement.
* Fix for toolbar width calculation.
* Code clean-ups.
* Added option to use disc cache.
* Improved configuration handling.
* Improved commandline usage.
* Enabled disc caching.
* Improved context menu.
* Fixed gdkpixbuf usage issue.
* Improved view source, and debug features.
* Improved main menu.
* Improved developer options.
* Added options to open view source, etc, in new window, tab,
* Many code clean-ups.
* Internationalisation fixes.
* Removed Cairo.
* Improved installer script.
* Enabled disc caching.
* Improved line splitting behaviour for text wrap.
* Improved web search.
* Improved hotlist menu.
* Improved task scheduler.
* Wait for network activity, rather than polling for it.
* Improved throbber operation.
* Fixed tab bar update failure issue.
* Improved favicon handling.
* Various fixes.
* Made several little bug fixes.
* Added Unicode support to internal font.
* Added codepoint rendering to internal font, for missing glyphs.
* Added scaled glyph rendering to internal font.
* Added support for window resizing, were underlying surface
* LibNSFB library (NetSurf Framebuffer):
+ Made SDL surface resizeable.
+ Fixed rendering for 1bpp glyphs with greater than 1 byte width.
Also included are many smaller bug fixes, improvements and
Michael Drake http://www.netsurf-browser.org/
This weekend I played with compiling netsurf-gtk for Mac OS X 10.9.4 with
libraries supplied by MacPorts. Ultimately, I would like to create a
Portfile (MacPorts package) of netsurf-gtk since as you know might know,
the Carbon framework (on which netsurf-cocoa relies) has been deprecated
since Mac OS X 10.8.
I followed the QUICKSTART compilation instructions, which mostly worked.
The purpose of the attached patches is to ensure that they work completely.
buildsystem.patch solves the issue of toolchain detection on Mac OS X. The
reported first line of cc --version is "Apple LLVM version 5.1
(clang-503.0.40) (based on LLVM 3.4svn)", of which neither the first nor
the second word are clang, which is what current toolchain autodetection
does. The patch does autodetection of clang by looking for "clang" as a
substring of the first line cc --version rather than as a first or second
libnsfb.patch solves the issue of endian.h being located in
machine/endian.h. Currently, the two files 32bpp-xbgr8888.c and
32bpp-xgbr8888.c both include "endian.h" unless the platform is win32. The
patch adds a futher check on whether the platform is Apple, in which case
it includes machine/endian.h and defines the appropriate macros. Curiously,
patches of this sort for nsfb were submitted three years ago by Sven
Now, I had to compile libparserutils without iconv because I guess the
macports iconv library seems to break the compilation of netsurf_gtk (clang
compalins about undefined symbols). Overall, compilation of the libraries
is successful except for some self-defined warnings.
For compiling netsurf-gtk, in addition to installing the necessary
libraries for macports (I use gtk2 with quartz support rather thatn X) I
also had to edit the jsapi.c include from "js/jsapi.h" to
"mozjs185/jsapi.h" because for some reason that's where the spidermonkey185
library is in MacPorts. Also, I added CFLAGS+=-D_DARWIN_C_SOURCE to make
sure the compilation goes correctly (apparently Sven also had patches to
make sure this is included automatically, for framebuffer at least). Since
these are merely configuration and a quirk of MacPorts, I decided these did
not need their own patches.
Anyway, I was able to compile netsurf-gtk with the above settings, but this
led to strange compilation errors for files that aren't really really
missing. I've attached the logs.
Also, the resulting binary runs, but realizes bug #2120, as well as a
possibly new bug where the mouse cursor does not change on hover events.
All the best; let me know if you'd like more info from me.