summaryrefslogtreecommitdiffstats
path: root/browser/extensions/webcompat/shims/branch.js
blob: 31e8f4eeec781c3eae8f4787cc3e9771768a8a4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* 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 1716220 - Shim Branch Web SDK
 *
 * Sites such as TataPlay may not load properly if Branch Web SDK is
 * blocked. This shim stubs out its script so the page still loads.
 */

if (!window?.branch?.b) {
  const queue = window?.branch?._q || [];
  window.branch = new (class {
    V = {};
    g = 0;
    X = "web2.62.0";
    b = {
      A: {},
      clear() {},
      get() {},
      getAll() {},
      isEnabled: () => true,
      remove() {},
      set() {},
      ca() {},
      g: [],
      l: 0,
      o: 0,
      s: null,
    };
    addListener() {}
    applyCode() {}
    autoAppIndex() {}
    banner() {}
    c() {}
    closeBanner() {}
    closeJourney() {}
    constructor() {}
    creditHistory() {}
    credits() {}
    crossPlatformIds() {}
    data() {}
    deepview() {}
    deepviewCta() {}
    disableTracking() {}
    first() {}
    getBrowserFingerprintId() {}
    getCode() {}
    init(key, ...args) {
      const cb = args.pop();
      if (typeof cb === "function") {
        cb(undefined, {});
      }
    }
    lastAttributedTouchData() {}
    link() {}
    logEvent() {}
    logout() {}
    qrCode() {}
    redeem() {}
    referrals() {}
    removeListener() {}
    renderFinalize() {}
    renderQueue() {}
    sendSMS() {}
    setAPIResponseCallback() {}
    setBranchViewData() {}
    setIdentity() {}
    track() {}
    trackCommerceEvent() {}
    validateCode() {}
  })();
  const push = ([fn, ...args]) => {
    try {
      window.branch[fn].apply(window.branch, args);
    } catch (e) {
      console.error(e);
    }
  };
  queue.forEach(push);
}