Commit Graph

1604 Commits

Author SHA1 Message Date
Vincent Sanders
9ebdc7dd7a ensure completion of async js scripts completes the fetch
When the fetch of asynchronous javascript scripts completed the
completion of html rendering was not processed leaving the state
machine waiting forever.
2015-10-02 09:29:51 +01:00
Vincent Sanders
1f07c45740 fix gadget resource leak (coverity #1109875) 2015-09-07 13:53:59 +01:00
Chris Young
63227a214b Rename context_menu.c and strip out all the context menu code, so this file and popupmenu.class is only used (optionally) for HTML form selection. 2015-09-05 15:09:00 +01:00
Michael Drake
257666499d Reorder percentage calculation.
Fixed point representation couldn't store 0.65 exactly, so avoid doing
the divide by 100 first.

I will look at moving this into libcss's fixed point header and doing
it in a way that avoids arithmetic overflow, but for now this fixes
el reg layout.
2015-08-24 22:47:58 +01:00
Daniel Silverstone
2c7dfe0d3d It's not a hubbub error 2015-08-12 11:00:22 +02:00
Daniel Silverstone
548adc547d Store the HTML content as userdata on the DOM's HTMLDocument 2015-08-09 12:00:25 +01:00
Daniel Silverstone
c8ae744680 Only iterate the form when freeing a control if there is one.
This fixes Bug#2322
2015-06-03 20:24:32 +01:00
Vincent Sanders
0d811963c1 fixup all the remaining logging macro callsites
The semantic patch tool appears to have missed some difficult to
reason about callsites which have now been manually cleaned up
2015-05-28 17:06:18 +01:00
Vincent Sanders
c105738fa3 Change LOG() macro to be varadic
This changes the LOG macro to be varadic removing the need for all
callsites to have double bracketing and allows for future improvement
on how we use the logging macros.

The callsites were changed with coccinelle and the changes checked by
hand. Compile tested for several frontends but not all.

A formatting annotation has also been added which allows the compiler
to check the parameters and types passed to the logging.
2015-05-28 16:08:46 +01:00
Vincent Sanders
2c51dabfeb put assert back to protect against bad logic in frontend drag implementations 2015-05-08 15:30:41 +01:00
Vincent Sanders
31f8c363be remove assert if drag message contains an unknown type.
Instead of asserting if a message contains an unsupported drag type
the message is now logged and ignored.
2015-05-03 17:49:19 +01:00
Vincent Sanders
a375e58bb8 Silence incorrect warning from gcc 4.9
This makes the box_move_xy function return a value on all code
paths. This was not really necessary as there is an assert in the path
that could have returned without a value. The gcc optimiser seems
unable to reason about this in this case causing a warning.
2015-05-03 17:40:27 +01:00
Vincent Sanders
3cabd331ee Ensure result of ftell is checked for errors
The ftell call in the html renderer handling of drag and drop was not
checking its return value for errors which could have resulted in
attempting to read -1 bytes.

coverity 1251038
2015-04-26 00:32:42 +01:00
Michael Drake
69776768d2 Remove duplicate branch in relative position handling. 2015-04-23 09:46:04 +01:00
Daniel Silverstone
df3a889435 Ensure we delink form controls when freeing them 2015-04-22 21:11:21 +01:00
Vincent Sanders
1e1df59089 add some debug to form gadget freeing
Serveral reports of form freeing segfaulting on RISC OS so this adds
some debug in this area to see if we can tell why.
2015-03-27 15:27:33 +00:00
Witold Filipczyk
befa5e6ed3 To avoid namespace conflicts with ncurses add NetSurf key prefix.
Adds a NetSurf key code prefix of NS_ to all key codes.
2015-03-27 09:36:19 +00:00
John-Mark Bell
6af5ba0c8f Forms: consider submit buttons successful. Fixes #2284. 2015-03-10 01:16:15 +00:00
Vincent Sanders
84c29f1d86 Add invalidate API to html content script handling and use it.
The html content script handling needs to invalidate its JavaScript
context when the browsing context (browser_window) containing it is
either closed or the content fetch is aborted (stopped)

Previously the invalidation was only done on browser_window close
which resulted in use after free crashes because of the now invalid
JavaScript context.
2015-03-09 13:47:12 +00:00
Vincent Sanders
c4e551cd0c clear the html content reference to javascript context.
When the browser window is about to be destroyed html_close gets
called indicating the browser_window previously associated with the
html content is about to become invalid.

This makes the javascript context invalid within the html content (it
is held by the browser window) when that context is about to be
destroyed. Previously the javascript children would continue to
attempt to use the context after it had been destroyed causing all
sorts of strange errors and failures.
2015-03-06 17:16:09 +00:00
Michael Drake
2ce332f1b0 Remove nsurl include. 2015-02-26 17:05:12 +00:00
Michael Drake
2007dd0ccd Revert removal of implied table adding.
Even if the DOM is always sanitised, CSS display property can cause
other boxes to be required.
2015-01-27 21:08:52 +00:00
Michael Drake
f63742d7c2 Remove unused variables. 2015-01-24 16:12:16 +00:00
Michael Drake
770255439d Remove redundant implied table insertion. 2015-01-24 16:03:48 +00:00
Vincent Sanders
ca74e0060d release gadget allocation on error path (Coverity 1109875) 2014-11-30 11:23:30 +00:00
Vincent Sanders
669df172ec Fix my spelling of teh everywhere 2014-11-18 17:16:26 +00:00
Vincent Sanders
71d016aba5 Remove unecessary form debug
Additionaly we make the curl fetcher report errors instead of
uninitialised buffer.
2014-11-15 18:23:44 +00:00
Vincent Sanders
a50d2035a7 Fix cocoa usage of render internals 2014-11-13 22:15:32 +00:00
Vincent Sanders
79e501075a make the form select menu API smaller.
By hiding all but the form selection menu option structure from code
outside of render this reduces the API to the absolute minimum to
support this feature.
2014-11-13 21:52:08 +00:00
Vincent Sanders
e8277f2954 doxgen warning fixes in riscos frontend. 2014-11-12 22:36:11 +00:00
Vincent Sanders
1a7d00076d cleanup Doxygen warnings 2014-11-12 19:31:39 +00:00
Vincent Sanders
740387be8d Doxygen cleanups 2014-11-12 16:21:23 +00:00
Vincent Sanders
a99b1325d7 Doxygen cleanups 2014-11-12 11:45:07 +00:00
Vincent Sanders
d8007f4512 change form API to return error instead of warning user.
Update the form API so instead of directly warning the user it returns
an error code to the caller allowing the appropriate action to be
taken outside the core. Additionally clean up documentation of this
API.
2014-11-11 22:58:34 +00:00
Vincent Sanders
d9ce975822 Make most of the form API internal to the html renderer.
Very little of the form API needed exposing outside of the
renderer. This makes the form API that may be used by frontends
obvious and limited.
2014-11-11 17:11:59 +00:00
Vincent Sanders
33eb1f413a Doxygen warning fixes 2014-11-10 20:15:14 +00:00
Vincent Sanders
345cfc4ec8 address even more potential leaks on error path in box_select (coverity 1109875) 2014-11-10 19:40:20 +00:00
Vincent Sanders
44cfe7459c fix leak of gadget on error path. (coverity 1109875) 2014-11-10 19:12:10 +00:00
Vincent Sanders
72f4c4f8b8 Fix reference to local variable outside scope (fixes coverity 1251161) 2014-11-10 12:02:26 +00:00
Vincent Sanders
845a0ca072 remove declaration in parameter list warning in form.h 2014-11-09 12:22:11 +00:00
Vincent Sanders
05a64bfde9 fix up more doxygen errors 2014-11-08 16:49:32 +00:00
Vincent Sanders
8f64d5d223 Improve Doxygen documentation 2014-11-08 12:35:11 +00:00
Vincent Sanders
3405803280 Improve content encoding information API
Extend the content_get_encoding() API to retrieve the source of
the encoding as well as the actual encoding.
2014-11-07 12:33:34 +00:00
Vincent Sanders
8c2cfecfb5 Allow content handlers to have debug values set through API
Previously content handler debugging features were accessed by global
variables. This allows the setting of debugging parameters via a
content API giving per content control over debugging features.
Currently only used by the html content handler to toggle global
redraw debugging.
2014-11-06 22:51:46 +00:00
Vincent Sanders
8ec7ad053a Make the fetching of a contents encoding generic.
The frontends previously had to use an html renderer API to get the
encoding of a content. This also required the explicit checking of the
contents type rather than using the existing content API to abstract
this knowledge.
2014-11-05 23:44:31 +00:00
Vincent Sanders
bdfedb686b replace save_link operation table entry usage of textural url with nsurl 2014-11-03 23:05:59 +00:00
Vincent Sanders
ad343eccb1 remove unecessary utils/types.h
This cleans up this header and moves the functionality into more
useful places while reducing the include complexity but only pulling
in whats required.
2014-11-02 20:10:32 +00:00
Vincent Sanders
c31c4babe1 Change contextual content retrieval to browser features.
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.
2014-11-02 15:46:42 +00:00
Vincent Sanders
df89f689f7 make the pseudo css fetcher report initialisation errors 2014-10-25 23:07:00 +01:00
Michael Drake
eed2a97eca Add bw function to get scrollbar type. 2014-10-25 12:04:11 +01:00