devidw / tabgod

execute any javascript on any chromium tabs - cross-tab parallel execution

Home Page:https://chromewebstore.google.com/detail/hllgifenolhiihoihflfghkfaefpjdbg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

execute any javascript on any chromium tabs

  • adds options page with tabgod() function
async function tabgod(
  tabFilterFunc: (tab: chrome.tabs.Tab, ...args: unknown[]) => boolean,
  exeFunc: (...args: unknown[]) => unknown,
  options?: {
    tabFilterArgs?: unknown[];
    exeArgs?: unknown[];
    evalAdd?: string;
  },
): Promise<{ tabId: number; result: unknown }[]> {
  //
}

examples

having chatgpt and pi talk to each other

demo.mp4

searching same query on multiple search engines

usage

  1. open extensions options page
  2. open devtools console
  3. use provided tabgod() function
    1. choose execution targets by writing a filter function that will include/excluce tabs based on defined criteria
    2. write any js to execute in world of targeted tabs
tabgod(
  (tab) => tab.url.includes("example.org"),
  () => document.body.style.background = "pink",
);

notes on first release

  • initial idea was to make tabgod function available in all devtools consoles for easy and direct access for developers right from every console
  • the implementation added tabgod to the global window object
  • however this introduced a serious security issue, since this has made the function available to websites also, allowing them to interact with other tabs, destroying the idea of secure tab origins
  • thanks to danielsmc pointing it out
  • this has been immediately addressed by moving the function only to the options page of the extension, and not accepting external connections in the service worker

About

execute any javascript on any chromium tabs - cross-tab parallel execution

https://chromewebstore.google.com/detail/hllgifenolhiihoihflfghkfaefpjdbg

License:The Unlicense


Languages

Language:TypeScript 100.0%