Commit c5fbddf1 authored by Liquan (Max) Gu's avatar Liquan (Max) Gu Committed by Commit Bot

[PaymentHandler] Full state: swiping down content should move page

Context: this CL is to fix an bug where a swipe on the context caused
inconsistent behaviours between swipe up and swipe down. While swipe
up causes a page to scroll up, swipe down causes the UI to move down.

Cause: PH UI is incorrectly configured so that BottomSheet mistakes
the sheet as being at the max position.

Before change: at full state, when the viewport of the Web View moves
to the mid page, swiping down the Web View moves down the UI.

Change: config getVerticalScrollOffset() as Preview Tab does.

After change: at the same situation, swiping down the Web View scrolls
up the content.

Bug: 1040651

Change-Id: I4ac3ca369be0f2459d80df8fdfb093cc1b9f57c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2008274Reviewed-by: default avatarDanyao Wang <danyao@chromium.org>
Commit-Queue: Danyao Wang <danyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#733838}
parent 7daaca4e
...@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.thinwebview.ThinWebViewConstraints; ...@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.thinwebview.ThinWebViewConstraints;
import org.chromium.chrome.browser.thinwebview.ThinWebViewFactory; import org.chromium.chrome.browser.thinwebview.ThinWebViewFactory;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetContent; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetContent;
import org.chromium.components.embedder_support.view.ContentView; import org.chromium.components.embedder_support.view.ContentView;
import org.chromium.content_public.browser.RenderCoordinates;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.ActivityWindowAndroid;
...@@ -26,6 +27,7 @@ import org.chromium.ui.base.ActivityWindowAndroid; ...@@ -26,6 +27,7 @@ import org.chromium.ui.base.ActivityWindowAndroid;
private final View mToolbarView; private final View mToolbarView;
private final FrameLayout mContentView; private final FrameLayout mContentView;
private final ThinWebView mThinWebView; private final ThinWebView mThinWebView;
private final WebContents mWebContents;
private final Handler mReflowHandler = new Handler(); private final Handler mReflowHandler = new Handler();
private final int mTabHeight; private final int mTabHeight;
private final int mToolbarHeightPx; private final int mToolbarHeightPx;
...@@ -39,6 +41,7 @@ import org.chromium.ui.base.ActivityWindowAndroid; ...@@ -39,6 +41,7 @@ import org.chromium.ui.base.ActivityWindowAndroid;
*/ */
/* package */ PaymentHandlerView(ChromeActivity activity, WebContents webContents, /* package */ PaymentHandlerView(ChromeActivity activity, WebContents webContents,
ContentView webContentView, View toolbarView) { ContentView webContentView, View toolbarView) {
mWebContents = webContents;
mTabHeight = activity.getActivityTab().getView().getHeight(); mTabHeight = activity.getActivityTab().getView().getHeight();
mToolbarView = toolbarView; mToolbarView = toolbarView;
mToolbarHeightPx = mToolbarHeightPx =
...@@ -107,7 +110,9 @@ import org.chromium.ui.base.ActivityWindowAndroid; ...@@ -107,7 +110,9 @@ import org.chromium.ui.base.ActivityWindowAndroid;
@Override @Override
public int getVerticalScrollOffset() { public int getVerticalScrollOffset() {
return 0; return mWebContents == null
? 0
: RenderCoordinates.fromWebContents(mWebContents).getScrollYPixInt();
} }
@Override @Override
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment