From d86724f17afab087cedcce1786493d1e526c8ec4 Mon Sep 17 00:00:00 2001 From: Boik Date: Sun, 17 Sep 2017 13:56:22 +0800 Subject: [PATCH] code improvement --- lib/renderer/content-scripts-injector.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/renderer/content-scripts-injector.js b/lib/renderer/content-scripts-injector.js index d23311d5ec2..5925b941d5e 100644 --- a/lib/renderer/content-scripts-injector.js +++ b/lib/renderer/content-scripts-injector.js @@ -14,7 +14,7 @@ const matchesPattern = function (pattern) { const runContentScript = function (extensionId, url, code) { const context = {} require('./chrome-api').injectTo(extensionId, false, context) - const wrapper = `(function (chrome) {\n ${code}\n })` + const wrapper = `((chrome) => {\n ${code}\n })` const compiledWrapper = runInThisContext(wrapper, { filename: url, lineOffset: 1, @@ -24,10 +24,9 @@ const runContentScript = function (extensionId, url, code) { } const runStylesheet = function (url, code) { - const wrapper = `(function (code) { + const wrapper = `((code) => { function init() { - var styleElement = document.createElement('style'); - styleElement.setAttribute('type', 'text/css'); + const styleElement = document.createElement('style'); styleElement.textContent = code; document.head.append(styleElement); } @@ -46,27 +45,27 @@ const runStylesheet = function (url, code) { const injectContentScript = function (extensionId, script) { if (!script.matches.some(matchesPattern)) return - if (script.js.length) { + if (script.js) { for (const {url, code} of script.js) { const fire = runContentScript.bind(window, extensionId, url, code) if (script.runAt === 'document_start') { process.once('document-start', fire) } else if (script.runAt === 'document_end') { process.once('document-end', fire) - } else if (script.runAt === 'document_idle') { + } else { document.addEventListener('DOMContentLoaded', fire) } } } - if (script.css.length) { + if (script.css) { for (const {url, code} of script.css) { const fire = runStylesheet.bind(window, url, code) if (script.runAt === 'document_start') { process.once('document-start', fire) } else if (script.runAt === 'document_end') { process.once('document-end', fire) - } else if (script.runAt === 'document_idle') { + } else { document.addEventListener('DOMContentLoaded', fire) } }