Closed Bug 1966860 Opened 5 months ago Closed 4 months ago

RFP: chat.qwen.ai returns '500: Internal Error' due to WebGLRenderInfo

Categories

(Core :: DOM: Security, defect)

defect

Tracking

()

RESOLVED FIXED
141 Branch
Tracking Status
firefox140 --- fixed
firefox141 --- fixed

People

(Reporter: thorin, Assigned: fkilic)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

STR (I used nightly 140: ETP on strict FWIW)

  • enable RFP
  • load https://chat.qwen.ai/
  • expected: chat loads
  • actual: blank page with 500: Internal Error
  • disable RFP, reload ... success

It's not canvas, so will require some RFPTarget analysis cc fkilic pierov

Feel free to move from Core>Dom: Security

Wow, this is a new one. It's WebGLRenderInfo.

I don't know exactly why, but somewhere after a call to https://chat.qwen.ai/api/config (seen in both the Network tab and the Console debug output) - which has the same result with or without WebGLRenderInfo - something goes wrong, and a subsequent call to https://chat.qwen.ai/api/models will not be made and you'll get the 500. There is detect Firefox false in the console log but that appears with and without WebGLRenderInfo.

WebGLRenderInfo blocks WEBGL_debug_renderer_info and WEBGL_debug_shaders as well as sanitizing the non-unmasked Renderer string to just "Mozilla".

Summary: RFP: chat.qwen.ai returns '500: Internal Error' → RFP: chat.qwen.ai returns '500: Internal Error' due to WebGLRenderInfo

Disabling webgl.enable-debug-renderer-info also returns 500, suggesting it is the debug renderer info blocking. Searching for UNMASKED_RENDERER_WEBGL in qwen's source also brings up some stuff.

We can probably remove blocking WEBGL_debug_renderer_info because we return the same value for renderer and unmasked renderer. We do, however, return the actual vendor for unmasked vendor. So what we can do is, remove the extension blocking, and return "Mozilla" for unmasked vendor (just like how the normal vendor parameter)

WEBGL_debug_renderer_info enables access to two parameters. UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL. We return the same value for WEBGL_debug_renderer_info.UNMASKED_RENDERER_WEBGL and gl.RENDERER, so we already expose the (sanitized) renderer. The only thing we are blocking is UNMASKED_VENDOR_WEBGL. I suggest that we enable the extension and spoof vendor instead.

Assignee: nobody → fkilic
Status: NEW → ASSIGNED
Pushed by fkilic@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a38613134168 Enable WEBGL_debug_renderer_info extension and spoof vendor. r=tjr
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 141 Branch
Attachment #9491483 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined: Possibly higher web compat errors
  • Code covered by automated testing: yes
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing: Enable RFP, visit chat.qwen.ai, check that there's no "500: Internal Error" message
  • Risk associated with taking this patch: Only for RFP users: breakage on chat.qwen.ai
  • Explanation of risk level: WebCompat issue for RFP users.
  • String changes made/needed: no
  • Is Android affected?: yes

I would add that we wouldn't normally try to uplift RFP-only things, but we just missed the 140-ESR window so we're hoping to get a few things in to reduce Tor's patchload. "We would prefer not" is always acceptable :)

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

archaeology: Bug 1337157: FF60+ privacy.resistFingerprinting should disable WEBGL_debug_renderer_info

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

Attachment

General

Created:
Updated:
Size: