WebKit Bugzilla
Attachment 373233 Details for
Bug 199338
: [iOS] Exiting from fullscreen scrolls to top of page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199338-20190701073643.patch (text/plain), 5.94 KB, created by
Eric Carlson
on 2019-07-01 07:36:44 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eric Carlson
Created:
2019-07-01 07:36:44 PDT
Size:
5.94 KB
patch
obsolete
>Subversion Revision: 247005 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index c939e2a01f7760a205b58a9ffd53f48b6dacaa74..dd4d8e2fec64b5ce2ac3f4b7b7622296fbd831f2 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,17 @@ >+2019-07-01 Eric Carlson <eric.carlson@apple.com> >+ >+ [iOS] Exiting from fullscreen scrolls to top of page >+ https://bugs.webkit.org/show_bug.cgi?id=199338 >+ <rdar://problem/51273017> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: >+ (-[WKFullScreenWindowController _completedExitFullScreen]): Restore scroll position. >+ Hide window after restoring scroll position. >+ (-[WKFullScreenWindowController _exitFullscreenImmediately]): Drive-by fix: remove code >+ already also done in _completedExitFullScreen. >+ > 2019-07-01 Carlos Garcia Campos <cgarcia@igalia.com> > > WebSockets: add support for sending blob messages when using web sockets platform APIs >diff --git a/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm b/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm >index 405dc060f9d580eee12e17cdd58697818aa03437..6263165c537c7c8aabb93e8b7b4e5ff3531b761e 100644 >--- a/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm >+++ b/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm >@@ -735,14 +735,15 @@ static RetainPtr<UIWindow> makeWindowFromView(UIView *) > > [CATransaction commit]; > >- [_window setHidden:YES]; >- _window = nil; >- > if (auto* manager = self._manager) { >+ manager->restoreScrollPosition(); > manager->setAnimatingFullScreen(false); > manager->didExitFullScreen(); > } > >+ [_window setHidden:YES]; >+ _window = nil; >+ > if (_repaintCallback) { > _repaintCallback->invalidate(WebKit::CallbackBase::Error::OwnerWasInvalidated); > ASSERT(!_repaintCallback); >@@ -873,10 +874,6 @@ static RetainPtr<UIWindow> makeWindowFromView(UIView *) > WebKit::replaceViewWithView(_webViewPlaceholder.get(), webView.get()); > if (auto* page = [webView _page]) > page->setSuppressVisibilityUpdates(false); >- if (manager) { >- manager->didExitFullScreen(); >- manager->setAnimatingFullScreen(false); >- } > _webViewPlaceholder = nil; > } > >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 95da3c20f1fdc3c61d8a423089d7537bf01c3185..ec2b02f1e5a5fefb3bf9606a674559382dfac8a5 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-07-01 Eric Carlson <eric.carlson@apple.com> >+ >+ [iOS] Exiting from fullscreen scrolls to top of page >+ https://bugs.webkit.org/show_bug.cgi?id=199338 >+ <rdar://problem/51273017> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * fullscreen/fullscreen-restore-scroll-position-expected.txt: Added. >+ * fullscreen/fullscreen-restore-scroll-position.html: Added. >+ > 2019-06-30 Fujii Hironori <Hironori.Fujii@sony.com> > > Unreviewed, rolling out r246959. >diff --git a/LayoutTests/fullscreen/fullscreen-restore-scroll-position-expected.txt b/LayoutTests/fullscreen/fullscreen-restore-scroll-position-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..692fca257edcfdc72926590be9b3f6c8384c963b >--- /dev/null >+++ b/LayoutTests/fullscreen/fullscreen-restore-scroll-position-expected.txt >@@ -0,0 +1,6 @@ >+This tests that page scroll is restored after fullscreen. Press any key to start the test. >+ >+ >+EVENT(load) >+EXPECTED ((document.scrollingElement.scrollTop === originalScroll) == 'true') OK >+ >diff --git a/LayoutTests/fullscreen/fullscreen-restore-scroll-position.html b/LayoutTests/fullscreen/fullscreen-restore-scroll-position.html >new file mode 100644 >index 0000000000000000000000000000000000000000..07ab44f630cc9bd9383eaee3104067adb825f2b6 >--- /dev/null >+++ b/LayoutTests/fullscreen/fullscreen-restore-scroll-position.html >@@ -0,0 +1,61 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>fullscreen-restore-scroll-position</title> >+ <script src="../media/video-test.js"></script> >+ <script src="../media/media-file.js"></script> >+ <style> >+ html, body, #spacer { >+ height: 100%; >+ } >+ video { >+ width: 600px; >+ height: 400px; >+ } >+ </style> >+ <script> >+ >+ let originalScroll = 0; >+ >+ waitFor(window, 'load').then(async event => { >+ >+ if (Element.prototype.webkitRequestFullScreen == undefined) { >+ logResult(false, "Element.prototype.webkitRequestFullScreen == undefined"); >+ endTest(); >+ returh; >+ } >+ >+ video = document.getElementsByTagName('video')[0]; >+ video.src = findMediaFile('video', '../media/content/test'); >+ waitFor(video, 'canplaythrough', true); >+ >+ originalScroll = document.body.clientHeight; >+ document.scrollingElement.scrollTop = originalScroll; >+ originalScroll = document.scrollingElement.scrollTop; >+ >+ document.onwebkitfullscreenchange = async (event) => { >+ >+ if (document.webkitIsFullScreen) { >+ await sleepFor(100); >+ document.webkitCancelFullScreen(); >+ return; >+ } >+ >+ await testExpectedEventually("(document.scrollingElement.scrollTop === originalScroll)", true); >+ if (window.testRunner) >+ testRunner.notifyDone(); >+ }; >+ >+ runWithKeyDown(() => document.getElementById('parent').webkitRequestFullScreen()); >+ }); >+ >+ </script> >+ </head> >+ <body> >+ <p>This tests that page scroll is restored after fullscreen. Press any key to start the test.</p> >+ <div id="spacer"></div> >+ <div id="parent"> >+ <video id="video" controls><video> >+ </div> >+ </body> >+</html>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199338
: 373233