Merge "Prevent browser becoming unresponsive when surfing to a URL with many %-escaped characters."
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index a754900..60dffac 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -3294,11 +3294,13 @@
             } else if (url.startsWith("http://")) {
                 url = url.substring(4);
             }
+            // Escape wildcards for LIKE operator.
+            url = url.replace("\\", "\\\\").replace("%", "\\%").replace("_", "\\_");
             try {
                 url = "%" + url;
                 String [] selArgs = new String[] { url };
 
-                String where = Browser.BookmarkColumns.URL + " LIKE ? AND "
+                String where = Browser.BookmarkColumns.URL + " LIKE ? ESCAPE '\\' AND "
                         + Browser.BookmarkColumns.BOOKMARK + " = 0";
                 Cursor c = mResolver.query(Browser.BOOKMARKS_URI,
                     Browser.HISTORY_PROJECTION, where, selArgs, null);