зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1713696 - Add a SmartBlock shim for AdNexus; r=denschub,webcompat-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D120476
This commit is contained in:
Родитель
3918a58a02
Коммит
995d5a100a
|
@ -97,6 +97,22 @@ const AVAILABLE_SHIMS = [
|
|||
"*://example.com/browser/browser/extensions/webcompat/tests/browser/shims_test_3.js",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "AdNexus",
|
||||
platform: "all",
|
||||
name: "AdNexus",
|
||||
bug: "1713696",
|
||||
file: "empty-script.js",
|
||||
matches: [
|
||||
"*://acdn.adnxs.com/ast/ast.js",
|
||||
{
|
||||
patterns: ["*://*.adnxs.com/*/pb.js", "*://*.adnxs.com/*/prebid"],
|
||||
target: "adnexus-prebid.js",
|
||||
types: ["script"],
|
||||
},
|
||||
],
|
||||
onlyIfBlockedByETP: true,
|
||||
},
|
||||
{
|
||||
id: "AdSafeProtectedGoogleIMAAdapter",
|
||||
platform: "all",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"manifest_version": 2,
|
||||
"name": "Web Compatibility Interventions",
|
||||
"description": "Urgent post-release fixes for web compatibility.",
|
||||
"version": "24.6.0",
|
||||
"version": "24.7.0",
|
||||
|
||||
"applications": {
|
||||
"gecko": {
|
||||
|
@ -90,6 +90,7 @@
|
|||
},
|
||||
|
||||
"web_accessible_resources": [
|
||||
"shims/adnexus-prebid.js",
|
||||
"shims/adsafeprotected-ima.js",
|
||||
"shims/apstag.js",
|
||||
"shims/bmauth.js",
|
||||
|
|
|
@ -79,6 +79,7 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["js"] += [
|
|||
]
|
||||
|
||||
FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["shims"] += [
|
||||
"shims/adnexus-prebid.js",
|
||||
"shims/adsafeprotected-ima.js",
|
||||
"shims/apstag.js",
|
||||
"shims/bmauth.js",
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Bug 1694401 - Shim Prebid.js
|
||||
*
|
||||
* Some sites rely on prebid.js to place content, perhaps in conjunction with
|
||||
* other services like Google Publisher Tags and Amazon TAM. This shim prevents
|
||||
* site breakage like image galleries breaking as the user browsers them, by
|
||||
* allowing the content placement to succeed.
|
||||
*/
|
||||
|
||||
if (!window.pbjs?.requestBids) {
|
||||
const que = window.pbjs?.que || [];
|
||||
const cmd = window.pbjs?.cmd || [];
|
||||
const adUnits = window.pbjs?.adUnits || [];
|
||||
|
||||
window.pbjs = {
|
||||
adUnits,
|
||||
addAdUnits(arr) {
|
||||
if (!Array.isArray(arr)) {
|
||||
arr = [arr];
|
||||
}
|
||||
adUnits.push(arr);
|
||||
},
|
||||
cmd,
|
||||
offEvent() {},
|
||||
que,
|
||||
refreshAds() {},
|
||||
removeAdUnit(codes) {
|
||||
if (!Array.isArray(codes)) {
|
||||
codes = [codes];
|
||||
}
|
||||
for (const code of codes) {
|
||||
for (let i = adUnits.length - 1; i >= 0; i--) {
|
||||
if (adUnits[i].code === code) {
|
||||
adUnits.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
renderAd() {},
|
||||
requestBids(params) {
|
||||
params?.bidsBackHandler?.();
|
||||
},
|
||||
setConfig() {},
|
||||
setTargetingForGPTAsync() {},
|
||||
};
|
||||
|
||||
const push = function(fn) {
|
||||
if (typeof fn === "function") {
|
||||
try {
|
||||
fn();
|
||||
} catch (e) {
|
||||
console.trace(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
que.push = push;
|
||||
cmd.push = push;
|
||||
|
||||
que.forEach(push);
|
||||
cmd.forEach(push);
|
||||
}
|
Загрузка…
Ссылка в новой задаче