| Index: lib/adblockplus_compat.js |
| =================================================================== |
| --- a/lib/adblockplus_compat.js |
| +++ b/lib/adblockplus_compat.js |
| @@ -147,8 +147,8 @@ |
| readFromFile: function(file, decode, listener, callback, timeLineID) |
| { |
| - // Fake asynchronous execution |
| - setTimeout(function() |
| + var Utils = require("utils").Utils; |
| + Utils.runAsync(function() |
| { |
| if ("spec" in file && /^defaults\b/.test(file.spec)) |
| { |
| @@ -173,7 +173,7 @@ |
| listener.process(lines[i]); |
| listener.process(null); |
| callback(null); |
| - }.bind(this), 0); |
| + }.bind(this)); |
| }, |
| writeToFile: function(file, encode, data, callback, timeLineID) |
| @@ -308,10 +308,16 @@ |
| runAsync: function(callback, thisPtr) |
| { |
| var params = Array.prototype.slice.call(arguments, 2); |
| - window.setTimeout(function() |
| + |
| + function invokeCallback() |
| { |
| callback.apply(thisPtr, params); |
| - }, 0); |
| + } |
| + |
| + if (document.readyState === "complete") |
| + window.setTimeout(invokeCallback); |
|
Wladimir Palant
2012/11/21 15:47:58
setTimeout(..., 0)?
Felix Dahlke
2012/11/21 15:56:56
You're right. This only worked because the readySt
|
| + else |
| + window.addEventListener("load", invokeCallback); |
| }, |
| get appLocale() |
| { |