| Index: lib/child/cssProperties.js |
| =================================================================== |
| --- a/lib/child/cssProperties.js |
| +++ b/lib/child/cssProperties.js |
| @@ -17,17 +17,18 @@ |
| "use strict"; |
| (function() |
| { |
| let {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
| let {port} = require("messaging"); |
| - let {getFrames} = require("child/utils"); |
| + let {getFrames, isPrivate} = require("child/utils"); |
| + let {RequestNotifier} = require("child/requestNotifier"); |
| function getFilters(window, callback) |
| { |
| let message = { |
| frames: getFrames(window), |
| payload: { |
| type: "filters.get", |
| what: "cssproperties" |
| @@ -55,24 +56,52 @@ |
| { |
| if (!(subject instanceof Ci.nsIDOMWindow)) |
| return; |
| let onReady = event => |
| { |
| subject.removeEventListener("load", onReady); |
| let handler = new scope.CSSPropertyFilters( |
| - subject, getFilters.bind(null, subject), selectors => |
| + subject, getFilters.bind(null, subject), (selectors, filters) => |
| { |
| if (selectors.length == 0) |
| return; |
| addUserCSS(subject, selectors.map( |
| selector => selector + "{display: none !important;}" |
| ).join("\n")); |
| + |
| + if (!isPrivate(subject)) |
| + port.emit("addHits", filters); |
| + |
| + let docDomain = null; |
| + try |
| + { |
| + // We are calling getFrames() here because it will consider |
| + // "inheritance" for about:blank and data: frames. |
| + docDomain = new URL(getFrames(subject)[0].location).hostname; |
| + } |
| + catch (e) |
| + { |
| + // Invalid URL? |
|
saroyanm
2016/06/10 08:55:11
Detail: I'm not sure if this comment provides any
Wladimir Palant
2016/06/10 14:59:54
Well, eslint objects to empty catch clauses. In fa
|
| + } |
| + |
| + for (let filter of filters) |
| + { |
| + RequestNotifier.addNodeData(subject.document, subject.top, { |
| + contentType: "ELEMHIDE", |
| + docDomain: docDomain, |
| + thirdParty: false, |
| + // TODO: Show the actual matching selector here? |
|
saroyanm
2016/06/10 08:55:11
Detail: Feels like you forgot "TODO" Smth, or mayb
Wladimir Palant
2016/06/10 14:59:54
No, I meant to have this TODO comment here. Addres
saroyanm
2016/06/10 17:00:24
Acknowledged.
|
| + location: filter.replace(/^.*?##/, ""), |
|
saroyanm
2016/06/10 08:55:12
Why do we remove the URL part from the filter to a
Wladimir Palant
2016/06/10 14:59:54
hit.location is normally the address that the filt
saroyanm
2016/06/10 17:00:24
Acknowledged.
|
| + filter: filter, |
| + filterType: "cssproperty" |
| + }); |
| + } |
| } |
| ); |
| handler.load(() => handler.apply()); |
| }; |
| subject.addEventListener("load", onReady); |
| }; |