summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* src/select/dispatch.c: fill-opacity and stroke-opacity are inheritedMichael Orlitzky2023-12-161-2/+2
| | | | | | | | | | | | | | | These two SVG properties were copied from the CSS4 "opacity" property that is not inherited: https://www.w3.org/TR/css-color-4/#transparency However, both fill-opacity and stroke-opacity _are_ inherited: https://www.w3.org/TR/SVG2/painting.html#FillOpacity https://www.w3.org/TR/SVG2/painting.html#StrokeOpacity To fix the copy-paste error, this commit toggles the "inherited" bit in the dispatch table for those two properties.
* Add support for SVG stroke-opacity propertyMichael Orlitzky2023-10-0117-60/+298
| | | | | | | | https://www.w3.org/TR/SVGTiny12/painting.html#StrokeOpacityProperty This property is unique to SVG documents, but is otherwise analogous to the usual CSS "opacity" property (and the recently-added SVG fill-opacity property).
* Add support for SVG fill-opacity propertyMichael Orlitzky2023-10-0117-37/+277
| | | | | | | https://www.w3.org/TR/SVGTiny12/painting.html#FillOpacityProperty This property is unique to SVG documents, but is otherwise analogous to the usual CSS "opacity" property.
* select: opacity: correct valueJohn-Mark Bell2023-10-011-1/+1
|
* src/select/Makefile: the select_generator target is PHONYMichael Orlitzky2023-09-181-0/+1
| | | | | | This target doesn't create an object named "select_generator", so it can be marked .PHONY to improve performance slightly and to avoid a conflict with files/directories of the same name.
* src/stylesheet.h: set uses_revert flag for shorthand propertiesMichael Orlitzky2023-09-171-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Take for example the list-style and list-style-type properties; the former is a shorthand property that subsumes the latter. When the list-style-type property is parsed, the "flags" variable has its FLAG_REVERT bit set, and we call, css__stylesheet_style_appendOPV(result, CSS_PROP_LIST_STYLE_TYPE, flags, value); which then sets the "uses_revert" bit on the stylesheet: if ((flags & (0x7 << 1)) == FLAG_REVERT) { style->sheet->uses_revert = true; } In contrast, when list-style is parsed and a flag is found, we run error = css_stylesheet_style_flag_value(result, flag_value, CSS_PROP_LIST_STYLE_TYPE); which immediately delegates to css__stylesheet_style_append() and buildOPV() without checking if "uses_revert" needs to be set. This can lead to segfault when we try to revert to a state that we have not saved (Mantis bug 2854). Adding a FLAG_REVERT check to css_stylesheet_style_flag_value() fixes the issue for the shorthand properties listed in docs/Bytecode, most (but not all) of which experienced the crash. Closes: https://bugs.netsurf-browser.org/mantis/view.php?id=2854
* Avoid integer types with platform dependent sizeDeltaVonNeumann2023-06-1744-295/+295
|
* select: generator: Simplify function parameter generationMichael Drake2022-12-031-6/+4
|
* select: generator: Declare and define bits togetherMichael Drake2022-12-032-316/+105
|
* select: generator: Remove dead codeMichael Drake2022-12-032-150/+36
| | | | | | | | | | This doesn't change the output of the generator at all. It removes the capability to handle property groups, which has been unused since property grouping was removed. Property grouping was originally an attempt to reduce computed style size, which became redundant complexity when computed styles became interned.
* select: generator: Generate _bits variantsMichael Drake2022-11-273-114/+1017
| | | | | This avoids having overrides to provide trivially generated variants.
* select: generator: Split out propget printerMichael Drake2022-11-271-58/+61
|
* select: autogen source: Update to stable outputMichael Drake2022-11-033-539/+540
|
* select: codegen: Deterministic output by subsorting props by nameMichael Drake2022-11-031-1/+1
|
* select: codegen: Squash comparison with literal warningsMichael Drake2022-11-031-24/+24
|
* properties: Define align-self values in terms of align-itemsMichael Drake2022-11-031-5/+5
|
* properties: position: Add support for 'sticky' valueMichael Drake2022-11-035-3/+8
|
* properties: display: Add grid valuesMichael Drake2022-10-296-2/+15
|
* select: Fix blank pseudo style reversionMichael Drake2022-10-231-0/+8
|
* Select: Only store UA and USER origin styles if revert is usedMichael Drake2022-08-291-5/+13
|
* Stylesheet: Track whether stylesheet used revert property valueMichael Drake2022-08-291-0/+6
|
* Select: Move revert style tracking to separate allocationMichael Drake2022-08-292-8/+18
| | | | It's pretty big and the selection state lives on the stack.
* Select: Split out duplicated revert handlingMichael Drake2022-08-291-52/+47
|
* Select: Support CSS property-wide 'revert' valueMichael Drake2022-08-291-0/+79
|
* Select: Clone UA and author styles for revertMichael Drake2022-08-292-0/+38
|
* Select: Add computed style clone functionMichael Drake2022-08-292-0/+35
|
* Select: Properties: Add copy hander to dispatch tableMichael Drake2022-08-292-0/+3
|
* Select: Properties: Implement copy handler for complex propertiesMichael Drake2022-08-298-155/+306
|
* Select: Properties: Add copy handler for simple propertiesMichael Drake2022-08-29118-507/+1778
|
* Select: Support CSS property-wide 'unset' valueMichael Drake2022-08-291-3/+18
|
* Select: Support CSS property-wide 'initial' valueMichael Drake2022-08-291-3/+6
|
* Select: Make inherit flag handling aware of other default valuesMichael Drake2022-08-2969-170/+172
|
* Parse: Nongenerated properties: Explicit defaultsMichael Drake2022-08-2931-135/+363
|
* Parse: Important: Handle new explicit defaulting valuesMichael Drake2022-08-291-1/+1
|
* Parse: Explicit default support for generated propertiesMichael Drake2022-08-291-93/+93
|
* Parse: Update code generator to support new valuesMichael Drake2022-08-291-4/+42
|
* Stylesheet: Helpers for all default property valuesMichael Drake2022-08-291-1/+33
|
* Parse: Utils: Helper to get any value from flagsMichael Drake2022-08-291-0/+29
|
* Bytecode: Flag values for explicit defaultingMichael Drake2022-08-291-4/+25
|
* Parse: Propstrings: Add unset and revertMichael Drake2022-08-292-2/+4
|
* Select: MQ: Support prefers-color-scheme in boolean contextMichael Drake2022-08-281-4/+5
| | | | | In boolean context it indicates that the browser supports this feature.
* Select: MQ: Use interned strings for media featuresMichael Drake2022-08-284-36/+63
| | | | Avoids some strcmps.
* Select: Add strings for media query featuresMichael Drake2022-08-282-0/+29
|
* Select: Split out useful stringsMichael Drake2022-08-284-289/+320
|
* Selection: Media queries: Apply prefers-color-schemeMichael Drake2022-07-311-0/+33
|
* Parse/MQ: unknown media-types do not matchJohn-Mark Bell2022-05-241-4/+1
| | | | | | | | Per https://www.w3.org/TR/mediaqueries-4/#error-handling, "An unknown <media-type> must be treated as not matching" Ensure, however, that a rule with a condition and no type behaves as if type was all.
* Parse/MQ: reject forbidden media-type identifiersJohn-Mark Bell2022-05-241-15/+40
| | | | | | "and" / "not" / "only" / "or" are forbidden, so must be rejected Add tests for these scenarios
* Select: Hash: Fix bloom instrumentation for size != 4.Michael Drake2022-03-161-1/+1
|
* Bloom: Init: Switch to memset.Michael Drake2022-03-161-21/+2
| | | | | GCC is a bit better at optimising a memset. For clang it makes no difference.
* Bloom: Style: Align function parameters.Michael Drake2022-03-161-2/+3
|