Do not block large media resources when loaded as top-level document

Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1201
- https://github.com/uBlockOrigin/uBlock-issues/issues/3184

Top-level media resources are not meant to be blocked, see:
https://github.com/gorhill/uBlock/issues/2813#issuecomment-317177212
This commit is contained in:
Raymond Hill 2024-03-26 12:38:41 -04:00
parent 616c54f475
commit 3919a16bb8
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
2 changed files with 20 additions and 20 deletions

View File

@ -19,17 +19,13 @@
Home: https://github.com/gorhill/uBlock
*/
'use strict';
/******************************************************************************/
import contextMenu from './contextmenu.js';
import logger from './logger.js';
import staticNetFilteringEngine from './static-net-filtering.js';
import µb from './background.js';
import webext from './webext.js';
import { orphanizeString } from './text-utils.js';
import { redirectEngine } from './redirect-engine.js';
import {
domainFromHostname,
hostnameFromURI,
isNetworkURI,
} from './uri-utils.js';
import {
sessionFirewall,
@ -37,11 +33,13 @@ import {
sessionURLFiltering,
} from './filtering-engines.js';
import {
domainFromHostname,
hostnameFromURI,
isNetworkURI,
} from './uri-utils.js';
import contextMenu from './contextmenu.js';
import logger from './logger.js';
import { orphanizeString } from './text-utils.js';
import { redirectEngine } from './redirect-engine.js';
import staticNetFilteringEngine from './static-net-filtering.js';
import webext from './webext.js';
import µb from './background.js';
/*******************************************************************************
@ -379,11 +377,13 @@ const PageStore = class {
// If we are navigating from-to same site, remember whether large
// media elements were temporarily allowed.
if (
typeof this.allowLargeMediaElementsUntil !== 'number' ||
tabContext.rootHostname !== this.tabHostname
) {
this.allowLargeMediaElementsUntil = Date.now();
const now = Date.now();
if ( typeof this.allowLargeMediaElementsUntil !== 'number' ) {
this.allowLargeMediaElementsUntil = now;
} else if ( tabContext.rootHostname !== this.tabHostname ) {
if ( this.tabHostname.endsWith('about-scheme') === false ) {
this.allowLargeMediaElementsUntil = now;
}
}
this.tabHostname = tabContext.rootHostname;

View File

@ -590,7 +590,7 @@ const onHeadersReceived = function(details) {
}
};
const reMediaContentTypes = /^(?:audio|image|video)\//;
const reMediaContentTypes = /^(?:audio|image|video)\/|(?:\/ogg)$/;
/******************************************************************************/