Skip to content

Commit 5f52c50

Browse files
committed
Exclude URLs that already overlap with defaults (on first launch too) (#52)
1 parent cc1877d commit 5f52c50

File tree

4 files changed

+41
-25
lines changed

4 files changed

+41
-25
lines changed

package-lock.json

Lines changed: 30 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"dependencies": {
6565
"content-scripts-register-polyfill": "^3.2.2",
6666
"webext-additional-permissions": "^2.3.0",
67-
"webext-content-scripts": "^1.0.3",
67+
"webext-content-scripts": "^2.4.0",
6868
"webext-patterns": "^1.2.0"
6969
},
7070
"devDependencies": {

source/inject-to-existing-tabs.ts

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
1-
import {injectContentScript} from 'webext-content-scripts';
1+
import {getTabsByUrl, injectContentScript} from 'webext-content-scripts';
22

3-
export function injectToExistingTabs(
3+
export async function injectToExistingTabs(
44
origins: string[],
5-
scripts: ManifestContentScripts) {
6-
if (origins.length === 0) {
7-
return;
8-
}
9-
10-
chrome.tabs.query({
11-
url: origins,
12-
}, tabs => {
13-
for (const tab of tabs) {
14-
if (tab.id) {
15-
void injectContentScript(tab.id, scripts);
16-
}
17-
}
18-
});
5+
scripts: ManifestContentScripts,
6+
) {
7+
const excludeMatches = scripts.flatMap(script => script.matches ?? []);
8+
return injectContentScript(
9+
await getTabsByUrl(origins, excludeMatches),
10+
scripts,
11+
);
1912
}

source/lib.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ async function registerOnOrigins({
4040

4141
// May not be needed in the future in Firefox
4242
// https://bugzilla.mozilla.org/show_bug.cgi?id=1458947
43-
injectToExistingTabs(newOrigins || [], manifest);
43+
void injectToExistingTabs(newOrigins || [], manifest);
4444
}
4545

4646
function handleNewPermissions(permissions: chrome.permissions.Permissions) {

0 commit comments

Comments
 (0)