Behind the scene network requests - uBlockOrigin/uBlock-issues GitHub Wiki
Important notes:
When this documentation was created, the behind-the-scene network requests uBlock Origin (uBO) was able to see and filter, originated from many places, such as those from other extensions or from various browser operations (ex.: real-time search suggestions).
Since then things have changed: uBO no longer can see network requests from other extensions, and behind-the-scene network requests are now quite less frequent. Furthermore, the webRequest API now provides more context to event listeners, such that it is often possible to still filter properly even when it's not possible to know from which exact tab a network request originates. Such requests, not assigned to specific tab, but with known context, are categorized now as "Tabless".
Because of this (and other reasons which will eventually come to light - the "Who Left Open The Cookie Jar?" vulnerability), starting with uBO 1.15.20, the behind-the-scene
scope will no longer be on the Trusted sites list by default, meaning network requests from the behind-the-scene scope will be subject to filtering by default.
Warning: following text is out of date and in need of revision.
Behind-the-scene network requests are network requests which uBO cannot associate with a specific tab in your browser: these requests come from somewhere, but uBO is missing information to report exactly from where.
All network requests without a specific origin are classified as behind-the-scene. Typically, all blockers will ignore and automatically allow behind-the-scene network requests.
For the Chromium browser, examples of behind-the-scene network requests:
- made by the browser to update extensions
- made by the browser because of specific functionality, like the setting "Use a prediction service to help complete searches and URLs typed in the address bar"
- made by web pages using
navigator.sendBeacon()
, hyperlink auditing, et al. - made by installed extensions for not-so-good or good reasons (uBO makes behind-the-scene requests to fetch the filter lists when they need to be updated)
- uBO from Chrome store:
chrome-extension://cjpalhdlnbpafiamejdnhcphjbkeiagm/popup.html?tabId=-1&fullsize=1
. - uBO from Opera store:
chrome-extension://kccohkcpppjjkkjppopfnflnebibpida/popup.html?tabId=-1&fullsize=1
. - uBO from AMO (Firefox):
chrome://ublock0/content/popup.html?tabId=-1&fullsize=1
.
For Chromium-based browsers, if you install uBO manually, you will have to replace the id part (i.e. cjpalhdlnbpafiamejdnhcphjbkeiagm
) by the id used in your installation.
Starting with uBO version 0.8.6.0, you can inspect behind-the-scene network requests using the network request logger. Simply select the "Behind the scene" entry in the drop down list.
Various extensions installed to show that that these too make behind-the-scene requests
Typically, you will leave the network request logger opened for a long duration in order to catch any and all behind-the-scene network requests.
The ability to inspect behind-the-scene network requests is available to all users. You do not need to enable "advanced user" mode to see them in the network request logger.
Important: The blocking of behind-the-scene network requests can cripple important functionality of your browser or installed extensions. If you decide to block some behind-the-scene network requests, you are entirely responsible for the consequences.
The ability to filter behind-the-scene network requests is only available when "Advanced user" is enabled in the uBO options.
The behind-the-scene virtual tab is on the Trusted sites list by default. No filtering will occur even after you enable "Advanced user" mode.
To access the filtering settings for behind-the-scene network requests, simply open the popup UI in the network request logger while the "Behind the scene" entry is selected:
The popup UI will be filled with the settings/data of whatever tab is being currently inspected in the request logger.
The image above shows what happens when you navigate through GitHub: GitHub makes use of navigator.sendBeacon()
to send data to Google Analytics, which results in the firing of behind-the-scene requests in the Chromium browser.
Important: Filter behind-the-scene requests at your own risk. I will close without further comment any reported issue which is a direct consequence of blocking behind-the-scene network requests.
Remember that if you block indiscriminately, you could cripple the ability of your browser to update parts of itself or update extensions as well as the ability of extensions to work properly. This is why this is an advanced user feature.
To turn off the filtering of behind-the-scene requests, allow the "Behind the scene" scope or turn off "Advanced user" mode.
To allow the behind-the-scene scope, add behind-the-scene
as a trusted site directive in the Trusted sites tab of the uBO dashboard.
If there are only very specific behind-the-scene network requests you would like to filter, a good approach to minimize potential problems is to use dynamic filtering: set a local rule for the all
cell to allow (green) (i.e. behind-the-scene * * allow
). This will ensure nothing is blocked in the behind-the-scene scope, just as if uBO is disabled for that scope. Then create block rules for the specific hostnames for which you want to block all network requests, or noop
if you want to subject those hostnames to static filtering only.