fix: Make content script matches optional (#1220)

This commit is contained in:
Aaron
2024-11-28 00:00:18 -06:00
committed by GitHub
parent 586fe3950c
commit aae5f0789d
4 changed files with 13 additions and 10 deletions
+8 -5
View File
@@ -12,15 +12,18 @@ When using `browser.scripting.executeScript`, you can execute content scripts or
// entrypoints/background.ts
const res = await browser.scripting.executeScript({
target: { tabId },
files: ['injected.js'],
files: ['content-scripts/example.js'],
});
console.log(res); // "Hello John!"
```
```ts
// entrypoints/injected.js
export default defineUnlistedScript(() => {
console.log('Script was injected!');
return 'Hello John!';
// entrypoints/example.content.ts
export default defineContentScript({
registration: 'runtime',
main(ctx) {
console.log('Script was executed!');
return 'Hello John!';
},
});
```
@@ -51,7 +51,7 @@ export function mapWxtOptionsToContentScript(
css: string[] | undefined,
): Manifest.ContentScript {
return {
matches: options.matches,
matches: options.matches ?? [],
all_frames: options.allFrames,
match_about_blank: options.matchAboutBlank,
exclude_globs: options.excludeGlobs,
+3 -3
View File
@@ -363,7 +363,7 @@ function addEntrypoints(
// at runtime
if (wxt.config.command === 'serve' && wxt.config.manifestVersion === 3) {
contentScripts.forEach((script) => {
script.options.matches.forEach((matchPattern) => {
script.options.matches?.forEach((matchPattern) => {
addHostPermission(manifest, matchPattern);
});
});
@@ -406,7 +406,7 @@ function addEntrypoints(
);
}
runtimeContentScripts.forEach((script) => {
script.options.matches.forEach((matchPattern) => {
script.options.matches?.forEach((matchPattern) => {
addHostPermission(manifest, matchPattern);
});
});
@@ -547,7 +547,7 @@ export function getContentScriptCssWebAccessibleResources(
resources.push({
resources: [cssFile],
matches: script.options.matches.map((matchPattern) =>
matches: script.options.matches?.map((matchPattern) =>
stripPathFromMatchPattern(matchPattern),
),
});
+1 -1
View File
@@ -588,7 +588,7 @@ export interface BackgroundEntrypointOptions extends BaseEntrypointOptions {
export interface BaseContentScriptEntrypointOptions
extends BaseEntrypointOptions {
matches: PerBrowserOption<Manifest.ContentScript['matches']>;
matches?: PerBrowserOption<Manifest.ContentScript['matches']>;
/**
* See https://developer.chrome.com/docs/extensions/mv3/content_scripts/
* @default "documentIdle"