Left: | ||
Right: |
LEFT | RIGHT |
---|---|
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-present eyeo GmbH | 3 * Copyright (C) 2006-present 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 |
(...skipping 12 matching lines...) Expand all Loading... | |
23 const {SpecialSubscription} = require("subscriptionClasses"); | 23 const {SpecialSubscription} = require("subscriptionClasses"); |
24 const {FilterStorage} = require("filterStorage"); | 24 const {FilterStorage} = require("filterStorage"); |
25 const {defaultMatcher} = require("matcher"); | 25 const {defaultMatcher} = require("matcher"); |
26 const {FilterNotifier} = require("filterNotifier"); | 26 const {FilterNotifier} = require("filterNotifier"); |
27 const {extractHostFromFrame} = require("url"); | 27 const {extractHostFromFrame} = require("url"); |
28 const {port} = require("messaging"); | 28 const {port} = require("messaging"); |
29 | 29 |
30 const nonRequestTypes = ["DOCUMENT", "ELEMHIDE", | 30 const nonRequestTypes = ["DOCUMENT", "ELEMHIDE", |
31 "GENERICBLOCK", "GENERICHIDE", "CSP"]; | 31 "GENERICBLOCK", "GENERICHIDE", "CSP"]; |
32 | 32 |
33 // Mapping of inspected tabs to their devpanel page | |
34 // and recorded items. We can't use a PageMap here, | |
kzar
2018/04/03 17:14:03
Maybe remove/change this comment since it wouldn't
Sebastian Noack
2018/04/04 01:50:33
Well spotted. Done.
| |
35 // because data must persist after navigation/reload. | |
36 let panels = new Map(); | 33 let panels = new Map(); |
37 | 34 |
38 function isActivePanel(panel) | 35 function isActivePanel(panel) |
39 { | 36 { |
40 return panel && !panel.reload && !panel.reloading; | 37 return panel && !panel.reload && !panel.reloading; |
41 } | 38 } |
42 | 39 |
43 function getActivePanel(tabId) | 40 function getActivePanel(tabId) |
44 { | 41 { |
45 let panel = panels.get(tabId); | 42 let panel = panels.get(tabId); |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
347 localOnBeforeRequest, | 344 localOnBeforeRequest, |
348 { | 345 { |
349 urls: ["http://*/*", "https://*/*"], | 346 urls: ["http://*/*", "https://*/*"], |
350 types: ["main_frame"], | 347 types: ["main_frame"], |
351 tabId: inspectedTabId | 348 tabId: inspectedTabId |
352 } | 349 } |
353 ); | 350 ); |
354 | 351 |
355 if (panels.size == 0) | 352 if (panels.size == 0) |
356 { | 353 { |
357 ext.pages.onLoading.addListener(onLoading); | 354 ext.pages.onLoading.addListener(onLoading); |
kzar
2018/04/03 17:14:03
What about these? Well I don't mind if we remove t
Sebastian Noack
2018/04/04 01:50:33
There is quite some magic around the ext.pages.onL
| |
358 FilterNotifier.on("filter.added", onFilterAdded); | 355 FilterNotifier.on("filter.added", onFilterAdded); |
359 FilterNotifier.on("filter.removed", onFilterRemoved); | 356 FilterNotifier.on("filter.removed", onFilterRemoved); |
360 FilterNotifier.on("subscription.added", onSubscriptionAdded); | 357 FilterNotifier.on("subscription.added", onSubscriptionAdded); |
361 } | 358 } |
362 | 359 |
363 newPort.onDisconnect.addListener(() => | 360 newPort.onDisconnect.addListener(() => |
364 { | 361 { |
365 panels.delete(inspectedTabId); | 362 panels.delete(inspectedTabId); |
366 browser.webRequest.onBeforeRequest.removeListener(localOnBeforeRequest); | 363 browser.webRequest.onBeforeRequest.removeListener(localOnBeforeRequest); |
367 | 364 |
368 if (panels.size == 0) | 365 if (panels.size == 0) |
369 { | 366 { |
370 ext.pages.onLoading.removeListener(onLoading); | 367 ext.pages.onLoading.removeListener(onLoading); |
371 FilterNotifier.off("filter.added", onFilterAdded); | 368 FilterNotifier.off("filter.added", onFilterAdded); |
372 FilterNotifier.off("filter.removed", onFilterRemoved); | 369 FilterNotifier.off("filter.removed", onFilterRemoved); |
373 FilterNotifier.off("subscription.added", onSubscriptionAdded); | 370 FilterNotifier.off("subscription.added", onSubscriptionAdded); |
374 } | 371 } |
375 }); | 372 }); |
376 | 373 |
377 panels.set(inspectedTabId, {port: newPort, records: []}); | 374 panels.set(inspectedTabId, {port: newPort, records: []}); |
378 }); | 375 }); |
379 | 376 |
380 port.on("devtools.traceElemHide", (message, sender) => | 377 port.on("devtools.traceElemHide", (message, sender) => |
381 { | 378 { |
382 logHiddenElements( | 379 logHiddenElements( |
383 sender.page.id, message.selectors, message.filters, | 380 sender.page.id, message.selectors, message.filters, |
384 extractHostFromFrame(sender.frame) | 381 extractHostFromFrame(sender.frame) |
385 ); | 382 ); |
386 }); | 383 }); |
LEFT | RIGHT |