- const execution = await internals.getRoot().tabs.executeScript(
- activeTabs[0].id,
- {
- file: "/build/content_script.js",
- },
- () => {
- if (internals.getRoot().runtime.lastError) {
- internals.onDisconnect();
- }
- },
- );
-
- if (execution && !execution[0]) {
- internals.onDisconnect();
+ const id = activeTabs[0].id;
+ if (!internals.injectedScript[id]) {
+ const execution = await internals.getRoot().tabs.executeScript(
+ activeTabs[0].id,
+ {
+ file: "/build/content_script.js",
+ },
+ () => {
+ internals.injectedScript[id] = true;
+ },
+ );
+
+ if (execution && !execution[0]) {
+ internals.onDisconnect();
+ }
+ } else {
+ internals.getRoot().tabs.connect(activeTabs[0].id);