Index: lib/cssInjection.js |
=================================================================== |
--- a/lib/cssInjection.js |
+++ b/lib/cssInjection.js |
@@ -21,74 +21,57 @@ |
const {RegExpFilter} = require("filterClasses"); |
const {ElemHide} = require("elemHide"); |
const {checkWhitelisted} = require("whitelisting"); |
const {extractHostFromFrame} = require("url"); |
const {port} = require("messaging"); |
const devtools = require("devtools"); |
-let userStylesheetsSupported = true; |
+let userStyleSheetsSupported = "extensionTypes" in chrome && |
Sebastian Noack
2017/09/15 22:52:44
Use const here?
Manish Jethani
2017/09/17 13:51:37
Done.
|
+ "CSSOrigin" in chrome.extensionTypes; |
function hideElements(tabId, frameId, selectors) |
{ |
- let code = selectors.join(", ") + "{display: none !important;}"; |
- |
- try |
- { |
- chrome.tabs.insertCSS(tabId, |
- { |
- code, |
- cssOrigin: "user", |
- frameId, |
- matchAboutBlank: true, |
- runAt: "document_start" |
- } |
- ); |
- return true; |
- } |
- catch (error) |
- { |
- if (/\bError processing cssOrigin\b/.test(error.message) == -1) |
- throw error; |
- |
- userStylesheetsSupported = false; |
- return false; |
- } |
+ chrome.tabs.insertCSS(tabId, { |
+ code: selectors.join(", ") + "{display: none !important;}", |
+ cssOrigin: "user", |
+ frameId, |
+ matchAboutBlank: true, |
+ runAt: "document_start" |
+ }); |
} |
port.on("elemhide.getSelectors", (msg, sender) => |
{ |
- let selectors; |
+ let selectors = null; |
let trace = devtools && devtools.hasPanel(sender.page); |
if (!checkWhitelisted(sender.page, sender.frame, |
RegExpFilter.typeMap.DOCUMENT | |
RegExpFilter.typeMap.ELEMHIDE)) |
{ |
let specificOnly = checkWhitelisted(sender.page, sender.frame, |
RegExpFilter.typeMap.GENERICHIDE); |
selectors = ElemHide.getSelectorsForDomain( |
extractHostFromFrame(sender.frame), |
specificOnly ? ElemHide.SPECIFIC_ONLY : ElemHide.ALL_MATCHING |
); |
} |
- else |
- { |
- selectors = []; |
- } |
+ |
+ if (!selectors || selectors.length == 0) |
+ return {}; |
Sebastian Noack
2017/09/15 22:52:44
Actually, we have to pass "trace", even if there a
Manish Jethani
2017/09/17 13:51:37
Done.
See my other comments.
|
+ |
+ if (!userStyleSheetsSupported) |
Manish Jethani
2017/09/15 21:26:09
I've kept the userStyleSheetsSupported flag since
|
+ return {selectors, trace, inject: true}; |
- if (selectors.length == 0 || userStylesheetsSupported && |
- hideElements(sender.page.id, sender.frame.id, selectors)) |
- { |
- if (trace) |
- return {selectors, trace: true, inject: false}; |
+ hideElements(sender.page.id, sender.frame.id, selectors); |
- return {trace: false, inject: false}; |
- } |
+ if (trace) |
Manish Jethani
2017/09/15 21:26:09
This return statement could be merged into the nex
Sebastian Noack
2017/09/15 22:52:44
I see the point for not including selectors=null (
Manish Jethani
2017/09/17 13:51:37
Done.
|
+ return {selectors, trace: true}; |
- return {selectors, trace, inject: true}; |
+ return {}; |
}); |
port.on("elemhide.injectSelectors", (msg, sender) => |
{ |
- return hideElements(sender.page.id, sender.frame.id, msg.selectors); |
+ hideElements(sender.page.id, sender.frame.id, msg.selectors); |
}); |