Merge "Rename a data storage object to better reflect its intended usage."

This commit is contained in:
Derek Sollenberger
2010-06-28 10:23:07 -07:00
committed by Android (Google) Code Review
4 changed files with 81 additions and 81 deletions

View File

@@ -6033,11 +6033,9 @@ public class WebView extends AbsoluteLayout
spawnContentScrollTo(msg.arg1, msg.arg2);
break;
case UPDATE_ZOOM_RANGE: {
WebViewCore.RestoreState restoreState
= (WebViewCore.RestoreState) msg.obj;
WebViewCore.ViewState viewState = (WebViewCore.ViewState) msg.obj;
// mScrollX contains the new minPrefWidth
mZoomManager.updateZoomRange(restoreState, getViewWidth(),
restoreState.mScrollX);
mZoomManager.updateZoomRange(viewState, getViewWidth(), viewState.mScrollX);
break;
}
case NEW_PICTURE_MSG_ID: {
@@ -6051,12 +6049,12 @@ public class WebView extends AbsoluteLayout
final WebViewCore.DrawData draw = (WebViewCore.DrawData) msg.obj;
final Point viewSize = draw.mViewPoint;
WebViewCore.RestoreState restoreState = draw.mRestoreState;
boolean hasRestoreState = restoreState != null;
if (hasRestoreState) {
mZoomManager.restoreZoomState(draw);
WebViewCore.ViewState viewState = draw.mViewState;
boolean isPictureAfterFirstLayout = viewState != null;
if (isPictureAfterFirstLayout) {
mZoomManager.onFirstLayout(draw);
if (!mDrawHistory) {
setContentScrollTo(restoreState.mScrollX, restoreState.mScrollY);
setContentScrollTo(viewState.mScrollX, viewState.mScrollY);
// As we are on a new page, remove the WebTextView. This
// is necessary for page loads driven by webkit, and in
// particular when the user was on a password field, so
@@ -6090,7 +6088,7 @@ public class WebView extends AbsoluteLayout
if (draw.mFocusSizeChanged && inEditingMode()) {
mFocusSizeChanged = true;
}
if (hasRestoreState) {
if (isPictureAfterFirstLayout) {
mViewManager.postReadyToDrawAll();
}
break;

View File

@@ -1738,11 +1738,11 @@ final class WebViewCore {
// Used to suspend drawing.
private boolean mDrawIsPaused;
// mRestoreState is set in didFirstLayout(), and reset in the next
// webkitDraw after passing it to the UI thread.
private RestoreState mRestoreState = null;
// mInitialViewState is set by didFirstLayout() and then reset in the
// next webkitDraw after passing the state to the UI thread.
private ViewState mInitialViewState = null;
static class RestoreState {
static class ViewState {
float mMinScale;
float mMaxScale;
float mViewScale;
@@ -1762,8 +1762,8 @@ final class WebViewCore {
Point mViewPoint;
Point mWidthHeight;
int mMinPrefWidth;
RestoreState mRestoreState; // only non-null if it is for the first
// picture set after the first layout
// only non-null if it is for the first picture set after the first layout
ViewState mViewState;
boolean mFocusSizeChanged;
}
@@ -1788,9 +1788,9 @@ final class WebViewCore {
: mViewportWidth),
nativeGetContentMinPrefWidth());
}
if (mRestoreState != null) {
draw.mRestoreState = mRestoreState;
mRestoreState = null;
if (mInitialViewState != null) {
draw.mViewState = mInitialViewState;
mInitialViewState = null;
}
if (DebugFlags.WEB_VIEW_CORE) Log.v(LOGTAG, "webkitDraw NEW_PICTURE_MSG_ID");
Message.obtain(mWebView.mPrivateHandler,
@@ -2065,12 +2065,12 @@ final class WebViewCore {
if (mWebView == null) return;
boolean updateRestoreState = standardLoad || mRestoredScale > 0;
setupViewport(updateRestoreState);
boolean updateViewState = standardLoad || mRestoredScale > 0;
setupViewport(updateViewState);
// if updateRestoreState is true, ViewManager.postReadyToDrawAll() will
// be called after the WebView restore the state. If updateRestoreState
// be called after the WebView updates its state. If updateRestoreState
// is false, start to draw now as it is ready.
if (!updateRestoreState) {
if (!updateViewState) {
mWebView.mViewManager.postReadyToDrawAll();
}
@@ -2096,7 +2096,7 @@ final class WebViewCore {
}
}
private void setupViewport(boolean updateRestoreState) {
private void setupViewport(boolean updateViewState) {
// set the viewport settings from WebKit
setViewportSettingsFromNative();
@@ -2148,17 +2148,17 @@ final class WebViewCore {
}
// if mViewportWidth is 0, it means device-width, always update.
if (mViewportWidth != 0 && !updateRestoreState) {
RestoreState restoreState = new RestoreState();
restoreState.mMinScale = mViewportMinimumScale / 100.0f;
restoreState.mMaxScale = mViewportMaximumScale / 100.0f;
restoreState.mDefaultScale = adjust;
if (mViewportWidth != 0 && !updateViewState) {
ViewState viewState = new ViewState();
viewState.mMinScale = mViewportMinimumScale / 100.0f;
viewState.mMaxScale = mViewportMaximumScale / 100.0f;
viewState.mDefaultScale = adjust;
// as mViewportWidth is not 0, it is not mobile site.
restoreState.mMobileSite = false;
viewState.mMobileSite = false;
// for non-mobile site, we don't need minPrefWidth, set it as 0
restoreState.mScrollX = 0;
viewState.mScrollX = 0;
Message.obtain(mWebView.mPrivateHandler,
WebView.UPDATE_ZOOM_RANGE, restoreState).sendToTarget();
WebView.UPDATE_ZOOM_RANGE, viewState).sendToTarget();
return;
}
@@ -2179,32 +2179,31 @@ final class WebViewCore {
} else {
webViewWidth = Math.round(viewportWidth * mCurrentViewScale);
}
mRestoreState = new RestoreState();
mRestoreState.mMinScale = mViewportMinimumScale / 100.0f;
mRestoreState.mMaxScale = mViewportMaximumScale / 100.0f;
mRestoreState.mDefaultScale = adjust;
mRestoreState.mScrollX = mRestoredX;
mRestoreState.mScrollY = mRestoredY;
mRestoreState.mMobileSite = (0 == mViewportWidth);
mInitialViewState = new ViewState();
mInitialViewState.mMinScale = mViewportMinimumScale / 100.0f;
mInitialViewState.mMaxScale = mViewportMaximumScale / 100.0f;
mInitialViewState.mDefaultScale = adjust;
mInitialViewState.mScrollX = mRestoredX;
mInitialViewState.mScrollY = mRestoredY;
mInitialViewState.mMobileSite = (0 == mViewportWidth);
if (mRestoredScale > 0) {
mRestoreState.mViewScale = mRestoredScale / 100.0f;
mInitialViewState.mViewScale = mRestoredScale / 100.0f;
if (mRestoredTextWrapScale > 0) {
mRestoreState.mTextWrapScale =
mRestoredTextWrapScale / 100.0f;
mInitialViewState.mTextWrapScale = mRestoredTextWrapScale / 100.0f;
} else {
mRestoreState.mTextWrapScale = mRestoreState.mViewScale;
mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale;
}
} else {
if (mViewportInitialScale > 0) {
mRestoreState.mViewScale = mRestoreState.mTextWrapScale =
mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale =
mViewportInitialScale / 100.0f;
} else if (mViewportWidth > 0 && mViewportWidth < webViewWidth) {
mRestoreState.mViewScale = mRestoreState.mTextWrapScale =
mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale =
(float) webViewWidth / mViewportWidth;
} else {
mRestoreState.mTextWrapScale = adjust;
mInitialViewState.mTextWrapScale = adjust;
// 0 will trigger WebView to turn on zoom overview mode
mRestoreState.mViewScale = 0;
mInitialViewState.mViewScale = 0;
}
}
@@ -2245,15 +2244,15 @@ final class WebViewCore {
// mViewScale as 0 means it is in zoom overview mode. So we don't
// know the exact scale. If mRestoredScale is non-zero, use it;
// otherwise just use mTextWrapScale as the initial scale.
data.mScale = mRestoreState.mViewScale == 0
data.mScale = mInitialViewState.mViewScale == 0
? (mRestoredScale > 0 ? mRestoredScale / 100.0f
: mRestoreState.mTextWrapScale)
: mRestoreState.mViewScale;
: mInitialViewState.mTextWrapScale)
: mInitialViewState.mViewScale;
if (DebugFlags.WEB_VIEW_CORE) {
Log.v(LOGTAG, "setupViewport"
+ " mRestoredScale=" + mRestoredScale
+ " mViewScale=" + mRestoreState.mViewScale
+ " mTextWrapScale=" + mRestoreState.mTextWrapScale
+ " mViewScale=" + mInitialViewState.mViewScale
+ " mTextWrapScale=" + mInitialViewState.mTextWrapScale
);
}
data.mWidth = Math.round(webViewWidth / data.mScale);
@@ -2266,7 +2265,7 @@ final class WebViewCore {
Math.round(mWebView.getViewHeight() / data.mScale)
: mCurrentViewHeight * data.mWidth / viewportWidth;
data.mTextWrapWidth = Math.round(webViewWidth
/ mRestoreState.mTextWrapScale);
/ mInitialViewState.mTextWrapScale);
data.mIgnoreHeight = false;
data.mAnchorX = data.mAnchorY = 0;
// send VIEW_SIZE_CHANGED to the front of the queue so that we

View File

@@ -720,15 +720,15 @@ class ZoomManager {
}
}
public void updateZoomRange(WebViewCore.RestoreState restoreState,
public void updateZoomRange(WebViewCore.ViewState viewState,
int viewWidth, int minPrefWidth) {
if (restoreState.mMinScale == 0) {
if (restoreState.mMobileSite) {
if (viewState.mMinScale == 0) {
if (viewState.mMobileSite) {
if (minPrefWidth > Math.max(0, viewWidth)) {
mMinZoomScale = (float) viewWidth / minPrefWidth;
mMinZoomScaleFixed = false;
} else {
mMinZoomScale = restoreState.mDefaultScale;
mMinZoomScale = viewState.mDefaultScale;
mMinZoomScaleFixed = true;
}
} else {
@@ -736,13 +736,13 @@ class ZoomManager {
mMinZoomScaleFixed = false;
}
} else {
mMinZoomScale = restoreState.mMinScale;
mMinZoomScale = viewState.mMinScale;
mMinZoomScaleFixed = true;
}
if (restoreState.mMaxScale == 0) {
if (viewState.mMaxScale == 0) {
mMaxZoomScale = mDefaultMaxZoomScale;
} else {
mMaxZoomScale = restoreState.mMaxScale;
mMaxZoomScale = viewState.mMaxScale;
}
}
@@ -776,18 +776,21 @@ class ZoomManager {
}
/**
* Updates zoom values when Webkit restores a old picture. This method
* Updates zoom values after Webkit completes the initial page layout. It
* is called when visiting a page for the first time as well as when the
* user navigates back to a page (in which case we may need to restore the
* zoom levels to the state they were when you left the page). This method
* should only be called from the UI thread's message handler.
*/
public void restoreZoomState(WebViewCore.DrawData drawData) {
public void onFirstLayout(WebViewCore.DrawData drawData) {
// precondition check
assert drawData != null;
assert drawData.mRestoreState != null;
assert drawData.mViewState != null;
assert mWebView.getSettings() != null;
WebViewCore.RestoreState restoreState = drawData.mRestoreState;
WebViewCore.ViewState viewState = drawData.mViewState;
final Point viewSize = drawData.mViewPoint;
updateZoomRange(restoreState, viewSize.x, drawData.mMinPrefWidth);
updateZoomRange(viewState, viewSize.x, drawData.mMinPrefWidth);
if (!mWebView.drawHistory()) {
final float scale;
@@ -796,9 +799,9 @@ class ZoomManager {
if (mInitialScale > 0) {
scale = mInitialScale;
reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale);
} else if (restoreState.mViewScale > 0) {
mTextWrapScale = restoreState.mTextWrapScale;
scale = restoreState.mViewScale;
} else if (viewState.mViewScale > 0) {
mTextWrapScale = viewState.mTextWrapScale;
scale = viewState.mViewScale;
reflowText = false;
} else {
WebSettings settings = mWebView.getSettings();
@@ -806,7 +809,7 @@ class ZoomManager {
mInitialZoomOverview = true;
scale = (float) mWebView.getViewWidth() / WebView.DEFAULT_VIEWPORT_WIDTH;
} else {
scale = restoreState.mTextWrapScale;
scale = viewState.mTextWrapScale;
}
reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale);
}

View File

@@ -61,9 +61,9 @@ public class ZoomManagerTest extends AndroidTestCase {
// test the case where the minZoomScale has changed to be < the default
float newDefaultScale = 1.50f;
float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale;
WebViewCore.RestoreState minRestoreState = new WebViewCore.RestoreState();
minRestoreState.mMinScale = minZoomScale - 0.1f;
zoomManager.updateZoomRange(minRestoreState, 0, 0);
WebViewCore.ViewState minViewState = new WebViewCore.ViewState();
minViewState.mMinScale = minZoomScale - 0.1f;
zoomManager.updateZoomRange(minViewState, 0, 0);
zoomManager.updateDefaultZoomDensity(newDefaultScale);
defaultScaleTest(newDefaultScale);
}
@@ -72,9 +72,9 @@ public class ZoomManagerTest extends AndroidTestCase {
// test the case where the minZoomScale has changed to be > the default
float newDefaultScale = 1.50f;
float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale;
WebViewCore.RestoreState minRestoreState = new WebViewCore.RestoreState();
minRestoreState.mMinScale = minZoomScale + 0.1f;
zoomManager.updateZoomRange(minRestoreState, 0, 0);
WebViewCore.ViewState minViewState = new WebViewCore.ViewState();
minViewState.mMinScale = minZoomScale + 0.1f;
zoomManager.updateZoomRange(minViewState, 0, 0);
zoomManager.updateDefaultZoomDensity(newDefaultScale);
defaultScaleTest(newDefaultScale);
}
@@ -83,9 +83,9 @@ public class ZoomManagerTest extends AndroidTestCase {
// test the case where the maxZoomScale has changed to be < the default
float newDefaultScale = 1.50f;
float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale;
WebViewCore.RestoreState maxRestoreState = new WebViewCore.RestoreState();
maxRestoreState.mMaxScale = maxZoomScale - 0.1f;
zoomManager.updateZoomRange(maxRestoreState, 0, 0);
WebViewCore.ViewState maxViewState = new WebViewCore.ViewState();
maxViewState.mMaxScale = maxZoomScale - 0.1f;
zoomManager.updateZoomRange(maxViewState, 0, 0);
zoomManager.updateDefaultZoomDensity(newDefaultScale);
defaultScaleTest(newDefaultScale);
}
@@ -94,9 +94,9 @@ public class ZoomManagerTest extends AndroidTestCase {
// test the case where the maxZoomScale has changed to be > the default
float newDefaultScale = 1.50f;
float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale;
WebViewCore.RestoreState maxRestoreState = new WebViewCore.RestoreState();
maxRestoreState.mMaxScale = maxZoomScale + 0.1f;
zoomManager.updateZoomRange(maxRestoreState, 0, 0);
WebViewCore.ViewState maxViewState = new WebViewCore.ViewState();
maxViewState.mMaxScale = maxZoomScale + 0.1f;
zoomManager.updateZoomRange(maxViewState, 0, 0);
zoomManager.updateDefaultZoomDensity(newDefaultScale);
defaultScaleTest(newDefaultScale);
}