Commit Graph

39 Commits

Author SHA1 Message Date
Daniel Silverstone
64ee8e1b00 html.c: Correct ordering for reformat time
Fix a minor bug where we'd likely never end up reformatting.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-05 22:59:49 +01:00
Daniel Silverstone
9c32564085 html_script.c: html_script_exec() reqacquire script ptr
Since executing a script can cause more scripts to be appended
to the script array, and that can cause a reallocation which might
move the script array, reacquire the script pointer after running
the script so that we don't wander off into the reeds.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-01 13:25:14 +01:00
Michael Drake
b330fd9f0e HTML: Update selection media data for new libcss API. 2019-05-07 14:01:51 +01:00
Michael Drake
51feeadcf9 HTML: Set up the CSS length measuring context in CSS pixels. 2019-05-06 21:30:05 +01:00
Michael Drake
a43b83de03 HTML: Squash error-path leaks in select box construction. 2019-05-06 17:29:53 +01:00
Michael Drake
0db71994ea HTML: Before building the box tree, get viewport dimensions. 2019-05-06 15:38:33 +01:00
Michael Drake
0f3b279167 HTML content handler: Handle content msg for getdims. 2019-05-06 15:38:33 +01:00
Daniel Silverstone
52ef77ceef Do not prevent reattempting conversion of HTML contents
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 15:10:01 +01:00
Vincent Sanders
35bc2ccbb8 change content get_source_data interfaces to return uint8_t and size_t
previously these interfaces returned char * and unsigned int which was
undesirable.
2019-05-05 22:50:25 +01:00
Daniel Silverstone
8474c5d4c0 Logging: migrate and provide content interface
Migrate the console enums into netsurf/console.h and add
support so that contents can raise a message to log to
the console.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-05 22:17:10 +01:00
Daniel Silverstone
3021142aad Support content_exec for content_html
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-05 16:00:03 +01:00
Vincent Sanders
d566debc48 change back to unsigned long to avoid warning on gnueabihf platforms 2019-05-04 23:11:14 +01:00
Daniel Silverstone
ed829a4772 JS: Attribute external JS to the URI it came from in backtraces
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 17:32:17 +01:00
Daniel Silverstone
9769e8f2c0 Clean up async/defer JS contents during parent finalisation
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 16:42:47 +01:00
Michael Drake
a03b4a3c14 CSS: Update for change to libcss append sheet API.
When appending stylesheets to the selection context, it now
takes the media query string associated with the sheet, rather
than the type bitfield.

TODO:

We need to pass all the sheets in, with their full media
query string, rather than filtering it ourselves and setting
the ones we pass in to "screen".

Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
2019-05-04 14:51:42 +01:00
Michael Drake
920d6fa23d CSS: Update for change to libcss select style API.
LibCSS now takes the client media spec, rather than just the
media type we're selecting for.

Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
2019-05-04 14:51:42 +01:00
Daniel Silverstone
19b45fb494 Support script insertion after conversion has begun
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 12:18:21 +01:00
Vincent Sanders
826474a1a3 use memcpy instead of strcpy to make the dom string copy intention explicit 2019-03-04 17:32:41 +00:00
Vincent Sanders
61891ada50 validate the form button element type attribute as per spec
https://html.spec.whatwg.org/multipage/form-elements.html#attr-button-type
says if the type attribute is anything but "reset" or "button" it
 is of "submit" type. The previous logic was incorrect and only used
 the button if its type was explicitly submit and noting else.
2019-02-22 21:11:34 +00:00
Michael Drake
e1a3e0427f HTML handler: Reformat passing viewport height when triggered by object.
Previously we correctly used the viewport width, but we were using the
document height instead of viewport height when an HTML child content
triggered a reformat of the parent HTML document.
2019-02-17 09:06:58 +00:00
Michael Drake
776b0242a6 Layout: Add debug logging to show viewport dimensions passed into layout.
Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
2019-02-17 09:06:58 +00:00
Michael Drake
0a3a40c23e Box construction: Don't handle IMAGE specially. 2018-12-13 12:31:38 +00:00
Vincent Sanders
e275b3175b check dom call return and improve handling of missing form type 2018-10-09 17:00:22 +01:00
Vincent Sanders
7a61c95724 rewrite form_successful_controls_dom as form_dom_to_data
Trying to reason about error propagation and resource leakage within
 the form submission code was impossible because of the
 form_successful_controls_dom function.

This function was over six hundred lines long, had twenty six top
 level local variables and six levels of indent in places.

This commit splits it out into thirteen shorter and more obvious
 functions. The resulting operation is identical except errors are
 properly propagated (all failures were reported as out of memory)
 and resource management can be reasoned about.

The compiler appears to inline the entirety of the code from
 form_submit() down excepting a handful of leaf functions. This
 results in similar code output size as previous implementation.

The new implementation has a greater number of variables passed to sub
 functions than desirable because multiple character sets are required
 to encode names and values in the multipart data list. However as
 noted the compiler effectively inlines all these functions so this
 does not actually become a major problem.
2018-09-29 16:59:34 +01:00
Vincent Sanders
a268252629 gcc on openbsd is unable to reason about res variable usage and generates bogus warning 2018-09-26 21:32:35 +01:00
Vincent Sanders
5c96acd6f1 fix url encoding to be compatible with nsurl API changes.
As part of this fix the form submission error handling and
 reporting has been improved.
2018-09-26 17:21:48 +01:00
Vincent Sanders
e4537cb37e allow comments to supress implicit fallthrough warnings 2018-09-07 12:53:51 +01:00
Michael Drake
9d8f37ca10 HTML: Don't try to finish an HTML document's conversion twice. 2018-08-27 20:47:37 +01:00
Vincent Sanders
eee67a65e8 remove warning by replacing sprintf snprintf 2018-08-24 11:49:56 +01:00
Vincent Sanders
5dd5d5da4b remove warning by replacing strcpy with safer strncpy 2018-08-24 10:26:26 +01:00
Vincent Sanders
5f1defd4a7 fix size_t format specifiers 2018-08-18 23:44:15 +01:00
Michael Drake
62e3ee6c7e Layout: Use box helper for first child checks. 2018-06-29 15:03:47 +01:00
Michael Drake
049695fa07 Box: Add helper to check if box is first child. 2018-06-29 15:03:10 +01:00
Michael Drake
948207472a Layout: Tidy condition so it can be read. 2018-06-29 14:58:32 +01:00
Michael Drake
8a931f01b9 Plotters: Expose array of font family strings to front ends. 2018-05-23 14:02:53 +01:00
Michael Drake
66493421e6 Plotters: Change stroke width in the plot_style_t to fixed point. 2018-05-23 13:04:19 +01:00
Michael Drake
a58d97a41a Plotters: Add plot_style_fixed type, and use for font size. 2018-05-23 11:48:35 +01:00
Vincent Sanders
216fb88f58 clean up html content handler header use
Improve header use in preperation for making browser window a corewindow
2018-05-11 13:18:54 +01:00
Vincent Sanders
2a03ea3049 move html and text content handlers where they belong 2018-05-10 13:37:02 +01:00