From fc2a202afa115c713eb5b8530f4db389ef83c5a8 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Thu, 10 Jul 2014 10:14:47 -0400 Subject: [PATCH] Log friendlier messages when bridge calls are recieved from previous page --- .../src/org/apache/cordova/CordovaBridge.java | 18 ++++++++++++++++++ .../apache/cordova/NativeToJsMessageQueue.java | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/framework/src/org/apache/cordova/CordovaBridge.java b/framework/src/org/apache/cordova/CordovaBridge.java index d9efb3ba..2bfad116 100644 --- a/framework/src/org/apache/cordova/CordovaBridge.java +++ b/framework/src/org/apache/cordova/CordovaBridge.java @@ -40,8 +40,23 @@ public class CordovaBridge { this.pluginManager = pluginManager; this.jsMessageQueue = jsMessageQueue; } + + private final boolean checkBridgeEnabled(String action) { + if (!jsMessageQueue.isBridgeEnabled()) { + if (bridgeSecret == -1) { + Log.d(LOG_TAG, action + " call made before bridge was enabled."); + } else { + Log.d(LOG_TAG, "Ignoring " + action + " from previous page load."); + } + return false; + } + return true; + } public String jsExec(int bridgeSecret, String service, String action, String callbackId, String arguments) throws JSONException, IllegalAccessException { + if (!checkBridgeEnabled("exec()")) { + return ""; + } verifySecret(bridgeSecret); // If the arguments weren't received, send a message back to JS. It will switch bridge modes and try again. See CB-2666. // We send a message meant specifically for this case. It starts with "@" so no other message can be encoded into the same string. @@ -74,6 +89,9 @@ public class CordovaBridge { } public String jsRetrieveJsMessages(int bridgeSecret, boolean fromOnlineEvent) throws IllegalAccessException { + if (!checkBridgeEnabled("retrieveJsMessages()")) { + return ""; + } verifySecret(bridgeSecret); return jsMessageQueue.popAndEncode(fromOnlineEvent); } diff --git a/framework/src/org/apache/cordova/NativeToJsMessageQueue.java b/framework/src/org/apache/cordova/NativeToJsMessageQueue.java index 08ca00ea..75d5d434 100755 --- a/framework/src/org/apache/cordova/NativeToJsMessageQueue.java +++ b/framework/src/org/apache/cordova/NativeToJsMessageQueue.java @@ -85,6 +85,10 @@ public class NativeToJsMessageQueue { reset(); } + public boolean isBridgeEnabled() { + return activeBridgeMode != null; + } + /** * Changes the bridge mode. */