| 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-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 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 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 { | 490 { |
| 491 case "Escape": | 491 case "Escape": |
| 492 closeDialog(); | 492 closeDialog(); |
| 493 break; | 493 break; |
| 494 case "Tab": | 494 case "Tab": |
| 495 if (e.shiftKey) | 495 if (e.shiftKey) |
| 496 { | 496 { |
| 497 if (e.target.classList.contains("focus-first")) | 497 if (e.target.classList.contains("focus-first")) |
| 498 { | 498 { |
| 499 e.preventDefault(); | 499 e.preventDefault(); |
| 500 document.querySelector("#dialog .focus-last").focus(); | 500 this.querySelector(".focus-last").focus(); |
| 501 } | 501 } |
| 502 } | 502 } |
| 503 else if (e.target.classList.contains("focus-last")) | 503 else if (e.target.classList.contains("focus-last")) |
| 504 { | 504 { |
| 505 e.preventDefault(); | 505 e.preventDefault(); |
| 506 document.querySelector("#dialog .focus-first").focus(); | 506 this.querySelector(".focus-first").focus(); |
| 507 } | 507 } |
| 508 break; | 508 break; |
| 509 } | 509 } |
| 510 }, false); | 510 }, false); |
| 511 } | 511 } |
| 512 | 512 |
| 513 var focusedBeforeDialog = null; | 513 var focusedBeforeDialog = null; |
| 514 function openDialog(name) | 514 function openDialog(name) |
| 515 { | 515 { |
| 516 var dialog = E("dialog"); | 516 var dialog = E("dialog"); |
| 517 dialog.setAttribute("aria-hidden", false); | 517 dialog.setAttribute("aria-hidden", false); |
| 518 dialog.setAttribute("aria-labelledby", "dialog-title-" + name); | 518 dialog.setAttribute("aria-labelledby", "dialog-title-" + name); |
| 519 document.body.setAttribute("data-dialog", name); | 519 document.body.setAttribute("data-dialog", name); |
| 520 | 520 |
| 521 var defaultAction = document.querySelector("#dialog-content-" + name | 521 var defaultFocus = document.querySelector("#dialog-content-" + name |
| 522 + " .default-action"); | 522 + " .default-focus"); |
| 523 if (!defaultAction) | 523 if (!defaultFocus) |
| 524 defaultAction = document.querySelector("#dialog .focus-first"); | 524 defaultFocus = dialog.querySelector(".focus-first"); |
| 525 focusedBeforeDialog = document.activeElement; | 525 focusedBeforeDialog = document.activeElement; |
| 526 defaultAction.focus(); | 526 defaultFocus.focus(); |
| 527 } | 527 } |
| 528 | 528 |
| 529 function closeDialog() | 529 function closeDialog() |
| 530 { | 530 { |
| 531 var dialog = E("dialog"); | 531 var dialog = E("dialog"); |
| 532 dialog.setAttribute("aria-hidden", true); | 532 dialog.setAttribute("aria-hidden", true); |
| 533 dialog.removeAttribute("aria-labelledby"); | 533 dialog.removeAttribute("aria-labelledby"); |
| 534 document.body.removeAttribute("data-dialog"); | 534 document.body.removeAttribute("data-dialog"); |
| 535 focusedBeforeDialog.focus(); | 535 focusedBeforeDialog.focus(); |
| 536 } | 536 } |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 } | 706 } |
| 707 updateShareLink(); | 707 updateShareLink(); |
| 708 }); | 708 }); |
| 709 break; | 709 break; |
| 710 case "title": | 710 case "title": |
| 711 // TODO: NYI | 711 // TODO: NYI |
| 712 break; | 712 break; |
| 713 } | 713 } |
| 714 } | 714 } |
| 715 | 715 |
| 716 function onShareLinkClick(e) |
| 717 { |
| 718 e.preventDefault(); |
| 719 |
| 720 getDocLink("share-general", function(link) |
| 721 { |
| 722 openSharePopup(link); |
| 723 }); |
| 724 } |
| 725 |
| 716 function updateShareLink() | 726 function updateShareLink() |
| 717 { | 727 { |
| 718 ext.backgroundPage.sendMessage( | 728 var shareResources = [ |
| 719 { | 729 "https://facebook.com/plugins/like.php?", |
| 720 type: "filters.blocked", | 730 "https://platform.twitter.com/widgets/", |
| 721 url: "https://platform.twitter.com/widgets/", | 731 "https://apis.google.com/se/0/_/+1/fastbutton?" |
| 722 requestType: "SCRIPT", | 732 ]; |
| 723 docDomain: "adblockplus.org", | 733 var isAnyBlocked = false; |
| 724 thirdParty: true | 734 var checksRemaining = shareResources.length; |
| 725 }, | 735 |
| 726 function(blocked) | 736 function onResult(isBlocked) |
| 727 { | 737 { |
| 728 // TODO: modify "share" link accordingly | 738 isAnyBlocked |= isBlocked; |
| 729 }); | 739 if (!--checksRemaining) |
| 730 } | 740 { |
| 731 | 741 // Hide the share tab if a script on the share page would be blocked |
| 732 function E(id) | 742 var tab = E("tab-share"); |
| 733 { | 743 if (isAnyBlocked) |
| 734 return document.getElementById(id); | 744 { |
| 735 } | 745 tab.hidden = true; |
| 736 | 746 tab.removeEventListener("click", onShareLinkClick, false); |
| 737 function getDocLink(link, callback) | 747 } |
| 738 { | 748 else |
| 739 ext.backgroundPage.sendMessage( | 749 tab.addEventListener("click", onShareLinkClick, false); |
| 740 { | 750 } |
| 741 type: "app.get", | 751 } |
| 742 what: "doclink", | 752 |
| 743 link: link | 753 for (var i = 0; i < shareResources.length; i++) |
| 744 }, callback); | 754 checkShareResource(shareResources[i], onResult); |
| 745 } | 755 } |
| 746 | 756 |
| 747 ext.onMessage.addListener(function(message) | 757 ext.onMessage.addListener(function(message) |
| 748 { | 758 { |
| 749 switch (message.type) | 759 switch (message.type) |
| 750 { | 760 { |
| 751 case "app.listen": | 761 case "app.listen": |
| 752 if (message.action == "addSubscription") | 762 if (message.action == "addSubscription") |
| 753 { | 763 { |
| 754 var subscription = message.args[0]; | 764 var subscription = message.args[0]; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 782 filter: ["added", "loaded", "removed"] | 792 filter: ["added", "loaded", "removed"] |
| 783 }); | 793 }); |
| 784 ext.backgroundPage.sendMessage( | 794 ext.backgroundPage.sendMessage( |
| 785 { | 795 { |
| 786 type: "subscriptions.listen", | 796 type: "subscriptions.listen", |
| 787 filter: ["added", "disabled", "homepage", "removed", "title"] | 797 filter: ["added", "disabled", "homepage", "removed", "title"] |
| 788 }); | 798 }); |
| 789 | 799 |
| 790 window.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 800 window.addEventListener("DOMContentLoaded", onDOMLoaded, false); |
| 791 })(); | 801 })(); |
| LEFT | RIGHT |