Use meaningful name for extensionId

This commit is contained in:
Cheng Zhao 2016-05-29 11:57:20 +09:00
parent ec1944c146
commit de001a9bbf
2 changed files with 6 additions and 4 deletions

View file

@ -14,13 +14,16 @@ const objectValues = function (object) {
const manifestMap = {} // extensionId => manifest const manifestMap = {} // extensionId => manifest
const manifestNameMap = {} // name => manifest const manifestNameMap = {} // name => manifest
let nextExtensionId = 0 const generateExtensionIdFromName = function (name) {
return name.replace(/[\W_]+/g, '-').toLowerCase()
}
// Create or get manifest object from |srcDirectory|. // Create or get manifest object from |srcDirectory|.
const getManifestFromPath = function (srcDirectory) { const getManifestFromPath = function (srcDirectory) {
const manifest = JSON.parse(fs.readFileSync(path.join(srcDirectory, 'manifest.json'))) const manifest = JSON.parse(fs.readFileSync(path.join(srcDirectory, 'manifest.json')))
if (!manifestNameMap[manifest.name]) { if (!manifestNameMap[manifest.name]) {
const extensionId = `extension-${++nextExtensionId}` const extensionId = generateExtensionIdFromName(manifest.name)
console.log(extensionId)
manifestMap[extensionId] = manifestNameMap[manifest.name] = manifest manifestMap[extensionId] = manifestNameMap[manifest.name] = manifest
Object.assign(manifest, { Object.assign(manifest, {
srcDirectory: srcDirectory, srcDirectory: srcDirectory,
@ -238,7 +241,6 @@ app.once('ready', function () {
const chromeExtensionHandler = function (request, callback) { const chromeExtensionHandler = function (request, callback) {
const parsed = url.parse(request.url) const parsed = url.parse(request.url)
if (!parsed.hostname || !parsed.path) return callback() if (!parsed.hostname || !parsed.path) return callback()
if (!/extension-\d+/.test(parsed.hostname)) return callback()
const manifest = manifestMap[parsed.hostname] const manifest = manifestMap[parsed.hostname]
if (!manifest) return callback() if (!manifest) return callback()

View file

@ -165,7 +165,7 @@ exports.injectTo = function (extensionId, isBackgroundPage, context) {
if (responseCallback) { if (responseCallback) {
console.error('responseCallback is not supported') console.error('responseCallback is not supported')
} }
ipcRenderer.send(`CHROME_TABS_SEND_MESSAGE`, tabId, extensionId, isBackgroundPage, message) ipcRenderer.send('CHROME_TABS_SEND_MESSAGE', tabId, extensionId, isBackgroundPage, message)
}, },
onUpdated: new Event(), onUpdated: new Event(),