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-2017 eyeo GmbH | 3 * Copyright (C) 2006-2017 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 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 { | 481 { |
482 items.splice(index, 1); | 482 items.splice(index, 1); |
483 updateContextMenu(); | 483 updateContextMenu(); |
484 } | 484 } |
485 } | 485 } |
486 } | 486 } |
487 }; | 487 }; |
488 | 488 |
489 chrome.tabs.onActivated.addListener(updateContextMenu); | 489 chrome.tabs.onActivated.addListener(updateContextMenu); |
490 | 490 |
491 chrome.windows.onFocusChanged.addListener(windowId => | 491 if ("windows" in chrome) |
492 { | 492 { |
493 if (windowId != chrome.windows.WINDOW_ID_NONE) | 493 chrome.windows.onFocusChanged.addListener(windowId => |
494 updateContextMenu(); | 494 { |
495 }); | 495 if (windowId != chrome.windows.WINDOW_ID_NONE) |
| 496 updateContextMenu(); |
| 497 }); |
| 498 } |
496 | 499 |
497 | 500 |
498 /* Web requests */ | 501 /* Web requests */ |
499 | 502 |
500 let framesOfTabs = new Map(); | 503 let framesOfTabs = new Map(); |
501 | 504 |
502 ext.getFrame = (tabId, frameId) => | 505 ext.getFrame = (tabId, frameId) => |
503 { | 506 { |
504 let frames = framesOfTabs.get(tabId); | 507 let frames = framesOfTabs.get(tabId); |
505 return frames && frames.get(frameId); | 508 return frames && frames.get(frameId); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 } | 699 } |
697 else | 700 else |
698 { | 701 { |
699 // Edge does not yet support runtime.openOptionsPage (tested version 38) | 702 // Edge does not yet support runtime.openOptionsPage (tested version 38) |
700 // and so this workaround needs to stay for now. | 703 // and so this workaround needs to stay for now. |
701 // We are not using extension.getURL to get the absolute path here | 704 // We are not using extension.getURL to get the absolute path here |
702 // because of the Edge issue: | 705 // because of the Edge issue: |
703 // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/1027
6332/ | 706 // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/1027
6332/ |
704 ext.showOptions = callback => | 707 ext.showOptions = callback => |
705 { | 708 { |
706 chrome.windows.getLastFocused(win => | 709 let optionsUrl = "options.html"; |
| 710 let queryInfo = {url: optionsUrl}; |
| 711 |
| 712 let open = win => |
707 { | 713 { |
708 let optionsUrl = "options.html"; | |
709 let queryInfo = {url: optionsUrl}; | |
710 | |
711 // extension pages can't be accessed in incognito windows. In order to | 714 // extension pages can't be accessed in incognito windows. In order to |
712 // correctly mimic the way in which Chrome opens extension options, | 715 // correctly mimic the way in which Chrome opens extension options, |
713 // we have to focus the options page in any other window. | 716 // we have to focus the options page in any other window. |
714 if (!win.incognito) | 717 if (win && !win.incognito) |
715 queryInfo.windowId = win.id; | 718 queryInfo.windowId = win.id; |
716 | 719 |
717 chrome.tabs.query(queryInfo, tabs => | 720 chrome.tabs.query(queryInfo, tabs => |
718 { | 721 { |
719 if (tabs.length > 0) | 722 if (tabs.length > 0) |
720 { | 723 { |
721 let tab = tabs[0]; | 724 let tab = tabs[0]; |
722 | 725 |
723 chrome.windows.update(tab.windowId, {focused: true}); | 726 if ("windows" in chrome) |
| 727 chrome.windows.update(tab.windowId, {focused: true}); |
| 728 |
724 chrome.tabs.update(tab.id, {active: true}); | 729 chrome.tabs.update(tab.id, {active: true}); |
725 | 730 |
726 if (callback) | 731 if (callback) |
727 callback(new Page(tab)); | 732 callback(new Page(tab)); |
728 } | 733 } |
729 else | 734 else |
730 { | 735 { |
731 ext.pages.open(optionsUrl, callback); | 736 ext.pages.open(optionsUrl, callback); |
732 } | 737 } |
733 }); | 738 }); |
734 }); | 739 }; |
| 740 |
| 741 if ("windows" in chrome) |
| 742 chrome.windows.getLastFocused(open); |
| 743 else |
| 744 open(); |
735 }; | 745 }; |
736 } | 746 } |
737 | 747 |
738 /* Windows */ | 748 /* Windows */ |
739 ext.windows = { | 749 ext.windows = { |
740 create(createData, callback) | 750 create(createData, callback) |
741 { | 751 { |
742 chrome.windows.create(createData, createdWindow => | 752 chrome.windows.create(createData, createdWindow => |
743 { | 753 { |
744 afterTabLoaded(callback)(createdWindow.tabs[0]); | 754 afterTabLoaded(callback)(createdWindow.tabs[0]); |
745 }); | 755 }); |
746 } | 756 } |
747 }; | 757 }; |
748 }()); | 758 }()); |
OLD | NEW |