How to load a content script on all Google (international) pages?
S

1

11

For a Google-Chrome extension, I would like to load a content script on all Google pages. What is the best way to do this?

I tried this, in the manifest.json, but it does not work:

"matches": ["http://www.google.*/*", "https://www.google.*/*"],


This "works" but it is a bit long to write and I do not think it is the best practice:

"matches": ["http://www.google.com/*", "https://www.google.com/*", "http://www.google.fr/*", "https://www.google.fr/*", "http://www.google.de/*", "https://www.google.de/*", etc..."],
Soundboard answered 24/4, 2013 at 8:21 Comment(0)
G
23

See Match patterns and globs. Unfortunately, Google-Chrome doesn't have a nice mechanism for top-level-domains (TLD's) in its matches specification. So, http://www.google.*/* throws an error and http://www.google.tld/* (Greasemonkey syntax) is not supported.

To work around this, widen the matches parameter and filter the results with the include_globs parameter.
Like so:

"matches":        ["http://*/*", "https://*/*"],
"include_globs":  ["http://www.google.*/*", "https://www.google.*/*"],
Grosvenor answered 24/4, 2013 at 8:53 Comment(5)
Technically, this answer is bad from a security perspective. That's why Google disallowed the obvious route in the first place.Jesselton
Also, to improve it, "*://..." means either http or httpsJesselton
@Xan, the security risk is from the question. The answer just showed the OP how to do what he wanted. But, yes, there is a risk that you could get tricked on to a malicious top-level domain, and the extension would try to run. ... Purposely didn't use "*://..." so that it wouldn't try to run on file, ftp, or the once-possible chrome-extension and about schemes.Grosvenor
That's what I'm saying. "*://..." is, specifically, a shorthand for http and https and not all protocols. See docs. "If the scheme is *, then it matches either http or https, and not file, or ftp."Jesselton
@Xan. You're right. Guess I missed a chance for an extra simplification. Consider the existing code "Self documenting" ;) rather than slightly more efficient and noticeably harder to understand at a glance.Grosvenor

© 2022 - 2024 — McMap. All rights reserved.