| Index: libadblockplus-android-webview/src/org/adblockplus/libadblockplus/android/webview/AdblockWebView.java |
| diff --git a/libadblockplus-android-webview/src/org/adblockplus/libadblockplus/android/webview/AdblockWebView.java b/libadblockplus-android-webview/src/org/adblockplus/libadblockplus/android/webview/AdblockWebView.java |
| index 70b6c0cd46162ce3d38ebb92f5f5ae9c044f82ef..b3fc893057fc13e48376b0a7a78101156ff4e586 100644 |
| --- a/libadblockplus-android-webview/src/org/adblockplus/libadblockplus/android/webview/AdblockWebView.java |
| +++ b/libadblockplus-android-webview/src/org/adblockplus/libadblockplus/android/webview/AdblockWebView.java |
| @@ -49,7 +49,7 @@ import org.adblockplus.libadblockplus.FilterEngine; |
| import org.adblockplus.libadblockplus.Subscription; |
| import org.adblockplus.libadblockplus.android.AdblockEngine; |
| import org.adblockplus.libadblockplus.android.AdblockEngineProvider; |
| -import org.adblockplus.libadblockplus.android.SingletonEngineProvider; |
| +import org.adblockplus.libadblockplus.android.SingleInstanceEngineProvider; |
| import org.adblockplus.libadblockplus.android.Utils; |
| import java.io.IOException; |
| @@ -97,7 +97,7 @@ public class AdblockWebView extends WebView |
| private volatile boolean addDomListener = true; |
| private boolean adblockEnabled = true; |
| private boolean debugMode; |
| - private AdblockEngineProvider adblockEngineProvider; |
| + private AdblockEngineProvider provider; |
| private Integer loadError; |
| private int allowDrawDelay = ALLOW_DRAW_DELAY; |
| private WebChromeClient extWebChromeClient; |
| @@ -234,9 +234,9 @@ public class AdblockWebView extends WebView |
| d("runScript finished"); |
| } |
| - public void setAdblockEngineProvider(final AdblockEngineProvider adblockEngineProvider) |
| + public void setProvider(final AdblockEngineProvider provider) |
| { |
| - if (this.adblockEngineProvider != null && adblockEngineProvider != null && this.adblockEngineProvider == adblockEngineProvider) |
| + if (this.provider != null && provider != null && this.provider == provider) |
| { |
| return; |
| } |
| @@ -246,12 +246,12 @@ public class AdblockWebView extends WebView |
| @Override |
| public void run() |
| { |
| - AdblockWebView.this.adblockEngineProvider = adblockEngineProvider; |
| - AdblockWebView.this.adblockEngineProvider.retain(true); // asynchronously |
| + AdblockWebView.this.provider = provider; |
| + AdblockWebView.this.provider.retain(true); // asynchronously |
| } |
| }; |
| - if (this.adblockEngineProvider != null) |
| + if (this.provider != null) |
| { |
| // as adblockEngine can be busy with elemhide thread we need to use callback |
| this.dispose(setRunnable); |
| @@ -817,7 +817,7 @@ public class AdblockWebView extends WebView |
| boolean isXmlHttpRequest, String[] referrerChainArray) |
| { |
| // if dispose() was invoke, but the page is still loading then just let it go |
| - if (adblockEngineProvider.getAdblockEngine() == null) |
| + if (provider.getCounter() == 0) |
| { |
| e("FilterEngine already disposed, allow loading"); |
| @@ -835,7 +835,7 @@ public class AdblockWebView extends WebView |
| } |
| // whitelisted |
| - if (adblockEngineProvider.getAdblockEngine().isDomainWhitelisted(url, referrerChainArray)) |
| + if (provider.getEngine().isDomainWhitelisted(url, referrerChainArray)) |
| { |
| w(url + " domain is whitelisted, allow loading"); |
| @@ -843,7 +843,7 @@ public class AdblockWebView extends WebView |
| return null; |
| } |
| - if (adblockEngineProvider.getAdblockEngine().isDocumentWhitelisted(url, referrerChainArray)) |
| + if (provider.getEngine().isDocumentWhitelisted(url, referrerChainArray)) |
| { |
| w(url + " document is whitelisted, allow loading"); |
| @@ -886,7 +886,7 @@ public class AdblockWebView extends WebView |
| } |
| // check if we should block |
| - if (adblockEngineProvider.getAdblockEngine().matches(url, contentType, referrerChainArray)) |
| + if (provider.getEngine().matches(url, contentType, referrerChainArray)) |
| { |
| w("Blocked loading " + url); |
| @@ -965,7 +965,7 @@ public class AdblockWebView extends WebView |
| { |
| try |
| { |
| - if (adblockEngineProvider.getAdblockEngine() == null) |
| + if (provider.getCounter() == 0) |
| { |
| w("FilterEngine already disposed"); |
| selectorsString = EMPTY_ELEMHIDE_ARRAY_STRING; |
| @@ -977,8 +977,8 @@ public class AdblockWebView extends WebView |
| url |
| }; |
| - List<Subscription> subscriptions = adblockEngineProvider |
| - .getAdblockEngine() |
| + List<Subscription> subscriptions = provider |
| + .getEngine() |
| .getFilterEngine() |
| .getListedSubscriptions(); |
| @@ -1004,8 +1004,8 @@ public class AdblockWebView extends WebView |
| } |
| d("Requesting elemhide selectors from AdblockEngine for " + url + " in " + this); |
| - List<String> selectors = adblockEngineProvider |
| - .getAdblockEngine() |
| + List<String> selectors = provider |
| + .getEngine() |
| .getElementHidingSelectors(url, domain, referrers); |
| d("Finished requesting elemhide selectors, got " + selectors.size() + " in " + this); |
| @@ -1081,16 +1081,16 @@ public class AdblockWebView extends WebView |
| { |
| getSettings().setJavaScriptEnabled(true); |
| buildInjectJs(); |
| - initEngineProvider(); |
| + initProvider(); |
| } |
| - private void initEngineProvider() |
| + private void initProvider() |
| { |
| - // if AdblockWebView works as drop-in replacement for WebView 'adblockEngineProvider' is not set. |
| - // Thus AdblockWebView is using SingletonEngineProvider instance |
| - if (adblockEngineProvider == null) |
| + // if AdblockWebView works as drop-in replacement for WebView 'provider' is not set. |
| + // Thus AdblockWebView is using SingleInstanceEngineProvider instance |
| + if (provider == null) |
| { |
| - setAdblockEngineProvider(new SingletonEngineProvider( |
| + setProvider(new SingleInstanceEngineProvider( |
| getContext(), AdblockEngine.BASE_PATH_DIRECTORY, debugMode)); |
| } |
| } |
| @@ -1109,8 +1109,10 @@ public class AdblockWebView extends WebView |
| { |
| try |
| { |
| - adblockEngineProvider.waitForReady(); |
| - domain = adblockEngineProvider.getAdblockEngine().getFilterEngine().getHostFromURL(url); |
| + d("Waiting for adblock engine"); |
| + provider.waitForReady(); |
| + |
| + domain = provider.getEngine().getFilterEngine().getHostFromURL(url); |
| if (domain == null) |
| { |
| throw new RuntimeException("Failed to extract domain from " + url); |
| @@ -1372,7 +1374,8 @@ public class AdblockWebView extends WebView |
| private void doDispose() |
| { |
| - adblockEngineProvider.release(); |
| + w("Disposing AdblockEngine"); |
| + provider.release(); |
| } |
| private class DisposeRunnable implements Runnable |
| @@ -1406,7 +1409,7 @@ public class AdblockWebView extends WebView |
| { |
| d("Dispose invoked"); |
| - if (adblockEngineProvider == null) |
| + if (provider == null) |
| { |
| d("No internal AdblockEngineProvider created"); |
| return; |