| Index: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| index e3500010b4e0727d41404c5e4e0c6805acdf4ab5..2bcfd8b97b4bc4472ab72b96ef9707215ed937de 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| @@ -17,12 +17,10 @@ import android.content.pm.ResolveInfo;
|
| import android.net.Uri;
|
| import android.os.Build;
|
| import android.os.StrictMode;
|
| -import android.os.TransactionTooLargeException;
|
| import android.provider.Browser;
|
| import android.provider.Telephony;
|
| import android.support.v7.app.AlertDialog;
|
| import android.text.TextUtils;
|
| -import android.util.Log;
|
| import android.webkit.MimeTypeMap;
|
|
|
| import org.chromium.base.ApplicationState;
|
| @@ -41,6 +39,7 @@ import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.Overrid
|
| import org.chromium.chrome.browser.instantapps.AuthenticatedProxyActivity;
|
| import org.chromium.chrome.browser.instantapps.InstantAppsHandler;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| +import org.chromium.chrome.browser.util.IntentUtils;
|
| import org.chromium.chrome.browser.util.UrlUtilities;
|
| import org.chromium.chrome.browser.webapps.WebappActivity;
|
| import org.chromium.content_public.browser.LoadUrlParams;
|
| @@ -59,7 +58,6 @@ import java.util.List;
|
| * The main implementation of the {@link ExternalNavigationDelegate}.
|
| */
|
| public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegate {
|
| - private static final String TAG = "ExternalNavigationDelegateImpl";
|
| private static final String PDF_VIEWER = "com.google.android.apps.docs";
|
| private static final String PDF_MIME = "application/pdf";
|
| private static final String PDF_SUFFIX = ".pdf";
|
| @@ -156,7 +154,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| }
|
| return activityResolved;
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| }
|
| return false;
|
| }
|
| @@ -185,7 +183,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| PackageManager pm = context.getPackageManager();
|
| return pm.resolveActivity(intent, 0);
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| }
|
| return null;
|
| }
|
| @@ -216,7 +214,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| return info != null
|
| && info.activityInfo.packageName.equals(context.getPackageName());
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| return false;
|
| }
|
| }
|
| @@ -228,6 +226,9 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| try {
|
| return mApplicationContext.getPackageManager().queryIntentActivities(intent,
|
| PackageManager.GET_RESOLVED_FILTER);
|
| + } catch (RuntimeException e) {
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| + return null;
|
| } finally {
|
| StrictMode.setThreadPolicy(oldPolicy);
|
| }
|
| @@ -266,7 +267,6 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| return result;
|
| }
|
|
|
| - int count = 0;
|
| for (ResolveInfo info : infos) {
|
| IntentFilter filter = info.filter;
|
| if (filter == null) {
|
| @@ -305,7 +305,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| intent, PackageManager.GET_RESOLVED_FILTER);
|
| return getSpecializedHandlersWithFilter(handlers, packageName).size() > 0;
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| }
|
| return false;
|
| }
|
| @@ -333,7 +333,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| }
|
| recordExternalNavigationDispatched(intent);
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| }
|
| }
|
|
|
| @@ -359,7 +359,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| if (activityWasLaunched) recordExternalNavigationDispatched(intent);
|
| return activityWasLaunched;
|
| } catch (RuntimeException e) {
|
| - logTransactionTooLargeOrRethrow(e, intent);
|
| + IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
|
| return false;
|
| } finally {
|
| StrictMode.setThreadPolicy(oldPolicy);
|
| @@ -542,15 +542,6 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| return Telephony.Sms.getDefaultSmsPackage(mApplicationContext);
|
| }
|
|
|
| - private static void logTransactionTooLargeOrRethrow(RuntimeException e, Intent intent) {
|
| - // See http://crbug.com/369574.
|
| - if (e.getCause() instanceof TransactionTooLargeException) {
|
| - Log.e(TAG, "Could not resolve Activity for intent " + intent.toString(), e);
|
| - } else {
|
| - throw e;
|
| - }
|
| - }
|
| -
|
| private void closeTab(Tab tab) {
|
| Context context = tab.getWindowAndroid().getContext().get();
|
| if (context instanceof ChromeActivity) {
|
|
|