Commit graph

479 commits

Author SHA1 Message Date
Moonchild
0db18745f4 Issue #2364 - Limit the growth of scaling for animated nsDisplayTransform in the fallback case.
This ensures we don't scale the underlying size of the layer beyond what
is close to the current display size. When box shadows get much larger
than this, they start taking so much time to render that successive
frames grow in scale too fast for any inter-frame reuse to be possible.

With this, we avoid that and no longer get crushed by re-rendering
gigantic box shadows every single frame.

See BZ 1383825
2023-11-04 11:41:44 +08:00
Moonchild
f1ccc95daf Issue #2364 - Only use HWA AlphaBoxBlur when targets are large enough.
There's considerable cost associated with creating HWA draw targets
which would negate and regress the performance won by it if used for
too small targets (like small spans of text).
This only uses HWA if >= 8K SurfaceAllocationSize to balance HWA draw
target cost with box blur cost.
2023-11-04 11:40:33 +08:00
Moonchild
4beb3b947c Issue #2364 - use DrawTarget::DrawSurfaceWithShadow to render box shadows on platforms that accelerate it. 2023-11-04 11:40:00 +08:00
Moonchild
8d30faf95f Issue #2364 - Re-factor AlphaBoxBlur
Only blur one quadrant of a box-shadow and mirror it to the other quadrants.
This applies only if the corners are symmetrical (square corners or equal
corner radii) otherwise we'll fall back to the old method.
2023-11-04 11:39:45 +08:00
Jeremy Andrews
83ecbdfacb Issue #2357 - Add reftest for WebM alpha.
I figured I should include the reftest for the sake of completeness, though I have already verified the feature working from the site mentioned in the forum thread that prompted me to look into this in the first place.

Ref: BZ 1331528
2023-10-26 10:50:17 +08:00
Jeremy Andrews
71cc0ef940 Issue #2357 - WebM demuxer can't tell when a video wants to be transparent.
Required to have an alpha channel (which in the strange world of graphics seems to refer to transparency, and not experimental code) in WebM videos. Straight port of Firefox 53 implementation, adapted slightly for a couple of patches previously taken without this.

Ref: BZ 1320829
2023-10-26 10:49:04 +08:00
Moonchild
0bcaa2ff90 Issue #2355 - Apply self-transforms to the frame of top level <svg>
We previously didn't do this because we relied on our anonymous wrapper
to perform transforms. However, that resulted in only the children
transforming, and the frame's cliprect wouldn't be updated,
giving the impression of the z-ordering being wrong.

Also adds reftests from the relevant BZ bug found later.

Resolves #2355
2023-10-25 09:58:41 +08:00
Brian Smith
373fb9ae07 Issue #2282 - Align the Performance Observer navigation and resource with the spec. This now passes the conformance tests. https://bugzilla.mozilla.org/show_bug.cgi?id=1425458 Resource timing entries Workers - part 2 - PerformanceTimingData. https://bugzilla.mozilla.org/show_bug.cgi?id=1462605 PerformanceNavigationTiming.name must be the value of the address of the current document. https://bugzilla.mozilla.org/show_bug.cgi?id=1462883 Update PerformanceTimingData::mReportCrossOriginRedirect in SetPropertiesFromHttpChannel. https://bugzilla.mozilla.org/show_bug.cgi?id=1462879 PerformanceNavigationTiming must be notified correctly - part 1 - notify. 2023-10-21 11:04:41 +08:00
Basilisk-Dev
84ca5fdfc7 PR #2347 - Backport of Mozilla tooltip bugs:
Bug 148624 - only show tooltip when document has focus
Partial Bug 1857513 - Use window activeness rather than document.hasFocus() to display chrome-only tooltips
2023-10-18 09:54:12 +08:00
Moonchild
bdff76bad2 Issue #2316 - Part 3: Clarify comment 2023-09-27 11:56:53 +08:00
Moonchild
30f7b3284c Issue #2316 - Part 2: Add reftests 2023-09-27 11:39:23 +08:00
Moonchild
af6a491bfe Issue #2316 - Part 1: Use fallback element sizes for w/h-less SVG
Instead of completely failing the call, use the CSS specified intrinsic
default width/height of 300x150.
2023-09-27 11:38:58 +08:00
Matheus Marinho
9e7d1492e6 Issue #2301 - Make Gecko Media Plugins optional when not building EME or WebRTC
Co-authored-by: Moonchild <moonchild@palemoon.org>
2023-09-14 10:22:47 +08:00
Moonchild
f4cc47c049 Issue #2293 - Add preferences to disable CSS animation/transition props.
This resolves #2293
2023-08-31 22:40:10 +08:00
Moonchild
4b1c9976be Issue #2284 - Update reftest for behaviour change.
I've verified this against Edge-latest.
2023-08-17 09:10:02 +08:00
Moonchild
5235861f6e Issue #2284 - Add exception for flex/grid items resolving percentages against parent.
This folds in BZ bugs 1578586 and 1092007 part 2.
2023-08-17 09:09:43 +08:00
Moonchild
514ed1423c PR #2050 follow-up: add symbols to build shared on Windows. 2023-06-24 12:21:05 +08:00
Moonchild
1ef390db08 Issue #1769: Update symbols for libxul linkage 2023-06-24 12:18:35 +08:00
FranklinDM
3d917c9965 Issue #2250 - Part 2: Ignore the ancestor filter assertion if rule matching is restricted or if the current element is under a shadow host
This only affects debug builds.
2023-05-24 09:02:22 +08:00
FranklinDM
1c2dd6aee0 Issue #2250 - Part 1: Return early if the element being tested for is likely an ancestor and does not have an assigned slot 2023-05-24 09:02:07 +08:00
FranklinDM
6ae0a69ac7 Issue #1765 - Part 3: Provided token type should be used in LookForTokenType
I didn't realize this immediately after moving the code into a method. Oops.
2023-05-15 09:14:24 +08:00
FranklinDM
d678cc2c45 Issue #1765 - Part 2: Implement calc() parsing inside rgb/a() and the non-hue component of hsl/a()
This also adds a new helper method for checking the type of tokens that will be parsed after the current token, which is useful for determining the unit of values inside calc() functions.

Partially based on 8a0897d23f
2023-05-15 09:14:07 +08:00
FranklinDM
73a6dc3122 Issue #1765 - Part 1: Move ReduceNumberCalcOps struct up higher, rename IsCSSTokenCalcFunction to CSSParserImpl::IsCalcFunctionToken 2023-05-15 09:13:47 +08:00
Moonchild
2f117eecaa Issue #1656 - Remove more vim control lines.
Vim control lines were re-introduced or not entirely cleaned up.
This nukes them again.
Removing from embedding, extensions, gfx, hal, ipc, layout, mailnews,
media and memory. More to come.
2023-05-05 22:57:19 +08:00
Job Bautista
51426d1053 Issue #1862 - Follow-up: Replace deprecated Harfbuzz functions with current ones.
Based on Mozilla bug 1500356.
2023-05-01 06:53:51 +08:00
FranklinDM
7c759b2c21 Issue #252 - Follow-up: Include a null check against mDocument 2023-04-08 07:33:48 +08:00
FranklinDM
b2d7504112 Issue #252 - Move getElementsByName from HTMLDocument to Document
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1415176
2023-04-08 07:29:02 +08:00
Job Bautista
b5d5963a4f Issue #2191 - Remove as much old fontconfig support as needed for Harfbuzz update.
Based on Mozilla bugs 1119128, 1285533, and 1421964.

gfx.font_rendering.fontconfig.fontlist.enabled is no longer available.

gfxFontconfigUtils.h still exists, and will be removed in another commit. Just
need more research on bug 1385029.

Tag #1862
2023-04-07 08:23:07 +08:00
Matt A. Tobin
6b510a74e7 Issue #61 - Add missing external symbols for gkmedias when WebRTC is built 2023-03-28 12:09:00 +08:00
Matt A. Tobin
c85f28b0c0 Issue #61 - Add missing external symbol cubeb_set_log_callback to gkmedias symbols.def 2023-03-28 12:08:38 +08:00
Moonchild
371d7cf05d Issue #61 - Reinstate buildability with shared gkmedias dll
This fully works for splitting gkmedias.dll back out from xul with one exception
which is Skia throwing undefined externals when linking gkmedias.
2023-03-28 12:07:03 +08:00
Moonchild
dd2697172e Issue #2176 - Don't reconstruct the parent when tearing down display:contents nodes with pseudo-elements.
We need to use StyleChildrenIterator which iterates over them, instead.
This is a bit of a hack but we can't always have our cake.

We need to be a bit careful though, since ::before and ::after are owned
by their own frame, and thus could be unbound from the tree or even dead
after removing the frame.

This basically ports bugs 1435566 and 1438467
2023-03-27 16:10:54 +08:00
FranklinDM
f169940742 Issue #2135 - Don't discard event state mask when matching ::slotted() or :host arguments
This should fix issues with selectors like :host(:hover) that continue to be matched although the cursor is no longer hovering over those elements.
2023-03-24 23:32:36 +08:00
FranklinDM
4cd0de04d0 Issue #1592 - Part 8: Test the assigned slot for type/class/ID/attribute instead of the slottable when matching ::slotted() 2023-03-24 09:12:35 +08:00
FranklinDM
19226fd560 Issue #1592 - Part 7: Slottables cannot be matched from the outer tree. 2023-03-24 09:12:15 +08:00
FranklinDM
91d2b6f4cf Issue #1592 - Part 6: Allow pseudo-classes with a forgiving selector list argument to follow pseudo-elements
Pseudo-classes with a forgiving selector list argument are allowed to follow a pseudo-element, but must treat any selector that is not of the same type as invalid. It doesn't make any sense, but that's the behavior of other tainted browsers.
2023-03-24 09:12:00 +08:00
FranklinDM
8d2533ad70 Issue #1592 - Part 5: Use flattened element tree when looking for a parent while matching ::slotted() 2023-03-24 09:11:26 +08:00
FranklinDM
518c41fd7a Issue #1592 - Part 4: Walk ::slotted()-containing rules for slottables
- Check against all selector parts and not the leftmost selector only for ::slotted()
- Walk rules for ::slotted() regardless if the shadow root is opened/closed
- Ensure that ::slotted() rules are walked in the right order
- Fix ::slotted inheritance from topmost shadow root
2023-03-24 09:11:07 +08:00
FranklinDM
92b31dd255 Issue #1592 - Part 3: Ensure only tree-abiding pseudo-elements will follow ::slotted() 2023-03-24 09:10:42 +08:00
FranklinDM
77ad970db6 Issue #1592 - Part 2: Parse ::slotted() pseudo-element as if it were a pseudo-class
- Block slot elements from being matched by ::slotted
- Ensure ::slotted() is serialized as a pseudo-element
- Add pref to control whether the pseudo-class is enabled
2023-03-24 09:07:36 +08:00
FranklinDM
ab63b7b946 Issue #1592 - Part 1c: Pass SelectorParsingFlags as a reference 2023-03-24 09:04:18 +08:00
FranklinDM
460e8db94c Issue #1592 - Part 1b: Move <slot> UA rule to html.css
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1468127
2023-03-24 09:03:58 +08:00
FranklinDM
0232bcdfa4 Issue #1592 - Part 1a: Prevent crashing if a slot element was selected via DOM Inspector 2023-03-24 09:03:42 +08:00
FranklinDM
7374ca6716 Issue #1593 - Follow-up: Fix :host matching from inside the shadow tree
Previously, we'd match :host despite the element having a different shadow root from the one that we currently have. Also, there's a test where :host should be blocked from matching if it is a descendant of an explicit universal selector.
2023-03-23 09:02:47 +08:00
FranklinDM
2be0261d54 Issue #2078 - Follow-up: Ensure empty selector lists aren't iterated when serialized
Really odd that this wasn't caught/doesn't cause any issues on MSVC/unoptimized GCC. Must've been luck, I guess.
2023-03-12 07:10:40 +08:00
FranklinDM
ef36c56593 Issue #2137 - Part 4: Fix namespace regression 2023-03-12 07:09:56 +08:00
FranklinDM
b257a71cce Issue #2137 - Part 3: Don't always use the internal pseudo-class for handling negations 2023-03-12 07:09:41 +08:00
FranklinDM
3bb3c193d0 Issue #2137 - Part 2: Implement SelectorParsingFlags and use it to pass info around 2023-03-12 07:09:22 +08:00
FranklinDM
82fa9fb80b Issue #2137 - Part 1: Modify :not() selector to accept a complex selector list 2023-03-12 07:09:00 +08:00
Moonchild
2249fbdf49 Issue #2135 - Follow-up: Check for aElement not being null
This was introduced to Make <link rel="stylesheet"> work in shadow trees.
eElement can, however, be `null` here and if so, it would crash.
2023-03-12 07:07:25 +08:00