This cleans up this header and moves the functionality into more
useful places while reducing the include complexity but only pulling
in whats required.
Update the API which allows frontends to acquire the page features
(images, link urls or form elements) present at the given coordinates
within a browser window.
By making this an explicit browser_window API and using the browser.h
header for the associated data structure with a more appropriate API
naming the usage is much more obvious and contained.
Additionally the link url is now passed around as a nsurl stopping it
being converted from nsurl to text and back again several times.
When updating the RISC OS frontend to using nsurl for its menu
operations (as part of getting rid of url_nice) the check for
null (empty) url strings in the url under the mouse was omitted
leading to a crash.
Additionaly a use of url where current_menu_url was intended was
missed leading to crashes when "open in new window" was used.
The local history interface now reports errors to its callers isntead
of inconsistantly waning the user occasionally on error.
The documentation comemhts were also updated to match reality
It has come to my attention that some websites (eg amigakit.com) are using marginally more than the 96K stack space set previously. This should give plenty of breathing space.
The browser window common initialisation code returns error codes which
were being ignored. The errors were additionally being reported via
warn_user in inappropriate places within browser history construction.
This removes the global PDF_Password interface that had completely
bitrotted and moves it into the standard misc operation table with a
sensible defualt implementation.
This also cleans up and fixes the gtk frontend implementation of the
pdf password callback so it compiles.
Finally this moves the implementation to a sensible place alongside
the other exporters reducing target makefile complexity futher.
The die() API for abnormal termination does not belong within the core
of netsurf and instead errors are propogated back to the callers.
This is the final part of this change and the API is now only used within
some parts of the frontends