| 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-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 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 610 chrome.runtime.onMessage.addListener((message, rawSender, sendResponse) => | 610 chrome.runtime.onMessage.addListener((message, rawSender, sendResponse) => |
| 611 { | 611 { |
| 612 let sender = {}; | 612 let sender = {}; |
| 613 | 613 |
| 614 // Add "page" and "frame" if the message was sent by a content script. | 614 // Add "page" and "frame" if the message was sent by a content script. |
| 615 // If sent by popup or the background page itself, there is no "tab". | 615 // If sent by popup or the background page itself, there is no "tab". |
| 616 if ("tab" in rawSender) | 616 if ("tab" in rawSender) |
| 617 { | 617 { |
| 618 sender.page = new Page(rawSender.tab); | 618 sender.page = new Page(rawSender.tab); |
| 619 sender.frame = { | 619 sender.frame = { |
| 620 id: rawSender.frameId, | |
| 620 // In Edge requests from internal extension pages | 621 // In Edge requests from internal extension pages |
| 621 // (protocol ms-browser-extension://) do no have a sender URL. | 622 // (protocol ms-browser-extension://) do no have a sender URL. |
| 622 url: rawSender.url ? new URL(rawSender.url) : null, | 623 url: rawSender.url ? new URL(rawSender.url) : null, |
| 623 get parent() | 624 get parent() |
| 624 { | 625 { |
| 625 let frames = framesOfTabs.get(rawSender.tab.id); | 626 let frames = framesOfTabs.get(rawSender.tab.id); |
| 626 | 627 |
| 627 if (!frames) | 628 if (!frames) |
| 628 return null; | 629 return null; |
| 629 | 630 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 690 } | 691 } |
| 691 }); | 692 }); |
| 692 }); | 693 }); |
| 693 } | 694 } |
| 694 }; | 695 }; |
| 695 } | 696 } |
| 696 else | 697 else |
| 697 { | 698 { |
| 698 // Edge does not yet support runtime.openOptionsPage (tested version 38) | 699 // Edge does not yet support runtime.openOptionsPage (tested version 38) |
| 699 // and so this workaround needs to stay for now. | 700 // and so this workaround needs to stay for now. |
| 701 // We are not using extension.getURL to get the absolute path here | |
| 702 // because of the Edge issue: | |
| 703 // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/1027 6332/ | |
| 700 ext.showOptions = callback => | 704 ext.showOptions = callback => |
| 701 { | 705 { |
| 702 chrome.windows.getLastFocused(win => | 706 chrome.windows.getLastFocused(win => |
| 703 { | 707 { |
| 704 // NOTE: we expect this else branch to run only on Edge. | |
|
kzar
2017/06/22 11:23:37
Isn't this comment kind of the same as the one on
Oleksandr
2017/06/22 13:34:59
Done.
| |
| 705 // We are not using extension.getURL here because of the Edge issue: | |
| 706 // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/ 10276332/ | |
| 707 let optionsUrl = "options.html"; | 708 let optionsUrl = "options.html"; |
| 708 let queryInfo = {url: optionsUrl}; | 709 let queryInfo = {url: optionsUrl}; |
| 709 | 710 |
| 710 // extension pages can't be accessed in incognito windows. In order to | 711 // extension pages can't be accessed in incognito windows. In order to |
| 711 // correctly mimic the way in which Chrome opens extension options, | 712 // correctly mimic the way in which Chrome opens extension options, |
| 712 // we have to focus the options page in any other window. | 713 // we have to focus the options page in any other window. |
| 713 if (!win.incognito) | 714 if (!win.incognito) |
| 714 queryInfo.windowId = win.id; | 715 queryInfo.windowId = win.id; |
| 715 | 716 |
| 716 chrome.tabs.query(queryInfo, tabs => | 717 chrome.tabs.query(queryInfo, tabs => |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 738 ext.windows = { | 739 ext.windows = { |
| 739 create(createData, callback) | 740 create(createData, callback) |
| 740 { | 741 { |
| 741 chrome.windows.create(createData, createdWindow => | 742 chrome.windows.create(createData, createdWindow => |
| 742 { | 743 { |
| 743 afterTabLoaded(callback)(createdWindow.tabs[0]); | 744 afterTabLoaded(callback)(createdWindow.tabs[0]); |
| 744 }); | 745 }); |
| 745 } | 746 } |
| 746 }; | 747 }; |
| 747 }()); | 748 }()); |
| LEFT | RIGHT |