Bug 189648 - WebFullScreenManager triggers document leaks
Summary: WebFullScreenManager triggers document leaks
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: 186214
  Show dependency treegraph
 
Reported: 2018-09-15 11:30 PDT by Simon Fraser (smfr)
Modified: 2018-09-16 20:00 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2018-09-15 11:30:10 PDT
Forked from bug 189437:

Here's some logging for running media/modern-media-controls/css/webkit-cursor-visibility-auto-hide.html twice in a row:

WebFullScreenManager 0x6d22a3540 ctor
WebFullScreenManager 0x6d22a3540 enterFullScreenForElement(0x6cb000990)
WebFullScreenManager 0x6d22a3540 willEnterFullScreen() - element 0x6cb000990
Testing that control are shown in fullscreen when the controls attribute is not present.
PASS media.webkitDisplayingFullscreen is false
PASS media.webkitDisplayingFullscreen is true

WebFullScreenManager 0x6d22a3540 enterFullScreenForElement(0x6cf000990)
WebFullScreenManager 0x6d22a3540 willEnterFullScreen() - element 0x6cf000990
Testing that control are shown in fullscreen when the controls attribute is not present.
PASS media.webkitDisplayingFullscreen is false
PASS media.webkitDisplayingFullscreen is true
Comment 1 Radar WebKit Bug Importer 2018-09-15 11:30:50 PDT
<rdar://problem/44490412>
Comment 2 Simon Fraser (smfr) 2018-09-16 18:15:41 PDT
WebFrameLoaderClient::dispatchDidStartProvisionalLoad() should close the fullscreen when WTR navigates to about:blank. Not sure why that doesn't work.
Comment 3 Simon Fraser (smfr) 2018-09-16 20:00:15 PDT
Here's the problem:

WebFullScreenManager 0x6e9c7ad90 enterFullScreenForElement(0x6e3000990)
WebFullScreenManager 0x6e9c7ad90 willEnterFullScreen() - element 0x6e3000990
Document 0x6e1c02570 fullScreenElementRemoved() - fullscreen element 0x6e3000990
[ Test completes]
WebFullScreenManager 0x6e9c7ad90 didEnterFullScreen() - element 0x6e3000990

fullScreenElementRemoved() is called between will and didEnterFullscreen.