Commit 0de9638b authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Avoid scrolling when entering fullscreen

When entering fullscreen we shouldn't need to set scroll to 0,0. This
fixes fullscreening an element that has scroll offset.

BUG=693075,684920

Change-Id: I2acf27eb2641731d580865d38e1a1495f6aee7de
Reviewed-on: https://chromium-review.googlesource.com/1191664
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: default avatarPhilip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587120}
parent 6ab174bd
<!DOCTYPE html>
<style>
body {
height: 10000px;
background: grey;
}
</style>
<title>fullscreen root block scrolling</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<div>This page tests that entering fullscreen doesn't adjust the scroll offset</div>
<script>
async_test(t => {
document.scrollingElement.scrollTop = 300;
document.onfullscreenchange = t.step_func_done(() => {
assert_equals(document.fullscreenElement, document.documentElement);
assert_not_equals(document.scrollingElement.scrollTop, 0);
});
document.documentElement.addEventListener('click', e => {
document.documentElement.requestFullscreen();
}, {once: true});
test_driver.click(document.documentElement);
});
</script>
...@@ -75,8 +75,6 @@ void FullscreenController::DidEnterFullscreen() { ...@@ -75,8 +75,6 @@ void FullscreenController::DidEnterFullscreen() {
UpdatePageScaleConstraints(false); UpdatePageScaleConstraints(false);
web_view_base_->SetPageScaleFactor(1.0f); web_view_base_->SetPageScaleFactor(1.0f);
if (web_view_base_->MainFrame()->IsWebLocalFrame())
web_view_base_->MainFrame()->ToWebLocalFrame()->SetScrollOffset(WebSize());
web_view_base_->SetVisualViewportOffset(FloatPoint()); web_view_base_->SetVisualViewportOffset(FloatPoint());
state_ = State::kFullscreen; state_ = State::kFullscreen;
...@@ -152,6 +150,7 @@ void FullscreenController::EnterFullscreen(LocalFrame& frame, ...@@ -152,6 +150,7 @@ void FullscreenController::EnterFullscreen(LocalFrame& frame,
// restore a previous set. This can happen if we exit and quickly reenter // restore a previous set. This can happen if we exit and quickly reenter
// fullscreen without performing a layout. // fullscreen without performing a layout.
if (state_ == State::kInitial) { if (state_ == State::kInitial) {
// TODO(dtapuska): Remove these fields https://crbug.com/878773
initial_page_scale_factor_ = web_view_base_->PageScaleFactor(); initial_page_scale_factor_ = web_view_base_->PageScaleFactor();
initial_scroll_offset_ = initial_scroll_offset_ =
web_view_base_->MainFrame()->IsWebLocalFrame() web_view_base_->MainFrame()->IsWebLocalFrame()
......
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