| 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-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 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 for (let window of this.applicationWindows) | 412 for (let window of this.applicationWindows) |
| 413 this.updateStatusbarIcon(window); | 413 this.updateStatusbarIcon(window); |
| 414 } | 414 } |
| 415 }.bind(this)); | 415 }.bind(this)); |
| 416 FilterNotifier.addListener(function(action) | 416 FilterNotifier.addListener(function(action) |
| 417 { | 417 { |
| 418 if (/^(filter|subscription)\.(added|removed|disabled|updated)$/.test(actio
n) || action == "load") | 418 if (/^(filter|subscription)\.(added|removed|disabled|updated)$/.test(actio
n) || action == "load") |
| 419 this.updateState(); | 419 this.updateState(); |
| 420 }.bind(this)); | 420 }.bind(this)); |
| 421 | 421 |
| 422 notificationTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); | 422 Notification.addShowListener(notification => |
| 423 notificationTimer.initWithCallback(this.showNextNotification.bind(this), | 423 { |
| 424 3 * 60 * 1000, Ci.nsITimer.TYPE_ONE_SHOT)
; | 424 let window = this.currentWindow; |
| 425 onShutdown.add(() => notificationTimer.cancel()); | 425 if (!window) |
| 426 return; |
| 427 |
| 428 let button = window.document.getElementById("abp-toolbarbutton") |
| 429 || window.document.getElementById("abp-status"); |
| 430 if (!button) |
| 431 return; |
| 432 |
| 433 this._showNotification(window, button, notification); |
| 434 }); |
| 426 | 435 |
| 427 // Add "anti-adblock messages" notification | 436 // Add "anti-adblock messages" notification |
| 428 initAntiAdblockNotification(); | 437 initAntiAdblockNotification(); |
| 429 | 438 |
| 430 let documentCreationObserver = { | 439 let documentCreationObserver = { |
| 431 observe: function(subject, topic, data) | 440 observe: function(subject, topic, data) |
| 432 { | 441 { |
| 433 if (!(subject instanceof Ci.nsIDOMWindow)) | 442 if (!(subject instanceof Ci.nsIDOMWindow)) |
| 434 return; | 443 return; |
| 435 | 444 |
| 436 this.showNextNotification(subject.location.href); | 445 Notification.showNext(subject.location.href); |
| 437 }.bind(UI) | 446 }.bind(UI) |
| 438 }; | 447 }; |
| 439 Services.obs.addObserver(documentCreationObserver, "content-document-global-
created", false); | 448 Services.obs.addObserver(documentCreationObserver, "content-document-global-
created", false); |
| 440 onShutdown.add(function() | 449 onShutdown.add(function() |
| 441 { | 450 { |
| 442 Services.obs.removeObserver(documentCreationObserver, "content-document-gl
obal-created", false); | 451 Services.obs.removeObserver(documentCreationObserver, "content-document-gl
obal-created", false); |
| 443 }); | 452 }); |
| 444 | 453 |
| 445 // Execute first-run actions if a window is open already, otherwise it | 454 // Execute first-run actions if a window is open already, otherwise it |
| 446 // will happen in applyToWindow() when a window is opened. | 455 // will happen in applyToWindow() when a window is opened. |
| (...skipping 1395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1842 Prefs.hideContributeButton = true; | 1851 Prefs.hideContributeButton = true; |
| 1843 | 1852 |
| 1844 for (let id of ["abp-status-contributebutton", "abp-toolbar-contributebutton
", "abp-menuitem-contributebutton"]) | 1853 for (let id of ["abp-status-contributebutton", "abp-toolbar-contributebutton
", "abp-menuitem-contributebutton"]) |
| 1845 { | 1854 { |
| 1846 let button = window.document.getElementById(id); | 1855 let button = window.document.getElementById(id); |
| 1847 if (button) | 1856 if (button) |
| 1848 button.hidden = true; | 1857 button.hidden = true; |
| 1849 } | 1858 } |
| 1850 }, | 1859 }, |
| 1851 | 1860 |
| 1852 showNextNotification: function(url) | |
| 1853 { | |
| 1854 let window = this.currentWindow; | |
| 1855 if (!window) | |
| 1856 return; | |
| 1857 | |
| 1858 let button = window.document.getElementById("abp-toolbarbutton") | |
| 1859 || window.document.getElementById("abp-status"); | |
| 1860 if (!button) | |
| 1861 return; | |
| 1862 | |
| 1863 let notification = Notification.getNextToShow(url); | |
| 1864 if (!notification) | |
| 1865 return; | |
| 1866 | |
| 1867 this._showNotification(window, button, notification); | |
| 1868 }, | |
| 1869 | |
| 1870 _showNotification: function(window, button, notification) | 1861 _showNotification: function(window, button, notification) |
| 1871 { | 1862 { |
| 1872 let panel = window.document.getElementById("abp-notification"); | 1863 let panel = window.document.getElementById("abp-notification"); |
| 1873 if (panel.state !== "closed") | 1864 if (panel.state !== "closed") |
| 1874 return; | 1865 return; |
| 1875 | 1866 |
| 1876 function insertMessage(element, text, links) | 1867 function insertMessage(element, text, links) |
| 1877 { | 1868 { |
| 1878 let match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(text); | 1869 let match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(text); |
| 1879 if (!match) | 1870 if (!match) |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1925 { | 1916 { |
| 1926 event.preventDefault(); | 1917 event.preventDefault(); |
| 1927 event.stopPropagation(); | 1918 event.stopPropagation(); |
| 1928 panel.hidePopup(); | 1919 panel.hidePopup(); |
| 1929 Notification.triggerQuestionListeners(notification.id, approved) | 1920 Notification.triggerQuestionListeners(notification.id, approved) |
| 1930 Notification.markAsShown(notification.id); | 1921 Notification.markAsShown(notification.id); |
| 1931 } | 1922 } |
| 1932 window.document.getElementById("abp-notification-yes").onclick = buttonHan
dler.bind(null, true); | 1923 window.document.getElementById("abp-notification-yes").onclick = buttonHan
dler.bind(null, true); |
| 1933 window.document.getElementById("abp-notification-no").onclick = buttonHand
ler.bind(null, false); | 1924 window.document.getElementById("abp-notification-no").onclick = buttonHand
ler.bind(null, false); |
| 1934 } | 1925 } |
| 1926 else |
| 1927 Notification.markAsShown(notification.id); |
| 1935 | 1928 |
| 1936 panel.setAttribute("class", "abp-" + notification.type); | 1929 panel.setAttribute("class", "abp-" + notification.type); |
| 1937 panel.setAttribute("noautohide", notification.type === "question"); | 1930 panel.setAttribute("noautohide", notification.type === "question"); |
| 1938 panel.openPopup(button, "bottomcenter topcenter", 0, 0, false, false, null); | 1931 panel.openPopup(button, "bottomcenter topcenter", 0, 0, false, false, null); |
| 1939 } | 1932 } |
| 1940 }; | 1933 }; |
| 1941 UI.onPopupShowing = UI.onPopupShowing.bind(UI); | 1934 UI.onPopupShowing = UI.onPopupShowing.bind(UI); |
| 1942 UI.onKeyPress = UI.onKeyPress.bind(UI); | 1935 UI.onKeyPress = UI.onKeyPress.bind(UI); |
| 1943 UI.onIconClick = UI.onIconClick.bind(UI); | 1936 UI.onIconClick = UI.onIconClick.bind(UI); |
| 1944 UI.init(); | 1937 UI.init(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1963 ["abp-command-contribute", "command", UI.openContributePage.bind(UI)], | 1956 ["abp-command-contribute", "command", UI.openContributePage.bind(UI)], |
| 1964 ["abp-command-contribute-hide", "command", UI.hideContributeButton.bind(UI)] | 1957 ["abp-command-contribute-hide", "command", UI.hideContributeButton.bind(UI)] |
| 1965 ]; | 1958 ]; |
| 1966 | 1959 |
| 1967 onShutdown.add(function() | 1960 onShutdown.add(function() |
| 1968 { | 1961 { |
| 1969 for (let window of UI.applicationWindows) | 1962 for (let window of UI.applicationWindows) |
| 1970 if (UI.isBottombarOpen(window)) | 1963 if (UI.isBottombarOpen(window)) |
| 1971 UI.toggleBottombar(window); | 1964 UI.toggleBottombar(window); |
| 1972 }); | 1965 }); |
| OLD | NEW |