Updated Branches: refs/heads/CordovaWebView c0dcbecbe -> de6652dd9
Moving the Callback Server Start/Stop to the onPageStarted fixed timing errors Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/de6652dd Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/de6652dd Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/de6652dd Branch: refs/heads/CordovaWebView Commit: de6652dd9d67277285e8501356a5105c70b9405c Parents: c0dcbec Author: Joe Bowser <bows...@apache.org> Authored: Thu May 10 15:07:14 2012 -0700 Committer: Joe Bowser <bows...@apache.org> Committed: Thu May 10 15:07:14 2012 -0700 ---------------------------------------------------------------------- .../src/org/apache/cordova/CallbackServer.java | 30 +++++++------- .../src/org/apache/cordova/CordovaWebView.java | 8 ---- .../org/apache/cordova/CordovaWebViewClient.java | 8 ++++ 3 files changed, 23 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/de6652dd/framework/src/org/apache/cordova/CallbackServer.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CallbackServer.java b/framework/src/org/apache/cordova/CallbackServer.java index 6b6ce70..fbf5a98 100755 --- a/framework/src/org/apache/cordova/CallbackServer.java +++ b/framework/src/org/apache/cordova/CallbackServer.java @@ -97,7 +97,7 @@ public class CallbackServer implements Runnable { * Constructor. */ public CallbackServer() { - //System.out.println("CallbackServer()"); + //Log.d(LOG_TAG, "CallbackServer()"); this.active = false; this.empty = true; this.port = 0; @@ -113,7 +113,7 @@ public class CallbackServer implements Runnable { * @param url The URL of the Cordova app being loaded */ public void init(String url) { - //System.out.println("CallbackServer.start("+url+")"); + //Log.d(LOG_TAG, "CallbackServer.start("+url+")"); this.active = false; this.empty = true; this.port = 0; @@ -175,7 +175,7 @@ public class CallbackServer implements Runnable { * Start the server on a new thread. */ public void startServer() { - //System.out.println("CallbackServer.startServer()"); + //Log.d(LOG_TAG, "CallbackServer.startServer()"); this.active = false; // Start server on new thread @@ -207,18 +207,18 @@ public class CallbackServer implements Runnable { String request; ServerSocket waitSocket = new ServerSocket(0); this.port = waitSocket.getLocalPort(); - //System.out.println("CallbackServer -- using port " +this.port); + //Log.d(LOG_TAG, "CallbackServer -- using port " +this.port); this.token = java.util.UUID.randomUUID().toString(); - //System.out.println("CallbackServer -- using token "+this.token); + //Log.d(LOG_TAG, "CallbackServer -- using token "+this.token); while (this.active) { - //System.out.println("CallbackServer: Waiting for data on socket"); + //Log.d(LOG_TAG, "CallbackServer: Waiting for data on socket"); Socket connection = waitSocket.accept(); BufferedReader xhrReader = new BufferedReader(new InputStreamReader(connection.getInputStream()),40); DataOutputStream output = new DataOutputStream(connection.getOutputStream()); request = xhrReader.readLine(); String response = ""; - //System.out.println("CallbackServerRequest="+request); + //Log.d(LOG_TAG, "CallbackServerRequest="+request); if (this.active && (request != null)) { if (request.contains("GET")) { @@ -227,7 +227,7 @@ public class CallbackServer implements Runnable { // Must have security token if ((requestParts.length == 3) && (requestParts[1].substring(1).equals(this.token))) { - //System.out.println("CallbackServer -- Processing GET request"); + //Log.d(LOG_TAG, "CallbackServer -- Processing GET request"); // Wait until there is some data to send, or send empty data every 10 sec // to prevent XHR timeout on the client @@ -235,7 +235,7 @@ public class CallbackServer implements Runnable { while (this.empty) { try { this.wait(10000); // prevent timeout from happening - //System.out.println("CallbackServer>>> break <<<"); + //Log.d(LOG_TAG, "CallbackServer>>> break <<<"); break; } catch (Exception e) { } @@ -247,11 +247,11 @@ public class CallbackServer implements Runnable { // If no data, then send 404 back to client before it times out if (this.empty) { - //System.out.println("CallbackServer -- sending data 0"); + //Log.d(LOG_TAG, "CallbackServer -- sending data 0"); response = "HTTP/1.1 404 NO DATA\r\n\r\n "; // need to send content otherwise some Android devices fail, so send space } else { - //System.out.println("CallbackServer -- sending item"); + //Log.d(LOG_TAG, "CallbackServer -- sending item"); response = "HTTP/1.1 200 OK\r\n\r\n"; String js = this.getJavascript(); if (js != null) { @@ -270,8 +270,8 @@ public class CallbackServer implements Runnable { else { response = "HTTP/1.1 400 Bad Request\r\n\r\n "; } - //System.out.println("CallbackServer: response="+response); - //System.out.println("CallbackServer: closing output"); + //Log.d(LOG_TAG, "CallbackServer: response="+response); + //Log.d(LOG_TAG, "CallbackServer: closing output"); output.writeBytes(response); output.flush(); } @@ -282,7 +282,7 @@ public class CallbackServer implements Runnable { e.printStackTrace(); } this.active = false; - //System.out.println("CallbackServer.startServer() - EXIT"); + //Log.d(LOG_TAG, "CallbackServer.startServer() - EXIT"); } /** @@ -290,7 +290,7 @@ public class CallbackServer implements Runnable { * This stops the thread that the server is running on. */ public void stopServer() { - //System.out.println("CallbackServer.stopServer()"); + //Log.d(LOG_TAG, "CallbackServer.stopServer()"); if (this.active) { this.active = false; http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/de6652dd/framework/src/org/apache/cordova/CordovaWebView.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java index 46d1f31..3318ec7 100644 --- a/framework/src/org/apache/cordova/CordovaWebView.java +++ b/framework/src/org/apache/cordova/CordovaWebView.java @@ -321,14 +321,6 @@ public class CordovaWebView extends WebView { this.baseUrl = this.url + "/"; } - // Create callback server and plugin manager - if (callbackServer == null) { - callbackServer = new CallbackServer(); - callbackServer.init(url); - } - else { - callbackServer.reinit(url); - } pluginManager.init(); if(!useBrowserHistory) http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/de6652dd/framework/src/org/apache/cordova/CordovaWebViewClient.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/CordovaWebViewClient.java b/framework/src/org/apache/cordova/CordovaWebViewClient.java index e313945..f809b23 100755 --- a/framework/src/org/apache/cordova/CordovaWebViewClient.java +++ b/framework/src/org/apache/cordova/CordovaWebViewClient.java @@ -209,6 +209,14 @@ public class CordovaWebViewClient extends WebViewClient { view.clearHistory(); this.doClearHistory = true; } + // Create callback server and plugin manager + if (appView.callbackServer == null) { + appView.callbackServer = new CallbackServer(); + appView.callbackServer.init(url); + } + else { + appView.callbackServer.reinit(url); + } } /**