Chrome Extension Manifest 'Matches' Chrome Extension Manifest 'Matches' json json

Chrome Extension Manifest 'Matches'


You need to surround the value of the content_scripts field in square brackets:

"content_scripts": [ {  "matches": ["http://*"],  "js": ["scripts.js"]} ]

(see the Chrome Docs for more info)

Incidentally, using http://*/* would be a better match for all urls (see the docs), adding https://*/* if you also need to match those as well.

Edit:

Following your edit, the error you are getting is because of the match pattern being incorrect.


If you want to match every URL, then Google has a special pattern just for this purpose: <all_urls>

Sample usage:

"matches": ["<all_urls>"],

See this page for more info:https://developer.chrome.com/extensions/match_patterns


Any match pattern should be of the following structure [scheme]://[host][path]

  1. scheme is '*' | 'http' | 'https' | 'file' | 'ftp'
  2. host is '' | '.' (any char except '/' and '*')+
  3. path is '/' (any chars)

For matching any HTTP/S and FILE URL use:

 "matches": [    "*://*/*",    "file://*/*"  ],

Ref: https://developer.chrome.com/apps/match_patterns

By the way, in order to allow access to local files - add the permission:

"permissions": [   "file://*/*"]

Or approve file access on the extension settings page.