The netsurf core no longer uses any locale dependant operations
excepting the mall number or cases where such operations are
explicitly wanted.
the netsurf_init now calls setlocale with the empty string and lets
the c library setup as per its specific implementation.
any core functionality that specificaly processes ascii text must use
the utils/ascii.h header to do so.
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.
This removes the toskip parameter, which was only used by the RISC OS
front end. The toskip param was used to skip 8 characters which did
not need to be escaped from the start of the URL. The RISC OS front
end now orders the steps of its URL construction to avoid the need
for this.
When the operations tables were created the browser table was renamed
to miscellaneous except the actual rename patch was never applied,
this fixes that situation.
The printf formatting for size_t is set in c99 as %zu but in windows
it is %Iu this is solved by adding and inttypes style PRI macro for size_t
This also uses this macro everywhere size_t is formatted.
The return of calloc was not being checked and could have lead to a
NULL pointer dereference. This fixes coverity CID 1316337
Additionally the functions documentation comments were cleaned up.
In CSS 2.1 this was undefined.
CSS 2.1 -- 12.1 The :before and :after pseudo-elements
Note. This specification does not fully define the interaction
of :before and :after with replaced elements (such as IMG in HTML).
This will be defined in more detail in a future specification.
-- https://www.w3.org/TR/CSS21/generate.html#before-after-content
In CSS 3 the :before and :after generated content boxes are not allowed
on replaced elements.
CSS 3 Generated and Replaced Content Module
12. Replaced content
The box model defines different rules for the layout of replaced
elements than normal elements. Replaced elements do not have
'::before' and '::after' pseudo-elements; the 'content' property
in the case of replaced content replaces the entire contents of
the element's box.
-- https://www.w3.org/TR/css3-content/#replacedContent
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.
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.