Closed Bug 2058110 Opened 3 months ago Closed 3 months ago

jal.co.jp - Hero section slider stuck in a loading animation loop

Categories

(Web Compatibility :: Site Reports, defect, P1)

Firefox 155
Desktop
Windows

Tracking

(Webcompat Priority:P2, Webcompat Score:6, firefox-esr140 wontfix, firefox-esr153 verified, firefox153 wontfix, firefox154 verified, firefox155 verified)

VERIFIED FIXED
155 Branch
Webcompat Priority P2
Webcompat Score 6
Tracking Status
firefox-esr140 --- wontfix
firefox-esr153 --- verified
firefox153 --- wontfix
firefox154 --- verified
firefox155 --- verified

People

(Reporter: ctanase, Assigned: emilio)

References

(Regression, )

Details

(Keywords: regression, webcompat:platform-bug, webcompat:site-report, Whiteboard: [autowebcompat:processed][autowebcompat:repro-success][webcompat:japan], [wptsync upstream])

User Story

autowebcompat-repro-status:success
autowebcompat-repro-channels:nightly,stable
platform:windows,mac,linux,android
impact:content-missing
configuration:general
affects:all
branch:release
diagnosis-team:layout
user-impact-score:450

Attachments

(4 files, 4 external files)

Attached image image.png —

Environment:
Operating system: Windows
Firefox version: Firefox 153/155

Preconditions:

  • Clean profile

Steps to reproduce:

  1. Navigate to: https://www.jal.co.jp/ja-jp/
  2. Observe the hero section.

Expected Behavior:
The slider gets displayed.

Actual Behavior:
Slider stuck in a loading animation loop. (however the edges of the slider images are visible)

Notes:

  • Reproducible on the latest Firefox Release and Nightly
  • Reproducible regardless of the ETP setting
  • Works as expected using Chrome
Summary: www121.jal.co.jp - Hero section slider stuck in a loading animation loop → jal.co.jp - Hero section slider stuck in a loading animation loop
Whiteboard: [autowebcompat:processed]
User Story: (updated)
Whiteboard: [autowebcompat:processed] → [autowebcompat:processed][autowebcompat:repro-success]

The reported issue reproduces in Firefox. Loading https://www.jal.co.jp/ja-jp/ in Firefox shows the hero/slider section stuck in a perpetual loading spinner animation. Only the far-right edge of a slider image is visible; the main slide never renders, and the spinner keeps looping while the slide indicator dots and pause control are shown beneath it. This matches the report (slider stuck in a loading animation loop with edges of the slider images visible). The behaviour persisted across repeated screenshots taken over time, confirming it is stuck rather than merely loading slowly.

The Chrome cross-check could not be completed: every attempt to load the page in the automated Chrome instance returned an Akamai "Access Denied" bot-detection page (https://errors.edgesuite.net/...), so Chrome never reached the actual site. Firefox loaded the real site normally. The report states the slider works as expected in Chrome, which is consistent with a Firefox-specific web-compat issue, but I was unable to independently verify the Chrome behaviour, so chrome_reproduced is left unconfirmed.

Since nightly and release are affected, beta will likely be affected too.
For more information, please visit BugBot documentation.

Whiteboard: [autowebcompat:processed][autowebcompat:repro-success] → [autowebcompat:processed][autowebcompat:repro-success][webcompat:japan]

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

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

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

Seems they're using this slider library: https://bxslider.com/

They have some preloadSelector stuff but debugging it is hard because they block me after a reload or two it seems...

img.complete is false but the load/error events still not fire.

Ok, I could catch it on rr, relevant stack:

#0  RefPtr<ImageLoadTask>::assign_assuming_AddRef (this=0x7f8328733c20, aNewPtr=0x7f831d3f4f90)
    at ../../dist/include/mozilla/RefPtr.h:65
#1  RefPtr<ImageLoadTask>::assign_with_AddRef (this=0x7f8328733c20, aRawPtr=0x7f831d3f4f90)
    at ../../dist/include/mozilla/RefPtr.h:60
#2  0x00007f83351c8e7d in RefPtr<ImageLoadTask>::operator= (this=0x7f831d3f49e0, aRhs=<optimized out>)
    at ../../dist/include/mozilla/RefPtr.h:186
#3  nsImageLoadingContent::QueueImageTask
    (this=0x7f8328733c10, aSrcURI=<optimized out>, aSrcTriggeringPrincipal=0x7f832b7a2de0, aForceAsync=true, aAlwaysLoad=false, aNotify=false) at ../../../dom/base/nsImageLoadingContent.cpp:226
#4  0x00007f833734c263 in mozilla::dom::HTMLImageElement::BindToTree (this=0x7f8328733b80, aContext=..., aParent=...)
    at ./../../../dom/html/HTMLImageElement.cpp:465
#5  0x00007f8335320df3 in mozilla::dom::Element::BindToTree (this=0x7f83287a60d0, aContext=..., aParent=...)
    at ./../../../dom/base/Element.cpp:3009
#6  0x00007f833527c793 in nsStyledElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/base/nsStyledElement.cpp:208
#7  0x00007f83373d5a47 in nsGenericHTMLElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/html/nsGenericHTMLElement.cpp:482
#8  0x00007f8335320df3 in mozilla::dom::Element::BindToTree (this=0x7f83287a51a0, aContext=..., aParent=...)
    at ./../../../dom/base/Element.cpp:3009
#9  0x00007f833527c793 in nsStyledElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/base/nsStyledElement.cpp:208
#10 0x00007f83373d5a47 in nsGenericHTMLElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/html/nsGenericHTMLElement.cpp:482
#11 0x00007f8335320df3 in mozilla::dom::Element::BindToTree (this=0x7f83287a5080, aContext=..., aParent=...)
    at ./../../../dom/base/Element.cpp:3009
#12 0x00007f833527c793 in nsStyledElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/base/nsStyledElement.cpp:208
#13 0x00007f83373d5a47 in nsGenericHTMLElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/html/nsGenericHTMLElement.cpp:482
#14 0x00007f8335320df3 in mozilla::dom::Element::BindToTree (this=0x7f83287a4f60, aContext=..., aParent=...)
    at ./../../../dom/base/Element.cpp:3009
#15 0x00007f833527c793 in nsStyledElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/base/nsStyledElement.cpp:208
#16 0x00007f83373d5a47 in nsGenericHTMLElement::BindToTree (this=0x7f831d3f49e0, aContext=..., aParent=...)
    at ./../../../dom/html/nsGenericHTMLElement.cpp:482
#17 0x00007f83354c3039 in nsINode::InsertChildBefore
    (this=0x7f83287846f0, aKid=0x7f83287a4f60, aBeforeThis=0x0, aNotify=true, aRv=..., aOldParent=0x0, aMutationEffectOnScript=<optimized out>) at ./../../../dom/base/nsINode.cpp:2177
#18 0x00007f83354c81ae in nsINode::ReplaceOrInsertBefore
    (this=0x7f83287846f0, aReplace=false, aNewChild=0x7f83287a4f60, aRefChild=<optimized out>, aMutationEffectOnScript=MutationEffectOnScript::DropTrustWorthiness, aError=...) at ./../../../dom/base/nsINode.cpp:3561
#19 0x00007f8335aff0be in nsINode::InsertBeforeInternal
    (this=0x7f83287846f0, aNode=..., aChild=0x0, aMutationEffectOnScript=MutationEffectOnScript::DropTrustWorthiness, aError=...) at ../../../dom/base/nsINode.h:2911
#20 nsINode::AppendChildInternal
    (this=0x7f83287846f0, aNode=..., aMutationEffectOnScript=MutationEffectOnScript::DropTrustWorthiness, aError=...)
    at ../../../dom/base/nsINode.h:2925
#21 nsINode::AppendChild (this=0x7f83287846f0, aNode=..., aError=...) at ../../../dom/base/nsINode.h:2919
#22 mozilla::dom::Node_Binding::appendChild (cx_=<optimized out>, obj=Traceback (most recent call last):
  File "/home/emilio/src/moz/firefox-5/js/src/gdb/mozilla/Root.py", line 55, in to_string

Relevant JS stack:

0 Node.prototype.appendChild("[object HTMLUListElement]") ["https://www.jal.co.jp/etc.clientlibs/clientlibs/granite/jquery/granite.min.ed0d934d509c9dab702088c125c92b4f.js":309:29]
    this = [object HTMLDivElement]
1 append/<(elem = "[object HTMLUListElement]", "0") ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":8750:12]
    this = [object HTMLDivElement]
2 domManip(collection = "[object Object]", args = "[object Object]", callback = [function]) ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":8579:14]
3 append("[object Object]") ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":8747:10]
    this = [object Object]
4 wrapAll(html = ""<div class=\"bx-wrapper\"><div class=\"bx-viewport\"></div></div>"") ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":12404:8]
    this = [object Object]
5 wrap/<(i = "0", "[object HTMLUListElement]") ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":12434:19]
    this = [object HTMLUListElement]
6 each(obj = [unavailable], callback = [unavailable]) ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":3042:19]
7 each(callback = [function]) ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":2864:17]
    this = [object Object]
8 wrap(html = ""<div class=\"bx-wrapper\"><div class=\"bx-viewport\"></div></div>"") ["https://www.jal.co.jp/etc.clientlibs/jalaem/ds/core/clientlibs/main.min.af033aa6d8c983ae0aff0cb7606052df.js":12433:15]

So it seems like the DOM operation triggers an image load task which causes .complete to be false, but then another load event doesn't happen.

Flags: needinfo?(emilio)

This would've also fixed the issue, and I think it's the right thing to
do. It's more annoying to test tho.

Assignee: nobody → emilio
Status: NEW → ASSIGNED

Matches the UnbindFromTree handling. I have another fix on top which is
a bit more annoying to test, but the test here should cover the broken
website.

Without this relevant-mutations.html fails the picture tests.

Pushed by ealvarez@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/599e5b497192 https://hg.mozilla.org/integration/autoland/rev/849647ec8e10 Don't queue picture task if pictureness hasn't changed. r=edgar,dom-core-reviewers
Pushed by ealvarez@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/26ee5665f273 https://hg.mozilla.org/integration/autoland/rev/4a669da0a1f9 Don't consider an image incomplete due to a non-alwaysLoad task. r=edgar,dom-core-reviewers

Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/61570 for changes under testing/web-platform/tests

Whiteboard: [autowebcompat:processed][autowebcompat:repro-success][webcompat:japan] → [autowebcompat:processed][autowebcompat:repro-success][webcompat:japan], [wptsync upstream]
Severity: -- → S2
User Story: (updated)
Webcompat Priority: --- → P2
Webcompat Score: --- → 6
Priority: -- → P1
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 155 Branch

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

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

Upstream PR merged by moz-wptsync-bot

The first patch is low-risk enough IMO.

Flags: needinfo?(emilio)

Matches the UnbindFromTree handling. I have another fix on top which is
a bit more annoying to test, but the test here should cover the broken
website.

Without this relevant-mutations.html fails the picture tests.

Original Revision: https://phabricator.services.mozilla.com/D314436

Attachment #9618237 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined/Reason for urgency: Compat bug with trivial-ish fix.
  • Code covered by automated testing?: yes
  • Fix verified in Nightly?: yes
  • Needs manual QE testing?: yes
  • Steps to reproduce for manual QE testing: comment 0
  • Risk associated with taking this patch: low
  • Explanation of risk level: Matches other browsers and is a one-liner.
  • String changes made/needed?: none
  • Is Android affected?: yes
Flags: qe-verify+

firefox-esr153 Uplift Approval Request

  • User impact if declined/Reason for urgency: Compat bug with trivial-ish fix.
  • Code covered by automated testing?: yes
  • Fix verified in Nightly?: yes
  • Needs manual QE testing?: yes
  • Steps to reproduce for manual QE testing: comment 0
  • Risk associated with taking this patch: low
  • Explanation of risk level: Matches other browsers and is a one-liner.
  • String changes made/needed?: none
  • Is Android affected?: yes
Attachment #9618238 - Flags: approval-mozilla-esr153?

Matches the UnbindFromTree handling. I have another fix on top which is
a bit more annoying to test, but the test here should cover the broken
website.

Without this relevant-mutations.html fails the picture tests.

Original Revision: https://phabricator.services.mozilla.com/D314436

Attachment #9618237 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9618238 - Flags: approval-mozilla-esr153? → approval-mozilla-esr153+
QA Whiteboard: [uplift][qa-ver-needed-c155/b154]

Hello! I can confirm that the issue is fixed with firefox 155.0a1(2026-08-03), 154.0b5 and 153.1.0esr on Ubuntu 24.04 and MacOS 15.7.7

Status: RESOLVED → VERIFIED
QA Whiteboard: [uplift][qa-ver-needed-c155/b154] → [uplift][qa-ver-done-c155/b154]
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: