RESOLVED FIXED 155130
Fix lifetime issues regarding WebVideoFullscreenInterfaceMac
https://bugs.webkit.org/show_bug.cgi?id=155130
Summary Fix lifetime issues regarding WebVideoFullscreenInterfaceMac
Ada Chan
Reported 2016-03-07 13:41:32 PST
When WebVideoFullscreenManager::setUpVideoControlsManager() is called, we always clean up the old WebVideoFullscreenInterfaceContext associated with the context id associated with the current video controls manager and make a new one. This is an issue if we are in the middle of handling fullscreen and it's still using that WebVideoFullscreenInterfaceContext, since a lot of fullscreen state is kept with that particular context. Before the introduction of video controls manager, we only use WebVideoFullscreenInterfaceContext for full screen, so it's ok to invalidate the interface right after we exit the fullscreen mode. But now we need to do more bookkeeping since video controls manager also depends on WebVideoFullscreenInterfaceContext. We should keep track of a "client count" for each context ID so we'll only remove it from the context map when there are all clients are done with it.
Attachments
Patch (16.94 KB, patch)
2016-03-07 14:02 PST, Ada Chan
bdakin: review+
Ada Chan
Comment 1 2016-03-07 13:42:09 PST
Ada Chan
Comment 2 2016-03-07 14:02:36 PST
WebKit Commit Bot
Comment 3 2016-03-07 14:04:36 PST
Attachment 273209 [details] did not pass style-queue: ERROR: Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.mm:336: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 5 files If any of these errors are false positives, please file a bug against check-webkit-style.
Beth Dakin
Comment 4 2016-03-07 15:27:21 PST
This looks good to me. It would be nice to get confirmation fro Jer or Eric that this seems okay.
Jer Noble
Comment 5 2016-03-08 10:57:03 PST
Comment on attachment 273209 [details] Patch This is a little weird, since we're essentially reproducing RefCounted. It seems like we should be able to do this just through the reference count of the final Model and Interface objects. But we can revisit that idea later, and maybe even use this m_clientCount concept to do so. LGTM.
Ada Chan
Comment 6 2016-03-08 11:34:04 PST
(In reply to comment #5) > Comment on attachment 273209 [details] > Patch > > This is a little weird, since we're essentially reproducing RefCounted. It > seems like we should be able to do this just through the reference count of > the final Model and Interface objects. But we can revisit that idea later, > and maybe even use this m_clientCount concept to do so. LGTM. Yep, agreed. Committed: http://trac.webkit.org/changeset/197787
Note You need to log in before you can comment on or make changes to this bug.