Closed Bug 1500076 Opened 6 years ago Closed 3 years ago

Video is not displayed on cuisine.journaldesfemmes.fr while Tracking Protection Strict is enabled

Categories

(Web Compatibility :: Desktop, defect, P5)

Firefox 64
x86_64
Windows 10
defect

Tracking

(firefox86 wontfix, firefox92 fixed, firefox93 verified)

VERIFIED FIXED
Tracking Status
firefox86 --- wontfix
firefox92 --- fixed
firefox93 --- verified

People

(Reporter: oanaarbuzov, Assigned: twisniewski)

References

(Blocks 1 open bug, )

Details

(Keywords: webcompat:needs-diagnosis, Whiteboard: [tp-content], [tp-ads][tp-shim-complex][tp-embedded-media])

User Story

googleapis.com
ooyala.com
googletagmanager

Attachments

(2 files)

Attached image TpON.png (deleted) —
[Environment:] Browser / Version: Firefox Nightly 64.0a1 (2018-10-02) Operating System: Windows 10 Pro [Prerequisites:] 1. Tracking Protection Basic enabled. [Steps to Reproduce:] 1. Navigate to https://cuisine.journaldesfemmes.fr/recette/222125-gratin-de-courgettes 2. Observe the screen. [Expected Behavior:] Video is displayed and can be played. [Actual Behavior:] Video is not displayed and a preview image is shown.
The issue is related to `Video` breakage. Looking at the devtools console, here are the blocked resources: The resource at “https://connect.facebook.net/fr_FR/all.js” was blocked because content blocking is enabled. The resource at “https://www.googletagmanager.com/gtm.js?id=GTM-N4SNZN” was blocked because content blocking is enabled. So below are the domains to test: - ​connect.facebook.net - ​www.googletagmanager.com I opened the URL in a fresh browser profile (Firefox Nightly 64, uMatrix installed, normal mode) and loaded the page. The video is not displayed. I disabled the Spoof Referrer option in uMatrix and then WHITELISTED: - ccmbg.com (including all related domains) - googleapis.com (including all related domains) - ooyala.com (including all related domains) - googletagmanager.com (including all related domains) and the video is displayed and plays. The other resources didn't help. So in conclusion: - ccmbg.com is not listed - googleapis.com is in Content category = [tp-content] - ooyala.com is in Content category = [tp-content] - googletagmanager is is Disconnect list in Advertising section = [tp-ads]
Attached image uMatrixResults.png (deleted) —
Added uMatrix results.
User Story: (updated)
Whiteboard: [tp-content], [tp-ads]
Product: Tech Evangelism → Web Compatibility
Priority: -- → P5

This was a pain to diagnose. The video intermittently plays in basic mode without any clear error messages or exception indicating what might be going wrong (and sifting through their scripts was not fun, especially since they use Google Tag Manager, which of course injects eval'd minified code, further complicating things).

But it ultimately turns out the underlying problems turns out to be an anti ad-blocker which their video player checks in its _createPlayerInstance method:

          key: '_createPlayerInstance',
          value: function (e) {
            // snip some code for brevity
            if (O && e.conf.player.options.aab) return Ce.addErrorMessage(e.node),
            Promise.reject('Adblocker detected');

Where aab is set to this:

window.integrityObserver && window.integrityObserver.corrupted

Where the value of that is ultimately set in a script embedded in their inline markup.

We can quite easily work around this by just changing the value of corrupted before the player reads it, but I'd propose that we instead preemptively define some code on the window before their page runs any scripts, which ensures that corrupted cannot be set to true (and certain other code in the tracker isn't potentially run):

(function() {
  let iob;
  Object.defineProperty(window, "integrityObserver", {
    get: () => iob,
    set: function(obs) {
      obs.sendToListeners = function() {};
      Object.defineProperty(obs, "corrupted", {
         get: () => false,
         set: () => {},
      });
      iob = obs;
    },
    enumerable: false,
    configurable: true,
  }
}());

But do note that this is likely to start an arm's race with sites who refuse to switch to less user-hostile ads, since we will end up blocking their ad.

And since the anti adblocker is embedded in the base markup, we would need to do this for every site confirmed to be using this trick (or proactively on all new content windows when the user is in strict blocking mode).

Whiteboard: [tp-content], [tp-ads] → [tp-content], [tp-ads][tp-shim-complex][tp-embedded-media]

The issue no longer reproduces with ETP - Standard, but still occurs with ETP - Strict.
https://prnt.sc/xgbn72

Tested with:
Browser / Version: Firefox Nightly 86.0a1 (2021-01-21)
Operating System: Windows 10 Pro

I'll change the title of the issue, to reflect the above.

Summary: Video is not displayed on cuisine.journaldesfemmes.fr while Tracking Protection Basic is enabled → Video is not displayed on cuisine.journaldesfemmes.fr while Tracking Protection Strict is enabled

It's possible that this may be fixed with other shim fixes being developed right now, as Amazon TAM, iasPET, and Ads by Google test shims I'm working on are kicking in for this site, and the video is playing with them active.

Actually, with the addition of an empty-script shim for https://acdn.adnxs.com/ast/ast.js, this seems to be consistently working for me now, so I think we'll be able to fix this one.

Depends on: 1713696
Assignee: nobody → twisniewski

This issue is reproducible on Firefox Nightly from 8/2 with Google Pixel (Android 10).
The ETP is set to STRICT.
Enabling the Standard ETP fixes the issue.

The issue is no longer reproducible on Nightly 92.0a1, 93.0a1, and Firefox 92 beta 1 - tested in strict mode and Private Browsing on macOS Big Sur 11.5, Windows 10, and Ubuntu 20.04 x64.

The issue is no longer reproducible on 92.0.0-beta.2 with Google Pixel 3 (Android 12), tested with ETP Strict.

I was not able to reproduce this issue anymore on the 93.0a1 Nightly from 823, with ETP set to strict.
Tested on Lenovo tablet M10 (Android 10).
I'll close this issue as fixed.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: