Commit Graph

211 Commits

Author SHA1 Message Date
Michael Drake
3bee7b7e12 Layout: Don't generate :before and :after boxes for replaced elements.
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
2016-02-09 16:42:28 +00:00
Michael Drake
8e580ccd19 Split out presentational hints handling. 2016-02-05 10:49:58 +00:00
Michael Drake
b58176c65e Spaces to tabs. 2016-01-29 16:04:47 +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
Michael Drake
3dcf7d80a1 Pass html_content to box_extract_link. 2016-01-21 14:09:57 +00:00
Michael Drake
71f296a41c Fix dom document leak for framesets. 2015-10-31 16:14:40 +00:00
Vincent Sanders
1f07c45740 fix gadget resource leak (coverity #1109875) 2015-09-07 13:53:59 +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
ca74e0060d release gadget allocation on error path (Coverity 1109875) 2014-11-30 11:23:30 +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
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
Michael Drake
eed2a97eca Add bw function to get scrollbar type. 2014-10-25 12:04:11 +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
Michael Drake
11faa1cef8 Remove trailing whitespace. 2014-10-15 09:35:43 +01:00
Michael Drake
c9bf72a4a3 Stop invalid background image URL from preventing page load.
Stops url(http://) from causing page load to fail with warning
message of "boxconvert".
2014-09-25 09:50:24 +01:00
Michael Drake
35f7f2b9f3 Resolve relative URLs in inline CSS relative to document's base URL, rather than its content URL.
This means passing the base URL as the URL param to LibCSS's
css_stylesheet_create, rather than the URL of the source of
the style data.
2014-09-18 18:07:52 +01:00
Michael Drake
7063846614 Restrict 'drill down' to specific box types. 2014-07-18 09:30:27 +01:00
Michael Drake
b1eb026c6e Fix bug #2154: List numbering.
Previous list item box may not always be last child of parent.
Search its previous children until a list item is found.
2014-07-18 09:20:07 +01:00
Vincent Sanders
2326d3c503 remove unecessary utils/url.h includes 2014-05-09 10:15:42 +01: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
Michael Drake
72510f550b Use corestrings in box construction. 2014-01-24 18:58:12 +00:00
Michael Drake
20e789955d Ensure first option gets selected when the markup doesn't specify any options as selected. 2014-01-24 17:32:49 +00:00
Daniel Silverstone
9b8988dd23 Reflect changes to select boxes into the DOM 2014-01-04 18:02:50 +00:00
Michael Drake
0aa488288c Fix longstanding bug where floating root element caused assertion. Bug #394. 2014-01-04 17:54:43 +00:00
Michael Drake
1970fb7bda Make nscss_get_style return completed computed styles. Now matches nscss_get_blank_style, and no need for anything outside css/select.c to see partial computed styles. 2013-12-19 14:21:15 +00:00
Michael Drake
e4c50bd58a Update for new libcss API. 2013-12-13 20:25:08 +00:00
Michael Drake
3fc666a9be Squash Coverity #1109879 - Resource leak. 2013-10-25 22:23:18 +01:00
Michael Drake
1d326a8a1c Fix leak of frame element name. 2013-10-25 19:57:05 +01:00
Michael Drake
90231bd4b1 Force root element box type to BOX_BLOCK. 2013-07-10 12:27:56 +01:00
Vincent Sanders
ee6e6eec05 move options include 2013-05-28 14:16:10 +01:00
John-Mark Bell
09086758e7 Fix 3608298: only apply link hack if JS is disabled. 2013-03-19 21:38:25 +00:00
Michael Drake
762e1aad73 First pass at getting html forms to use textarea widget.
(Input element types text & password, and textarea element.)
Can edit and submit forms, but there are loads of issues.
2013-02-06 22:39:45 +00:00
Vincent Sanders
31c9ffb4b5 make boxes keep reference to the DOM node that causes them 2012-11-30 12:29:54 +00:00
Vincent Sanders
fb13fcf166 Improve html renderer error reporting 2012-11-26 18:59:13 +00:00
John-Mark Bell
9c1a04e279 Fix frame name allocation. 2012-10-06 16:42:58 +01:00
Michael Drake
49d2ce585c More talloc ctx fixup. 2012-10-05 12:38:25 +01:00
Michael Drake
464df9f310 Need to use content->bctx for talloc ref. 2012-10-03 20:48:16 +01:00
Vincent Sanders
f22da7670d fix missing sizeof() in amiga build
fix type warning by passing correct value
2012-10-03 19:41:14 +01:00
Vincent Sanders
c1671f37b1 reduce talloc usage to box tree layout only 2012-10-03 19:26:17 +01:00
Michael Drake
5a2212fda6 Variable already existed. 2012-10-03 17:20:57 +01:00
Michael Drake
391defb1c4 Don't convert spaces to non-breaking spaces inside white-space:pre. Instead, handle not wrapping in layout. 2012-10-03 17:14:11 +01:00
Michael Drake
b6202ab8cf Remove pointless churn when text box has white-space:nowrap. 2012-10-03 15:40:27 +01:00
John-Mark Bell
ae8a3ede3e Fix bug #3572539: handle empty option elements. 2012-09-28 08:27:32 +01:00
Michael Drake
ee9ab42f75 Fixup for latest libdom. 2012-09-11 13:10:50 +01:00
Michael Drake
02afe314af Fix object box construction. 2012-08-21 16:46:46 +01:00