Commit Graph

3952 Commits

Author SHA1 Message Date
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
Dorel Luca
7320ae982a Backed out changeset f3aaf04fce3b (bug 1679758) for Devtool failures in browser_styleeditor_syncAddProperty.js. CLOSED TREE 2020-12-13 16:38:21 +02:00
Kartik Gautam
caf549c200 Bug 1679758 - Remove trailing empty lines r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D99595
2020-12-13 13:28:30 +00:00
Csoregi Natalia
24146fd642 Backed out changeset a8c087a36965 (bug 1681811) for failures on test_case_mp4. CLOSED TREE 2020-12-11 22:51:06 +02:00
Chun-Min Chang
2c75dfdc7b Bug 1681811 - Update mp4parse-rust to 94fd2f1 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-11 18:16:40 +00:00
Alexis Beingessner
70c9b7ef2c Bug 1681546 - rename MOZ_ATOMIC_BITFIELDS methods to Load/Store. r=valentin,necko-reviewers
I was running into issues where these names would conflict with the type's own Get/Set methods
and these names have the added benefit of indicating a bit more that atomic stuff is going on.

Differential Revision: https://phabricator.services.mozilla.com/D99268
2020-12-09 18:14:55 +00:00
Timothy Nikkel
e151d46fdc Bug 1588310. Add reftest.
Differential Revision: https://phabricator.services.mozilla.com/D98845
2020-12-05 23:43:37 +00:00
Moritz Firsching
f735d0e7d5 Bug 1588310 - Improving progressive JPEG scans. r=tnikkel
When loading a progressive jpegs with non-interleaved DC scans,
we add a check to see if we have already seen data from all DC
channels and only start rendering when this is the case.

Differential Revision: https://phabricator.services.mozilla.com/D95683
2020-12-05 23:42:23 +00:00
Simon Giesecke
2d2a1d60c9 Bug 1678560 - Avoid including nsILoadGroup.h in header files. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D97739

Depends on D97737
2020-11-23 16:12:44 +00:00
Simon Giesecke
dd80614fa0 Bug 1678062 - Remove unnecessary includes. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D97467

Depends on D96561
2020-11-23 16:12:02 +00:00
Simon Giesecke
5bfbb2a572 Bug 1673931 - Avoid including Document.h from header files. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95046

Depends on D95045
2020-11-23 16:07:43 +00:00
Simon Giesecke
971b645fe3 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Sylvestre Ledru
bebb9f9181 Bug 1519636 - Reformat with clang-format-11 to the Google coding style r=andi,sg,geckoview-reviewers,snorp
It is bringing some minor changes

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D90795
2020-11-18 09:05:59 +00:00
Timothy Nikkel
d9479f8638 Bug 1676172. Add crashtest. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D96953
2020-11-13 08:31:02 +00:00
Timothy Nikkel
ad69934441 Bug 1676990. Call UpdateStateInternal after we reset an animation because that can discard frames and change the state. r=aosmond
Depends on D96945

Differential Revision: https://phabricator.services.mozilla.com/D96946
2020-11-13 03:25:32 +00:00
Timothy Nikkel
3e452098c6 Bug 1676989. Update mCompositedFrameInvalid more often now that we only check for the current frame being decoded and not all frames. r=aosmond
In https://hg.mozilla.org/integration/autoland/rev/471ad96ddc3e we changed this from calling |Surface().IsFullyDecoded()| to calling Seek because IsFullyDecoded always returns false for large enough animations because we don't keep around all of their frames.

In the old model, where mIsCurrentlyDecoded tracks if the image is fully decoded, we don't want to set mCompositedFrameInvalid to true if simply if the image isn't fully decoded because the current frame could be available.

In the new model, where mIsCurrentlyDecoded tracks if the current frame is available, we definitely do want to mark mCompositedFrameInvalid if the current frame is not available.

Depends on D96944

Differential Revision: https://phabricator.services.mozilla.com/D96945
2020-11-13 03:25:33 +00:00
Timothy Nikkel
6ab48a8579 Bug 1676988. Use GetFrame instead of Seek in AnimationState::UpdateStateInternal. r=aosmond
In https://hg.mozilla.org/integration/autoland/rev/471ad96ddc3e we changed this from calling |Surface().IsFullyDecoded()| to calling Seek because IsFullyDecoded always returns false for large enough animations because we don't keep around all of their frames.

However RequestRefresh/AdvanceFrame call GetFrame. Seek is intended to be used for display purposes, GetFrame is intended to be used for advancing the frame purposes. And Seek and GetFrame can actually returns different results if it is the first frame that we are asking for.

Differential Revision: https://phabricator.services.mozilla.com/D96944
2020-11-13 03:25:33 +00:00
Matt Woodrow
96c437eeaf Bug 1674856 - Fiz fuzz annotations for Windows10 swr reftests. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95571
2020-11-03 23:51:40 +00:00
Razvan Maries
c032d89358 Backed out 3 changesets (bug 1674856) for Windows10 swr reftests perma failures. CLOSED TREE
Backed out changeset 8e52162cdf48 (bug 1674856)
Backed out changeset eb84f9c620ac (bug 1674856)
Backed out changeset 477a1070a971 (bug 1674856)
2020-11-03 21:43:26 +02:00
Matt Woodrow
66c1e2b63c Bug 1674856 - Fix fuzz annotations for Windows10 swr reftests. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95571
2020-11-03 18:16:36 +00:00
Chun-Min Chang
eeae815abc Bug 1670827 - P5: Telemetry tracking decoder errors r=jbauman
Add a telemetry probe tracking the errors in dav1d or aom decoder. We
only care the errors from `aom_codec_decode` and `dav1d_get_picture` so
other error code won't be counted.

Differential Revision: https://phabricator.services.mozilla.com/D94489
2020-11-03 01:57:10 +00:00
Chun-Min Chang
9808dd4115 Bug 1670827 - P4: Telemetry tracking bit-depth r=jbauman
Add a telemetry probe tracking the bit-per-pixel of the AVIF images

Differential Revision: https://phabricator.services.mozilla.com/D93867
2020-11-03 01:55:55 +00:00
Chun-Min Chang
00742cf457 Bug 1670827 - P3: Telemetry tracking YUV color space r=jbauman
Add a telemetry probe tracking the YUV color space of the AVIF images

Differential Revision: https://phabricator.services.mozilla.com/D93708
2020-11-03 01:54:21 +00:00
Chun-Min Chang
5f04ddce8a Bug 1670827 - P2: Telemetry tracking which decoder is r=jbauman
Add a telemetry probe tracking times of the decoders (dav1d vs libaom)
used to decode AVIF

Differential Revision: https://phabricator.services.mozilla.com/D93707
2020-11-03 01:53:30 +00:00
Chun-Min Chang
a2ff64d95f Bug 1670827 - P1: Telemetry tracking decode results r=jbauman
Add a telemetry probe tracking all kinds of decode results of the AVIF
decoder

Differential Revision: https://phabricator.services.mozilla.com/D93291
2020-11-03 01:52:16 +00:00
Lee Salzman
d1f364349a Bug 1621454 - adjust fuzz for SWGL span shaders. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D95325
2020-10-31 13:30:57 +00:00
Butkovits Atila
c4646c9aa3 Backed out 4 changesets (bug 1621454) for causing bustage src/swgl_ext.h. a=backout
Backed out changeset d0d03d5a81a8 (bug 1621454)
Backed out changeset 6675f76d6f11 (bug 1621454)
Backed out changeset 29943d5348df (bug 1621454)
Backed out changeset 80c0aaa81c2e (bug 1621454)
2020-10-31 12:28:47 +02:00