Commit graph

867 commits

Author SHA1 Message Date
FranklinDM
57d616da4c Issue #1838 - Part 5: Address follow-up issues to initial flexbox layout for (column|row)-gap properties
Notes:
* Bug 1473044 - Make flexbox cross size take row/column gap into account
https://bugzilla.mozilla.org/show_bug.cgi?id=1473044
* Bug 1473047 - Re-resolve row-gap percentages after intrinsic block size calculated
https://bugzilla.mozilla.org/show_bug.cgi?id=1473047
* Bug 1612401 - Prevent absolute-positioned children from contributing gap size to flexbox's inline-size
https://bugzilla.mozilla.org/show_bug.cgi?id=1612401
* Bug 1639627 - Make flex-container percent 'row-gap' values resolve to 0, when they're resolved against an indefinite block-size (essentially reverts Bug 1473047)
2022-04-19 21:56:07 +08:00
FranklinDM
d0cbf1a74f Issue #1838 - Part 4: Implement flexbox layout for (column|row)-gap properties
This implements flexbox layout for the gap properties without the refactoring work performed on `nsFlexContainerFrame`.

Partially based on https://bugzilla.mozilla.org/show_bug.cgi?id=1398483 and https://bugzilla.mozilla.org/show_bug.cgi?id=1454822

This excludes the second part of bug 1454822, the width caching implementation, because it is out of scope and currently causes unstable layout with `writing-mode: vertical-lr` (see bug 1709937).
2022-04-19 21:56:01 +08:00
FranklinDM
b4f2c83687 Issue #1838 - Part 2: Remove grid- prefix from grid-(column|row)-gap properties
This removes the `grid` prefix from the gap-related properties of grid since they are now part of the box alignment specification. Former grid-gap* properties were aliased to the unprefixed properties to maintain compatibility.

The previously multi-column layout only `column-gap` property has been modified to apply to the Grid layout (and Flexbox in a following commit), moving the `mColumnGap` member variable from `nsStyleColumn` to `nsStylePosition`.

Notes:
* Bug 1398537 - support for percent values in column-gap for multi-column layout landed as part of Issue #1230. However, it was incomplete because it did not update `nsRuleNode` to allow transformation of percentage values for `column-gap`. This was consequently fixed as part of this commit.
* Bug 1456166 - this might not apply because we don't have that devtools test in UXP
* `nsRuleNode`, `nsCSSParser`, `Declaration`, and other related classes were merged into Stylo. These should be taken into consideration when porting patches from Mozilla.

Partially based on https://bugzilla.mozilla.org/show_bug.cgi?id=1398482
2022-04-19 21:55:52 +08:00
FranklinDM
4f059d2c8b Issue #1838 - Part 1: Remove CSS grid preference
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1398492
2022-04-19 21:55:49 +08:00
roytam1
c277d761f3 Merge remote-tracking branch 'origin/tracking' into custom 2022-03-22 23:32:48 +08:00
Moonchild
602bb0a877 Issue #3059 - Implement Selection.setBaseAndExtent() 2022-03-22 23:08:04 +08:00
Moonchild
94f3f356ed Issue #3050 - Follow-up: extend attribution mapping to resize and corner controls to allow themes to respond to scrollbar-width.
Also clean up the comments and whitespace a bit.
2022-03-22 23:06:12 +08:00
Moonchild
4bdd388989 Issue #3050 - Map scrollbar-width to an element attribute.
By mapping this to an attribute, this allows browser themes to respond to
the various available scrollbar width settings in CSS.
2022-03-22 23:05:57 +08:00
Matt A. Tobin
4cc56c2cb6 Issue #3024 - First pass support for :host and :host-context 2022-03-22 22:57:05 +08:00
Jeremy Andrews
74698b4560 Issue #3017 - Shadow boundaries not accounted for in nsFrameManager. 2022-03-22 22:32:49 +08:00
roytam1
c7ec584cf8 Merge remote-tracking branch 'origin/tracking' into custom 2021-12-14 23:18:25 +08:00
roytam1
bf632ce22a Bug 1730120, close ContentViewer properly if initialization fails, r=nika a=RyanVM 2021-12-14 23:10:14 +08:00
roytam1
6bc10cbc95 Bug 1730048, reorder the code in nsMenuFrame::PassMenuCommandEventToPopupManager a bit, r=mstange a=RyanVM 2021-11-10 09:10:25 +08:00
roytam1
190b620c2d partly import changes from tenfourfox:
- first rolling release: update to 91ESR EV and roots, TZs, TLDs (d7c93b6cf)
- security: M1730935, M1735152, M1730048 (1603b00d0)
2021-11-01 10:39:52 +08:00
Fedor
8a0897d23f [CSS] Add calc availability to color functions. 2021-09-21 09:47:53 +08:00
roytam1
02a8a3cf55 Merge remote-tracking branch 'origin/master' into custom 2021-07-28 10:12:34 +08:00
Moonchild
a05b76ff1a Issue #1781 - Follow-up: fix debug assert in MergeMultiplicativeR() 2021-07-28 10:10:09 +08:00
roytam1
b34627c802 Merge remote-tracking branch 'origin/master' into custom 2021-07-16 09:22:11 +08:00
Moonchild
a0ee1f3c0d [layout] Ensure we set the primary frame for native anon content where needed. 2021-07-16 09:21:17 +08:00
roytam1
bcc143f7b3 partly imported from bk55:
- import changes from tenfourfox:
 - closes #645: M171156 +TLDs TZs
2021-07-15 10:00:23 +08:00
roytam1
20c6498ca1 Merge remote-tracking branch 'origin/master' into custom 2021-06-24 11:13:09 +08:00
athenian200
efc6048941 Issue #1784 - Add -moz-dark-theme media query and allow prefers-color-scheme to follow it. 2021-06-24 11:10:22 +08:00
Moonchild
ba00d14c12 Issue #1751 - Remove Mac code behind MOZ_WIDGET_TOOLKIT == 'cocoa' 2021-06-24 11:09:47 +08:00
Jeremy Andrews
d1a537b9cf Issue #1776 - Support detecting bool preferences in chrome stylesheets
This functionality was already added to Gecko for UA stylesheets allow the "dom.details_element.enabled" preference to work. I changed the condition to allow bool preferences to be used in chrome stylesheets as well.
2021-06-24 11:05:21 +08:00
roytam1
041677fc4b Merge remote-tracking branch 'origin/master' into custom 2021-06-15 11:20:52 +08:00
Moonchild
f81300202c Issue #1781 - Part 3: Add reftest for the static calc() case. 2021-06-15 11:19:03 +08:00
Moonchild
a149af1199 Issue #1781 - Part 2: Fix animation interpolation for stroke-dashoffset.
Since we have calc() and floats working now, this is a trivial fix.
2021-06-15 11:19:00 +08:00
Moonchild
15a322effa Issue #1781 - Part 1: support calc() in stroke-dashoffset CSS
This adds basic calc() support to stroke-dashoffset. It does not provide
CSS animation (yet, todo for part 2)
2021-06-15 11:18:58 +08:00
roytam1
2c79eebb23 Merge remote-tracking branch 'origin/master' into custom 2021-05-05 10:32:33 +08:00
Moonchild
02c59100a8 Issue #1751 -- Remove XP_MACOSX conditionals from /layout 2021-05-05 10:29:02 +08:00
roytam1
7f6520be1a Merge remote-tracking branch 'origin/master' into custom 2021-04-02 10:50:32 +08:00
athenian200
618fa768c8 Issue #1757 - Reinstate "dom.details_element.enabled" preference
The removal of this preference was botched, all other surrounding plumbing changes appear to be working okay. The ability to use prefs to control this stylesheet might be useful in the future, so perhaps this is one of those "if it ain't broke, don't fix it" bugs where leaving well enough alone in the first place would have been the best choice.
2021-04-02 10:33:54 +08:00
Moonchild
be539ad8fc Issue #1755 - Add smooth, high-quality and pixelated to CSS image-rendering 2021-03-29 10:38:13 +08:00
Moonchild
a10c0bceab Issue #1754 - Fix clip path overflow.
Resolves #1754.
2021-03-29 10:38:12 +08:00
roytam1
f9ded55f98 Merge remote-tracking branch 'origin/master' into custom 2021-03-25 09:26:26 +08:00
athenian200
da2461fa57 Issue #1752 - Implement "prefers-color-scheme" as a user preference.
This PR passes all current tests for this feature, and implements the "prefers-color-scheme" media query as an enumerated keyword that is controlled by an integer preference.

Currently, the possible options are 0 to see a website's fallback code and essentially behave like this isn't implemented (our current behavior), 1 to express a preference for a light theme (the default for spec reasons), and 2 to express a preference for a dark theme. Over time, this list may expand to include other preferences like a preference for a sepia theme or something, and this leaves us prepared for that future.
2021-03-25 09:05:20 +08:00
roytam1
333a06698b Merge remote-tracking branch 'origin/master' into custom 2021-03-11 10:14:22 +08:00
Moonchild
1feafdc819 Issue #1053 - Remove mobile-specific graphics "optimizations" (=compromises) 2021-03-11 10:13:55 +08:00
roytam1
c578cff883 Merge remote-tracking branch 'origin/master' into custom 2021-02-04 22:20:40 +08:00
Moonchild
5fb8c296a0 Issue #1515 - Add null check to nsCSSFrameConstructor::IsValidSibling
With the changes to layout for WebComponents, it is now apparently possible to
pass in null for frame tree items to this function, which would cause a null
deref crash if not checked.
2021-02-04 21:36:14 +08:00
roytam1
d72c60c303 Merge remote-tracking branch 'origin/master' into custom 2021-01-27 21:05:06 +08:00
Moonchild
ef906c715e [layout, XUL] Avoid accessing invalidated frame. 2021-01-27 21:02:50 +08:00
Moonchild
a828a5f321 Issue #1719 - Make <menuitem> pref-controlled and disable by default.
Resolves #1719
2021-01-27 21:01:54 +08:00
roytam1
3e1ffe6299 Merge remote-tracking branch 'origin/master' into custom 2021-01-21 14:42:57 +08:00
Moonchild
fdeb68f0b8 Issue #1689 - Part 3: Add a preference for animation composite modes.
This feature should not be shipped until the various definitions of addition for
each additive property are properly specified and then implemented accordingly.

Unlike other patches in this series, compositing is not frequently used
internally so there is no need to enable this by default for chrome callers.
2021-01-21 14:31:22 +08:00
Moonchild
ad1e2abea1 Issue #1689 - Part 1: Add pref for DOM Animation timelines API
Default false, no intent to ship for web content. Always enabled for Chrome.
2021-01-21 14:31:18 +08:00
roytam1
a324d0a18c Merge remote-tracking branch 'origin/master' into custom 2021-01-14 22:41:39 +08:00
Moonchild
7060aae250 Issue #1705 - Part 5: Implement scrollbar-width:none for all target platforms. 2021-01-14 22:19:56 +08:00
Moonchild
8e08d8bfd3 Issue #1705 - Part 4: Add scrollbar-width CSS keyword to CSS parser.
This should be all parts needed to add a brand new enum keyword including
getting the computed style from it...
2021-01-14 22:19:55 +08:00
Moonchild
21f707390d Issue #1705 - Part 3: Rename ScrollbarStyles to ScrollStyles.
ScrollbarStyles contains values of overflow, (over)scroll-behavior, etc.
The only one which is marginally related to scroll _bars_ is overflow, which can
be used to hide scrollbar (by making an element not scrollable) or enforce the
scrollbar to display.

It makes more sense to be called ScrollStyles as it's mainly concerning behavior
of scrolling, not scrollbars. Also, with the addition of scrollbar width
properties, the current name can be confusing.
2021-01-14 22:19:53 +08:00