From 2a2c8b4fbacc4707104f3f2740b1f80e1fbf8d42 Mon Sep 17 00:00:00 2001 From: Simon Pireyn Date: Wed, 8 Jul 2015 17:34:21 +0200 Subject: [PATCH 1/4] CB-9334 loop on CordovaPlugins before returning remapped Uri --- .../src/org/apache/cordova/PluginManager.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/framework/src/org/apache/cordova/PluginManager.java b/framework/src/org/apache/cordova/PluginManager.java index 2fb6b2b89..f6466a177 100755 --- a/framework/src/org/apache/cordova/PluginManager.java +++ b/framework/src/org/apache/cordova/PluginManager.java @@ -18,21 +18,14 @@ Licensed to the Apache Software Foundation (ASF) under one */ package org.apache.cordova; -import java.util.HashMap; -import java.util.List; - -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.PluginEntry; -import org.apache.cordova.PluginResult; -import org.json.JSONException; - import android.content.Intent; import android.net.Uri; import android.os.Debug; import android.util.Log; +import org.json.JSONException; + +import java.util.HashMap; +import java.util.List; /** * PluginManager is exposed to JavaScript in the Cordova WebView. @@ -381,15 +374,17 @@ public void onReset() { } Uri remapUri(Uri uri) { + Uri remap = null; for (CordovaPlugin plugin : this.pluginMap.values()) { if (plugin != null) { Uri ret = plugin.remapUri(uri); if (ret != null) { - return ret; + remap = ret; + uri = ret; } } } - return null; + return remap; } /** From f72f6cd30dbab153e33e625d2ae1d2ac04a0cc0c Mon Sep 17 00:00:00 2001 From: Simon Pireyn Date: Wed, 8 Jul 2015 17:51:57 +0200 Subject: [PATCH 2/4] CB-9334 loop on CordovaPlugins before returning remapped Uri --- framework/src/org/apache/cordova/PluginManager.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/framework/src/org/apache/cordova/PluginManager.java b/framework/src/org/apache/cordova/PluginManager.java index f6466a177..dadc202ec 100755 --- a/framework/src/org/apache/cordova/PluginManager.java +++ b/framework/src/org/apache/cordova/PluginManager.java @@ -374,17 +374,16 @@ public void onReset() { } Uri remapUri(Uri uri) { - Uri remap = null; + Uri remap = uri; for (CordovaPlugin plugin : this.pluginMap.values()) { if (plugin != null) { - Uri ret = plugin.remapUri(uri); + Uri ret = plugin.remapUri(remap); if (ret != null) { remap = ret; - uri = ret; } } } - return remap; + return uri.equals(remap) ? null : remap; } /** From 3e8948650c6a42487c980b7ee396c966a9533878 Mon Sep 17 00:00:00 2001 From: Simon Pireyn Date: Wed, 8 Jul 2015 17:54:52 +0200 Subject: [PATCH 3/4] Check is not bitwise --- framework/src/org/apache/cordova/PluginManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/org/apache/cordova/PluginManager.java b/framework/src/org/apache/cordova/PluginManager.java index dadc202ec..ab8cecea6 100755 --- a/framework/src/org/apache/cordova/PluginManager.java +++ b/framework/src/org/apache/cordova/PluginManager.java @@ -396,7 +396,7 @@ private CordovaPlugin instantiatePlugin(String className) { if ((className != null) && !("".equals(className))) { c = Class.forName(className); } - if (c != null & CordovaPlugin.class.isAssignableFrom(c)) { + if (c != null && CordovaPlugin.class.isAssignableFrom(c)) { ret = (CordovaPlugin) c.newInstance(); } } catch (Exception e) { From 6cb62e9919f790aaf522a2a2403e15751d07b4a6 Mon Sep 17 00:00:00 2001 From: Simon Pireyn Date: Fri, 10 Jul 2015 17:56:35 +0200 Subject: [PATCH 4/4] This closes #195