Details of the script or CSS to inject. Either the code or the file property must be set, but both may not be set at the same time. Based on InjectDetails, but using underscore rather than camel case naming conventions.

interface ContentScript {
    all_frames?: boolean;
    css?: string[];
    exclude_globs?: string[];
    exclude_matches?: string[];
    include_globs?: string[];
    js?: string[];
    match_about_blank?: boolean;
    matches: string[];
    run_at?: RunAt;
}
Index
all_frames?: boolean

If allFrames is true, implies that the JavaScript or CSS should be injected into all frames of current page. By default, it's false and is only injected into the top frame.

css?: string[]

The list of CSS files to inject

exclude_globs?: string[]
exclude_matches?: string[]
include_globs?: string[]
js?: string[]

The list of JS files to inject

match_about_blank?: boolean

If matchAboutBlank is true, then the code is also injected in about:blank and about:srcdoc frames if your extension has access to its parent document. Code cannot be inserted in top-level about:-frames. By default it is false.

matches: string[]
run_at?: RunAt

The soonest that the JavaScript or CSS will be injected into the tab. Defaults to "document_idle".