| 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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 { | 696 { |
| 697 delete safari.extension.settings[key]; | 697 delete safari.extension.settings[key]; |
| 698 | 698 |
| 699 if (callback) | 699 if (callback) |
| 700 setTimeout(callback, 0); | 700 setTimeout(callback, 0); |
| 701 }, | 701 }, |
| 702 onChanged: new ext._EventTarget(), | 702 onChanged: new ext._EventTarget(), |
| 703 | 703 |
| 704 // Preferences were previously encoded as JSON for compatibility | 704 // Preferences were previously encoded as JSON for compatibility |
| 705 // with localStorage, which has been used on Chrome. | 705 // with localStorage, which has been used on Chrome. |
| 706 migratePrefs: function(mapFunc) | 706 migratePrefs: function(hooks) |
| 707 { | 707 { |
| 708 var settings = safari.extension.settings; | 708 var settings = safari.extension.settings; |
| 709 | 709 |
| 710 for (var key in settings) | 710 for (var key in settings) |
| 711 { | 711 { |
| 712 var item = mapFunc(key, settings[key]); | 712 var item = hooks.map(key, settings[key]); |
| 713 | 713 |
| 714 // Only touch settings if the key changed. Otherwise we would keep | 714 // Only touch settings if the key changed. Otherwise we would keep |
| 715 // migrating "currentVersion" over and over again on every initilization
. | 715 // migrating "currentVersion" over and over again on every initilization
. |
| 716 if (item && item.key != key) | 716 if (item && item.key != key) |
| 717 { | 717 { |
| 718 delete settings[key]; | 718 delete settings[key]; |
| 719 settings[item.key] = item.value; | 719 settings[item.key] = item.value; |
| 720 } | 720 } |
| 721 } | 721 } |
| 722 |
| 723 hooks.done(); |
| 722 }, | 724 }, |
| 723 | 725 |
| 724 // While moving away from the FileSystem API on Chrome the data structure | 726 // While moving away from the FileSystem API on Chrome the data structure |
| 725 // for files on Safari changed as well, in order to keep thing consistent. | 727 // for files on Safari changed as well, in order to keep thing consistent. |
| 726 migrateFiles: function(callback) | 728 migrateFiles: function(callback) |
| 727 { | 729 { |
| 728 var settings = safari.extension.settings; | 730 var settings = safari.extension.settings; |
| 729 | 731 |
| 730 for (var key in settings) | 732 for (var key in settings) |
| 731 { | 733 { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 tab.activate(); | 785 tab.activate(); |
| 784 if (callback) | 786 if (callback) |
| 785 callback(page); | 787 callback(page); |
| 786 return; | 788 return; |
| 787 } | 789 } |
| 788 } | 790 } |
| 789 | 791 |
| 790 ext.pages.open(optionsUrl, callback); | 792 ext.pages.open(optionsUrl, callback); |
| 791 }; | 793 }; |
| 792 })(); | 794 })(); |
| OLD | NEW |