Skip to content

Commit c7ad102

Browse files
committed
Remove transient and unnecessary update density message.
On a page load, the (viewport) metadata settings for the main frame are reset. Reloading a page with viewport meta tag specifying target density dpi will result in 2 back to back update zoom density messages to be sent from WebViewCore to UI thread. In setupViewport(), remove update density messages in flight. If the new density is indeed different from WebView's default scale, queue another message. Bug: 6509512 Change-Id: I195e40277bf1bcccb0e61d84ed84db1e34556243
1 parent 804e822 commit c7ad102

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

core/java/android/webkit/WebViewCore.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2550,6 +2550,11 @@ private void setupViewport(boolean updateViewState) {
25502550
adjust = (float) mContext.getResources().getDisplayMetrics().densityDpi
25512551
/ mViewportDensityDpi;
25522552
}
2553+
// Remove any update density messages in flight.
2554+
// If the density is indeed different from WebView's default scale,
2555+
// a new message will be queued.
2556+
mWebViewClassic.mPrivateHandler.removeMessages(
2557+
WebViewClassic.UPDATE_ZOOM_DENSITY);
25532558
if (adjust != mWebViewClassic.getDefaultZoomScale()) {
25542559
Message.obtain(mWebViewClassic.mPrivateHandler,
25552560
WebViewClassic.UPDATE_ZOOM_DENSITY, adjust).sendToTarget();

0 commit comments

Comments
 (0)