Commit Graph

483 Commits

Author SHA1 Message Date
Michael Drake
7b78ef3361 Style: Fix ignoring of STYLE elements with non-screen media.
We were handling the STYLE tag getting added in the
dom_default_action_DOMSubtreeModified_cb callback, however,
the media attribute dadn't been added by that point.

We now check it in the dom_default_action_DOMNodeInserted_cb
callback, at which time the media attribute is available for
checking.

Note, we should probably store the media type in the
html_stylesheet structure, but for now we just have an
`unused` boolean.

Also, it may be possible to optimise to avoid parsing non-
screen media STYLE element data if we could detect the media
earlier.
2016-09-24 12:44:28 +01:00
Vincent Sanders
fa5e6fcdf9 make html content line parsing use no locale dependant ascii processing 2016-09-12 22:50:46 +01:00
Vincent Sanders
76a68d7dd0 Update content to split public and internal API 2016-06-06 09:01:38 +01:00
Vincent Sanders
7fc0a4c481 move desktop window header into public API 2016-05-30 17:32:57 +01:00
Vincent Sanders
9ce71876ce move layout header into public API 2016-05-30 11:31:35 +01:00
Vincent Sanders
fe7eb85614 move misc header into public API 2016-05-30 11:23:32 +01:00
Vincent Sanders
aa5090c85b move utf8 header into public API 2016-05-30 11:20:15 +01:00
Vincent Sanders
2dab078f21 move bitmap API header to core include directory 2016-05-26 23:01:03 +01:00
Vincent Sanders
3224d7121a move image content handlers to accomodate core build changes 2016-05-23 23:32:16 +01:00
Vincent Sanders
6a36d4ec2b remove all core usage of warn_user API 2016-04-26 12:50:16 +01:00
Vincent Sanders
974a4a21e1 split out the layout glyph sizing and splitting API
This refactors the core "font" sizing API to be handled through gui
 function tables similar to every other core/frontend calling API.
2016-04-23 23:32:21 +01:00
Vincent Sanders
7d9c9dba36 Split utils header into string functions and everything else
split out the string handling API from the rest of the utils header
and fix up all the fallout.
2016-04-21 22:36:21 +01:00
Vincent Sanders
ea08caccb9 implement tsla code review points in render monotonic time change 2016-04-20 19:57:44 +01:00
Vincent Sanders
a6dd92c571 use monotonic clock call for html reflow timing 2016-04-20 19:18:15 +01:00
Michael Drake
d4a01d525a HTML: Remove some status bar updating code. 2016-02-10 16:09:16 +00:00
Michael Drake
b002ba7357 Simplify special element handling in node inserted callback. 2016-01-29 16:04:47 +00:00
Michael Drake
82b298ac2c Ensure we do on-demand JS context creation only when JS is enabled.
An alternative approach which may be better would be to create the
JavaScript context when the html_content is created, rather than
on demand.

This code checks for the JS context and creates one every time we
add a node to the DOM.  So when JS is on, every doc with a single
node in it has a JS context.  This seems to make on-demand creation
a redundant overhead.
2016-01-21 14:51:17 +00:00
Michael Drake
669448d7b6 Fix place where we're calling a js_* fn without checking for context. 2016-01-21 14:49:57 +00:00
Michael Drake
594012ef52 Ensure constant javascript_enabled for HTML contents.
Now we take the value of the javascript_enabled option when the
content is created.  We then use the content's script_enabled
boolean everywhere else.

This prevents us getting inconsistent values for javascript_enabled
if a user toggles the setting while a page is loading.

It was read frequently during box construction, and also the
parser's script enabled setting could change where we handled
a change of encoding.

Now we only care about the setting of the javascript_enabled
option at time of html_content creation.
2016-01-21 14:11:36 +00:00
Daniel Silverstone
310162474a Add fire_dom_event, it's in a bad place but we can move it later 2015-10-31 18:01:38 +01:00
Daniel Silverstone
b1d477219d Shunt the handling of new elements 2015-10-31 18:01:38 +01:00
Daniel Silverstone
5a107a466b Initial work toward JS event support 2015-10-31 18:01:38 +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
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
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
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
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
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
72f4c4f8b8 Fix reference to local variable outside scope (fixes coverity 1251161) 2014-11-10 12:02:26 +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
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
1097cc40b4 remove unecessary browser.h include from core headers 2014-10-17 12:21:52 +01:00
Vincent Sanders
d06df231bc Update the core to use the split operations table headers
Second in the series to decouple the core API usage from the frontends.
2014-10-16 22:33:43 +01:00
Vincent Sanders
17be8cf216 Put the font operations table alongside all the other core API
The netsurf core is driven from numerous operation tables most of
which are now set through a common netsurf_register() interface. The
font and plotting interfaces are currently separate and unlike all the
other operation tables are modified for differing contexts.

This change moves the font operations alongside all the other
operations table and remove unnecessary interaction with the renderers
font internals. Further this also removes the need for css internals
to be visible in frontends.
2014-10-13 11:56:31 +01:00
Michael Drake
c3d6099250 Redraws during layout are prohibited, and redundant. 2014-09-27 09:57:26 +01:00
Vincent Sanders
af16c38d2d fix DOM tree dump debug 2014-08-04 00:37:21 +01:00
Michael Drake
0d3faeb4bd Allow suppression of style dump in box tree dumps. 2014-07-13 18:07:12 +01:00
Vincent Sanders
2326d3c503 remove unecessary utils/url.h includes 2014-05-09 10:15:42 +01:00
Michael Drake
7a3d343766 Remove debug logging. 2014-03-10 22:32:04 +00:00
Michael Drake
9da93c23a4 Ensure we get gadget from correct box. 2014-03-10 22:25:36 +00:00
Michael Drake
0397a7cab1 Add some logging. 2014-03-10 22:19:23 +00:00
Vincent Sanders
87f6314dab move scheduleing into browser operation table 2014-03-09 15:37:40 +00:00
Michael Drake
71cb70065e Gadgets can exisit outside forms, so now they store their own ref to the containing html content. 2014-02-17 14:38:53 +00:00
John-Mark Bell
9720c02483 Fix #2071: handle parse completion creating style or script nodes. 2014-02-10 01:25:57 +00:00