Commit Graph

3978 Commits

Author SHA1 Message Date
Simon Giesecke
62d4fb1410 Bug 708901 - Migrate to nsTHashSet in image. r=tnikkel
Depends on D108603

Differential Revision: https://phabricator.services.mozilla.com/D109316
2021-03-23 10:36:36 +00:00
Florian Quèze
8ad1e5d0aa Bug 1699742 - Remove MOZ_GECKO_PROFILER ifdefs that are no longer needed, r=gerald.
Differential Revision: https://phabricator.services.mozilla.com/D109078
2021-03-22 16:29:52 +00:00
Simon Giesecke
6ae9169f08 Bug 1698098 - Make use of nsBaseHashtable::Clone. r=xpcom-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D107617
2021-03-19 09:01:46 +00:00
Jeff Gilbert
d517313a40 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-19 00:58:23 +00:00
Simon Giesecke
b9621d6376 Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D108585
2021-03-17 15:49:46 +00:00
Csoregi Natalia
e0c536d241 Backed out changeset f155cf6af343 (bug 1697670) for bustage on gfxUtils.cpp. CLOSED TREE 2021-03-17 02:41:15 +02:00
Jeff Gilbert
7d9b571b77 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-16 23:25:54 +00:00
Emilio Cobos Álvarez
0a06e2c6d2 Bug 1697963 - Handle non-animated frozen images better, avoiding WR fallback. r=aosmond
If GetAnimated fails when we're getting a static request, because e.g.
the image is not yet fully loaded, we still create a frozen image, but
in that case we can do better and avoid the WR fallback.

Depends on D108197

Differential Revision: https://phabricator.services.mozilla.com/D108198
2021-03-12 18:39:05 +00:00
Simon Giesecke
ad01a10a3b Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Emilio Cobos Álvarez
ec2e64fa12 Bug 1678487 - Ensure CMS is initialized all at once on the main thread, have thread-safe accessors for the various transforms. r=aosmond,jrmuizel
Well, mostly thread-safe, in the sense that on shutdown we might free
them, but that is pre-existing and can't happen for the code-path that
I'm about to touch.

We could probably just avoid freeing these transforms if we wanted...

Differential Revision: https://phabricator.services.mozilla.com/D104946
2021-03-08 18:12:06 +00:00
Bogdan Tara
544268f5a4 Backed out 2 changesets (bug 1678487) for static gfxPlatform::InitializeCMS crashes CLOSED TREE
Backed out changeset af0927300d51 (bug 1678487)
Backed out changeset 9ed081f10e63 (bug 1678487)
2021-03-08 04:47:16 +02:00
Emilio Cobos Álvarez
4b0411a401 Bug 1678487 - Ensure CMS is initialized all at once on the main thread, have thread-safe accessors for the various transforms. r=aosmond
Well, mostly thread-safe, in the sense that on shutdown we might free
them, but that is pre-existing and can't happen for the code-path that
I'm about to touch.

We could probably just avoid freeing these transforms if we wanted...

Differential Revision: https://phabricator.services.mozilla.com/D104946
2021-03-08 01:18:18 +00:00
Simon Giesecke
c5bdcb69d1 Bug 1695162 - Make nsBaseHashtable::ConstIter return a real ConstIterator. r=xpcom-reviewers,necko-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D106642
2021-03-03 08:58:53 +00:00
Simon Giesecke
9af107a839 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Timothy Nikkel
f0236001ca Bug 1690845. Don't ask Windows for the icon of an empty file extension because it returns the c: drive icon, which is not what we want. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D105736
2021-02-24 22:29:06 +00:00
Andrew Osmond
29848ac31b Bug 1693383 - Part 1. Adjust tests to correctly detect HW-WR and SW-WR variants. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D105620
2021-02-24 18:47:23 +00:00
Simon Giesecke
eb291e55de Bug 1693541 - Improve uses of nsBaseHashtable and descendants by using Contains instead of Get in image. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D106106
2021-02-24 12:49:57 +00:00
Butkovits Atila
ac34595c78 Backed out changeset 1ff45a9b57fe (bug 1690845) for causing failure at reftest.list. CLOSED TREE 2021-02-24 12:44:07 +02:00
Timothy Nikkel
a17ef11404 Bug 1690845. Don't ask Windows for the icon of an empty file extension because it returns the c: drive icon, which is not what we want. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D105736
2021-02-24 09:56:16 +00:00
Markus Stange
56051da2d0 Bug 1692391 - Replace the NS_OBJC_BEGIN/END_TRY_ABORT_BLOCK_NSRESULT macros with the functionally identical NS_OBJC_BEGIN/END_TRY_BLOCK_RETURN(NS_ERROR_FAILURE). r=haik
This patch was generated with the commands:

```
rg -l 'NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT' . | xargs sed -i '' -e 's/NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT/NS_OBJC_BEGIN_TRY_BLOCK_RETURN/g'
rg -l 'NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT' . | xargs sed -i '' -e 's/NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT/NS_OBJC_END_TRY_BLOCK_RETURN(NS_ERROR_FAILURE)/g'
```

Differential Revision: https://phabricator.services.mozilla.com/D104957
2021-02-16 22:55:20 +00:00
Butkovits Atila
8237c8c393 Bug 1354561 - disable test_animSVGImage2.html for frequent failures. r=intermittent-reviewers,tnikkel,jmaher DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D104941
2021-02-16 22:01:20 +00:00
Gerald Squelart
2416d881e2 Bug 1691589 - Reduce reliance on GeckoProfiler.h when only labels (and maybe markers) are needed - r=necko-reviewers,geckoview-reviewers,sg,agi,florian
There are no code changes, only #include changes.
It was a fairly mechanical process: Search for all "AUTO_PROFILER_LABEL", and in each file, if only labels are used, convert "GeckoProfiler.h" into "ProfilerLabels.h" (or just add that last one where needed).
In some files, there were also some marker calls but no other profiler-related calls, in these cases "GeckoProfiler.h" was replaced with both "ProfilerLabels.h" and "ProfilerMarkers.h", which still helps in reducing the use of the all-encompassing "GeckoProfiler.h".

Differential Revision: https://phabricator.services.mozilla.com/D104588
2021-02-16 04:44:19 +00:00
Emilio Cobos Álvarez
3f5561a2f7 Bug 1678487 - Make CMSMode an enum class. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D104945
2021-02-13 03:59:23 +00:00
Mihai Alexandru Michis
afd69c4be3 Backed out 3 changesets (bug 1678487) for causing reftest failures.
CLOSED TREE

Backed out changeset f6519420f910 (bug 1678487)
Backed out changeset 9beae015d19b (bug 1678487)
Backed out changeset 029cc10d2477 (bug 1678487)
2021-02-13 05:18:54 +02:00
Emilio Cobos Álvarez
ba4d1a3c68 Bug 1678487 - Make CMSMode an enum class. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D104945
2021-02-13 02:15:22 +00:00
Brindusan Cristian
d930c1c648 Backed out 5 changesets (bug 1678487) for multiple failures. CLOSED TREE
Backed out changeset 00242b4230f2 (bug 1678487)
Backed out changeset 63612a51cfee (bug 1678487)
Backed out changeset bd0321ad1968 (bug 1678487)
Backed out changeset c6a4d3c17d39 (bug 1678487)
Backed out changeset 5de112a29a87 (bug 1678487)
2021-02-13 02:41:17 +02:00
Emilio Cobos Álvarez
dc73c68e0e Bug 1678487 - Initialize all the CMS state once on the main-thread, have thread-safe accessors for the various transforms. r=aosmond
Well, mostly thread-safe, in the sense that on shutdown we might free
them, but that is pre-existing and can't happen for the code-path that I'm
about to touch.

We could probably just avoid freeing these transforms if we wanted...

Differential Revision: https://phabricator.services.mozilla.com/D104946
2021-02-12 23:23:31 +00:00
Emilio Cobos Álvarez
d7aca6b47c Bug 1678487 - Make CMSMode an enum class. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D104945
2021-02-12 23:23:31 +00:00
Jon Bauman
8974dd5426 Bug 1690406 - Update AVIF telemetry probes. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D104448
2021-02-09 21:28:41 +00:00
Jonathan Kew
bc2c71f27e Bug 1690771 - Adjust test metadata r=jrmuizel
Depends on D104046

Differential Revision: https://phabricator.services.mozilla.com/D104047
2021-02-04 13:51:21 +00:00
Nika Layzell
f07fc1f61f Bug 1687391 - Avoid using a spinlock in ThreadSafeWeakReference, r=glandium,mccr8,Gankra,sg
This new approach to weak references is roughly modeled after the approach used
by Rust's Arc<T>, and uses an atomic compare-and-swap loop to perform weak to
strong reference upgrades. This approach ends up moving the strong reference
count out of the tracked object and into the weak reference object, as the
strong reference count atomic needs to outlife the object itself.

Rust's Arc Weak::upgrade implementation:
d98d2f57d9/library/alloc/src/sync.rs (L1806-L1837)

Differential Revision: https://phabricator.services.mozilla.com/D102245
2021-02-03 17:00:04 +00:00
Bogdan Tara
369c9ff89b Backed out changeset cf95a79e64f6 (bug 1687391) for bustges complaining about ThreadSafeWeakPtr CLOSED TREE 2021-02-03 18:39:22 +02:00
Nika Layzell
33d14ac4a6 Bug 1687391 - Avoid using a spinlock in ThreadSafeWeakReference, r=glandium,mccr8,Gankra,sg
This new approach to weak references is roughly modeled after the approach used
by Rust's Arc<T>, and uses an atomic compare-and-swap loop to perform weak to
strong reference upgrades. This approach ends up moving the strong reference
count out of the tracked object and into the weak reference object, as the
strong reference count atomic needs to outlife the object itself.

Rust's Arc Weak::upgrade implementation:
d98d2f57d9/library/alloc/src/sync.rs (L1806-L1837)

Differential Revision: https://phabricator.services.mozilla.com/D102245
2021-02-03 16:16:44 +00:00
Jan de Mooij
41621582c6 Bug 1674777 part 3 - Change Get*LengthAndData outparam from uint32_t to size_t. r=sfink,aosmond
Differential Revision: https://phabricator.services.mozilla.com/D103275
2021-01-31 08:35:40 +00:00
Jon Bauman
5dda2d92af Bug 1684688 - Fix alpha support in nsAVIFDecoder. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D102852
2021-01-26 00:24:57 +00:00
Masatoshi Kimura
a29e207781 Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-15 12:07:16 +00:00
Narcis Beleuzu
0322452233 Backed out changeset a52961071dcd (bug 1685900) for Build bustage in nsContentSecurityManager.cpp. CLOSED TREE 2021-01-15 04:04:37 +02:00
Masatoshi Kimura
b384f14cde Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-15 04:02:41 +02:00
Dorel Luca
9ed19e2828 Backed out changeset a52961071dcd (bug 1685900) for Build bustage in nsContentSecurityManager.cpp. CLOSED TREE 2021-01-15 02:45:34 +02:00
Masatoshi Kimura
87e50835c4 Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D101271
2021-01-14 20:44:54 +00:00
Emilio Cobos Álvarez
f70b32956b Bug 1685796 - Return BAD_IMAGE when sync-decoding an incomplete, errored image. r=tnikkel
The only way that this can happen is if we get through the
ShouldTreatAsCompleteDueToSyncDecode check returning true in the case of
the image being errored.

https://hg.mozilla.org/integration/autoland/rev/645a4d6461ca was
supposed to deal with this, but my guess is that there is a slight race
condition in which the error status isn't there at the beginning, but is
there after the StartDecoding call.

It seems returning BAD_IMAGE rather than painting transparent if we hit
a broken image is a better thing to do than what we're doing now, and
should fix the intermittent issue.

Differential Revision: https://phabricator.services.mozilla.com/D101361
2021-01-12 02:28:00 +00:00
Jon Bauman
7fed1dba96 Bug 1682995 - Enable AVIF support by default. r=aosmond,preferences-reviewers,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D99964
2021-01-08 20:16:58 +00:00
Emilio Cobos Álvarez
2ec5aacdde Bug 1685078 - Fix test_bullet_animation.html. r=tnikkel
The current test relies on the explicit decoding that we start
triggering unconditionally right now, and which my previous patch
removes:

  https://searchfox.org/mozilla-central/rev/519f913527b0d9d5097d290d5731cff6b2991fe0/layout/generic/nsBulletFrame.cpp#1065

Remove the text so that the animation polling stuff detects when the
image loads (otherwise it sees a non-blank paint and starts thinking
that stuff is loaded, taking the reference snapshot too early).

Similarly, we need to set the color to transparent so that we don't get the
bullet that we draw as a fallback while the image is loading.

Differential Revision: https://phabricator.services.mozilla.com/D101034
2021-01-08 09:44:32 +00:00
David Major
295dec7d5f Bug 1685176 - Update the fuzzy for pal8v4.bmp on aarch64-windows r=jmaher,tnikkel
From what I can see in source history, pal8v4.bmp started out with a fuzzy of (3, 6376) on all platforms. Then one day aarch64-windows started producing a result of (1, 899) and so that platform's expectations were adjusted.

In the upcoming clang 12, the behavior of this test gets "fixed" in that we go back to those 6376 differing pixels like on other platforms. The max difference rises to 4 though. In light of the fact that aarch64-windows is seeing less priority these days, I can't justify digging into the exact code reason for the change, so this patch just updates the fuzzy setting to allow these values.

Differential Revision: https://phabricator.services.mozilla.com/D100823
2021-01-05 22:18:25 +00:00
Andi-Bogdan Postelnicu
0fd4f87a0c Bug 1683557 - Make image buildable outside of unified-build environment. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D100211
2021-01-04 14:20:22 +00:00
Masatoshi Kimura
3424a95ee0 Bug 1682103 - Make nsContentPolicyType a CEnum type. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D99580
2020-12-16 11:36:47 +00:00
Paul Zuehlcke
be3f13ec21 Bug 1654649 - Deny requestStorageAccess for sites with denied cookie permission. r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D99802
2020-12-16 16:45:18 +00:00
Chun-Min Chang
b7811b117b Bug 1654462 - Add alpha support in nsAVIFDecoder r=jbauman
This patch implements the transparency support for AVIF image files.

To convert the decoded YCbCr and Alpha data to RGBA, a function named
`ConvertYCbCrAToARGB` is created to do this job in the following
procedure:

ConvertYCbCrAToARGB:
  If the layout of the YCbCr is I420
    Calling libyuv::I420AlphaToARGB
  Else
    Fill RGB data converted by ConvertYCbCrToRGB in ARGB buffer first
    Insert the alpha data to ARGB buffer

On the other hand, this patch refactors the nsAVIFDecoder a bit to make
the lifetime of the parsed data and decoded image data clearer. They
won't live longer than Parser object and {Dav1d, AOM}Decoder object.
This should improve the code readability.

This patch also adds a transparent image test (TransparentAVIFTestCase)
to check the FLAG_HAS_TRANSPARENCY is posted or not. The test image file
`transparent.avif` is from Bug 1654462.

Differential Revision: https://phabricator.services.mozilla.com/D98951
2020-12-16 01:27:14 +00:00
Kartik Gautam
f7ffcd09fb Bug 1679758 - Remove trailing empty lines r=sylvestre,marionette-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D99595
2020-12-15 10:34:54 +00:00
Chun-Min Chang
2e5d3014c7 Bug 1681811 - Update mp4parse-rust to 3d9efdc r=jbauman
Import the improvements made in mp4parse-rust repo. The changes would
save some redundant copy when calling avif related APIs and provide the
ability to get the alpha data of the parsed avif image.

Differential Revision: https://phabricator.services.mozilla.com/D98950
2020-12-14 22:31:07 +00:00