index.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import browser from 'webextension-polyfill';
  2. import { toCamelCase } from '@/utils/helper';
  3. import elementSelector from './element-selector';
  4. import blocksHandler from './blocks-handler';
  5. (() => {
  6. if (window.isAutomaInjected) return;
  7. console.log(window.isAutomaInjected);
  8. window.isAutomaInjected = true;
  9. browser.runtime.onMessage.addListener((data) => {
  10. if (data.isBlock) {
  11. const handler = blocksHandler[toCamelCase(data.name)];
  12. console.log(data);
  13. if (handler) {
  14. return handler(data);
  15. }
  16. console.error(`"${data.name}" doesn't have a handler`);
  17. return Promise.resolve('');
  18. }
  19. return new Promise((resolve) => {
  20. if (data.type === 'content-script-exists') {
  21. resolve(true);
  22. } else if (data.type === 'select-element') {
  23. elementSelector();
  24. resolve(true);
  25. } else if (data.type === 'give-me-the-frame-id') {
  26. browser.runtime.sendMessage({
  27. type: 'this-is-the-frame-id',
  28. });
  29. resolve();
  30. }
  31. });
  32. });
  33. })();