Open Bug 1875061 (tp-breakage-disqus) Opened 1 year ago Updated 19 days ago

[meta] ETP breakage for webpages that have Disqus comment section

Categories

(Web Compatibility :: Privacy: Site Reports, task, P3)

Tracking

(firefox123 affected)

Tracking Status
firefox123 --- affected

People

(Reporter: rbucata, Unassigned)

References

(Depends on 8 open bugs, Blocks 1 open bug)

Details

(Keywords: meta)

This is a meta for tracking ETP issues that occur on all web pages that have Disqus comments enabled

Issue observed:

The Disqus comment section is not visible

Is it worth creating separate bugs for every site?

Thanks for asking but no, this is general problem because Disqus is part of Disconnect list.

(In reply to Dan Mehic from comment #2)

Is it worth creating separate bugs for every site?
Thanks for asking but no, this is general problem because Disqus is part of Disconnect list.

And maybe there's a good reason it is?
But I notice behavior is inconsistent. Sometimes it works, other times not. Right now Disqus seems to work on the sites I visit.

It's unfortunate that there is no functionality to add exceptions for individual trackers. Instead, if we want this to work, we have to turn off tracking content blocking completely. I think the ideal functionality would be to open the tracking protection door hanger, expand the tracking content, then have buttons on each one listed to allow that tracker on the currently loaded domain. That would allow you to enable functionality that is blocked while still blocking other tracking content. It would also still block that tracker on other domains, so it wouldn't be able to track you everywhere and just on the domains you explicitly allow. I don't know how difficult that would be to implement though.

See Also: → 1878855

(In reply to Matt Cosentino from comment #4)

It's unfortunate that there is no functionality to add exceptions for individual trackers.

Actually, Today I Learned that you can create a preference for host names of servers you want to bypass the standard lists (urlclassifier.trackingSkipURLs). See:

In the absence of a UI to populate this preference from the blocked trackers list, or anywhere else, it is very difficult for users to take advantage of this feature.

See Also: → 1428122

Thanks for the feedback everyone. We're exploring ways for users to easily enable blocked content without disabling ETP altogether.

(In reply to jscher2000 from comment #5)

Actually, Today I Learned that you can create a preference for host names of servers you want to bypass the standard lists (urlclassifier.trackingSkipURLs).

As a general solution for disqus.com, this seems to work for all sites I have visited:

urlclassifier.trackingSkipURLs = disqus.com,*.disqus.com

Depends on: 1884676

(In reply to jscher2000 from comment #5)

(In reply to Matt Cosentino from comment #4)

It's unfortunate that there is no functionality to add exceptions for individual trackers.

Actually, Today I Learned that you can create a preference for host names of servers you want to bypass the standard lists (urlclassifier.trackingSkipURLs). See:

In the absence of a UI to populate this preference from the blocked trackers list, or anywhere else, it is very difficult for users to take advantage of this feature.

Thanks, that does help. It bypasses the list on all sites though, so it could track me on sites I don't want it to. In the case of disqus, they use different subdomains on each site, so I can add them individually and that's good. But, there's one site I use that has a poll feature using polldaddy.com that is marked as a tracker. Being able to whitelist it only on that site would allow the content to work where I want it to work and not track me anywhere else.

Depends on: 1894615

The urlclassifier.trackingSkipURLs workaround doesn't seem to work anymore.

(In reply to Matt Cosentino from comment #9)

The urlclassifier.trackingSkipURLs workaround doesn't seem to work anymore.

It looks like you now need to add c.disquscdn.com as well.

As a research strategy, you can open the Web Console (Ctrl+Shift+K, or on Mac, Command+Alt+K) and filter on content blocking -- for example:

The resource at “https://c.disquscdn.com/next/embed/lounge.load.8d3c7bf4ef0effbad0b35e184b729823.js” was blocked because content blocking is enabled.

Some others are blocked as well, but they seem related to advertising and not essential.

(In reply to jscher2000 from comment #10)

(In reply to Matt Cosentino from comment #9)

The urlclassifier.trackingSkipURLs workaround doesn't seem to work anymore.

It looks like you now need to add c.disquscdn.com as well.

As a research strategy, you can open the Web Console (Ctrl+Shift+K, or on Mac, Command+Alt+K) and filter on content blocking -- for example:

The resource at “https://c.disquscdn.com/next/embed/lounge.load.8d3c7bf4ef0effbad0b35e184b729823.js” was blocked because content blocking is enabled.

Some others are blocked as well, but they seem related to advertising and not essential.

I did look through the web console and that wasn't there. I added it to my list anyway and they still didn't load. I then looked through all the other content being blocked, enabling one by one to see if it would fix anything, and I found that adding *.spot.im to the list fixed it. Aha! Turns out the site switched to using spot.im a while ago (oops, my bad) but they also still load disqus content for some reason. Before, just having 9to5googleprod.disqus.com in the list allowed them to be loaded, but now it seems spot.im is being blocked too.

Blocks: 1901474

I was experiencing the same issue, but had no idea it was related to Firefox, so I reported to Betterfox — as I thought it could be because of my hardening Firefox — and the creator said: "it seems Firefox still marks Disqus as Tracking even after adding an exception"

So, to give more context, here is my issue report linked to their comment: https://github.com/yokoffing/Betterfox/issues/293#issuecomment-2168273108

Blocks: 1905920
Depends on: 1906418

Dupes:

Bug 1869326
Bug 1872855
Bug 1874855
Bug 1884676
Bug 1905920

Maybe Mozilla could have fixed the bug faster or marked it as WONTFIX not to look so bad.

Blocks: 1910855
Alias: tp-breakage-disqus
Blocks: 1916183
See Also: → smartblock-embeds
Blocks: 1906053
Blocks: 1932153
Depends on: 1927749
Depends on: 1931298
Depends on: 1843553
Severity: -- → N/A
Priority: -- → P3
Blocks: 1936742

Moving see also and blocks to depends on, because this is how meta bugs are usually used and to unify the behavior.

ETP classification whiteboard likely: [etp-pbm][etp-feature-tb-ads][etp-rc-content-blocked]

Severity: N/A → S2

Oh, this is not Privcy: Site Reports, so triaged differently removing S2 again.

Severity: S2 → N/A
No longer blocks: tp-breakage
See Also: → tp-breakage
Type: defect → task
Depends on: 1873401
Blocks: 1912947
Depends on: 1898172
Depends on: 1837358
Depends on: 1949372
No longer depends on: 1936742
Blocks: 1953716
No longer blocks: 1912947, 1953716
Depends on: 1912947, 1953716
Depends on: 1955195
Component: Privacy: Anti-Tracking → Privacy: Site Reports
Product: Core → Web Compatibility
See Also: tp-breakage
Version: Firefox 123 → unspecified
Blocks: 1956194
Depends on: 1923619

I'm not sure if this is worthy of a sperate bug report but adding disqus to the urlclassifier.trackingSkipURLs is giving errors in the console and ETP is still blocking the site.

The following error appears in the console for each entry in the trackingskipurls list:

Error initializing url classifier exception list entry Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init] NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init]
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:81
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Object { urlPattern: "disqus.com", classifierFeatures: (1) […] }

classifierFeatures: Array [ "tracking-protection" ]

urlPattern: "disqus.com"

<prototype>: Object { … }
UrlClassifierExceptionListService.sys.mjs:89:15
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:89
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Steps to reproduce:

  1. Set urlclassifier.trackingSkipURLs to "disqus.com,omgubuntu.disqus.com,c.disquscdn.com"
  2. Visit an article on omgubuntu.co.uk.
  3. View browser console.

(In reply to Tom from comment #17)

I'm not sure if this is worthy of a sperate bug report but adding disqus to the urlclassifier.trackingSkipURLs is giving errors in the console and ETP is still blocking the site.

The following error appears in the console for each entry in the trackingskipurls list:

Error initializing url classifier exception list entry Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init] NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init]
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:81
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Object { urlPattern: "disqus.com", classifierFeatures: (1) […] }

classifierFeatures: Array [ "tracking-protection" ]

urlPattern: "disqus.com"

<prototype>: Object { … }
UrlClassifierExceptionListService.sys.mjs:89:15
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:89
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Steps to reproduce:

  1. Set urlclassifier.trackingSkipURLs to "disqus.com,omgubuntu.disqus.com,c.disquscdn.com"
  2. Visit an article on omgubuntu.co.uk.
  3. View browser console.

Please file a separate bug. Thanks!

(In reply to Tom from comment #17)

I'm not sure if this is worthy of a sperate bug report but adding disqus to the urlclassifier.trackingSkipURLs is giving errors in the console and ETP is still blocking the site.

The following error appears in the console for each entry in the trackingskipurls list:

Error initializing url classifier exception list entry Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init] NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIUrlClassifierExceptionListEntry.init]
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:81
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Object { urlPattern: "disqus.com", classifierFeatures: (1) […] }

classifierFeatures: Array [ "tracking-protection" ]

urlPattern: "disqus.com"

<prototype>: Object { … }
UrlClassifierExceptionListService.sys.mjs:89:15
rsObjectToEntry resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:89
notifyObservers resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:104
observe resource://gre/modules/UrlClassifierExceptionListService.sys.mjs:45
save chrome://global/content/aboutconfig/aboutconfig.js:394
loadPrefs chrome://global/content/aboutconfig/aboutconfig.js:564

Steps to reproduce:

  1. Set urlclassifier.trackingSkipURLs to "disqus.com,omgubuntu.disqus.com,c.disquscdn.com"
  2. Visit an article on omgubuntu.co.uk.
  3. View browser console.

Aha! This must be why it's not working for me anymore either. The errors appear for all domains and none of them are being blocked. I used mozregression and narrowed it down to this:

Bug 1957385 - Add a performance marker for url classifier exception list lookup. r=timhuang

Differential Revision: https://phabricator.services.mozilla.com/D243664

Actually, looking at the pushlog, this is more likely the cause:

Bug 1955948 - Refactor url classifier allow-list mechanism to use xpcom interfaces

(In reply to Matt Cosentino from comment #20)

Actually, looking at the pushlog, this is more likely the cause:

Bug 1955948 - Refactor url classifier allow-list mechanism to use xpcom interfaces

That's the one. You need to use match patterns instead of urls for the pref now. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns

*://disqus.com/*,*://omgubuntu.disqus.com/*,*://c.disquscdn.com/*

Though hopefully we'll have opt-in placeholders for disqus soon.

(In reply to Emma Zühlcke [:emz] from comment #21)

(In reply to Matt Cosentino from comment #20)

Actually, looking at the pushlog, this is more likely the cause:

Bug 1955948 - Refactor url classifier allow-list mechanism to use xpcom interfaces

That's the one. You need to use match patterns instead of urls for the pref now. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns

*://disqus.com/*,*://omgubuntu.disqus.com/*,*://c.disquscdn.com/*

Though hopefully we'll have opt-in placeholders for disqus soon.

Yeah, I just figured that out myself and was coming back here to say that. I updated my list and it's working now. I noticed the new opt-ins for I think it was Twitter, so that would be great for Disqus as well. OpenWeb (spot.im) should also be considered.

Blocks: 1966696

(In reply to Emma Zühlcke [:emz] from comment #21)

(In reply to Matt Cosentino from comment #20)

Actually, looking at the pushlog, this is more likely the cause:

Bug 1955948 - Refactor url classifier allow-list mechanism to use xpcom interfaces

That's the one. You need to use match patterns instead of urls for the pref now. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns

*://disqus.com/*,*://omgubuntu.disqus.com/*,*://c.disquscdn.com/*

Though hopefully we'll have opt-in placeholders for disqus soon.

I don't know why, but I can't get this to work.

I set *://*.brid.tv/*, *://*.privacy-center.org/* on urlclassifier.trackingSkipURLs and these domains are still blocked on websites requiring them to work. Any idea what might be wrong?

Flags: needinfo?(emz)

(In reply to Marko [:korisnik25] from comment #23)

(In reply to Emma Zühlcke [:emz] from comment #21)

(In reply to Matt Cosentino from comment #20)

Actually, looking at the pushlog, this is more likely the cause:

Bug 1955948 - Refactor url classifier allow-list mechanism to use xpcom interfaces

That's the one. You need to use match patterns instead of urls for the pref now. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns

*://disqus.com/*,*://omgubuntu.disqus.com/*,*://c.disquscdn.com/*

Though hopefully we'll have opt-in placeholders for disqus soon.

I don't know why, but I can't get this to work.

I set *://*.brid.tv/*, *://*.privacy-center.org/* on urlclassifier.trackingSkipURLs and these domains are still blocked on websites requiring them to work. Any idea what might be wrong?

It appears space after comma was the issue why it wasn't working. Spaces aren't allowed anymore or?

The code splits the entries by "," here: https://searchfox.org/mozilla-central/rev/85d6bf1b521040c79ed72f3966274a25a2f987c7/netwerk/url-classifier/UrlClassifierExceptionListService.sys.mjs#103

I suspect that in our new implementation extra spaces cause issues with constructing the match pattern.

Flags: needinfo?(emz)

(In reply to Emma Zühlcke [:emz] from comment #25)

The code splits the entries by "," here: https://searchfox.org/mozilla-central/rev/85d6bf1b521040c79ed72f3966274a25a2f987c7/netwerk/url-classifier/UrlClassifierExceptionListService.sys.mjs#103

I suspect that in our new implementation extra spaces cause issues with constructing the match pattern.

Thanks Emma!

Am I missing something? I have urlclassifier.trackingSkipURLs=*://*.disqus.com/*,*://c.disquscdn.com/* (no spaces) and I still get the blocked message on nytimes.com (e.g. Wirecutter).

Depends on: 1970813

All of these should be fixed by Bug 1965307 now where we added a placeholder for the missing embeds where users can opt-in to Disqus specifically which will load the comment section. If a site is not working with the embed placeholder please file a bug! Note that the placeholders have been introduced in Firefox 141 which is currently still in Nightly and it will take a while for this to reach release.

Blocks: 1979882
Blocks: 1981379
See Also: → 1965307
Depends on: 1985474
No longer depends on: 1912947
Depends on: 1889603
Depends on: 1951646
Depends on: 1988528
You need to log in before you can comment on or make changes to this bug.