| LEFT | RIGHT | 
| (no file at all) |  | 
|    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-2016 Eyeo GmbH |    3  * Copyright (C) 2006-2016 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 687 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  698  |  698  | 
|  699       for (var i = 0; i < keys.length; i++) |  699       for (var i = 0; i < keys.length; i++) | 
|  700       { |  700       { | 
|  701         var key = keys[i]; |  701         var key = keys[i]; | 
|  702         if (key in settings) |  702         if (key in settings) | 
|  703           items[key] = settings[key]; |  703           items[key] = settings[key]; | 
|  704       } |  704       } | 
|  705  |  705  | 
|  706       setTimeout(callback, 0, items); |  706       setTimeout(callback, 0, items); | 
|  707     }, |  707     }, | 
|  708     set: function(key, value, callback) |  708     set: function(items, callback) | 
|  709     { |  709     { | 
|  710       safari.extension.settings[key] = value; |  710       for (let key in items) | 
|  711  |  711         safari.extension.settings[key] = items[key]; | 
|  712       if (callback) |  712       if (callback) | 
|  713         setTimeout(callback, 0); |  713         setTimeout(callback); | 
|  714     }, |  714     }, | 
|  715     remove: function(key, callback) |  715     remove: function(key, callback) | 
|  716     { |  716     { | 
|  717       delete safari.extension.settings[key]; |  717       delete safari.extension.settings[key]; | 
|  718  |  718  | 
|  719       if (callback) |  719       if (callback) | 
|  720         setTimeout(callback, 0); |  720         setTimeout(callback, 0); | 
|  721     }, |  721     }, | 
|  722     onChanged: new ext._EventTarget() |  722     onChanged: new ext._EventTarget() | 
|  723   }; |  723   }; | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  762   /* Windows */ |  762   /* Windows */ | 
|  763   ext.windows = { |  763   ext.windows = { | 
|  764     // Safari doesn't provide as rich a windows API as Chrome does, so instead |  764     // Safari doesn't provide as rich a windows API as Chrome does, so instead | 
|  765     // of chrome.windows.create we have to fall back to just opening a new tab. |  765     // of chrome.windows.create we have to fall back to just opening a new tab. | 
|  766     create: function(createData, callback) |  766     create: function(createData, callback) | 
|  767     { |  767     { | 
|  768       ext.pages.open(createData.url, callback); |  768       ext.pages.open(createData.url, callback); | 
|  769     } |  769     } | 
|  770   }; |  770   }; | 
|  771 })(); |  771 })(); | 
| LEFT | RIGHT |