Index: background.js |
diff --git a/background.js b/background.js |
index cb7a861be117f6a390b74ffa1370bb9de50ba33f..0d67a098747746acd0ca6c7d6da2441fdd36635c 100644 |
--- a/background.js |
+++ b/background.js |
@@ -21,9 +21,12 @@ const {RegExpFilter} = require("filterClasses"); |
const {ElemHide} = require("elemHide"); |
const {checkWhitelisted} = require("whitelisting"); |
const {extractHostFromFrame} = require("url"); |
+const {hideElements} = require("css"); |
const {port} = require("messaging"); |
const devtools = require("devtools"); |
+let tryInsertCSS = typeof browser != "undefined"; |
+ |
port.on("get-selectors", (msg, sender) => |
{ |
let selectors; |
@@ -45,7 +48,35 @@ port.on("get-selectors", (msg, sender) => |
selectors = []; |
} |
- return {selectors, trace}; |
+ if (!tryInsertCSS) |
Sebastian Noack
2017/04/12 12:21:18
Chrome and Firefox should use the same code path.
Manish Jethani
2017/04/12 12:32:30
We have to remember whether it failed so we don't
Sebastian Noack
2017/04/12 12:54:43
Chrome is also going to add support for user style
Wladimir Palant
2017/04/12 13:37:57
Are you certain? I am not aware of Firefox exposin
Manish Jethani
2017/04/12 14:27:01
My bad, it is implemented but it takes a callback
|
+ return {selectors, trace, inject: true}; |
+ |
+ return new Promise(resolve => |
+ { |
+ hideElements(sender.page.id, sender.frame.id, selectors, error => |
+ { |
+ if (error && /\bError processing cssOrigin\b/.test(error.message) != -1) |
+ tryInsertCSS = false; |
+ |
+ let response = {trace, inject: !!error}; |
+ |
+ if (trace || error) |
+ response.selectors = selectors; |
+ |
+ resolve(response); |
+ }); |
+ }); |
+}); |
+ |
+port.on("hide-elements", (msg, sender) => |
Sebastian Noack
2017/04/12 12:21:18
This is out of scope of what is defined in the iss
Wladimir Palant
2017/04/12 12:25:56
Yes, this is an aspect we missed when describing t
Sebastian Noack
2017/04/12 12:54:43
Keep, in mind that with -abp-selector/:has there w
|
+{ |
+ return new Promise(resolve => |
+ { |
+ hideElements(sender.page.id, sender.frame.id, msg.selectors, error => |
+ { |
+ resolve({success: !error}); |
+ }); |
+ }); |
}); |
port.on("forward", (msg, sender) => |