| 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-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 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 /* Web requests */ | 511 /* Web requests */ |
| 512 | 512 |
| 513 let framesOfTabs = new Map(); | 513 let framesOfTabs = new Map(); |
| 514 | 514 |
| 515 ext.getFrame = (tabId, frameId) => | 515 ext.getFrame = (tabId, frameId) => |
| 516 { | 516 { |
| 517 let frames = framesOfTabs.get(tabId); | 517 let frames = framesOfTabs.get(tabId); |
| 518 return frames && frames.get(frameId); | 518 return frames && frames.get(frameId); |
| 519 }; | 519 }; |
| 520 | 520 |
| 521 let handlerBehaviorChangedQuota = | |
| 522 browser.webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES; | |
| 523 | |
| 524 function propagateHandlerBehaviorChange() | |
| 525 { | |
| 526 // Make sure to not call handlerBehaviorChanged() more often than allowed | |
| 527 // by browser.webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES. | |
| 528 // Otherwise Chrome notifies the user that this extension is causing issues. | |
| 529 if (handlerBehaviorChangedQuota > 0) | |
| 530 { | |
| 531 browser.webNavigation.onBeforeNavigate.removeListener( | |
| 532 propagateHandlerBehaviorChange | |
| 533 ); | |
| 534 browser.webRequest.handlerBehaviorChanged(); | |
| 535 | |
| 536 handlerBehaviorChangedQuota--; | |
| 537 setTimeout(() => { handlerBehaviorChangedQuota++; }, 600000); | |
| 538 } | |
| 539 } | |
| 540 | |
| 541 ext.webRequest = { | |
| 542 handlerBehaviorChanged() | |
| 543 { | |
| 544 // Defer handlerBehaviorChanged() until navigation occurs. | |
| 545 // There wouldn't be any visible effect when calling it earlier, | |
| 546 // but it's an expensive operation and that way we avoid to call | |
| 547 // it multiple times, if multiple filters are added/removed. | |
| 548 let {onBeforeNavigate} = browser.webNavigation; | |
| 549 if (!onBeforeNavigate.hasListener(propagateHandlerBehaviorChange)) | |
| 550 onBeforeNavigate.addListener(propagateHandlerBehaviorChange); | |
| 551 } | |
| 552 }; | |
| 553 | |
| 554 browser.tabs.query({}, tabs => | 521 browser.tabs.query({}, tabs => |
| 555 { | 522 { |
| 556 tabs.forEach(tab => | 523 tabs.forEach(tab => |
| 557 { | 524 { |
| 558 browser.webNavigation.getAllFrames({tabId: tab.id}, details => | 525 browser.webNavigation.getAllFrames({tabId: tab.id}, details => |
| 559 { | 526 { |
| 560 if (details && details.length > 0) | 527 if (details && details.length > 0) |
| 561 { | 528 { |
| 562 let frames = new Map(); | 529 let frames = new Map(); |
| 563 framesOfTabs.set(tab.id, frames); | 530 framesOfTabs.set(tab.id, frames); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 ext.windows = { | 605 ext.windows = { |
| 639 create(createData, callback) | 606 create(createData, callback) |
| 640 { | 607 { |
| 641 browser.windows.create(createData, createdWindow => | 608 browser.windows.create(createData, createdWindow => |
| 642 { | 609 { |
| 643 afterTabLoaded(callback)(createdWindow.tabs[0]); | 610 afterTabLoaded(callback)(createdWindow.tabs[0]); |
| 644 }); | 611 }); |
| 645 } | 612 } |
| 646 }; | 613 }; |
| 647 } | 614 } |
| OLD | NEW |