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:18 UTC
[1/2] android commit: CB-8510 Enforce that CordovaWebViewImpl is
instantiated with an Engine
Repository: cordova-android
Updated Branches:
refs/heads/master eccf48616 -> 62c081dc8
CB-8510 Enforce that CordovaWebViewImpl is instantiated with an Engine
No reason to not enforce this.
Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/023ad9dd
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/023ad9dd
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/023ad9dd
Branch: refs/heads/master
Commit: 023ad9ddf8b5a69ffe7f15fbcb83719aae77ffcc
Parents: eccf486
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Mar 3 09:51:03 2015 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Mar 3 09:51:03 2015 -0500
----------------------------------------------------------------------
.../src/org/apache/cordova/CordovaActivity.java | 4 +---
.../src/org/apache/cordova/CordovaWebViewImpl.java | 15 +++------------
2 files changed, 4 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/023ad9dd/framework/src/org/apache/cordova/CordovaActivity.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaActivity.java b/framework/src/org/apache/cordova/CordovaActivity.java
index 7942626..5d0a586 100755
--- a/framework/src/org/apache/cordova/CordovaActivity.java
+++ b/framework/src/org/apache/cordova/CordovaActivity.java
@@ -21,7 +21,6 @@ package org.apache.cordova;
import java.util.ArrayList;
import java.util.Locale;
-import org.apache.cordova.engine.SystemWebViewEngine;
import org.json.JSONException;
import org.json.JSONObject;
@@ -189,8 +188,7 @@ public class CordovaActivity extends Activity {
}
protected CordovaWebViewEngine makeWebViewEngine() {
- String className = preferences.getString("webview", SystemWebViewEngine.class.getCanonicalName());
- return CordovaWebViewImpl.createEngine(className, this, preferences);
+ return CordovaWebViewImpl.createEngine(this, preferences);
}
protected CordovaInterfaceImpl makeCordovaInterface() {
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/023ad9dd/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 303f4e8..d600440 100644
--- a/framework/src/org/apache/cordova/CordovaWebViewImpl.java
+++ b/framework/src/org/apache/cordova/CordovaWebViewImpl.java
@@ -21,13 +21,11 @@ package org.apache.cordova;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.os.Build;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
import android.webkit.WebChromeClient;
import android.widget.FrameLayout;
@@ -53,7 +51,7 @@ public class CordovaWebViewImpl implements CordovaWebView {
// Public for backwards-compatibility :(
public PluginManager pluginManager;
- protected CordovaWebViewEngine engine;
+ protected final CordovaWebViewEngine engine;
private CordovaInterface cordova;
// Flag to track that a loadUrl timeout occurred
@@ -75,7 +73,8 @@ public class CordovaWebViewImpl implements CordovaWebView {
private Set<Integer> boundKeyCodes = new HashSet<Integer>();
- public static CordovaWebViewEngine createEngine(String className, Context context, CordovaPreferences preferences) {
+ public static CordovaWebViewEngine createEngine(Context context, CordovaPreferences preferences) {
+ String className = preferences.getString("webview", SystemWebViewEngine.class.getCanonicalName());
try {
Class<?> webViewClass = Class.forName(className);
Constructor<?> constructor = webViewClass.getConstructor(Context.class, CordovaPreferences.class);
@@ -85,9 +84,6 @@ public class CordovaWebViewImpl implements CordovaWebView {
}
}
- public CordovaWebViewImpl(Context context) {
- this(context, null);
- }
public CordovaWebViewImpl(Context context, CordovaWebViewEngine cordovaWebViewEngine) {
this.context = context;
this.engine = cordovaWebViewEngine;
@@ -102,11 +98,6 @@ public class CordovaWebViewImpl implements CordovaWebView {
if (this.cordova != null) {
throw new IllegalStateException();
}
- // Happens only when not using CordovaActivity. Usually, engine is set in the constructor.
- if (engine == null) {
- String className = preferences.getString("webView", SystemWebViewEngine.class.getCanonicalName());
- engine = createEngine(className, context, preferences);
- }
this.cordova = cordova;
this.preferences = preferences;
pluginManager = new PluginManager(this, this.cordova, pluginEntries);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[2/2] android commit: CB-8592 Fix NPE if lifecycle events reach
CordovaWebView before `init()` has been called
Posted by ag...@apache.org.
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