[Webkit-unassigned] [Bug 203105] VRDisplay should not prevent entering the back/forward cache

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Oct 29 08:21:28 PDT 2019


--- Comment #3 from Chris Dumez <cdumez at apple.com> ---
(In reply to Sergio Villar Senin from comment #2)
> Chris could you add a little bit more context?

We are working on making the back/forward cache (formerly known as the page cache) 100% successful at caching pages. As a result of this, we no longer allow ActiveDOMObjects to prevent caching. ALL ActiveDOMObject (including VRDisplay) need to suspend correctly.

Currently, any page which uses a VRDisplay will not be able to enter the back/forward cache because of this code:
// FIXME: This should never prevent entering the back/forward cache.
bool VRDisplay::shouldPreventEnteringBackForwardCache_DEPRECATED() const
    return true;

This method needs to be removed to allow the page to enter the back/forward cache. Then you'll likely need to override ActiveDOMObject's suspend() and resume() to implement correct suspension. Looking at VRDisplay, it is likely the following needs to be done:
1. Instead of dispatching events synchronously, append tasks to the WindowEventLoop to dispatch them. The WindowEventLoop correctly suspends while in the cache.
2. Call suspend() / resume() on m_scriptedAnimationController to suspend animations while in the cache
3. Maybe call stopPresenting() on suspension? I don't know much about VRDisplay.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20191029/a550de38/attachment.htm>

More information about the webkit-unassigned mailing list