Closed Bug 1773873 Opened 2 years ago Closed 2 years ago

Pixiv doesn't load on 103.0a1 (2022-06-11)

Categories

(Web Compatibility :: Site Reports, defect)

Firefox 103
defect

Tracking

(firefox-esr91 unaffected, firefox-esr102 unaffected, firefox101 unaffected, firefox102 unaffected, firefox103 ?)

RESOLVED FIXED
Tracking Status
firefox-esr91 --- unaffected
firefox-esr102 --- unaffected
firefox101 --- unaffected
firefox102 --- unaffected
firefox103 --- ?

People

(Reporter: hikaph+mozilla, Unassigned)

References

(Regression)

Details

(Keywords: regression, webcompat:needs-contact)

Steps to reproduce:

  • I opened pixiv.net.

I also repeated this by

  • opening in both private mode and in stable channel (100.0.2 for Fedora).
  • clearing cookies and site data.

By clearing cookies and site data, I could see and interact with the Pixiv login prompt normally. However, upon attempting to complete sign-in, I'm back to the blank white page.

Actual results:

  • The page finished loading but didn't render — it manifested as a blank white page.

Expected results:

  • I expected the page to load.

mozregression suggests this change is the culprit. I have zero context here and am happy to rerun mozregression if this looks spurious.

The Bugbug bot thinks this bug should belong to the 'Core::Graphics' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Graphics
Product: Firefox → Core

I can reproduce the issue in Nightly103.0a1 Windows10.

Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=0caaf8ce42dbe6723c64270dd0d5364fca731979&tochange=cf9ea7c98e76650942e52b3463a0c58b90a759d0

Regressed by Bug 1772901.

And I confirmed that setting extensions.InstallTriggerImpl.enabled to true fixes the issue.

Status: UNCONFIRMED → NEW
Has Regression Range: --- → yes
Has STR: --- → yes
Component: Graphics → General
Ever confirmed: true
Keywords: regression
Product: Core → Firefox
Regressed by: 1772901

:rpl, since you are the author of the regressor, bug 1772901, could you take a look?
For more information, please visit auto_nag documentation.

Flags: needinfo?(lgreco)

Web Console had this message:

Uncaught TypeError: can't access property "enabled", InstallTrigger is null
    104 https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:82
    r https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:8
    519 https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:6689
    519 https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:6691
    r https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:8
    1327 https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:752
    r https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:8
    1228 https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:612
    r https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:8
    a https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:5
    d https://s.pximg.net/www/js/build/runtime.cf99f34e6a53012c7095.js:4
    <anonymous> https://s.pximg.net/www/js/build/spa.3d21ab9ac4502b5d5587.js:1
spa.3d21ab9ac4502b5d5587.js:82:360

With extensions.InstallTriggerImpl.enabled false, InstallTrigger is null. So pages will throw if it tries to acess InstallTrigger.enabled.

Thanks Masathosi,
this is clearly a UserAgent detection use case, and pivix.net is apparently using a variant of the common typeof InstallTrigger !== "undefined" pattern, which is unfortunately also checking one of the InstallTrigger properly and in particular it does that without taking into account that InstallTrigger may be of type "object" also when it is null:

The minified code of that check looks like:

"object" === ("undefined" == typeof InstallTrigger ? "undefined" : Object(o.a)(InstallTrigger) ) && "function" == typeof InstallTrigger.enabled

That Object(o.a)(InstallTrigger) seems to be basically doing a typeof InstallTrigger:

function r(e){ return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}

Adn so in the end the check is basically doing:

"object" === typeof InstallTrigger && "function" == typeof InstallTrigger.enabled

When InstallTrigger is null, then typeof InstallTrigger is "object" and pass the first half of the && and then InstallTrigger.enabled is going to throw.

Flags: needinfo?(lgreco)

Hi Dennis,
This is clearly another version of the InstallTrigger UserAgent detection use case, unfortunately one that fails even with just "extensions.InstallTriggerImpl.enabled" set to false (Bug 1772901, which landed in Nightly 103 and would be riding the release train with the pref set unconditionally to false on all channels).

I'm needinfo-ing you to highlight this case for the WebCompat team, so that we can touch base explicitly about this asap and agree how we prefer to handle this kind of cases (e.g. if we should land a patch to followup on the value set on the pref from Bug 1772901 during this nightly cycle, or if we prefer to start to prepare webcompat interventions based on the cases we are getting more precise details about).

Flags: needinfo?(dschubert)
Depends on: 1774006

Thanks. I'll build and ship an intervention soon, filed bug 1774006 for that. I'll try to get this landed within a few days, and we can follow up with more things during the cycle.

Flags: needinfo?(dschubert)

Dennis, do you want to keep this bug open to reach out to the author? It doesn't seem like it should stay in General and the shim bug is on file for the actionable component on our own.

Component: General → Desktop
Flags: needinfo?(dschubert)
Product: Firefox → Web Compatibility
See Also: → 1774146

(In reply to Mark Striemer [:mstriemer] from comment #9)

Dennis, do you want to keep this bug open to reach out to the author?

That was my intention - yeah. Thanks for moving this into the WebCompat component, that is the right place for this bug!

Flags: needinfo?(dschubert)

Odd — I've just noticed Pixiv working again in 103.0a1 (2022-06-15). Happy to close this if that's expected at this time.

Bug 1772905 fixed the issue on Nightly (and probably on early beta). Now typeof InstallTrigger returns "undefined".
But when Firefox late beta/release reaches to 103, pixiv will break again. We should still ship the shim and test it with extensions.InstallTrigger.enabled=true and extensions.InstallTriggerImpl.enabled=false.

Depends on: 1772905

We're shipping a shim in today's nightly, and that will ride the train. Regardless of what happens with the InstallTrigger prefs, InstallTrigger will always be a string for pixiv. In my tests, this should be a reliable solution until they addressed the issue on their end.

If the site has an issue again, we can re-visit and uplift another fix during Beta, but this should suffice for now. :)

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED

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

Should be set to fixed in Firefox 103 since this was fixed by bug 1774006.

See Also: → 1830203
You need to log in before you can comment on or make changes to this bug.