diff options
Diffstat (limited to 'browser/extensions/webcompat/shims/apstag.js')
-rw-r--r-- | browser/extensions/webcompat/shims/apstag.js | 73 |
1 files changed, 73 insertions, 0 deletions
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); + } +} |