Closed Bug 1897653 Opened 7 months ago Closed 7 months ago

Bitstamp Tradeview stopped working in 126.0

Categories

(Core :: Privacy: Anti-Tracking, defect, P1)

Firefox 126
Desktop
All
defect

Tracking

()

RESOLVED FIXED
128 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox126 + wontfix
firefox127 + wontfix
firefox128 + fixed

People

(Reporter: limeclipse, Assigned: bvandersloot, NeedInfo)

References

(Regression)

Details

(Keywords: nightly-community, regression)

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0

Steps to reproduce:

  1. Visit https://www.bitstamp.net/market/tradeview/

Actual results:

The TradeView component on the page does not load after the update to Firefox 126.0 on all of my devices.

Expected results:

The Tradeview component should have loaded like it did in previous versions and other browsers.

Status: UNCONFIRMED → NEW
Component: Untriaged → Privacy: Anti-Tracking
Ever confirmed: true
OS: Unspecified → All
Product: Firefox → Core
Regressed by: 1876575, 1876574
Hardware: Unspecified → Desktop

:bvandersloot could you please take a look?
Tracking since there is a known site impact.
Mentioning we have a dot release for Fx126 scheduled for next week.

Flags: needinfo?(bvandersloot)

Thinking aloud here: this is an iframe whose source is a blob URL created by the parent document. This has to do with part 1 of Bug 1876575. I'll work on this further.

Flags: needinfo?(bvandersloot)

This working with ETP disabled is an interesting wrinkle. I would not expect that from such a breakage. And the blob document is being correctly identified as first party with ETP disabled. So that appears to have been a red herring.

Looking at the console, there are syntax errors with ETP enabled that are not present with it disabled. This seems like a good thread to pull...

And it was the blob url doc! It was forcing all subresources in the blob iframe to be third-party. this was due to a bad choice in https://phabricator.services.mozilla.com/D205231. Blobs should be special cased in the AntiTrackingUtils code too.

We debated over whether or not to do this in https://phabricator.services.mozilla.com/D205231.
It turns out we should have.

If we don't do this, the blob document thinks it is third party, so its subresources become foreign
and don't have access to the first party cookies. All because blob urls don't have a host, so they don't
have a base domain.

Assignee: nobody → bvandersloot
Status: NEW → ASSIGNED
Severity: -- → S3
Priority: -- → P1

The bug is marked as tracked for firefox126 (release), tracked for firefox127 (beta) and tracked for firefox128 (nightly). However, the bug still has low severity.

:dmehic, could you please increase the severity for this tracked bug? If you disagree with the tracking decision, please talk with the release managers.

For more information, please visit BugBot documentation.

Flags: needinfo?(dmehic)

This came up in the triage meeting yesterday and we opted for S3. One could argue that because of impact this is an S2.

Flags: needinfo?(dmehic)

We talked about this again, bumping to S2.

Severity: S3 → S2

:bvandersloot adding a reminder the Fx126 dot release is scheduled for next week.
The deadline for uplifts is eod tomorrow (Friday 2024-05-24)
The patch hasn't landed yet and might be too risky to include in a dot release.
What are your thoughts on risk? We should aim to include this in Beta for Fx127 at least.

Flags: needinfo?(bvandersloot)

There is some risk involved here for a release uplift since the patch is non-trivial. I'll aim for beta. I'm willing to hear arguments for release if anyone involved is passionate.

Flags: needinfo?(bvandersloot)

(In reply to Benjamin VanderSloot [:bvandersloot] from comment #12)

There is some risk involved here for a release uplift since the patch is non-trivial. I'll aim for beta. I'm willing to hear arguments for release if anyone involved is passionate.

:bvandersloot we are in the final week of beta for Fx127. There are only two beta builds left, the last Fx127 beta builds on 2024-05-31.
There's limited time for this to land in central and then get a beta uplift request.

Flags: needinfo?(bvandersloot)

We debated over whether or not to do this in https://phabricator.services.mozilla.com/D205231.
It turns out we should have.

If we don't do this, the blob document thinks it is third party, so its subresources become foreign
and don't have access to the first party cookies. All because blob urls don't have a host, so they did't
have a base domain. But they do have origins, which is what base domain should be derived from.

Attachment #9404371 - Attachment is obsolete: true
Pushed by bvandersloot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a16dd0cb99b7 Make blob urls inherit their principal in third-party checks too - r=pbz,asuth,rpl

Backed out for causing wpt failures in url-reload.window.html.

So, good news and bad news. The good news is that the patch above fixes the bug identified. The bad news is that it causes a timeout on blob reload because of a bug in the repartitioning work, related to the recent Bug 1736488. In particular, some first-level-frame navigations seem to be treating their parent as third party, forcing the foreign bit on the partition key. I'm going to diagnose that and fix it.

:asuth, if it comes down to it, which do you prefer?

  1. a late Beta uplift for this, marking the WPT as failing
  2. leave this bug in 127, and uplift this and the fix for repartitioning into 128 once I finish it?
Flags: needinfo?(bvandersloot) → needinfo?(bugmail)

Scratch that- false alarm on the reasoning. This had to do with an actual bug in the patch that made our revoked handling logic not work.

Lesson: IsBlobURL means "is active blob url". I wanted to check the scheme.

Flags: needinfo?(bugmail)

It would definitely be great to improve the method name there (in a different patch and likely bug), as indeed that method name seems to be a foot-gun!

Also, if it helps, I asked pernosco to get a reproduction because at first glance I thought the problem was that nsDocShell::Reload might be re-parsing the URL when it should not, although the timing seemed suspect:
https://pernos.co/debug/N5VmgODybbprTC-f0d_3RQ/index.html

(Noting that there's still potentially the issue of whether we would actually pass the test after our revocation timer fires. Ideally the docshell would be retaining a reference to the Blob under the hood, but I'm not sure that it is.)

Pushed by bvandersloot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2b327975c109 Make blob urls inherit their principal in third-party checks too - r=pbz,asuth,rpl
Status: ASSIGNED → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → 128 Branch

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

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

For more information, please visit BugBot documentation.

Flags: needinfo?(bvandersloot)
Duplicate of this bug: 1898519

Given the late status of beta and risk of the patch, let's not uplift.

Flags: needinfo?(bvandersloot)

The website mentioned in the reproduction steps has worked around the problem and cannot be used anymore.

Based on comment #26 not sure how to verify the fix since it is not reproducing anymore.
Limeclipse, if you still reproduce the issue on latest Firefox 128 (https://archive.mozilla.org/pub/firefox/candidates/128.0b5-candidates/), please add a comment here. Thank you.

Flags: needinfo?(limeclipse)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: