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 |