Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java

Issue 2405983002: Catch TransactionTooLargeException in another case. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 79f80d557c54d4b636ecb30cce2a5f8e84fafe68..9db4c4f63b42cc642750b426287dd898b19610cc 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;
@@ -40,6 +38,7 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.OverrideUrlLoadingResult;
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;
@@ -58,7 +57,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";
@@ -155,7 +153,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
}
return activityResolved;
} catch (RuntimeException e) {
- logTransactionTooLargeOrRethrow(e, intent);
+ IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
}
return false;
}
@@ -184,7 +182,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;
}
@@ -215,7 +213,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;
}
}
@@ -265,7 +263,6 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
return result;
}
- int count = 0;
for (ResolveInfo info : infos) {
IntentFilter filter = info.filter;
if (filter == null) {
@@ -304,7 +301,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;
}
@@ -328,7 +325,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
context.startActivity(intent);
recordExternalNavigationDispatched(intent);
} catch (RuntimeException e) {
- logTransactionTooLargeOrRethrow(e, intent);
+ IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
}
}
@@ -349,7 +346,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);
@@ -531,15 +528,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) {

Powered by Google App Engine
This is Rietveld 408576698