Skip to content

Click2load initiated frame makes request without "Referrer" param; breaks certain embeds #3868

@tyaremco

Description

@tyaremco

Prerequisites

  • I verified that this is not a filter list issue. Report any issues with filter lists or broken website functionality in the uAssets issue tracker.
  • This is NOT a YouTube, Facebook or Twitch report. These sites MUST be reported by clicking their respective links.
  • This is not a support issue or a question. For support, questions, or help, visit /r/uBlockOrigin.
  • I performed a cursory search of the issue tracker to avoid opening a duplicate issue.
  • The issue is not present after disabling uBO in the browser.
  • I checked the documentation to understand that the issue I am reporting is not normal behavior.

I tried to reproduce the issue when...

  • uBO is the only extension.
  • uBO uses default lists and settings.
  • using a new, unmodified browser profile.

Description

When using the click2load redirect, eg.

||*/*embed*$3p,frame,redirect=click2load.html,domain=godlikeproductions.com
testing page

after clicking to load the embed, the request is made without the original Referrer present in the Header. Certain sites like Youtube can enforce a policy (1) to not load unless it has this value (eg. resulting in the "video player configuration error").

Therefore, the embedded content will fail to load if initiated from click2load but successfully loads otherwise.

Note that this is NOT a Youtube-specific issue, it's just an oversight in the click2load feature that can clash with server-side policy.

  1. yt docs:

API Clients need only ensure they are not setting the Referrer-Policy in a way that suppresses the Referer value.
[...] API Clients must not use the noreferrer feature, which suppresses the Referer value.

A specific URL where the issue occurs.

https://www.godlikeproductions.com/forum1/message6100646/pg1

Steps to Reproduce

With uBo enabled at all times...

  1. As I understand, not every system is affected by this policy. Manually paste this URL in your browser: https://www.youtube.com/embed/2za2IK8FQoM (which avoids Github being set as the Referrer). You should see the video fail to load and "video player configuration error". Otherwise, you will not be able to fully test this.

  2. Open the provided URL from godlikeproductions. Note that the youtube embeds are fully functional.

  3. Confirm in dev tools that Referrer is set for the youtube doc in the Request Header

  4. Add the click2load static filter to uBO and refresh the page.
    ||*/*embed*$3p,frame,redirect=click2load.html,domain=godlikeproductions.com

  5. When attempting to load a frame, you will again receive the "video player configuration error"

  6. Confirm in dev tools that Referrer is absent from the youtube doc Request Header

Expected behavior

Click2load initiated frames make the same Request Header as they do during a normal page load, ensuring compatibility.

Actual behavior

Click2load initiated frame makes a request without the appropriate header params (Referrer), resulting in the embed failing to load.

uBO version

1.67.0

Browser name and version

Chromium 138

Operating System and version

Windows 7

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions