| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <https://adblockplus.org/>, |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-2016 Eyeo GmbH |    3  * Copyright (C) 2006-2016 Eyeo GmbH | 
|    4  * |    4  * | 
|    5  * Adblock Plus is free software: you can redistribute it and/or modify |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
|    6  * it under the terms of the GNU General Public License version 3 as |    6  * it under the terms of the GNU General Public License version 3 as | 
|    7  * published by the Free Software Foundation. |    7  * published by the Free Software Foundation. | 
|    8  * |    8  * | 
|    9  * Adblock Plus is distributed in the hope that it will be useful, |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|   12  * GNU General Public License for more details. |   12  * GNU General Public License for more details. | 
|   13  * |   13  * | 
|   14  * You should have received a copy of the GNU General Public License |   14  * You should have received a copy of the GNU General Public License | 
|   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|   16  */ |   16  */ | 
|   17  |   17  | 
|   18 "use strict"; |   18 "use strict"; | 
|   19  |   19  | 
|   20 let {RegExpFilter, WhitelistFilter, ElemHideFilter} = require("filterClasses"); |   20 let {RegExpFilter, WhitelistFilter, ElemHideFilter} = require("filterClasses"); | 
|   21 let {SpecialSubscription} = require("subscriptionClasses"); |   21 let {SpecialSubscription} = require("subscriptionClasses"); | 
|   22 let {FilterStorage} = require("filterStorage"); |   22 let {FilterStorage} = require("filterStorage"); | 
|   23 let {defaultMatcher} = require("matcher"); |   23 let {defaultMatcher} = require("matcher"); | 
|   24 let {FilterNotifier} = require("filterNotifier"); |   24 let {FilterNotifier} = require("filterNotifier"); | 
 |   25 let {extractHostFromFrame} = require("url"); | 
 |   26 let {port} = require("messaging"); | 
|   25  |   27  | 
|   26 const nonRequestTypes = ["DOCUMENT", "ELEMHIDE", "GENERICBLOCK", "GENERICHIDE"]; |   28 const nonRequestTypes = ["DOCUMENT", "ELEMHIDE", "GENERICBLOCK", "GENERICHIDE"]; | 
|   27  |   29  | 
|   28 // Mapping of inspected tabs to their devpanel page |   30 // Mapping of inspected tabs to their devpanel page | 
|   29 // and recorded items. We can't use a PageMap here, |   31 // and recorded items. We can't use a PageMap here, | 
|   30 // because data must persist after navigation/reload. |   32 // because data must persist after navigation/reload. | 
|   31 let panels = Object.create(null); |   33 let panels = Object.create(null); | 
|   32  |   34  | 
|   33 function hasPanels() |   35 function hasPanels() | 
|   34 { |   36 { | 
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  148   } |  150   } | 
|  149 }; |  151 }; | 
|  150  |  152  | 
|  151 /** |  153 /** | 
|  152  * Logs active element hiding filters to the devtools panel. |  154  * Logs active element hiding filters to the devtools panel. | 
|  153  * |  155  * | 
|  154  * @param {Page}     page       The page the elements were hidden on |  156  * @param {Page}     page       The page the elements were hidden on | 
|  155  * @param {string[]} selectors  The CSS selectors of active elemhide filters |  157  * @param {string[]} selectors  The CSS selectors of active elemhide filters | 
|  156  * @param {string}   docDomain  The IDN-decoded hostname of the document |  158  * @param {string}   docDomain  The IDN-decoded hostname of the document | 
|  157  */ |  159  */ | 
|  158 exports.logHiddenElements = function(page, selectors, docDomain) |  160 function logHiddenElements(page, selectors, docDomain) | 
|  159 { |  161 { | 
|  160   let panel = getActivePanel(page); |  162   let panel = getActivePanel(page); | 
|  161   { |  163   { | 
|  162     for (let subscription of FilterStorage.subscriptions) |  164     for (let subscription of FilterStorage.subscriptions) | 
|  163     { |  165     { | 
|  164       if (subscription.disabled) |  166       if (subscription.disabled) | 
|  165         continue; |  167         continue; | 
|  166  |  168  | 
|  167       for (let filter of subscription.filters) |  169       for (let filter of subscription.filters) | 
|  168       { |  170       { | 
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  373  |  375  | 
|  374     if (!hasPanels()) |  376     if (!hasPanels()) | 
|  375     { |  377     { | 
|  376       FilterNotifier.removeListener(onFilterChange); |  378       FilterNotifier.removeListener(onFilterChange); | 
|  377       ext.pages.onLoading.removeListener(onLoading); |  379       ext.pages.onLoading.removeListener(onLoading); | 
|  378     } |  380     } | 
|  379   }); |  381   }); | 
|  380  |  382  | 
|  381   panels[inspectedTabId] = {port: port, records: []}; |  383   panels[inspectedTabId] = {port: port, records: []}; | 
|  382 }); |  384 }); | 
 |  385  | 
 |  386 port.on("devtools.traceElemHide", (message, sender) => | 
 |  387 { | 
 |  388   logHiddenElements( | 
 |  389     message.page, message.selectors, | 
 |  390     extractHostFromFrame(sender.frame) | 
 |  391   ); | 
 |  392 }); | 
| OLD | NEW |