diff options
author | jbudorick <jbudorick@chromium.org> | 2015-05-11 10:34:22 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-11 17:35:01 +0000 |
commit | c74b42e547e3e8dc42e8c4fec1b431bc4c37b0f3 (patch) | |
tree | cecbedb1a1b0228b1cfe113aa11281ca6a2436f4 | |
parent | 74bb4ded177e5058878ae3d0e510ef83595f8f3a (diff) | |
download | chromium_src-c74b42e547e3e8dc42e8c4fec1b431bc4c37b0f3.zip chromium_src-c74b42e547e3e8dc42e8c4fec1b431bc4c37b0f3.tar.gz chromium_src-c74b42e547e3e8dc42e8c4fec1b431bc4c37b0f3.tar.bz2 |
Revert of Catch Exception for Intent.parseUri instead of URISyntaxException (patchset #2 id:20001 of https://codereview.chromium.org/1132473004/)
Reason for revert:
broke findbugs: http://build.chromium.org/p/chromium.linux/builders/Android%20Clang%20Builder%20%28dbg%29/builds/59364
slipped through CQ because analyze in android_clang_dbg_recipe decided it didn't need to compile: http://build.chromium.org/p/tryserver.chromium.linux/builders/android_clang_dbg_recipe/builds/75301
Original issue's description:
> Catch Exception for Intent.parseUri instead of URISyntaxException
>
> Intent.parseUri can throw other excpetions like NumberFormatException.
> So we need to catch Exception to avoid crash.
>
> BUG=484336
>
> Committed: https://crrev.com/e9785bb71f9e0b8a9a3ba321c2c6483c8805e5a1
> Cr-Commit-Position: refs/heads/master@{#329163}
TBR=torne@chromium.org,tedchoc@chromium.org,jaekyun@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=484336
Review URL: https://codereview.chromium.org/1139753003
Cr-Commit-Position: refs/heads/master@{#329170}
4 files changed, 20 insertions, 13 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java index 4427533..5546525 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java @@ -9,19 +9,21 @@ import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.provider.Browser; +import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.webkit.URLUtil; import android.webkit.WebChromeClient; import android.widget.FrameLayout; -import org.chromium.base.Log; import org.chromium.content.browser.ContentVideoViewClient; import org.chromium.content.browser.ContentViewClient; import org.chromium.content.browser.ContentViewCore; import org.chromium.content.browser.SelectActionMode; import org.chromium.content.browser.SelectActionModeCallback.ActionHandler; +import java.net.URISyntaxException; + /** * ContentViewClient implementation for WebView */ @@ -60,8 +62,8 @@ public class AwContentViewClient extends ContentViewClient implements ContentVid // Perform generic parsing of the URI to turn it into an Intent. try { intent = Intent.parseUri(contentUrl, Intent.URI_INTENT_SCHEME); - } catch (Exception ex) { - Log.w(TAG, "Bad URI " + contentUrl, ex); + } catch (URISyntaxException ex) { + Log.w(TAG, "Bad URI " + contentUrl + ": " + ex.getMessage()); return; } // Sanitize the Intent, ensuring web pages can not bypass browser diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ConnectionInfoPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/ConnectionInfoPopup.java index 151113c..0972aee 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ConnectionInfoPopup.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ConnectionInfoPopup.java @@ -27,6 +27,8 @@ import org.chromium.chrome.R; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContentsObserver; +import java.net.URISyntaxException; + /** * Java side of Android implementation of the website settings UI. */ @@ -210,7 +212,7 @@ public class ConnectionInfoPopup implements OnClickListener { i.putExtra(Browser.EXTRA_CREATE_NEW_TAB, true); i.putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName()); mContext.startActivity(i); - } catch (Exception ex) { + } catch (URISyntaxException ex) { // Do nothing intentionally. } } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java index ed93d88..dc8a1fc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java @@ -10,10 +10,10 @@ import android.content.ComponentName; import android.content.Intent; import android.net.Uri; import android.provider.Browser; +import android.util.Log; import android.webkit.WebView; import org.chromium.base.CommandLine; -import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.UrlConstants; @@ -22,6 +22,7 @@ import org.chromium.chrome.browser.util.IntentUtils; import org.chromium.ui.base.PageTransition; import java.net.URI; +import java.net.URISyntaxException; import java.util.List; /** @@ -78,8 +79,8 @@ public class ExternalNavigationHandler { // Perform generic parsing of the URI to turn it into an Intent. try { intent = Intent.parseUri(params.getUrl(), Intent.URI_INTENT_SCHEME); - } catch (Exception ex) { - Log.w(TAG, "Bad URI " + params.getUrl(), ex); + } catch (URISyntaxException ex) { + Log.w(TAG, "Bad URI " + params.getUrl() + ": " + ex.getMessage()); return OverrideUrlLoadingResult.NO_OVERRIDE; } @@ -282,7 +283,7 @@ public class ExternalNavigationHandler { try { currentUri = new URI(params.getUrl()); previousUri = new URI(params.getReferrerUrl()); - } catch (Exception e) { + } catch (URISyntaxException e) { currentUri = null; previousUri = null; } @@ -294,7 +295,7 @@ public class ExternalNavigationHandler { try { previousIntent = Intent.parseUri( params.getReferrerUrl(), Intent.URI_INTENT_SCHEME); - } catch (Exception e) { + } catch (URISyntaxException e) { previousIntent = null; } @@ -385,7 +386,7 @@ public class ExternalNavigationHandler { try { Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); return intent.getPackage() != null || mDelegate.canResolveActivity(intent); - } catch (Exception ex) { + } catch (URISyntaxException ex) { // Ignore the error. } return false; diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java index b88614f..a874357 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java @@ -7,13 +7,15 @@ package org.chromium.content.browser; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; +import android.util.Log; import android.view.ActionMode; import android.view.KeyEvent; import android.view.View; -import org.chromium.base.Log; import org.chromium.content.browser.SelectActionModeCallback.ActionHandler; +import java.net.URISyntaxException; + /** * Main callback class used by ContentView. * @@ -143,8 +145,8 @@ public class ContentViewClient { // Perform generic parsing of the URI to turn it into an Intent. try { intent = Intent.parseUri(intentUrl, Intent.URI_INTENT_SCHEME); - } catch (Exception ex) { - Log.w(TAG, "Bad URI " + intentUrl, ex); + } catch (URISyntaxException ex) { + Log.w(TAG, "Bad URI " + intentUrl + ": " + ex.getMessage()); return; } |