зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1509552 - Ensure MobileViewportManager doesn't choose a zoom level that makes the content smaller than the visual viewport. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D13315 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
647b04cbf1
Коммит
58464bd083
|
@ -324,8 +324,21 @@ MobileViewportManager::UpdateResolution(const nsViewportInfo& aViewportInfo,
|
|||
} else { // aType == UpdateType::ContentSize
|
||||
MOZ_ASSERT(aType == UpdateType::ContentSize);
|
||||
MOZ_ASSERT(aDisplayWidthChangeRatio.isNothing());
|
||||
if (zoom != intrinsicScale) {
|
||||
newZoom = Some(intrinsicScale);
|
||||
|
||||
// We try to scale down the contents only IF the document has no initial-scale
|
||||
// AND IF it's the initial paint AND IF it's not restored documents.
|
||||
if (mIsFirstPaint && !mRestoreResolution &&
|
||||
!aViewportInfo.IsDefaultZoomValid()) {
|
||||
if (zoom != intrinsicScale) {
|
||||
newZoom = Some(intrinsicScale);
|
||||
}
|
||||
} else {
|
||||
// Even in other scenarios, we want to ensure that zoom level is
|
||||
// not _smaller_ than the intrinsic scale, otherwise we might be
|
||||
// trying to show regions where there is no content to show.
|
||||
if (zoom < intrinsicScale) {
|
||||
newZoom = Some(intrinsicScale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -516,13 +529,6 @@ MobileViewportManager::ShrinkToDisplaySizeIfNeeded(
|
|||
return;
|
||||
}
|
||||
|
||||
// We try to scale down the contents only IF the document has no initial-scale
|
||||
// AND IF it's the initial paint AND IF it's not restored documents.
|
||||
if (aViewportInfo.IsDefaultZoomValid() ||
|
||||
!mIsFirstPaint || mRestoreResolution) {
|
||||
return;
|
||||
}
|
||||
|
||||
nsIScrollableFrame* rootScrollableFrame =
|
||||
mPresShell->GetRootScrollFrameAsScrollable();
|
||||
if (rootScrollableFrame) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче