diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 4204a1afcdf04..e233a02800654 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -605,8 +605,8 @@ class BrowserFrame extends Handler { } // Called by JNI when an apple-touch-icon attribute was found. - private void didReceiveTouchIconUrl(String url) { - mCallbackProxy.onReceivedTouchIconUrl(url); + private void didReceiveTouchIconUrl(String url, boolean precomposed) { + mCallbackProxy.onReceivedTouchIconUrl(url, precomposed); } /** diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java index b051675080a6e..1ec769b62659b 100644 --- a/core/java/android/webkit/CallbackProxy.java +++ b/core/java/android/webkit/CallbackProxy.java @@ -249,7 +249,7 @@ class CallbackProxy extends Handler { case RECEIVED_TOUCH_ICON_URL: if (mWebChromeClient != null) { mWebChromeClient.onReceivedTouchIconUrl(mWebView, - (String) msg.obj); + (String) msg.obj, msg.arg1 == 1); } break; @@ -1065,19 +1065,22 @@ class CallbackProxy extends Handler { sendMessage(obtainMessage(RECEIVED_ICON, icon)); } - /* package */ void onReceivedTouchIconUrl(String url) { + /* package */ void onReceivedTouchIconUrl(String url, boolean precomposed) { // We should have a current item but we do not want to crash so check // for null. WebHistoryItem i = mBackForwardList.getCurrentItem(); if (i != null) { - i.setTouchIconUrl(url); + if (precomposed || i.getTouchIconUrl() != null) { + i.setTouchIconUrl(url); + } } // Do an unsynchronized quick check to avoid posting if no callback has // been set. if (mWebChromeClient == null) { return; } - sendMessage(obtainMessage(RECEIVED_TOUCH_ICON_URL, url)); + sendMessage(obtainMessage(RECEIVED_TOUCH_ICON_URL, + precomposed ? 1 : 0, 0, url)); } public void onReceivedTitle(String title) { diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java index 0e08514cd2d95..1ae1d85a19c57 100644 --- a/core/java/android/webkit/WebChromeClient.java +++ b/core/java/android/webkit/WebChromeClient.java @@ -48,9 +48,11 @@ public class WebChromeClient { * Notify the host application of the url for an apple-touch-icon. * @param view The WebView that initiated the callback. * @param url The icon url. + * @param precomposed True if the url is for a precomposed touch icon. * @hide pending council approval */ - public void onReceivedTouchIconUrl(WebView view, String url) {} + public void onReceivedTouchIconUrl(WebView view, String url, + boolean precomposed) {} /** * A callback interface used by the host application to notify