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