diff options
Diffstat (limited to 'e2e/ambassador')
| -rw-r--r-- | e2e/ambassador/src/background/index.js | 9 | ||||
| -rw-r--r-- | e2e/ambassador/src/client/scrolls.js | 20 | ||||
| -rw-r--r-- | e2e/ambassador/src/content/index.js | 19 | ||||
| -rw-r--r-- | e2e/ambassador/src/content/scrolls.js | 18 | ||||
| -rw-r--r-- | e2e/ambassador/src/shared/messages.js | 4 | 
5 files changed, 52 insertions, 18 deletions
| diff --git a/e2e/ambassador/src/background/index.js b/e2e/ambassador/src/background/index.js index f9fda7e..c3e9dc1 100644 --- a/e2e/ambassador/src/background/index.js +++ b/e2e/ambassador/src/background/index.js @@ -2,6 +2,7 @@ import {    WINDOWS_CREATE, WINDOWS_REMOVE, WINDOWS_GET,    TABS_CREATE,    EVENT_KEYPRESS, EVENT_KEYDOWN, EVENT_KEYUP, +  SCROLL_GET, SCROLL_SET,  } from '../shared/messages';  import * as tabs from './tabs';  import { receiveContentMessage } from './ipc'; @@ -19,15 +20,11 @@ receiveContentMessage((message) => {        url: message.url,        windowId: message.windowId,      }); -  } -}); - - -receiveContentMessage((message) => { -  switch (message.type) {    case EVENT_KEYPRESS:    case EVENT_KEYDOWN:    case EVENT_KEYUP: +  case SCROLL_GET: +  case SCROLL_SET:      return browser.tabs.sendMessage(        message.tabId,        message diff --git a/e2e/ambassador/src/client/scrolls.js b/e2e/ambassador/src/client/scrolls.js new file mode 100644 index 0000000..f8f82e9 --- /dev/null +++ b/e2e/ambassador/src/client/scrolls.js @@ -0,0 +1,20 @@ +import { SCROLL_GET, SCROLL_SET } from '../shared/messages'; +import * as ipc from './ipc'; + +const get = (tabId) => { +  return ipc.send({ +    type: SCROLL_GET, +    tabId, +  }); +}; + +const set = (tabId, x, y) => { +  return ipc.send({ +    type: SCROLL_SET, +    tabId, +    x, +    y, +  }); +}; + +export { get, set }; diff --git a/e2e/ambassador/src/content/index.js b/e2e/ambassador/src/content/index.js index 8573d66..93943b8 100644 --- a/e2e/ambassador/src/content/index.js +++ b/e2e/ambassador/src/content/index.js @@ -1,21 +1,12 @@  import { -  WINDOWS_CREATE, WINDOWS_REMOVE, WINDOWS_GET, -  TABS_CREATE,    EVENT_KEYPRESS, EVENT_KEYDOWN, EVENT_KEYUP, +  SCROLL_GET, SCROLL_SET,  } from '../shared/messages';  import * as ipc from './ipc'; +import * as scrolls from './scrolls';  ipc.receivePageMessage((message) => { -  switch (message.type) { -  case WINDOWS_CREATE: -  case WINDOWS_REMOVE: -  case WINDOWS_GET: -  case TABS_CREATE: -  case EVENT_KEYPRESS: -  case EVENT_KEYDOWN: -  case EVENT_KEYUP: -    return ipc.sendToBackground(message); -  } +  return ipc.sendToBackground(message);  });  ipc.receiveBackgroundMesssage((message) => { @@ -32,6 +23,10 @@ ipc.receiveBackgroundMesssage((message) => {      document.body.dispatchEvent(        new KeyboardEvent('keyup', { 'key': message.key }));      break; +  case SCROLL_GET: +    return Promise.resolve(scrolls.get()); +  case SCROLL_SET: +    return Promise.resolve(scrolls.set(message.x, message.y));    }    return Promise.resolve({});  }); diff --git a/e2e/ambassador/src/content/scrolls.js b/e2e/ambassador/src/content/scrolls.js new file mode 100644 index 0000000..79be01d --- /dev/null +++ b/e2e/ambassador/src/content/scrolls.js @@ -0,0 +1,18 @@ +const get = () => { +  let element = document.documentElement; +  return { +    xMax: element.scrollWidth - element.clientWidth, +    yMax: element.scrollHeight - element.clientHeight, +    x: element.scrollLeft, +    y: element.scrollTop, +  }; +}; + +const set = (x, y) => { +  let element = document.documentElement; +  element.scrollLeft = x; +  element.scrollTop = y; +  return get(); +}; + +export { get, set }; diff --git a/e2e/ambassador/src/shared/messages.js b/e2e/ambassador/src/shared/messages.js index 32b7aa2..dd389db 100644 --- a/e2e/ambassador/src/shared/messages.js +++ b/e2e/ambassador/src/shared/messages.js @@ -7,6 +7,8 @@ const TABS_CREATE = 'tabs.create';  const EVENT_KEYPRESS = 'event.keypress';  const EVENT_KEYDOWN = 'event.keydown';  const EVENT_KEYUP = 'event.keyup'; +const SCROLL_GET = 'scroll.get'; +const SCROLL_SET = 'scroll.set';  export {    METHOD_REQUEST, @@ -21,4 +23,6 @@ export {    EVENT_KEYPRESS,    EVENT_KEYDOWN,    EVENT_KEYUP, +  SCROLL_GET, +  SCROLL_SET,  }; | 
