Commit graph

155 commits

Author SHA1 Message Date
Matt A. Tobin
3b2a22f085 Bug 1373798 - Move HTML dir attribute state into event state flags
* Stop calling SetHasDirAuto/ClearHasDirAuto in input element code
* Introduce event state flags that track the state of an element's dir attribute
* Rewrite our existing checks for the state of the dir attr on top of the new event state flags
* Add pseudo-classes for matching on the dir attribute states
* Use the new dir attribute pseudoclasses in html.css

Tag #1375
2020-04-18 07:04:25 +08:00
Matt A. Tobin
5d444ef68a Bug 1332353 - Make it clearer when a stylesheet is really owned by its mDocument
Tag #1375
2020-04-18 07:04:19 +08:00
Matt A. Tobin
d3ffda520f Bug 1355351 - Make pseudo-elements return the correct style via getComputedStyle
* Add a node property to access the ::before and ::after pseudo-elements
* Look for the frame for ::before and ::after pseudos
* Clean up pseudo-element props
* Simplify nsLayoutUtils callers, and make child iterators notice display: contents pseudos

Tag #1375
2020-04-18 07:03:44 +08:00
Matt A. Tobin
c37b4d0c63 Bug 1330843 - Allow JS to create NAC pseudo-elements
Tag #1375
2020-04-18 07:03:31 +08:00
Matt A. Tobin
fda213de85 Bug 1346623 - Allow anonymous content created with nsIDocument::InsertAnonymousContent can change from non-native to native AC
* Prevent canvas custom content from becoming NAC when reframing the root element
* Add an API to get computed style values through an AnonymousContent object

Tag #1375
2020-04-18 07:03:28 +08:00
Matt A. Tobin
b723a5c8c4 Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time
* Stop using a node bit for HasExplicitBaseURI
* Move MAY_HAVE_CLASS to mBoolFlags
* Add a flag to indicate that a node is native anonymous content
* Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo

Tag #1375
2020-04-18 07:03:03 +08:00
Matt A. Tobin
02ff2ef376 Issue #1375 - Fix unified sources 2020-04-18 07:02:50 +08:00
Matt A. Tobin
a03838af22 Bug 1321284 - Crash in nsCSSFrameConstructor::GetInsertionPrevSibling when trying to reframe native anonymous content
* Make StyleChildrenIterator skip NAC generated by root element primary frame ancestors.
* Add nsINode::GetFlattenedTreeParentNodeForStyle.
* Add iterator class to find all restyle roots.

NOTE: Parts 1, 2, and "4.2"

Tag #1375
2020-04-18 07:02:47 +08:00
wolfbeast
d750f143f3 Fix a whitespace issue in nsComputedDOMStyle.cpp 2020-02-13 07:17:39 +08:00
wolfbeast
cda9951c24 [CSS] Add stub for font-variation-settings
This stub is added because websites insist on considering this
very hardware-dependent and O.S.-variable low-level font-control
as a "critical feature" which it isn't as there is 0 guarantee
that font variation settings are supported or honored by any
operating system used by the client.

On top this is a WD status feature that sites shouldn't be using, and
the feature itself is strongly discouraged for use in favor of standard
CSS font manipulation keywords like `font-weight`.
2020-02-13 07:17:37 +08:00
Gaming4JC
a2e1955dc6 Bug 1271549 - Remove details and summary preference.
Tag UXP Issue #1344
2020-01-31 07:35:02 +08:00
Gaming4JC
900df90dae Bug 1322938 - Basic implementation of HTMLDialogElement.
Tag #1343
2020-01-09 21:27:54 +08:00
JustOff
13aff00f59 Issue #1345 - Implement non-standard legacy CSSStyleSheet rules 2020-01-09 21:23:47 +08:00
wolfbeast
b753aec164 Issue #1118 - Part 6: Fix various tests that are no longer correct.
The behavior change of document.open() requires these tests to be
changed to account for the new spec behavior.
2019-12-28 21:20:04 +08:00
wolfbeast
72b9aaa248 Issue #1219 - Align computed DOM styles with mainstream behvior.
This updates our behavior for computed DOM styling to no longer return
null on elements that have no display, but return a 0-length (empty)
style instead and don't throw. For this we stop looking at having a
presentation for the style and just look at the document instead.

This resolves #1219
2019-12-21 07:12:56 +08:00
athenian200
6de8a0f12d MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up.
Compared with what Pale Moon had for Solaris originally, this is mostly the same zero point I started patching from, but I've made the following changes here after reviewing all this initial code I never looked at closely before.

1. In package-manifest.in for both Basilisk and Pale Moon, I've made the SPARC code for libfreebl not interefere with the x86 code, use the proper build flags, and also updated it to allow a SPARC64 build which is more likely to be used than the 32-bit SPARC code we had there.

2. See Mozilla bug #832272 and the old rules.mk patch from around Firefox 30 in oracle/solaris-userland. I believe they screwed up NSINSTALL on Solaris when they were trying to streamline the NSS buildsystem, because they started having unexplained issues with it around that time after Firefox 22 that they never properly resolved until Mozilla began building NSS with gyp files. I'm actually not even sure how relevant the thing they broke actually is to Solaris at this point, bug 665509 is so old it predates Firefox itself and goes back to the Mozilla suite days. I believe $(INSTALL) -t was wrong, and they meant $(NSINSTALL) -t because that makes more sense and is closer to what was there originally. It's what they have for WINNT, and it's possible a fix more like that could serve for Solaris as well. Alternatively, we could get rid of all these half-broken Makefiles and start building NSS with gyp files like Mozilla did.

3. I've completely cut out support for the Sun compiler and taken into account the reality that everyone builds Firefox (and therefore its forks) with GCC now on Solaris. This alone helped clean up a lot of the uglier parts of the code.

4. I've updated all remaining SOLARIS build flags to the newer XP_SOLARIS, because the SOLARIS flag is no longer set when building Solaris.

5. I've confirmed the workaround in gtxFontconfigFonts.cpp is no longer necessary. The Solaris people got impatient about implementing a half-baked patch for a fontconfig feature that wasn't ready yet back in 2009, and somehow convinced Mozilla to patch their software to work around it when really they should have just fixed or removed their broken fontconfig patch. The feature they wanted has since been implemented properly, and no version of Solaris still uses the broken patch that required this fix. If anyone had ever properly audited this code, it would have been removed a long time ago.
2019-11-04 11:52:13 +08:00
Gaming4JC
e4c397f0d9 Issue #1230 - Part 1: Fix Back-computing percentages for intrinsic sizing in Layout CSS-Grid
List of relevant patches applied:

1398537 part 2 - [css-multicol] Implement percentages for 'column-gap' (Gecko part).

1434478 part 1 - [css-grid] Stop back-computing percentage grid gaps when the percentage basis is indefinite. Treat them as zero sized instead.

1434478 part 2 - Stop back-computing percentage padding/margin when the percentage basis is indefinite. Treat them as zero sized instead.

1434478 part 3 - Remove IntrinsicISizeOffsetData::hPctPadding/hPctMargin members since they are now unused.

1434478 part 4 - Factor out constants like NS_UNCONSTRAINEDSIZE so they can be used in headers without needing nsIFrame.h (idempotent patch).

1434478 part 5 - Create nsLayoutUtils::ResolveToLength for resolving CSS <length-percentage> (idempotent patch).

1434478 part 6 - Propagate a percentage basis to nsIFrame::IntrinsicISizeOffsets for resolving padding/margin.

This is needed only for CSS Grid since in other cases we're only using IntrinsicISizeOffsets in the inline-axis and the percentage basis is always indefinite for *intrinsic sizing*. When calculating the intrinsic size of grid items in the grid container's block axis however, we do have a definite size for the grid area in the inline-axis and it should be used per: https://drafts.csswg.org/css-grid/#algo-overview "2. Next, the track sizing algorithm resolves the sizes of the grid rows, using the grid column sizes calculated in the previous step." (Percentage padding/margin for grid items is always resolved against the grid area's inline-size nowadays.)
2019-10-05 07:22:11 +08:00
wolfbeast
acefb96117 Issue #1211: Allow the loading of TYPE_FONT from file: URLs.
This bypasses the CORS restriction of unique file: URLs in the case of
fonts loaded through CSS.

Resolves #1211.
2019-08-17 13:32:00 +08:00
JustOff
56ad09f64a Handle URL token in a closer way to the CSS3 spec 2019-04-27 08:23:37 +08:00
wolfbeast
78d61fd2b1 Issue #187: Remove solaris conditional code. 2019-04-04 20:26:26 +08:00
wolfbeast
9bcb7ab2a5 Remove various hard-coded Accept: headers
Since we're now handling this in the network back-end, there's no
need for this anymore.

Tag #993.
2019-03-16 07:02:13 +08:00
yami
b5376e63c5 issue #908 - implement missing parts of CSS mask 2019-02-16 00:27:53 +08:00
wolfbeast
39d5eb7759 Remove NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS 2019-02-16 00:27:49 +08:00
adeshkp
aea50f182f Telemetry: Remove stubs and related code 2019-02-16 00:24:04 +08:00
wolfbeast
f09b84deb0 Make MAX_CSS_VAR_LENGTH unsigned to avoid warnings.
Follow-up for #891. Tag #457.
2019-02-16 00:23:53 +08:00
wolfbeast
528de62070 Limit the CSS string length for resolved variables to sane values.
This resolves #891
2019-02-16 00:20:50 +08:00
wolfbeast
5cc1408b3d Revert "Part 1. Move IsLocalRefURL to nsContentUtils to reuse this function. (port-rewrite)"
This reverts commit 19f010c62022e269f99066a8d90e3522fe31adaf.
2019-02-16 00:12:40 +08:00
wolfbeast
325afc0ab8 Part 1. Move IsLocalRefURL to nsContentUtils to reuse this function. (port-rewrite)
`IsLocalRefURL` is originally designed to be used by URLValue only.
Since we need this function in SVGUseElement::LookupHref too, move it to nsContentUtils as a util function.
2019-02-16 00:12:38 +08:00
wolfbeast
8c8145e620 Remove all C++ Telemetry Accumulation calls.
This creates a number of stubs and leaves some surrounding code that may be irrelevant (eg. recorded time stamps, status variables).
Stub resolution/removal should be a follow-up to this.
2019-02-16 00:12:32 +08:00
SpockMan02
2d708bf86c Undo Mozilla Bug 1302937; Reinstate -moz-mac-lion-theme media query 2019-02-16 00:06:39 +08:00
trav90
afedf5b82e Remove unnecessary GCC version checks 2019-02-16 00:06:37 +08:00
janekptacijarabaci
1f262f0d2b moebius#90: CSS - implement text-justify property 2019-02-15 23:54:04 +08:00
janekptacijarabaci
5677db4b6e Bug 1264125: Fire transitioncancel event when a transition is canceled (added tests + style clean up)
Issue #55
2019-02-15 23:54:03 +08:00
janekptacijarabaci
2243f5248c Bug 1202333: AnimationEvent elapsedTime should reflect playbackRate (added tests)
Issue #55
2019-02-15 23:54:01 +08:00
janekptacijarabaci
901d2a277f moebius#89: DOM - implement animationcancel event
Issue #55
2019-02-15 23:54:00 +08:00
janekptacijarabaci
c8ee9f4f48 Bug 1264125: Queue CSS related event when setting null target effect
Issue #55
2019-02-15 23:53:58 +08:00
janekptacijarabaci
96037b8c9a Bug 1264125: Call the queueing events when canceling transition via Style or Script
Issue #55
2019-02-15 23:53:56 +08:00
janekptacijarabaci
ffa8225e06 Bug 1264125: Queue transitioncancel when animation status is idle
Issue #55
2019-02-15 23:53:55 +08:00
janekptacijarabaci
e30e72ff31 Revert - Bug 1324985: Disable firing the transitionrun and transitionstart on Aurora 52
Issue #55
2019-02-15 23:53:53 +08:00
janekptacijarabaci
0c3ebf1a3b Bug 1202333: AnimationEvent elapsedTime should reflect playbackRate (without tests)
Issue #55
2019-02-15 23:53:50 +08:00
janekptacijarabaci
85692a1198 moebius#138: Optimize operations on root of deeply-nested frame tree
https://github.com/MoonchildProductions/moebius/pull/138
2019-02-15 23:50:20 +08:00
janekptacijarabaci
b706df90da Bug 1209697: Clear ancestor intrinsic sizes when our block size changes 2019-02-15 23:50:12 +08:00
Boris Zbarsky
72c04aea04 Bug 1453339 - Make it harder to mess up Promise::All. r=peterv, a=RyanVM
MozReview-Commit-ID: UO4wssYHj7
2019-02-15 23:47:26 +08:00
wolfbeast
7754d12175 Use natural border width rounding.
Round subpixel border widths to nearest integer instead of nearest-below integer.
Split caret widths off from border widths and continue to use rounding to nearest-below integer for that.

Bump Goanna version for visual rendering change.
2019-02-15 23:46:41 +08:00
janekptacijarabaci
cac5c5adc7 moebius#92: HTML - input - datetime
+ native in moebius:

Bug 1317600: https://bugzilla.mozilla.org/show_bug.cgi?id=1317600
A note - not implemented: Bug 1282768:
https://bugzilla.mozilla.org/show_bug.cgi?id=1282768
*.css: filter: url("chrome://global/skin/filters.svg#fill");, fill:

Bug 1283385: https://bugzilla.mozilla.org/show_bug.cgi?id=1283385
Bug 1323109: https://bugzilla.mozilla.org/show_bug.cgi?id=1323109
Bug 1314544: https://bugzilla.mozilla.org/show_bug.cgi?id=1314544
Bug 1286182: https://bugzilla.mozilla.org/show_bug.cgi?id=1286182

Bug 1325922: https://bugzilla.mozilla.org/show_bug.cgi?id=1325922
A note - not implemented: Bug 1282768:
https://bugzilla.mozilla.org/show_bug.cgi?id=1282768
*.css: filter: url("chrome://global/skin/filters.svg#fill");, fill:

Bug 1320225: https://bugzilla.mozilla.org/show_bug.cgi?id=1320225
Bug 1341190: https://bugzilla.mozilla.org/show_bug.cgi?id=1341190
2019-02-15 23:44:39 +08:00
janekptacijarabaci
d8bcf2270a Bug 1286182: Implement the layout for <input type=date> 2019-02-15 23:44:33 +08:00
wolfbeast
434f3590e3 Remove base conditional code for crash reporter and injector. 2019-02-15 23:39:53 +08:00
janekptacijarabaci
66276efa0a [draft] CSS - linear-gradient - zero (0) angle value without degree unit is not correctly interpreted 2019-02-15 23:36:11 +08:00
janekptacijarabaci
622832ae39 CSS - Grid - fit-content unexpectedly reserves space for full clamp size in repeat() 2019-02-15 23:36:09 +08:00
wolfbeast
bfc4f952ac Never shrink line heights as a result of minimumFontSize.
See: MoonchildProductions/Pale-Moon#1614.
2019-02-15 23:32:11 +08:00