Whatever you do, stay away from COMs.

On Mon, Feb 3, 2014 at 3:08 AM, Anthony Caudill <tcaudil...@gmail.com>wrote:

> If you're going to add javascript, you'd might as well implement Spider
> Monkey and get started. A lot of people will consider jumping to NetSurf
> from Firefox if it implements Javascript.
>
>
> On Sun, Feb 2, 2014 at 7:14 PM, Vincent Sanders <vi...@netsurf-browser.org
> > wrote:
>
>> I have recently put a lot of effort into refactoring the interface
>> between the core and the front ends (gui)
>>
>> This is the first step along the road to making the core of netsurf a
>> library that the front end toolkits can use as a widget.
>>
>> All this is in an effort to make the required implementation for a
>> front end toolkit much more obvious and to remove many years of
>> accumulated cruft in the interfaces. It will also mean that in future
>> adding or altering an interface will mean modifying every front end
>> will be done in an obvious place.
>>
>> When the core requires operations to be performed by the frontend they
>> are almost all now performed through a single table interface. This
>> table is passed to the netsurf_init() call every frontend makes.
>>
>> The table comprises of a set of structures containing function
>> pointers. The change has absolutely no performance implications, the
>> same number of function calls are made and the same parameters are
>> passed as before.
>>
>> Going forward some of these interfaces may be improved especially in
>> the area of error reporting (many of the operations currently have no
>> way of indicating an error)
>>
>> I would like to ask all front end maintainers to consider their use of
>> the desktop/gui.h header. Previously it caused a great number of
>> additional headers, both system and local, to be included.
>>
>> The header now has the absolute minimum number of inclusions to ensure
>> the types for the tables are available and nothing more.
>>
>> I have cleaned up a great number of incorrect includes but I would
>> like to reduce this headers usage to the absolute minimum to make
>> ongoing cleanups have fewer unexpected side effects.
>>
>> It should *only* be used by front ends when using the gui tables,
>> probably only from the modules actually implementing them. Currently
>> there are a number of frontend headers which it appears include
>> desktop/gui.h unnecessarily, these are:
>>
>> windows/download.h
>> windows/gui.h
>> windows/plot.h
>> amiga/gui.h
>> riscos/save.h
>> beos/scaffolding.h
>> beos/window.h
>>
>> If maintainers could remove any unnecessary includes from these headers
>> (and indeed anywhere else) it would be very helpful. The documentation
>> [1] on desktop/gui.h makes the current situation pretty clear.
>>
>> There are now only a handful of remaining operations not in the gui
>> table. The known ones are:
>>
>> die()
>> warn_user()
>>
>> Though there appears to be font render operations in an alternate
>> interface which may warrant being merged.
>>
>> If anyone spots any more can they let me know
>>
>>
>> [1]
>> http://ci.netsurf-browser.org/jenkins/job/docs-netsurf/doxygen/desktop_2gui_8h.html
>>
>> --
>> Regards Vincent
>> http://www.kyllikki.org/
>>
>>
>

Reply via email to