Changeset 87657 in webkit


Ignore:
Timestamp:
May 29, 2011 5:19:51 PM (13 years ago)
Author:
mitz@apple.com
Message:

<rdar://problem/9515650> 30 second rewind button obscured in fullscreen controller when video uses custom inline controls
https://bugs.webkit.org/show_bug.cgi?id=61714

Reviewed by Darin Adler.

  • dom/Document.cpp:

(WebCore::Document::webkitDidEnterFullScreenForElement): Call didBecomeFullscreenElement() on the
new full screen element.
(WebCore::Document::webkitWillExitFullScreenForElement): Call willStopBeingFullscreenElement() on
the full screen element.

  • dom/Element.h:

(WebCore::Element::didBecomeFullscreenElement): Added with a default implementation that does nothing.
(WebCore::Element::willStopBeingFullscreenElement): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didBecomeFullscreenElement): Added this override, which calls
MediaControls::enteredFullscreen().
(WebCore::HTMLMediaElement::willStopBeingFullscreenElement): Added this override, which calls
MediaControls::exitedFullscreen().

  • html/HTMLMediaElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Removed calls to
enteredFullscreen() and exitedFullscreen() from here, since they are now called in response to
changes to the fullscreen-ness of the element.

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r87655 r87657  
     12011-05-29  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        <rdar://problem/9515650> 30 second rewind button obscured in fullscreen controller when video uses custom inline controls
     6        https://bugs.webkit.org/show_bug.cgi?id=61714
     7
     8        * dom/Document.cpp:
     9        (WebCore::Document::webkitDidEnterFullScreenForElement): Call didBecomeFullscreenElement() on the
     10        new full screen element.
     11        (WebCore::Document::webkitWillExitFullScreenForElement): Call willStopBeingFullscreenElement() on
     12        the full screen element.
     13        * dom/Element.h:
     14        (WebCore::Element::didBecomeFullscreenElement): Added with a default implementation that does nothing.
     15        (WebCore::Element::willStopBeingFullscreenElement): Ditto.
     16        * html/HTMLMediaElement.cpp:
     17        (WebCore::HTMLMediaElement::didBecomeFullscreenElement): Added this override, which calls
     18        MediaControls::enteredFullscreen().
     19        (WebCore::HTMLMediaElement::willStopBeingFullscreenElement): Added this override, which calls
     20        MediaControls::exitedFullscreen().
     21        * html/HTMLMediaElement.h:
     22        * html/shadow/MediaControlElements.cpp:
     23        (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Removed calls to
     24        enteredFullscreen() and exitedFullscreen() from here, since they are now called in response to
     25        changes to the fullscreen-ness of the element.
     26
    1272011-05-29  Darin Adler  <darin@apple.com>
    228
  • trunk/Source/WebCore/dom/Document.cpp

    r87643 r87657  
    49064906void Document::webkitDidEnterFullScreenForElement(Element*)
    49074907{
    4908     ASSERT(m_fullScreenElement);
     4908    m_fullScreenElement->didBecomeFullscreenElement();
    49094909
    49104910    if (m_fullScreenRenderer) {
     
    49254925    setContainsFullScreenElementRecursively(ownerElement(), false);
    49264926   
     4927    m_fullScreenElement->willStopBeingFullscreenElement();
     4928
    49274929    if (m_fullScreenRenderer) {
    49284930        setAnimatingFullScreen(true);
  • trunk/Source/WebCore/dom/Element.h

    r86491 r87657  
    280280    virtual void privateBrowsingStateDidChange() { }
    281281
     282    virtual void didBecomeFullscreenElement() { }
     283    virtual void willStopBeingFullscreenElement() { }
     284
    282285    bool isFinishedParsingChildren() const { return isParsingChildrenFinished(); }
    283286    virtual void finishParsingChildren();
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r87539 r87657  
    25572557}
    25582558
     2559void HTMLMediaElement::didBecomeFullscreenElement()
     2560{
     2561    if (hasMediaControls())
     2562        mediaControls()->enteredFullscreen();
     2563}
     2564
     2565void HTMLMediaElement::willStopBeingFullscreenElement()
     2566{
     2567    if (hasMediaControls())
     2568        mediaControls()->exitedFullscreen();
     2569}
     2570
    25592571PlatformMedia HTMLMediaElement::platformMedia() const
    25602572{
  • trunk/Source/WebCore/html/HTMLMediaElement.h

    r87539 r87657  
    228228   
    229229    virtual void defaultEventHandler(Event*);
    230    
     230
     231    virtual void didBecomeFullscreenElement();
     232    virtual void willStopBeingFullscreenElement();
     233
    231234    // ActiveDOMObject functions.
    232235    virtual bool canSuspend() const;
  • trunk/Source/WebCore/html/shadow/MediaControlElements.cpp

    r87655 r87657  
    809809        // screen behavior.
    810810        if (document()->settings() && document()->settings()->fullScreenEnabled()) {
    811             if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == mediaElement()) {
     811            if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == mediaElement())
    812812                document()->webkitCancelFullScreen();
    813                 m_controls->exitedFullscreen();
    814             } else {
     813            else
    815814                document()->requestFullScreenForElement(mediaElement(), 0, Document::ExemptIFrameAllowFulScreenRequirement);
    816                 m_controls->enteredFullscreen();
    817             }
    818815        } else
    819816#endif
Note: See TracChangeset for help on using the changeset viewer.