diff --git a/lib/renderer/content-scripts-injector.js b/lib/renderer/content-scripts-injector.js index 5091d84f69685..1a10d7a65d97b 100644 --- a/lib/renderer/content-scripts-injector.js +++ b/lib/renderer/content-scripts-injector.js @@ -3,11 +3,15 @@ const ipcRenderer = require('@electron/internal/renderer/ipc-renderer-internal') const { runInThisContext } = require('vm') +const escapePattern = function (pattern) { + return pattern.replace(/[\\^$+?.()|[\]{}]/g, '\\$&') +} + // Check whether pattern matches. // https://developer.chrome.com/extensions/match_patterns const matchesPattern = function (pattern) { if (pattern === '') return true - const regexp = new RegExp(`^${pattern.replace(/\*/g, '.*')}$`) + const regexp = new RegExp(`^${pattern.split('*').map(escapePattern).join('.*')}$`) const url = `${location.protocol}//${location.host}${location.pathname}` return url.match(regexp) }