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

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

Issue 2405983002: Catch TransactionTooLargeException in another case. (Closed)
Patch Set: Moved to ExternalNavigationHandler 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 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) {

Powered by Google App Engine
This is Rietveld 408576698