diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 49b4f66485e76..309857d033e08 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -422,9 +422,9 @@ class BrowserFrame extends Handler { final WebHistoryItem h = mCallbackProxy.getBackForwardList() .getCurrentItem(); if (h != null) { - String currentUrl = h.getUrl(); - if (currentUrl != null) { - mDatabase.setFormData(currentUrl, data); + String url = WebTextView.urlForAutoCompleteData(h.getUrl()); + if (url != null) { + mDatabase.setFormData(url, data); } } } diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java index 2a79caad77bef..217ad7c4367e8 100644 --- a/core/java/android/webkit/WebTextView.java +++ b/core/java/android/webkit/WebTextView.java @@ -60,6 +60,8 @@ import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.TextView; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import junit.framework.Assert; @@ -1044,6 +1046,7 @@ import junit.framework.Assert; break; } setHint(null); + setThreshold(1); if (single) { mWebView.requestLabel(mWebView.nativeFocusCandidateFramePointer(), mNodePointer); @@ -1077,4 +1080,16 @@ import junit.framework.Assert; /* package */ void setAutoFillProfileIsSet(boolean autoFillProfileIsSet) { mAutoFillProfileIsSet = autoFillProfileIsSet; } + + static String urlForAutoCompleteData(String urlString) { + // Remove any fragment or query string. + URL url = null; + try { + url = new URL(urlString); + } catch (MalformedURLException e) { + Log.e(LOGTAG, "Unable to parse URL "+url); + } + + return url != null ? url.getProtocol() + "://" + url.getHost() + url.getPath() : null; + } } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 7ba93da0d832c..47abbc2e6d2d5 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4826,7 +4826,7 @@ public class WebView extends AbsoluteLayout public RequestFormData(String name, String url, Message msg, boolean autoFillable, boolean autoComplete) { mName = name; - mUrl = url; + mUrl = WebTextView.urlForAutoCompleteData(url); mUpdateMessage = msg; mAutoFillable = autoFillable; mAutoComplete = autoComplete;