4599 Commits

Author SHA1 Message Date
Nika Layzell
19d2b08163 Bug 1728331 - Part 5: Respect AppType in ImageCacheKey, r=emilio
This attribute is not used in Gecko, but exists for use by other
applications. Specifically, the APP_TYPE_EDITOR type is given permission
to load privileged images as tested by browser_docshell_type_editor.js.
Before these changes, that test passed because the docshell was loaded
in a different process, so the cache was empty when each load occurred,
but after my changes the process ends up being re-used, so the image
cache bypasses this check.

This changes the image cache key to also include the app type
information so that it will be compared before re-using the entry.

Differential Revision: https://phabricator.services.mozilla.com/D126557
2024-06-24 23:19:29 +00:00
Andrew Osmond
fa360dba1b Bug 1901076 - Part 2. Expose frame count variant of metadata decoders. r=tnikkel
It is useful/necessary for WebCodecs image decoding support to be able
to calculate a frame count for the encoded image without actually
decoding every frame. It needs to be able to provide results without the
complete buffer as well.

Differential Revision: https://phabricator.services.mozilla.com/D212831
2024-06-24 22:44:30 +00:00
Andrew Osmond
cd691461e5 Bug 1901076 - Part 1. Include animated images loop count in metadata decoding results. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D212830
2024-06-24 22:44:30 +00:00
Sandor Molnar
5b0ee75cfc Backed out 2 changesets (bug 1901076) for causing assertion failures @ image/RasterImage.cpp CLOSED TREE
Backed out changeset de52938146cd (bug 1901076)
Backed out changeset 79fece25d231 (bug 1901076)
2024-06-24 23:19:52 +03:00
Andrew Osmond
6fa0ded86a Bug 1901076 - Part 2. Expose frame count variant of metadata decoders. r=tnikkel
It is useful/necessary for WebCodecs image decoding support to be able
to calculate a frame count for the encoded image without actually
decoding every frame. It needs to be able to provide results without the
complete buffer as well.

Differential Revision: https://phabricator.services.mozilla.com/D212831
2024-06-24 17:59:49 +00:00
Andrew Osmond
ae67966c25 Bug 1901076 - Part 1. Include animated images loop count in metadata decoding results. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D212830
2024-06-24 17:59:48 +00:00
Tom Schuster
6613ec7689 Bug 1904004 - Use OriginAttributes::IsPrivateBrowsing instead of open coding PBM checks. r=timhuang,cookie-reviewers,anti-tracking-reviewers,profiler-reviewers,necko-reviewers,kershaw,dom-storage-reviewers,janv,canaltinova,dom-worker-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D214532
2024-06-24 11:06:18 +00:00
Aron Cseh
a18d79db16 Backed out 9 changesets (bug 1901851, bug 1728331) for causing remote worker crashes. a=backout
Backed out changeset 30bbda0eb197 (bug 1728331)
Backed out changeset dabd7d6836c8 (bug 1728331)
Backed out changeset 9e04f49c926e (bug 1728331)
Backed out changeset 779ac735736c (bug 1728331)
Backed out changeset 1d413fe340a0 (bug 1728331)
Backed out changeset 15608efcbeb6 (bug 1901851)
Backed out changeset f711bbec11b2 (bug 1901851)
Backed out changeset 8bb1d267d08f (bug 1901851)
Backed out changeset b29282956a04 (bug 1901851)
2024-06-22 00:52:24 +03:00
Nika Layzell
1f14a3324e Bug 1728331 - Part 5: Respect AppType in ImageCacheKey, r=emilio
This attribute is not used in Gecko, but exists for use by other
applications. Specifically, the APP_TYPE_EDITOR type is given permission
to load privileged images as tested by browser_docshell_type_editor.js.
Before these changes, that test passed because the docshell was loaded
in a different process, so the cache was empty when each load occurred,
but after my changes the process ends up being re-used, so the image
cache bypasses this check.

This changes the image cache key to also include the app type
information so that it will be compared before re-using the entry.

Differential Revision: https://phabricator.services.mozilla.com/D126557
2024-06-20 19:24:52 +00:00
Timothy Nikkel
b7a308a6b2 Bug 1899180. If a channel is not nsIPrivateBrowsingChannel and has no load context, use the private browsing field from it's origin attributes. r=necko-reviewers,anti-tracking-reviewers,valentin
If the channel is not a nsIPrivateBrowsingChannel, and it also has no load context (eg inside svg images) then we will over write a non-zero mPrivateBrowsingId on the OriginAttributes of the channel with 0, making NS_UsePrivateBrowsing return false for the channel.

Differential Revision: https://phabricator.services.mozilla.com/D212083
2024-06-12 10:24:22 +00:00
Ryan VanderMeulen
2ab1103c1f Bug 1898606 - Add crashtest. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D212149
2024-06-08 16:42:55 +00:00
Joel Maher
1af5989f0e Bug 1901251 - Adjust moz-icon-blank reftest expectations for new graphics card on windows. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D212931
2024-06-08 11:33:29 +00:00
Nika Layzell
855d5761c0 Bug 196078 - Part 2: Support displaying arbitrary text/* MIME types as plain text, r=smaug,necko-reviewers,valentin
This patch refactors how we check for text formats when deciding how to handle
resources, such that more text MIME types will be rendered in-browser, rather
than downloaded.

This change requires us to move more away from using the Gecko-Content-Viewers
category in the category manager for this decision, as we need to handle an
unlimited number of MIME types behind the scenes.

Support for Gecko-Content-Viewers was left in for both the in-tree use for
application/http-index-format and dynamically determining whether image/avif
and image/jxl are supported, as well as for the message/rfc822 type used by
Thunderbird.

Differential Revision: https://phabricator.services.mozilla.com/D212078
2024-06-05 00:05:58 +00:00
Norisz Fay
f31e183290 Backed out 3 changesets (bug 1718673, bug 196078) for causing wpt failures on report-frame-ancestors-with-x-frame-options.sub.html CLOSED TREE
Backed out changeset 6a54aa5039e7 (bug 196078)
Backed out changeset 0582d2fa1401 (bug 196078)
Backed out changeset d8d9a0fe366b (bug 1718673)
2024-06-01 03:33:07 +03:00
Nika Layzell
58ee355a1b Bug 196078 - Part 2: Support displaying arbitrary text/* MIME types as plain text, r=smaug,necko-reviewers,valentin
This patch refactors how we check for text formats when deciding how to handle
resources, such that more text MIME types will be rendered in-browser, rather
than downloaded.

This change requires us to move more away from using the Gecko-Content-Viewers
category in the category manager for this decision, as we need to handle an
unlimited number of MIME types behind the scenes.

Support for Gecko-Content-Viewers was left in for both the in-tree use for
application/http-index-format and dynamically determining whether image/avif
and image/jxl are supported, as well as for the message/rfc822 type used by
Thunderbird.

Differential Revision: https://phabricator.services.mozilla.com/D212078
2024-05-31 17:30:23 +00:00
Timothy Nikkel
0220614e37 Bug 1892643. Allow checking for shutdown in the image decode pool after the decode pool has been cleared. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D208086
2024-05-25 09:45:37 +00:00
Timothy Nikkel
8b707bc1b5 Bug 1894284. Give image gtests a threadsafe way to wait for decodes in the decode thread pool to finish. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D209510
2024-05-22 03:29:18 +00:00
Timothy Nikkel
21823adb7d Bug 1885209. Sanity check pixel format of internal icon type images. r=gfx-reviewers,nical
The page has

  <link rel="shortcut icon" type="image/x-icon" href="data:image/icon;base64,__png_data__">

When the Favicon service tries to decode that is passes "image/icon" as the mimetype to choose the decoder type and so we try to decode it as our internal icon format (not a format used in the wild, only used internal to get pass around icon data we retrieved from the OS). This passes in an invalid format type and hits the assert. In a non-debug build we fail to create the surface pipe later when we can't find a swizzle function. We only ever create these icon files with formats R8G8B8A8, OS_RGBA, or B8G8R8A8. The favicon still gets displayed so the favicon service must be trying something more complicated if that fails.

In the normal content image loading path we prefer to sniff the content type from the image data and if that fails fall back to the specified content type. So the test had be careful not to look like png (or any other) image format so that we actually tried to decode it as an icon.

Differential Revision: https://phabricator.services.mozilla.com/D204732
2024-05-21 00:41:56 +00:00
Valentin Gosu
85d2c1bf9d Bug 1711622 - Update tests r=necko-reviewers,devtools-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D203115
2024-05-20 15:35:29 +00:00
Iulian Moraru
7af8c65261 Backed out 2 changesets (bug 1711622) for causing reftest failures on accept-image-catchall.html. CLOSED TREE
Backed out changeset 877d9c37605a (bug 1711622)
Backed out changeset c315e89b6e4b (bug 1711622)
2024-05-20 16:59:04 +03:00
Valentin Gosu
d4e1eb0d58 Bug 1711622 - Update tests r=necko-reviewers,devtools-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D203115
2024-05-20 11:53:58 +00:00
Timothy Nikkel
767a362808 Bug 1895211. Get the image in imgRequest::OnStopRequest after calling OnDataAvailable because that might create the image. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D209522
2024-05-17 23:26:18 +00:00
Tooru Fujisawa
a127747b14 Bug 1893402 - Part 2: Use minimum cache expiration time in image cache. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D208979
2024-05-17 11:20:59 +00:00
Tamas Szentpeteri
86dcf9e3dc Backed out 2 changesets (bug 1893402) for causing mochitest failures regarding nsGlobalWindowInner. CLOSED TREE
Backed out changeset e909b94c1280 (bug 1893402)
Backed out changeset beef636e1562 (bug 1893402)
2024-05-17 00:16:25 +03:00
Tooru Fujisawa
64388946b4 Bug 1893402 - Part 2: Use minimum cache expiration time in image cache. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D208979
2024-05-16 15:40:41 +00:00
Timothy Nikkel
446eaaa15c Bug 1897055. Assert SVGDocumentWrapper::DestroyViewer is called on main thread. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D210603
2024-05-16 08:22:31 +00:00
Valentin Gosu
7cdfe9baad Bug 1784496 - The necko consumers should use the priority's incremental flag r=necko-reviewers,kershaw
This patch sets the incremental flag on document and image channels

Differential Revision: https://phabricator.services.mozilla.com/D209235
2024-05-15 08:18:42 +00:00
Lee Salzman
65c2a6379d Bug 1890216 - Fix Skia API usage in Gecko for m125 update. r=aosmond
A number of public APIs in Skia have changed since the update to m125,
so various places in Gecko need to be updated to track it.

Differential Revision: https://phabricator.services.mozilla.com/D209821
2024-05-15 01:57:52 +00:00
Iulian Moraru
fcee835d59 Backed out 4 changesets (bug 1890216) for causing multiple new permafailures. CLOSED TREE
Backed out changeset 31ffc16da37b (bug 1890216)
Backed out changeset 9da95cf34386 (bug 1890216)
Backed out changeset 9e684b8096fc (bug 1890216)
Backed out changeset 9014c3f367eb (bug 1890216)
2024-05-10 19:01:50 +03:00
Lee Salzman
69890c6a53 Bug 1890216 - Fix Skia API usage in Gecko for m125 update. r=aosmond
A number of public APIs in Skia have changed since the update to m125,
so various places in Gecko need to be updated to track it.

Differential Revision: https://phabricator.services.mozilla.com/D209821
2024-05-10 03:49:34 +00:00
Ryan VanderMeulen
0e07c8c08e Bug 1806946 - Skip GTests which fail when run under TSAN. r=profiler-reviewers,dom-storage-reviewers,tnikkel,xpcom-reviewers,ipc-reviewers,mccr8,janv,webrtc-reviewers,pehrsons,canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D209175
2024-05-02 13:09:07 +00:00
Joel Maher
64e5693772 Bug 1894551 - remove old win/aarch64 references in gtest moz.build files. r=RyanVM,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D209182
2024-05-02 12:17:06 +00:00
Timothy Nikkel
c73c31cbe8 Bug 1805599. Fix handling of invalidations in non-animated vector images that use the webrender imageprovider path. r=aosmond
When not using blob recordings for vector images we use simple surface providers. When we get an invalidation we will call SurfaceCache::InvalidateImage which will set a dirty bit on all blob recordings and remove all other surfaces from the surface cache. And if it finds a blob recording we will call ResumeHonoringInvalidations. This is not enough to invalidate in the case of a non-animated vector image using the webrender GetImageProvider path. Even though the surface isn't in the surface cache anymore it is still cached on the frame and when we tell it about the invalidation it will just has the image provider to update its key. That will call this code

https://searchfox.org/mozilla-central/rev/cdddec7fd690700efa4d6b48532cf70155e0386b/image/DecodedSurfaceProvider.cpp#222

which will just share the same surface as before the invalidation happened again. That will let us handle one invalidation but it still won't fix the bug, we need to call ResumeHonoringInvalidations so that we handle further invalidations.

When not using the image provider path, we don't save an image provider on the frame, that alone would avoid this problem. But we also call ResumeHonoringInvalidations for every successful call of VectorImage::Draw.

* * *
imported patch asvfref

Differential Revision: https://phabricator.services.mozilla.com/D174450
2024-05-02 01:45:32 +00:00
Timothy Nikkel
4a5ba31f52 Bug 1864255. Remove skip wayland annotations for various crashtests that no longer need it. r=gfx-reviewers,dholbert,nical
Most of these were probably disabled because of the window occlusion thing making them timeout. We fixed that in this bug so we don't need them anymore. Whatever the reason these all pass now and don't seem to be intermittent failures either.

There is still one test that we must skip on wayland for failure though, dom/media/tests/crashtests/1490700.html, but I think it's related to some webrtc feature that is not implemented on wayland perhaps.

Differential Revision: https://phabricator.services.mozilla.com/D208078
2024-04-28 10:02:10 +00:00
Timothy Nikkel
cbda5363c6 Bug 1864255. Remove disabling window_occlusion_tracking pref changes from all crashtests. r=layout-reviewers,emilio
They are no longer needed.

Differential Revision: https://phabricator.services.mozilla.com/D193655
2024-04-25 10:44:35 +00:00
Sylvestre Ledru
21f973ed5c Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,media-playback-reviewers,padenot
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D207867
2024-04-22 16:00:09 +00:00
Jason Kratzer
c7a25587de Bug 1892285 - Use correct method when setting image.mem.max_legal_imgframe_size_kb pref. r=tsmith
Differential Revision: https://phabricator.services.mozilla.com/D207894
2024-04-18 17:35:12 +00:00
Chris Peterson
05289b2c2d Bug 1891332 - Replace debug MOZ_ASSERT with MOZ_RELEASE_ASSERT in image tests. r=tnikkel
And MOZ_ASSERT_UNREACHABLE with MOZ_CRASH.

MOZ_ASSERT and MOZ_ASSERT_UNREACHABLE are only checked in debug builds, so release builds' tests are not checking these assertions.

Differential Revision: https://phabricator.services.mozilla.com/D207372
2024-04-17 03:26:28 +00:00
Timothy Nikkel
862f126871 Bug 1890090. Check return value of WebPInitDecBuffer in webp decoder. r=gfx-reviewers,lsalzman
libwebp 1.4.0 makes this function no discard so we'll have to check it.

Differential Revision: https://phabricator.services.mozilla.com/D206837
2024-04-06 04:27:37 +00:00
Joel Maher
48be032609 Bug 1889789 - fix reftests that have duplicate entries in manifests. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D206729
2024-04-05 01:25:28 +00:00
Nika Layzell
a48079cd72 Bug 1881863 - Part 1: Standardize on boolean over bool in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,extension-reviewers,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,search-reviewers,anti-tracking-reviewers,places-reviewers,nalexander,emilio,zombie,sgalich,karlt,lina,Standard8
Previously the `boolean` type was also declared using a `bool` typedef in
xpidl, meaning that both were used in various places. This patch standardizes
on the built-in `boolean` type, removing the typedef.

Differential Revision: https://phabricator.services.mozilla.com/D206382
2024-04-04 18:45:21 +00:00
Jens Stutte
7be82ed20f Bug 1889083 - Leak image explicitly in SurfaceCache::ReleaseImageOnMainThread. r=xpcom-reviewers,nika,emilio
Differential Revision: https://phabricator.services.mozilla.com/D206346
2024-04-02 15:55:54 +00:00
Randell Jesup
d542854faa Bug 1356686 - Ensure that imgRequest::CheckListenerChain returns the correct value r=tnikkel
SVGs must be coded on MainThread because they need to access the LoadGroup,
etc, while other images can be decoded via the decode pool.   This ensures
that CheckListenerChain() will return the right value for this instance.

Differential Revision: https://phabricator.services.mozilla.com/D203181
2024-03-19 17:27:23 +00:00
Sandor Molnar
a764c03b7c Backed out 4 changesets (bug 1356686) for causing build bustages @ netwerk/protocol/http/HttpChannelChild.cpp CLOSED TREE
Backed out changeset 63dc52c69902 (bug 1356686)
Backed out changeset 6e9726c26d07 (bug 1356686)
Backed out changeset 3b150d676b31 (bug 1356686)
Backed out changeset 54754a50d992 (bug 1356686)
2024-03-19 08:29:08 +02:00
Randell Jesup
95c8ee2aa1 Bug 1356686 - Ensure that imgRequest::CheckListenerChain returns the correct value r=tnikkel
SVGs must be coded on MainThread because they need to access the LoadGroup,
etc, while other images can be decoded via the decode pool.   This ensures
that CheckListenerChain() will return the right value for this instance.

Differential Revision: https://phabricator.services.mozilla.com/D203181
2024-03-18 20:04:01 +00:00
Joel Maher
f9157a0383 Bug 1884195 - Replace reftest.list conditions that are the same. r=aryx,jgilbert,emilio
Differential Revision: https://phabricator.services.mozilla.com/D203942
2024-03-11 16:38:03 +00:00
Gregory Pappas
ea69b62538 Bug 1883217 - Remove unused defines in IDL files r=webdriver-reviewers,necko-reviewers,credential-management-reviewers,places-reviewers,dom-core,Standard8,valentin,mccr8,sgalich
Differential Revision: https://phabricator.services.mozilla.com/D203347
2024-03-06 19:04:25 +00:00
Dave Townsend
b53e08b713 Bug 1864896: Autofix unused function arguments (image). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D202968
2024-03-03 09:09:10 +00:00
Timothy Nikkel
f658742e04 Bug 1835509. If we encounter a bad LZW block in a gif frame still report success if we have decoded frames before this successfully. r=aosmond
This is similar to this code in image/Decoder.cpp

https://searchfox.org/mozilla-central/rev/ae292ebba6074601b33fa983dd4e01ce6a1ec4ac/image/Decoder.cpp#257

We won't display the frames after the bad frame, but that seems reasonable, and an improvement from current. If we get more reports of this we can look into just skipping the bad frame instead of truncating before the bad frame.

Differential Revision: https://phabricator.services.mozilla.com/D179495
2024-03-01 11:42:43 +00:00
Frédéric Wang
b005b82248 Bug 1872657 - Add fetchpriority support for <link rel=preload as=image>. r=valentin,smaug,manuel
This patch adds fetchpriority support for `<link rel=preload as=image>`
and equivalent HTTP Link header. The fetchpriority value is passed from
where the link is parsed down to `NewImageChannel` where the priority
is initially set. Currently, the default equals PRIORITY_LOW, but is
decreased a bit if LOAD_BACKGROUND flag is set (this is always the case
for link preload images, see `imgLoader::LoadImage`). Later, the
priority can be increased again depending on the category (see
`imgRequest::BoostPriority`).

In order to minimize the changes, the new calculation is to keep the
initial setting to PRIORITY_LOW, adjust it using a new
`network.fetchpriority.adjustments.*` preference depending on the
fetchpriority attributes, and then preserve further adjustments for
LOAD_BACKGROUND and `BoostPriority`.

For the default value `fetchpriority=auto`, there is no adjustment
i.e. we continue to start with PRIORITY_LOW. `fetchpriority=low/high`
are respectively mapped to PRIORITY_LOW/PRIORITY_HIGH which is simple
and consistent with the "Image" cases from Google's web.dev article
https://web.dev/articles/fetch-priority. These values could of course
be revised in the future after more experiments.

This change is covered by the following tests below. The expectations
is modified to match what is described above (i.e. map to PRIORITY_LOW
or PRIORITY_HIGH with adjustment due to LOAD_BACKGROUND):
- `link-initial-preload-image.h2.html`
- `link-dynamic-preload-image.h2.html`
- `kPipeHeaderPreloadImageLinks`

Based on a patch by Mirko Brodesser (mbrodesser@igalia.com)

Differential Revision: https://phabricator.services.mozilla.com/D197493
2024-02-27 06:33:48 +00:00