Title: [218147] trunk/Source/WebCore
Revision
218147
Author
commit-qu...@webkit.org
Date
2017-06-12 15:39:11 -0700 (Mon, 12 Jun 2017)

Log Message

Remove watchdog timer from WebVideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=173272
rdar://problem/32260378

Patch by Jeremy Jones <jere...@apple.com> on 2017-06-12
Reviewed by Jer Noble.

No new tests because no effect on DOM.

WebVideoFullscreenInterfaceAVKit's watchdog attempts to clean-up fullscreen if the page becomes unresponsive.
However, it is just calling exitfullscreen(), which initiates the animation, but leaves the fullscreen window
in place and doesn't initiate cleanup. This leaves the browser in an unusable state since all events will still
be captured by the fullscren window.

This change uses the same method of hiding fullscreen window as switching tabs does. This will
hide the fullscreen winodw and controller, leaving the browser available for interaction, and the page
can take its time to properly cleanup the fullscreen window while hidden.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::watchdogTimerFired):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (218146 => 218147)


--- trunk/Source/WebCore/ChangeLog	2017-06-12 22:37:59 UTC (rev 218146)
+++ trunk/Source/WebCore/ChangeLog	2017-06-12 22:39:11 UTC (rev 218147)
@@ -1,3 +1,25 @@
+2017-06-12  Jeremy Jones  <jere...@apple.com>
+
+        Remove watchdog timer from WebVideoFullscreenInterfaceAVKit
+        https://bugs.webkit.org/show_bug.cgi?id=173272
+        rdar://problem/32260378
+
+        Reviewed by Jer Noble.
+
+        No new tests because no effect on DOM.
+
+        WebVideoFullscreenInterfaceAVKit's watchdog attempts to clean-up fullscreen if the page becomes unresponsive.
+        However, it is just calling exitfullscreen(), which initiates the animation, but leaves the fullscreen window
+        in place and doesn't initiate cleanup. This leaves the browser in an unusable state since all events will still
+        be captured by the fullscren window.
+
+        This change uses the same method of hiding fullscreen window as switching tabs does. This will
+        hide the fullscreen winodw and controller, leaving the browser available for interaction, and the page
+        can take its time to properly cleanup the fullscreen window while hidden.
+
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        (WebVideoFullscreenInterfaceAVKit::watchdogTimerFired):
+
 2017-06-12  Alex Christensen  <achristen...@webkit.org>
 
         Modernize UserScript.h

Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (218146 => 218147)


--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2017-06-12 22:37:59 UTC (rev 218146)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm	2017-06-12 22:39:11 UTC (rev 218147)
@@ -998,9 +998,10 @@
 
 NO_RETURN_DUE_TO_ASSERT void WebVideoFullscreenInterfaceAVKit::watchdogTimerFired()
 {
-    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::watchdogTimerFired(%p) - no exit fullscreen response in %gs; forcing exit", this);
+    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::watchdogTimerFired(%p) - no exit fullscreen response in %gs; forcing fullscreen hidden.", this, defaultWatchdogTimerInterval);
     ASSERT_NOT_REACHED();
-    exitFullscreen(IntRect());
+    [m_window setHidden:YES];
+    [[m_playerViewController view] setHidden:YES];
 }
 
 void WebVideoFullscreenInterfaceAVKit::setMode(HTMLMediaElementEnums::VideoFullscreenMode mode)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to