| Index: chrome/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
|
| index a3fa31f1f084fab4cd4d3fc1bfbb03fb4f6f2f15..ba7bb632728674b5bf8595751588e66a9c7a60cc 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
|
| @@ -20,6 +20,7 @@ import android.support.v4.app.BundleCompat;
|
| import org.chromium.base.Log;
|
| import org.chromium.base.VisibleForTesting;
|
|
|
| +import java.io.Serializable;
|
| import java.util.ArrayList;
|
|
|
| /**
|
| @@ -265,6 +266,23 @@ public class IntentUtils {
|
| }
|
|
|
| /**
|
| + * Just like {@link Intent#getSerializableExtra(String)} but doesn't throw exceptions.
|
| + */
|
| + @SuppressWarnings("unchecked")
|
| + public static <T extends Serializable> T safeGetSerializableExtra(Intent intent, String name) {
|
| + try {
|
| + return (T) intent.getSerializableExtra(name);
|
| + } catch (ClassCastException ex) {
|
| + Log.e(TAG, "Invalide class for Serializable: " + name, ex);
|
| + return null;
|
| + } catch (Throwable t) {
|
| + // Catches un-serializable exceptions.
|
| + Log.e(TAG, "getSerializableExtra failed on intent " + intent);
|
| + return null;
|
| + }
|
| + }
|
| +
|
| + /**
|
| * Just like {@link BundleCompat#getBinder()}, but doesn't throw exceptions.
|
| */
|
| public static IBinder safeGetBinder(Bundle bundle, String name) {
|
|
|