You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2015/03/03 15:52:19 UTC

[2/2] android commit: CB-8592 Fix NPE if lifecycle events reach CordovaWebView before `init()` has been called

CB-8592 Fix NPE if lifecycle events reach CordovaWebView before `init()` has been called


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/62c081dc
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/62c081dc
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/62c081dc

Branch: refs/heads/master
Commit: 62c081dc85e297581811db2cacdf73eb5d49ea24
Parents: 023ad9d
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Mar 3 09:51:39 2015 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Mar 3 09:51:39 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cordova/CordovaWebViewImpl.java  | 34 +++++++++-----------
 1 file changed, 15 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/62c081dc/framework/src/org/apache/cordova/CordovaWebViewImpl.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaWebViewImpl.java b/framework/src/org/apache/cordova/CordovaWebViewImpl.java
index d600440..3b5aecd 100644
--- a/framework/src/org/apache/cordova/CordovaWebViewImpl.java
+++ b/framework/src/org/apache/cordova/CordovaWebViewImpl.java
@@ -423,14 +423,12 @@ public class CordovaWebViewImpl implements CordovaWebView {
     }
     @Override
     public void handlePause(boolean keepRunning) {
+        if (!isInitialized()) {
+            return;
+        }
         LOG.d(TAG, "Handle the pause");
-        // Send pause event to JavaScript
         sendJavascriptEvent("pause");
-
-        // Forward to plugins
-        if (pluginManager != null) {
-            pluginManager.onPause(keepRunning);
-        }
+        pluginManager.onPause(keepRunning);
 
         // If app doesn't want to run in background
         if (!keepRunning) {
@@ -439,29 +437,27 @@ public class CordovaWebViewImpl implements CordovaWebView {
         }
     }
     @Override
-    public void handleResume(boolean keepRunning)
-    {
+    public void handleResume(boolean keepRunning) {
+        if (!isInitialized()) {
+            return;
+        }
+
         // Resume JavaScript timers. This affects all webviews within the app!
         engine.setPaused(false);
-
         sendJavascriptEvent("resume");
-
-        // Forward to plugins
-        if (this.pluginManager != null) {
-            this.pluginManager.onResume(keepRunning);
-        }
+        this.pluginManager.onResume(keepRunning);
     }
 
     @Override
-    public void handleDestroy()
-    {
+    public void handleDestroy() {
+        if (!isInitialized()) {
+            return;
+        }
         // Cancel pending timeout timer.
         loadUrlTimeout++;
 
         // Forward to plugins
-        if (this.pluginManager != null) {
-            this.pluginManager.onDestroy();
-        }
+        this.pluginManager.onDestroy();
 
         // Load blank page so that JavaScript onunload is called
         this.loadUrl("about:blank");


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org