aboutsummaryrefslogtreecommitdiff
path: root/e2e/ambassador/src/background/index.js
blob: 046b8c145d274888c1469878203f9f1153107e2f (plain) (blame)
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
import {
  WINDOWS_CREATE, WINDOWS_REMOVE, WINDOWS_GET,
  TABS_CREATE, TABS_SELECT_AT, TABS_GET, TABS_UPDATE,
  TABS_GET_ZOOM, TABS_SET_ZOOM,
  EVENT_KEYPRESS, EVENT_KEYDOWN, EVENT_KEYUP,
  SCROLL_GET, SCROLL_SET,
} from '../shared/messages';
import * as tabs from './tabs';
import { receiveContentMessage } from './ipc';

receiveContentMessage((message) => {
  switch (message.type) {
  case WINDOWS_CREATE:
    return browser.windows.create({ url: message.url });
  case WINDOWS_REMOVE:
    return browser.windows.remove(message.windowId);
  case WINDOWS_GET:
    return browser.windows.get(message.windowId, { populate: true });
  case TABS_CREATE:
    return tabs.create({
      url: message.url,
      windowId: message.windowId,
    });
  case TABS_SELECT_AT:
    return tabs.selectAt({
      windowId: message.windowId,
      index: message.index,
    });
  case TABS_GET:
    return browser.tabs.get(message.tabId);
  case TABS_UPDATE:
    return browser.tabs.update(message.tabId, message.properties);
  case TABS_GET_ZOOM:
    return browser.tabs.getZoom(message.tabId);
  case TABS_SET_ZOOM:
    return browser.tabs.setZoom(message.tabId, message.factor);
  case EVENT_KEYPRESS:
  case EVENT_KEYDOWN:
  case EVENT_KEYUP:
  case SCROLL_GET:
  case SCROLL_SET:
    return browser.tabs.sendMessage(
      message.tabId,
      message
    );
  }
});