Index: android_webview/java/src/org/chromium/android_webview/AwContents.java |
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
index 6d57961b5dd4f511d458b3bb45cfa9d0e50aead3..6797c2761ff80616b95524c9e3e69458a9a6cfda 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
@@ -1932,11 +1932,6 @@ public class AwContents { |
} |
@CalledByNative |
- private void setMaxContainerViewScrollOffset(int maxX, int maxY) { |
- mScrollOffsetManager.setMaxScrollOffset(maxX, maxY); |
- } |
- |
- @CalledByNative |
private void scrollContainerViewTo(int x, int y) { |
mScrollOffsetManager.scrollContainerViewTo(x, y); |
} |
@@ -1947,31 +1942,14 @@ public class AwContents { |
} |
@CalledByNative |
- private void setContentsSize(int widthDip, int heightDip) { |
- mContentWidthDip = widthDip; |
- mContentHeightDip = heightDip; |
- } |
- |
- @CalledByNative |
- private void setPageScaleFactorAndLimits( |
+ private void updateScrollState(int maxContainerViewScrollOffsetX, |
+ int maxContainerViewScrollOffsetY, int contentWidthDip, int contentHeightDip, |
float pageScaleFactor, float minPageScaleFactor, float maxPageScaleFactor) { |
- if (mPageScaleFactor == pageScaleFactor && |
- mMinPageScaleFactor == minPageScaleFactor && |
- mMaxPageScaleFactor == maxPageScaleFactor) { |
- return; |
- } |
- mMinPageScaleFactor = minPageScaleFactor; |
- mMaxPageScaleFactor = maxPageScaleFactor; |
- if (mPageScaleFactor != pageScaleFactor) { |
- float oldPageScaleFactor = mPageScaleFactor; |
- mPageScaleFactor = pageScaleFactor; |
- // NOTE: if this ever needs to become synchronous then we need to make sure the scroll |
- // bounds are correctly updated before calling the method, otherwise embedder code that |
- // attempts to scroll on scale change might cause weird results. |
- mContentsClient.getCallbackHelper().postOnScaleChangedScaled( |
- (float)(oldPageScaleFactor * mDIPScale), |
- (float)(mPageScaleFactor * mDIPScale)); |
- } |
+ mContentWidthDip = contentWidthDip; |
+ mContentHeightDip = contentHeightDip; |
+ mScrollOffsetManager.setMaxScrollOffset(maxContainerViewScrollOffsetX, |
+ maxContainerViewScrollOffsetY); |
+ setPageScaleFactorAndLimits(pageScaleFactor, minPageScaleFactor, maxPageScaleFactor); |
} |
@CalledByNative |
@@ -1997,6 +1975,27 @@ public class AwContents { |
// Helper methods |
// ------------------------------------------------------------------------------------------- |
+ private void setPageScaleFactorAndLimits( |
+ float pageScaleFactor, float minPageScaleFactor, float maxPageScaleFactor) { |
+ if (mPageScaleFactor == pageScaleFactor && |
+ mMinPageScaleFactor == minPageScaleFactor && |
+ mMaxPageScaleFactor == maxPageScaleFactor) { |
+ return; |
+ } |
+ mMinPageScaleFactor = minPageScaleFactor; |
+ mMaxPageScaleFactor = maxPageScaleFactor; |
+ if (mPageScaleFactor != pageScaleFactor) { |
+ float oldPageScaleFactor = mPageScaleFactor; |
+ mPageScaleFactor = pageScaleFactor; |
+ // NOTE: if this ever needs to become synchronous then we need to make sure the scroll |
+ // bounds are correctly updated before calling the method, otherwise embedder code that |
+ // attempts to scroll on scale change might cause weird results. |
+ mContentsClient.getCallbackHelper().postOnScaleChangedScaled( |
+ (float)(oldPageScaleFactor * mDIPScale), |
+ (float)(mPageScaleFactor * mDIPScale)); |
+ } |
+ } |
+ |
private void saveWebArchiveInternal(String path, final ValueCallback<String> callback) { |
if (path == null || mNativeAwContents == 0) { |
ThreadUtils.runOnUiThread(new Runnable() { |