Title: [87652] trunk/Source/WebKit2
Revision
87652
Author
jer.no...@apple.com
Date
2011-05-29 14:28:24 -0700 (Sun, 29 May 2011)

Log Message

2011-05-29  Jer Noble  <jer.no...@apple.com>

        Reviewed by Simon Fraser.

        REGRESSION (r86924): webkitRequestFullScreen does not work properly (black screen, can’t interact)
        https://bugs.webkit.org/show_bug.cgi?id=61710

        When taking the documentElement full screen, we don't create a RenderFullScreen
        object and thus never enter accelerated compositing mode for the animation. Tell
        the WKFullScreenWindowController to enter accelerated compositing mode anyway
        (with an empty layer context) so as to fulfill its expectations and cause the
        full screen animation to complete.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Added a
            comment explaining when we expect the animation to complete.
        (-[WKFullScreenWindowController enterAcceleratedCompositingMode:WebKit::]):
            Remove an ASSERT which is no longer valid.
        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Tell the UIProcess
            to enter then exit full-screen mode.
        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (87651 => 87652)


--- trunk/Source/WebKit2/ChangeLog	2011-05-29 21:01:13 UTC (rev 87651)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-29 21:28:24 UTC (rev 87652)
@@ -1,3 +1,26 @@
+2011-05-29  Jer Noble  <jer.no...@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        REGRESSION (r86924): webkitRequestFullScreen does not work properly (black screen, can’t interact)
+        https://bugs.webkit.org/show_bug.cgi?id=61710
+
+        When taking the documentElement full screen, we don't create a RenderFullScreen 
+        object and thus never enter accelerated compositing mode for the animation. Tell
+        the WKFullScreenWindowController to enter accelerated compositing mode anyway 
+        (with an empty layer context) so as to fulfill its expectations and cause the 
+        full screen animation to complete.
+
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Added a 
+            comment explaining when we expect the animation to complete.
+        (-[WKFullScreenWindowController enterAcceleratedCompositingMode:WebKit::]):
+            Remove an ASSERT which is no longer valid.
+        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
+        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Tell the UIProcess
+            to enter then exit full-screen mode.
+        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.
+
 2011-05-29  Darin Adler  <da...@apple.com>
 
         Reviewed by Dan Bernstein.

Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (87651 => 87652)


--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2011-05-29 21:01:13 UTC (rev 87651)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2011-05-29 21:28:24 UTC (rev 87652)
@@ -272,6 +272,8 @@
 #endif
         [self _manager]->didEnterFullScreen();
     }
+
+    // Complete the animation once -(void)exitCompositingMode is called.
 }
 
 - (void)exitFullScreen
@@ -362,8 +364,6 @@
 {
     if (_layerHostingView)
         return;
-
-    ASSERT(!layerTreeContext.isEmpty());
     
     // Create an NSView that will host our layer tree.
     _layerHostingView.adoptNS([[NSView alloc] initWithFrame:[[self window] frame]]);

Modified: trunk/Source/WebKit2/WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm (87651 => 87652)


--- trunk/Source/WebKit2/WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm	2011-05-29 21:01:13 UTC (rev 87651)
+++ trunk/Source/WebKit2/WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm	2011-05-29 21:28:24 UTC (rev 87652)
@@ -190,8 +190,10 @@
     
     if (!m_rootLayer || m_rootLayer->children().isEmpty()) {
         // If we don't have a root layer, we can't animate in and out of full screen
+        m_page->send(Messages::WebFullScreenManagerProxy::EnterAcceleratedCompositingMode(m_layerTreeContext));
         this->beganEnterFullScreenAnimation();
         this->finishedEnterFullScreenAnimation(true);
+        m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
         return;
     }
 
@@ -211,8 +213,10 @@
     
     if (!m_rootLayer || m_rootLayer->children().isEmpty()) {
         // If we don't have a root layer, we can't animate in and out of full screen
+        m_page->send(Messages::WebFullScreenManagerProxy::EnterAcceleratedCompositingMode(m_layerTreeContext));
         this->beganExitFullScreenAnimation();
         this->finishedExitFullScreenAnimation(true);
+        m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
         return;
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to