| 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 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 // only when reloading the page or following links, but not when | 686 // only when reloading the page or following links, but not when |
| 687 // the current page is replaced with a prerendered page. | 687 // the current page is replaced with a prerendered page. |
| 688 replacePage(pages[event.message.pageId]); | 688 replacePage(pages[event.message.pageId]); |
| 689 break; | 689 break; |
| 690 } | 690 } |
| 691 }); | 691 }); |
| 692 | 692 |
| 693 | 693 |
| 694 /* Storage */ | 694 /* Storage */ |
| 695 | 695 |
| 696 ext.storage = safari.extension.settings; | 696 ext.storage = { |
| 697 get: function(keys, callback) |
| 698 { |
| 699 var items = {}; |
| 700 var settings = safari.extension.settings; |
| 701 |
| 702 for (var i = 0; i < keys.length; i++) |
| 703 { |
| 704 var key = keys[i]; |
| 705 if (key in settings) |
| 706 items[key] = settings[key]; |
| 707 } |
| 708 |
| 709 setTimeout(callback, 0, items); |
| 710 }, |
| 711 set: function(key, value, callback) |
| 712 { |
| 713 safari.extension.settings[key] = value; |
| 714 |
| 715 if (callback) |
| 716 setTimeout(callback, 0); |
| 717 }, |
| 718 remove: function(key, callback) |
| 719 { |
| 720 delete safari.extension.settings[key]; |
| 721 |
| 722 if (callback) |
| 723 setTimeout(callback, 0); |
| 724 }, |
| 725 onChanged: new ext._EventTarget(), |
| 726 |
| 727 // Preferences were previously encoded as JSON for compatibility |
| 728 // with localStorage, which has been used on Chrome. |
| 729 migratePrefs: function(hooks) |
| 730 { |
| 731 var settings = safari.extension.settings; |
| 732 |
| 733 for (var key in settings) |
| 734 { |
| 735 var item = hooks.map(key, settings[key]); |
| 736 |
| 737 if (item) |
| 738 { |
| 739 delete settings[key]; |
| 740 settings[item.key] = item.value; |
| 741 } |
| 742 } |
| 743 |
| 744 hooks.done(); |
| 745 } |
| 746 }; |
| 747 |
| 748 safari.extension.settings.addEventListener("change", function(event) |
| 749 { |
| 750 var changes = {}; |
| 751 var change = changes[event.key] = {}; |
| 752 |
| 753 if (event.oldValue != null) |
| 754 change.oldValue = event.oldValue; |
| 755 if (event.newValue != null) |
| 756 change.newValue = event.newValue; |
| 757 |
| 758 ext.storage.onChanged._dispatch(changes); |
| 759 }); |
| 697 | 760 |
| 698 | 761 |
| 699 /* Options */ | 762 /* Options */ |
| 700 | 763 |
| 701 ext.showOptions = function(callback) | 764 ext.showOptions = function(callback) |
| 702 { | 765 { |
| 703 var optionsUrl = safari.extension.baseURI + "options.html"; | 766 var optionsUrl = safari.extension.baseURI + "options.html"; |
| 704 | 767 |
| 705 for (var id in pages) | 768 for (var id in pages) |
| 706 { | 769 { |
| 707 var page = pages[id]; | 770 var page = pages[id]; |
| 708 var tab = page._tab; | 771 var tab = page._tab; |
| 709 | 772 |
| 710 if (page.url.href == optionsUrl && tab.browserWindow == safari.application
.activeBrowserWindow) | 773 if (page.url.href == optionsUrl && tab.browserWindow == safari.application
.activeBrowserWindow) |
| 711 { | 774 { |
| 712 tab.activate(); | 775 tab.activate(); |
| 713 if (callback) | 776 if (callback) |
| 714 callback(page); | 777 callback(page); |
| 715 return; | 778 return; |
| 716 } | 779 } |
| 717 } | 780 } |
| 718 | 781 |
| 719 ext.pages.open(optionsUrl, callback); | 782 ext.pages.open(optionsUrl, callback); |
| 720 }; | 783 }; |
| 721 })(); | 784 })(); |
| OLD | NEW |