You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2014/12/12 13:47:52 UTC
[1/3] cordova-plugin-inappbrowser git commit: CB-7897: Update to work
with whilelist plugins in Cordova 4.x
Repository: cordova-plugin-inappbrowser
Updated Branches:
refs/heads/master abbbcc246 -> a40a10f1e
CB-7897: Update to work with whilelist plugins in Cordova 4.x
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/80e4831a
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/80e4831a
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/80e4831a
Branch: refs/heads/master
Commit: 80e4831a7fa225b3be7cac41d90bad262d74da64
Parents: 80010ae
Author: Ian Clelland <ic...@chromium.org>
Authored: Wed Oct 29 12:09:13 2014 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Wed Oct 29 12:09:13 2014 -0400
----------------------------------------------------------------------
src/android/InAppBrowser.java | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/80e4831a/src/android/InAppBrowser.java
----------------------------------------------------------------------
diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
index f97e0b2..119a74f 100644
--- a/src/android/InAppBrowser.java
+++ b/src/android/InAppBrowser.java
@@ -54,10 +54,13 @@ import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.LOG;
+import org.apache.cordova.PluginManager;
import org.apache.cordova.PluginResult;
import org.json.JSONException;
import org.json.JSONObject;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.StringTokenizer;
@@ -117,9 +120,37 @@ public class InAppBrowser extends CordovaPlugin {
// SELF
if (SELF.equals(target)) {
Log.d(LOG_TAG, "in self");
+ /* This code exists for compatibility between 3.x and 4.x versions of Cordova.
+ * Previously the Config class had a static method, isUrlWhitelisted(). That
+ * responsibility has been moved to the plugins, with an aggregating method in
+ * PluginManager.
+ */
+ Boolean shouldAllowNavigation = null;
+ if (url.startsWith("javascript:")) {
+ shouldAllowNavigation = true;
+ }
+ if (shouldAllowNavigation == null) {
+ try {
+ Method iuw = Config.class.getMethod("isUrlWhiteListed", String.class);
+ shouldAllowNavigation = (Boolean)iuw.invoke(null, url);
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ }
+ }
+ if (shouldAllowNavigation == null) {
+ try {
+ Method gpm = webView.getClass().getMethod("getPluginManager");
+ PluginManager pm = (PluginManager)gpm.invoke(webView);
+ Method san = pm.getClass().getMethod("shouldAllowNavigation", String.class);
+ shouldAllowNavigation = (Boolean)san.invoke(pm, url);
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ }
+ }
// load in webview
- if (url.startsWith("file://") || url.startsWith("javascript:")
- || Config.isUrlWhiteListed(url)) {
+ if (Boolean.TRUE.equals(shouldAllowNavigation)) {
Log.d(LOG_TAG, "loading in webview");
webView.loadUrl(url);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[2/3] cordova-plugin-inappbrowser git commit: CB-7897: Update to work
with whilelist plugins in Cordova 4.x
Posted by ia...@apache.org.
CB-7897: Update to work with whilelist plugins in Cordova 4.x
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/514469ab
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/514469ab
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/514469ab
Branch: refs/heads/master
Commit: 514469ab24f796ef332d8acbfae1504672809a56
Parents: abbbcc2
Author: Ian Clelland <ic...@chromium.org>
Authored: Wed Oct 29 12:09:13 2014 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Wed Dec 3 09:29:22 2014 -0500
----------------------------------------------------------------------
src/android/InAppBrowser.java | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/514469ab/src/android/InAppBrowser.java
----------------------------------------------------------------------
diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
index ac70307..5b5f567 100644
--- a/src/android/InAppBrowser.java
+++ b/src/android/InAppBrowser.java
@@ -54,10 +54,13 @@ import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.LOG;
+import org.apache.cordova.PluginManager;
import org.apache.cordova.PluginResult;
import org.json.JSONException;
import org.json.JSONObject;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.StringTokenizer;
@@ -115,9 +118,37 @@ public class InAppBrowser extends CordovaPlugin {
// SELF
if (SELF.equals(target)) {
Log.d(LOG_TAG, "in self");
+ /* This code exists for compatibility between 3.x and 4.x versions of Cordova.
+ * Previously the Config class had a static method, isUrlWhitelisted(). That
+ * responsibility has been moved to the plugins, with an aggregating method in
+ * PluginManager.
+ */
+ Boolean shouldAllowNavigation = null;
+ if (url.startsWith("javascript:")) {
+ shouldAllowNavigation = true;
+ }
+ if (shouldAllowNavigation == null) {
+ try {
+ Method iuw = Config.class.getMethod("isUrlWhiteListed", String.class);
+ shouldAllowNavigation = (Boolean)iuw.invoke(null, url);
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ }
+ }
+ if (shouldAllowNavigation == null) {
+ try {
+ Method gpm = webView.getClass().getMethod("getPluginManager");
+ PluginManager pm = (PluginManager)gpm.invoke(webView);
+ Method san = pm.getClass().getMethod("shouldAllowNavigation", String.class);
+ shouldAllowNavigation = (Boolean)san.invoke(pm, url);
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ }
+ }
// load in webview
- if (url.startsWith("file://") || url.startsWith("javascript:")
- || Config.isUrlWhiteListed(url)) {
+ if (Boolean.TRUE.equals(shouldAllowNavigation)) {
Log.d(LOG_TAG, "loading in webview");
webView.loadUrl(url);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[3/3] cordova-plugin-inappbrowser git commit: Merge branch
'unplug-whitelist'
Posted by ia...@apache.org.
Merge branch 'unplug-whitelist'
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/a40a10f1
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/a40a10f1
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/a40a10f1
Branch: refs/heads/master
Commit: a40a10f1eaed3eac91f6a737420ab6b2a6fa5360
Parents: 514469a 80e4831
Author: Ian Clelland <ic...@chromium.org>
Authored: Fri Dec 12 07:47:15 2014 -0500
Committer: Ian Clelland <ic...@chromium.org>
Committed: Fri Dec 12 07:47:15 2014 -0500
----------------------------------------------------------------------
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org