tree eda8307e92a33d47ecb266df688f0f793fc378f1
parent 11597c287453d3cf84cf3c670fab6837914079be
author Emilio Cobos Álvarez <emilio@crisal.io> 1610554954 +0000
committer moz-wptsync-bot <wptsync@mozilla.com> 1610556311 +0000

Add and adjust image-set tests / test expectations.

The tests uncover two things:

 * cursor: image-set() doesn't work, because there's no <image> in the
   spec: https://drafts.csswg.org/css-ui-4/#cursor

 * content: image-set() similarly doesn't work. Though in this case the
   spec does call for it to work.

The later doesn't work because we don't support the whole <image> syntax
in `content` (so, we don't support `content: linear-gradient` or so on).
That seems like a separate issue to fix (WebKit does support this).

The former should probably also work (though WebKit only supports URLs
and not other images like gradients... will file a spec issue).

It also caught a bug with first-contentful-paint which I fixed drive-by:
image-set(url(..)) should be considered contentful, just like url(..) is.

The test changes are mostly straight-forward, but two changes are worth
mentioning:

 * I moved one subtest that tested content: image-set() from
   image-set-rendering.html to its own test, so that we can annotate the test
   as passing and ensure it doesn't regress (there's no way to annotate a
   reftest as "partially passing").

 * I changed a test that was testing image-set('/images/red.png') as invalid
   incorrectly (resolution is optional per spec and behaves like 1x).

Differential Revision: https://phabricator.services.mozilla.com/D100701

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1684909
gecko-commit: 5c7363d33df344a148a63aff09f9c548bbc144ac
gecko-reviewers: dholbert
