Changeset 87652 in webkit


Ignore:
Timestamp:
May 29, 2011 2:28:24 PM (13 years ago)
Author:
jer.noble@apple.com
Message:

2011-05-29 Jer Noble <jer.noble@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.

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r87644 r87652  
     12011-05-29  Jer Noble  <jer.noble@apple.com>
     2
     3        Reviewed by Simon Fraser.
     4
     5        REGRESSION (r86924): webkitRequestFullScreen does not work properly (black screen, can’t interact)
     6        https://bugs.webkit.org/show_bug.cgi?id=61710
     7
     8        When taking the documentElement full screen, we don't create a RenderFullScreen
     9        object and thus never enter accelerated compositing mode for the animation. Tell
     10        the WKFullScreenWindowController to enter accelerated compositing mode anyway
     11        (with an empty layer context) so as to fulfill its expectations and cause the
     12        full screen animation to complete.
     13
     14        * UIProcess/mac/WKFullScreenWindowController.mm:
     15        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Added a
     16            comment explaining when we expect the animation to complete.
     17        (-[WKFullScreenWindowController enterAcceleratedCompositingMode:WebKit::]):
     18            Remove an ASSERT which is no longer valid.
     19        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
     20        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Tell the UIProcess
     21            to enter then exit full-screen mode.
     22        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.
     23
    1242011-05-29  Darin Adler  <darin@apple.com>
    225
  • trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm

    r87644 r87652  
    273273        [self _manager]->didEnterFullScreen();
    274274    }
     275
     276    // Complete the animation once -(void)exitCompositingMode is called.
    275277}
    276278
     
    363365    if (_layerHostingView)
    364366        return;
    365 
    366     ASSERT(!layerTreeContext.isEmpty());
    367367   
    368368    // Create an NSView that will host our layer tree.
  • trunk/Source/WebKit2/WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm

    r87456 r87652  
    191191    if (!m_rootLayer || m_rootLayer->children().isEmpty()) {
    192192        // If we don't have a root layer, we can't animate in and out of full screen
     193        m_page->send(Messages::WebFullScreenManagerProxy::EnterAcceleratedCompositingMode(m_layerTreeContext));
    193194        this->beganEnterFullScreenAnimation();
    194195        this->finishedEnterFullScreenAnimation(true);
     196        m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
    195197        return;
    196198    }
     
    212214    if (!m_rootLayer || m_rootLayer->children().isEmpty()) {
    213215        // If we don't have a root layer, we can't animate in and out of full screen
     216        m_page->send(Messages::WebFullScreenManagerProxy::EnterAcceleratedCompositingMode(m_layerTreeContext));
    214217        this->beganExitFullScreenAnimation();
    215218        this->finishedExitFullScreenAnimation(true);
     219        m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
    216220        return;
    217221    }
Note: See TracChangeset for help on using the changeset viewer.