| 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 var canUseChromeNotifications = require("info").platform == "chromium" | 62 var canUseChromeNotifications = require("info").platform == "chromium" |
| 63 && "notifications" in chrome | 63 && "notifications" in chrome |
| 64 && (navigator.platform.indexOf("Linux") == -1 || parseInt(require("info").appl
icationVersion, 10) > 34); | 64 && (navigator.platform.indexOf("Linux") == -1 || parseInt(require("info").appl
icationVersion, 10) > 34); |
| 65 | 65 |
| 66 var seenDataCorruption = false; | 66 var seenDataCorruption = false; |
| 67 var filterlistsReinitialized = false; | 67 var filterlistsReinitialized = false; |
| 68 require("filterNotifier").FilterNotifier.addListener(function(action) | 68 require("filterNotifier").FilterNotifier.addListener(function(action) |
| 69 { | 69 { |
| 70 if (action == "load") | 70 if (action == "load") |
| 71 { | 71 { |
| 72 var addonVersion = require("info").addonVersion; | 72 ext.storage.get(["currentVersion"], function(items) |
| 73 var prevVersion = ext.storage.currentVersion; | 73 { |
| 74 var addonVersion = require("info").addonVersion; |
| 75 var prevVersion = items.currentVersion; |
| 74 | 76 |
| 75 // There are no filters stored so we need to reinitialize all filterlists | 77 // There are no filters stored so we need to reinitialize all filterlists |
| 76 if (!FilterStorage.firstRun && FilterStorage.subscriptions.length === 0) | 78 if (!FilterStorage.firstRun && FilterStorage.subscriptions.length === 0) |
| 77 { | 79 { |
| 78 filterlistsReinitialized = true; | 80 filterlistsReinitialized = true; |
| 79 prevVersion = null; | 81 prevVersion = null; |
| 80 } | 82 } |
| 81 | 83 |
| 82 if (prevVersion != addonVersion || FilterStorage.firstRun) | 84 if (prevVersion != addonVersion || FilterStorage.firstRun) |
| 83 { | 85 { |
| 84 seenDataCorruption = prevVersion && FilterStorage.firstRun; | 86 seenDataCorruption = prevVersion && FilterStorage.firstRun; |
| 85 ext.storage.currentVersion = addonVersion; | 87 ext.storage.set("currentVersion", addonVersion); |
| 86 addSubscription(prevVersion); | 88 addSubscription(prevVersion); |
| 87 } | 89 } |
| 90 |
| 91 // The "Hide placeholders" option has been removed from the UI in 1.8.8.12
85 |
| 92 // So we reset the option for users updating from older versions. |
| 93 if (prevVersion && Services.vc.compare(prevVersion, "1.8.8.1285") < 0) |
| 94 Prefs.hidePlaceholders = true; |
| 95 }); |
| 88 | 96 |
| 89 if (canUseChromeNotifications) | 97 if (canUseChromeNotifications) |
| 90 initChromeNotifications(); | 98 initChromeNotifications(); |
| 91 initAntiAdblockNotification(); | 99 initAntiAdblockNotification(); |
| 92 | |
| 93 // The "Hide placeholders" option has been removed from the UI in 1.8.8.1285 | |
| 94 // So we reset the option for users updating from older versions. | |
| 95 if (prevVersion && Services.vc.compare(prevVersion, "1.8.8.1285") < 0) | |
| 96 Prefs.hidePlaceholders = true; | |
| 97 } | 100 } |
| 98 | 101 |
| 99 // update browser actions when whitelisting might have changed, | 102 // update browser actions when whitelisting might have changed, |
| 100 // due to loading filters or saving filter changes | 103 // due to loading filters or saving filter changes |
| 101 if (action == "load" || action == "save") | 104 if (action == "load" || action == "save") |
| 102 refreshIconAndContextMenuForAllPages(); | 105 refreshIconAndContextMenuForAllPages(); |
| 103 }); | 106 }); |
| 104 | 107 |
| 105 // Special-case domains for which we cannot use style-based hiding rules. | 108 // Special-case domains for which we cannot use style-based hiding rules. |
| 106 // See http://crbug.com/68705. | 109 // See http://crbug.com/68705. |
| 107 var noStyleRulesHosts = ["mail.google.com", "mail.yahoo.com", "www.google.com"]; | 110 var noStyleRulesHosts = ["mail.google.com", "mail.yahoo.com", "www.google.com"]; |
| 108 | 111 |
| 109 var htmlPages = new ext.PageMap(); | 112 var htmlPages = new ext.PageMap(); |
| 110 | |
| 111 function removeDeprecatedOptions() | |
| 112 { | |
| 113 var deprecatedOptions = ["specialCaseYouTube", "experimental", "disableInlineT
extAds"]; | |
| 114 deprecatedOptions.forEach(function(option) | |
| 115 { | |
| 116 if (option in ext.storage) | |
| 117 delete ext.storage[option]; | |
| 118 }); | |
| 119 } | |
| 120 | |
| 121 // Remove deprecated options before we do anything else. | |
| 122 removeDeprecatedOptions(); | |
| 123 | |
| 124 var activeNotification = null; | 113 var activeNotification = null; |
| 125 | 114 |
| 126 var contextMenuItem = { | 115 var contextMenuItem = { |
| 127 title: ext.i18n.getMessage("block_element"), | 116 title: ext.i18n.getMessage("block_element"), |
| 128 contexts: ["image", "video", "audio"], | 117 contexts: ["image", "video", "audio"], |
| 129 onclick: function(page) | 118 onclick: function(page) |
| 130 { | 119 { |
| 131 page.sendMessage({type: "clickhide-new-filter"}); | 120 page.sendMessage({type: "clickhide-new-filter"}); |
| 132 } | 121 } |
| 133 }; | 122 }; |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 page.sendMessage({type: "clickhide-deactivate"}); | 576 page.sendMessage({type: "clickhide-deactivate"}); |
| 588 refreshIconAndContextMenu(page); | 577 refreshIconAndContextMenu(page); |
| 589 }); | 578 }); |
| 590 | 579 |
| 591 setTimeout(function() | 580 setTimeout(function() |
| 592 { | 581 { |
| 593 var notificationToShow = NotificationStorage.getNextToShow(); | 582 var notificationToShow = NotificationStorage.getNextToShow(); |
| 594 if (notificationToShow) | 583 if (notificationToShow) |
| 595 showNotification(notificationToShow); | 584 showNotification(notificationToShow); |
| 596 }, 3 * 60 * 1000); | 585 }, 3 * 60 * 1000); |
| OLD | NEW |