Open Bug 2007637 Opened 5 months ago Updated 2 months ago

heinnie.com - Products do not load on the page intermittently

Categories

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

Desktop
Windows 10

Tracking

(Webcompat Priority:P2, Webcompat Score:5, firefox-esr140 unaffected, firefox146 wontfix, firefox147 fixed, firefox148 fixed, firefox149 fixed)

REOPENED
149 Branch
Webcompat Priority P2
Webcompat Score 5
Tracking Status
firefox-esr140 --- unaffected
firefox146 --- wontfix
firefox147 --- fixed
firefox148 --- fixed
firefox149 --- fixed

People

(Reporter: ctanase, Assigned: bfarkas, NeedInfo)

References

(Regression, )

Details

(4 keywords, Whiteboard: [webcompat-source:web-bugs])

User Story

user-impact-score:120
platform:windows,mac,linux
impact:workflow-broken
configuration:general
affects:some
branch:release
diagnosis-team:dom

Attachments

(4 files)

Environment:
Operating system: Linux/Windows 10
Firefox version: Firefox 146.0/148

Steps to reproduce:

  1. Go to https://heinnie.com/search.php?search_query=overland&section=content
  2. Observe the page. (if the products get shown, refresh the page a couple of times or open the page in a new window)

Expected Behavior:
The products get shown every time.

Actual Behavior:
The products are missing. (sometimes it might load)

Notes:

  • Reproduces regardless of the status of ETP
  • Reproduces in firefox-nightly, and firefox-release
  • Does not reproduce in chrome

Created from https://github.com/webcompat/web-bugs/issues/196774

Attached image FF vs Chrome.png โ€”
User Story: (updated)
Webcompat Score: --- → 1

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

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

For more information, please visit BugBot documentation.

Flags: needinfo?(jmuizelaar)

I haven't been able to reproduce this. Does it still reproduce for others?

Flags: needinfo?(jmuizelaar)

Could reproduce after closing the initial tab and re-opening on a new tab.

I could reproduce only on the first page load

Severity: -- → S4
User Story: (updated)
Webcompat Priority: --- → P2
Webcompat Score: 1 → 5
Priority: -- → P1

I can also reproduce this on a Mac and in 147 beta by:

  1. Opening a new window
  2. pasting https://heinnie.com/search.php?search_query=overland&section=content
  3. open new tab : pasting https://heinnie.com/search.php?search_query=overland&section=content
  4. repeat until products do not display

I can reproduce this on the second tab sometimes on fourth try (fourth tab)

Flags: needinfo?(jmuizelaar)

I still haven't been able to reproduce this. Can someone who can try getting a profile with the "Debug" preset?

I ran profiler if that helps?

otherwise let me know what steps to take

This is intermittent, I can sometimes see it when keep duplicating the tab.

Summary: heinnie.com - Products do not load on the page in most cases → heinnie.com - Products do not load on the page intermittently

The list is loaded, it's just that the right CSS class is not added to the container. https://js.klevu.com/theme/default/v2/quick-landing-search-theme.js

e.dom.helpers.initializeTabSelection = function (t, a, s, n) {
    var o;
    e.each(
      e.dom.find('.kuTab', s),
      (
        function (a, s) {
          var r = n.getElement('active');
          if (
            s.classList.remove('kuTabSelected'),
            r &&
            s.dataset &&
            s.dataset.section &&
            r == s.dataset.section
          ) {
            s.classList.add('kuTabSelected');
            var i = e.dom.helpers.getClosest(s, '.klevuWrap');
            if (null === i) return;
            t.context.activeQueryId = s.dataset.section,
            t.context.section = s.dataset.section,
            i.classList.add(s.dataset.section + 'Active'),
            o = !0
          }
        }
      )
    ),

This adds productListActive to klevuWrap and makes the list visible. The call stack is:

initializeTabSelection quick-landing-search-theme.js:formatted:770
    ee klevu.js:1
    initializeTabSelection quick-landing-search-theme.js:formatted:765
    getStorageAndTarget quick-landing-search-theme.js:formatted:4552
    fire quick-landing-search-theme.js:formatted:12969
    a klevu.js:1
    fireWith klevu.js:1
    fire klevu.js:1
    fire klevu.js:1
    a klevu.js:1
    fireWith klevu.js:1
    fire klevu.js:1
    success klevu.js:1
    r klevu.js:1
    anonymous unknown:0

The event is fired in: https://js.klevu.com/core/v2/klevu.js

  t.getScope().chains.request.fetch.send.add({
    name: 'sendRequest',
    fire: function (t, n) {
      'searchAjax' !== t.context.eventAction &&
      (
        t.scope = n,
        t.context.doSearch ? (
          t.context.requestObject = {
            url: t.request.settings.url,
            type: 'FETCH',
            method: 'POST',
            mimeType: 'application/json; charset=UTF-8',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            crossDomain: !0,
            success: function (t, n, s, o) {
              var a = e.getObjectPath(n.scope.kScope, 'chains.response.success');
              e.isUndefined(a) ||
              0 === a.list().length ||
              (
                a.setScope(n.scope.kElem),
                e.setObjectPath(n, 'response.data', t),
                e.setObjectPath(n, 'context.status', s),
                e.setObjectPath(n, 'context.isSuccess', o),
                a.setData(n),
                a.fire()
              )
            },
            error: function (t, n, s) {
              var o = e.getObjectPath(t.scope.kScope, 'chains.response.fail');
              e.isUndefined(o) ||
              0 === o.list().length ||
              (
                o.setScope(t.scope.kElem),
                e.setObjectPath(t, 'response.data', {
                }),
                e.setObjectPath(t, 'context.status', n),
                e.setObjectPath(t, 'context.isSuccess', s),
                o.setData(t),
                o.fire()
              )
            },
            data: JSON.stringify(t.request.settings.object)
          },
          t.context.requestDetails = e.extend(!0, {
          }, t)
        ) : e.support.hook(
          ['core.logger'],
          (
            function () {
              e.logger.log(
                'search.core',
                'warn',
                'Fetch makeRequest - Request object is not present or request was forced stopped.'
              ),
              e.logger.log('search.core', 'debug', t)
            }
          )
        )
      )
    }
  }),

But even if a.fire() is called, it doesn't seem to always reach to the listener, even though the listener is always added before it dispatches. (It's not standard DOM event, fwiw)

Does setting dom.timeout.defer_during_load=false fix it?

Flags: needinfo?(jmuizelaar)

yes, setting dom.timeout.defer_during_load=false fixes it for me. Makes it no longer reproducible.

Same. This needs an intervention.

I am able to reproduce this pretty consistently on my machine. Here is a profile that I took of it happening several times in a row. (I was using Ctrl+R to refresh.)

For me it often seemed to load correctly once or twice when I first visited the page, but then it would consistently fail after that.

Regressed by: 1270059

Verified experimentally that this improves things. It also makes
sense that bug 1982924 would have made this worse.

Assignee: nobody → jmuizelaar
Status: NEW → ASSIGNED

Comment on attachment 9539584 [details]
Bug 2007637. Add heinnie.com to dom.timeout.defer_during_load.

Beta/Release Uplift Approval Request

  • User impact if declined/Reason for urgency: Fixes loading of heinnie.com
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Just adds hennie.com to a list of sites where we have more compatibility behaviour
  • String changes made/needed:
  • Is Android affected?: No
Attachment #9539584 - Flags: approval-mozilla-release?
Attachment #9539584 - Flags: approval-mozilla-beta?
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 149 Branch

Comment on attachment 9539584 [details]
Bug 2007637. Add heinnie.com to dom.timeout.defer_during_load.

Approved for 148.0b7

Attachment #9539584 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9539584 [details]
Bug 2007637. Add heinnie.com to dom.timeout.defer_during_load.

Approved for 147.0.2

Attachment #9539584 - Flags: approval-mozilla-release? → approval-mozilla-release+
QA Whiteboard: [uplift] [qa-ver-needed-c149/b148]
Flags: qe-verify+
Attached image heinnie issue.png โ€”

I was able to reproduce the issue on Firefox 148.0a1 (2025-12-23) on Windows 10 by using the link provided in Comment 0.

Unfortunately this is still reproducible on Firefox 147.0.2, Firefox 148.0b7 and Firefox 149.0a1 (2026-01-26) on the same machine. Attached a screenshot with 147.0.2 and 148.0b7 in view.

Flags: needinfo?(jmuizelaar)

Verified, the issue can be reproduced with the RC v148. Products do not load on the page intermittently.

Tested with:

  • Browser / Version: Firefox 148.0-candidate build 1 / Firefox Nightly 149.0a1 (2026-02-17)
  • Operating System: Desktop
Assignee: jmuizelaar → bfarkas
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Disabling the pref does fix the problem. Wrong domain? Not sure *.heinnie.com actually includes heinnie.com. NI already exists to Jeff, so can't add another.

I'm not seeing how setTimeout is involved here, so keeping the flag.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: