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