From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- browser/extensions/webcompat/shims/apstag.js | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 browser/extensions/webcompat/shims/apstag.js (limited to 'browser/extensions/webcompat/shims/apstag.js') diff --git a/browser/extensions/webcompat/shims/apstag.js b/browser/extensions/webcompat/shims/apstag.js new file mode 100644 index 0000000000..55be05916b --- /dev/null +++ b/browser/extensions/webcompat/shims/apstag.js @@ -0,0 +1,73 @@ +/* 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 1713698 - Shim Amazon Transparent Ad Marketplace's apstag.js + * + * Some sites such as politico.com rely on Amazon TAM tracker to serve ads, + * breaking functionality like galleries if it is blocked. This shim helps + * mitigate major breakage in that case. + */ + +if (!window.apstag?._getSlotIdToNameMapping) { + const _Q = window.apstag?._Q || []; + + const newBid = config => { + return { + amznbid: "", + amzniid: "", + amznp: "", + amznsz: "0x0", + size: "0x0", + slotID: config.slotID, + }; + }; + + window.apstag = { + _Q, + _getSlotIdToNameMapping() {}, + bids() {}, + debug() {}, + deleteId() {}, + fetchBids(cfg, cb) { + if (!Array.isArray(cfg?.slots)) { + return; + } + setTimeout(() => { + cb(cfg.slots.map(s => newBid(s))); + }, 1); + }, + init() {}, + punt() {}, + renderImp() {}, + renewId() {}, + setDisplayBids() {}, + targetingKeys: () => [], + thirdPartyData: {}, + updateId() {}, + }; + + window.apstagLOADED = true; + + _Q.push = function (prefix, args) { + try { + switch (prefix) { + case "f": + window.apstag.fetchBids(...args); + break; + case "i": + window.apstag.init(...args); + break; + } + } catch (e) { + console.trace(e); + } + }; + + for (const cmd of _Q) { + _Q.push(cmd); + } +} -- cgit v1.2.3