File: chrome_api_stubs.js

package info (click to toggle)
vimium 2.1.2-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,212 kB
  • sloc: javascript: 12,766; makefile: 7
file content (79 lines) | stat: -rw-r--r-- 1,626 bytes parent folder | download
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
//
// Mock the Chrome extension API for our tests. In Deno and Pupeteer, the Chrome extension APIs are
// not available.
//

const shouldInstallStubs = window.location.pathname.includes("dom_tests.html") ||
  // This query string is added to pages that we load in iframes from dom_tests.html, like hud.html
  window.location.search.includes("dom_tests=true");

if (shouldInstallStubs) {
  window.chromeMessages = [];

  document.hasFocus = () => true;

  window.forTrusted = (handler) => handler;

  const fakeManifest = {
    version: "1.51",
  };

  window.chrome = {
    runtime: {
      id: 123456,

      connect() {
        return {
          onMessage: {
            addListener() {},
          },
          onDisconnect: {
            addListener() {},
          },
          postMessage() {},
        };
      },
      onMessage: {
        addListener() {},
      },
      sendMessage(message) {
        return chromeMessages.unshift(message);
      },
      getManifest() {
        return fakeManifest;
      },
      getURL(url) {
        return `../../${url}`;
      },
    },
    storage: {
      local: {
        async get() {
          return await {};
        },
        async set() {},
      },
      sync: {
        async get() {
          return await {};
        },
        async set() {},
      },
      session: {
        async get() {
          return await {};
        },
        async set() {},
      },
      onChanged: {
        addListener() {},
      },
    },
    extension: {
      inIncognitoContext: false,
      getURL(url) {
        return chrome.runtime.getURL(url);
      },
    },
  };
}