Closed Bug 1944122 Opened 6 months ago Closed 4 months ago

multipart/x-mixed-replace image crashes tab at PreloaderBase::NotifyStop

Categories

(Core :: Graphics: ImageLib, defect)

Firefox 128
Unspecified
All
defect

Tracking

()

RESOLVED FIXED
139 Branch
Tracking Status
firefox-esr115 --- wontfix
firefox-esr128 --- wontfix
firefox134 --- wontfix
firefox135 --- wontfix
firefox136 --- wontfix
firefox137 --- wontfix
firefox138 --- wontfix
firefox139 --- fixed

People

(Reporter: nabijaczleweli, Assigned: tnikkel)

References

(Regression)

Details

(4 keywords)

Crash Data

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0

Steps to reproduce:

Go to https://web.archive.org/web/20250107094709/https://cohost.org/dcoles/post/2151489-multipart-x-mixed-re

Actual results:

Loads for a bit, then "Gah. Your tab just crashed.". Crash submitted @
https://crash-stats.mozilla.org/report/index/70a4543a-aaa5-4cc4-b450-584c70250127
https://crash-stats.mozilla.org/report/index/2649d211-a033-4a6e-a9cf-95e8d0250127
https://crash-stats.mozilla.org/report/index/47156629-e022-4a23-b50e-caa960250127
https://crash-stats.mozilla.org/report/index/a0f58c8f-1aed-4e40-afe5-cbd500250127

The context appears consistent between them all.

I repro this on 128.6.0esr (64-bit), 87.0b9 (64-bit), Android 129.0, and others.

On Android:
https://crash-stats.mozilla.org/report/index/bp-ff2e5bd9-dd5c-4bb5-9ae6-fdf920250127
https://crash-stats.mozilla.org/report/index/bp-24cbff45-23f3-408d-89a8-3e65e0250127
this is also the same.

Expected results:

Page loads, and animates. This is the case on Chromium (well, "Browser" on my phone).

Crash Signature: [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop]
Keywords: crash
Component: Untriaged → DOM: Core & HTML
Product: Firefox → Core
OS: Unspecified → All
See Also: → 1808676
Crash Signature: [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] → [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] [@ mozilla::Maybe<T>::emplace | mozilla::PreloaderBase::NotifyStop ]

:edgar, since you are the author of the regressor, bug 1618295, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Flags: needinfo?(echen)

Probably this is more of an imagelib problem and will fall in my court.

Summary: A multipart/x-mixed-replace(?) webpage single-handedly crashes tab (all firefoxes, both desktop & mobile) → multipart/x-mixed-replace image crashes tab at PreloaderBase::NotifyStop

Set release status flags based on info from the regressing bug 1618295

RemoveObserver will usually fake the image has loaded. For a multipart
image it might trigger a last part notification incorrectly.

Not sure how to best construct a test-case for this, help there would be
appreciated.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
See Also: → 1862059
See Also: → 1953294

In bug 1862059 we ensured that every (vector) part of a multipart image got load complete before it was made the current part. This missed the first part because it was never the next part, it just become the current part immediately. This was good enough to fix all cases except where the multipart image reached a finite end point (which would then send the final part load complete and hit the same duplicate final part load complete bug).

Attachment #9468509 - Attachment is obsolete: true

(Looks like Emilio's actively working on this, so I am clearing the pending needinfo which doesn't look needed, in order to remove this from the bugbot reminder email.)

Flags: needinfo?(echen)
Blocks: 1946685
Component: DOM: Core & HTML → Graphics: ImageLib
Assignee: emilio → tnikkel
Pushed by tnikkel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c8627e99f5fc Make sure the first (vector) part of a multipart images gets load complete. r=emilio
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 139 Branch

The patch landed in nightly and beta is affected.
:tnikkel, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox138 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(tnikkel)
Flags: needinfo?(tnikkel)
Duplicate of this bug: 1953294

Copying crash signatures from duplicate bugs.

Crash Signature: [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] [@ mozilla::Maybe<T>::emplace | mozilla::PreloaderBase::NotifyStop ] → [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] [@ mozilla::Maybe<T>::emplace | mozilla::PreloaderBase::NotifyStop ] [@ mozilla::PreloaderBase::NotifyStop]
Crash Signature: [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] [@ mozilla::Maybe<T>::emplace | mozilla::PreloaderBase::NotifyStop ] [@ mozilla::PreloaderBase::NotifyStop] → [@ mozilla::Maybe<T>::emplace<T> | mozilla::Maybe<T>::emplace<T> | mozilla::PreloaderBase::NotifyStop] [@ mozilla::Maybe<T>::emplace | mozilla::PreloaderBase::NotifyStop ] [@ mozilla::PreloaderBase::NotifyStop]
No longer blocks: 1946685
Duplicate of this bug: 1946685
QA Whiteboard: [qa-triage-done-c140/b139]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: