Changeset 94513 in webkit


Ignore:
Timestamp:
Sep 4, 2011 11:43:32 PM (13 years ago)
Author:
koz@chromium.org
Message:

Unreviewed, rolling out r94510.
http://trac.webkit.org/changeset/94510
https://bugs.webkit.org/show_bug.cgi?id=66531

Causes layout test crashes.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidExitFullScreenForElement):

  • dom/NodeRenderingContext.cpp:

(WebCore::wrapWithRenderFullScreen):
(WebCore::NodeRendererFactory::createRendererIfNeeded):

  • rendering/RenderFullScreen.cpp:

(RenderFullScreen::createFullScreenStyle):

  • rendering/RenderFullScreen.h:

LayoutTests:

  • plugins/fullscreen-plugins-dont-reload-expected.txt: Removed.
  • plugins/fullscreen-plugins-dont-reload.html: Removed.
Location:
trunk
Files:
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r94511 r94513  
     12011-09-04  James Kozianski  <koz@chromium.org>
     2
     3        Unreviewed, rolling out r94510.
     4        http://trac.webkit.org/changeset/94510
     5        https://bugs.webkit.org/show_bug.cgi?id=66531
     6
     7        Causes layout test crashes.
     8
     9        * plugins/fullscreen-plugins-dont-reload-expected.txt: Removed.
     10        * plugins/fullscreen-plugins-dont-reload.html: Removed.
     11
    1122011-09-04  Abhishek Arya  <inferno@chromium.org>
    213
  • trunk/Source/WebCore/ChangeLog

    r94512 r94513  
     12011-09-04  James Kozianski  <koz@chromium.org>
     2
     3        Unreviewed, rolling out r94510.
     4        http://trac.webkit.org/changeset/94510
     5        https://bugs.webkit.org/show_bug.cgi?id=66531
     6
     7        Causes layout test crashes.
     8
     9        * dom/Document.cpp:
     10        (WebCore::Document::webkitWillEnterFullScreenForElement):
     11        (WebCore::Document::webkitDidExitFullScreenForElement):
     12        * dom/NodeRenderingContext.cpp:
     13        (WebCore::wrapWithRenderFullScreen):
     14        (WebCore::NodeRendererFactory::createRendererIfNeeded):
     15        * rendering/RenderFullScreen.cpp:
     16        (RenderFullScreen::createFullScreenStyle):
     17        * rendering/RenderFullScreen.h:
     18
    1192011-09-04  Abhishek Arya  <inferno@chromium.org>
    220
  • trunk/Source/WebCore/dom/Document.cpp

    r94510 r94513  
    48884888
    48894889    if (m_fullScreenElement != documentElement())
    4890         RenderFullScreen::wrapRenderer(renderer, this);
     4890        m_fullScreenElement->detach();
    48914891
    48924892    m_fullScreenElement->setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(true);
     
    49394939    m_areKeysEnabledInFullScreen = false;
    49404940    setAnimatingFullScreen(false);
    4941    
     4941
    49424942    if (m_fullScreenRenderer)
    4943         m_fullScreenRenderer->unwrapRenderer();
     4943        m_fullScreenRenderer->remove();
     4944   
     4945    if (m_fullScreenElement != documentElement())
     4946        m_fullScreenElement->detach();
    49444947
    49454948    m_fullScreenChangeEventTargetQueue.append(m_fullScreenElement.release());
     4949    setFullScreenRenderer(0);
    49464950#if USE(ACCELERATED_COMPOSITING)
    49474951    page()->chrome()->client()->setRootFullScreenLayer(0);
  • trunk/Source/WebCore/dom/NodeRenderingContext.cpp

    r94510 r94513  
    321321}
    322322
     323#if ENABLE(FULLSCREEN_API)
     324static RenderObject* wrapWithRenderFullScreen(RenderObject* object, Document* document)
     325{
     326    RenderFullScreen* fullscreenRenderer = new (document->renderArena()) RenderFullScreen(document);
     327    fullscreenRenderer->setStyle(RenderFullScreen::createFullScreenStyle());
     328    // It's possible that we failed to create the new render and end up wrapping nothing.
     329    // We'll end up displaying a black screen, but Jer says this is expected.
     330    if (object)
     331        fullscreenRenderer->addChild(object);
     332    document->setFullScreenRenderer(fullscreenRenderer);
     333    if (fullscreenRenderer->placeholder())
     334        return fullscreenRenderer->placeholder();
     335    return fullscreenRenderer;
     336}
     337#endif
     338
    323339void NodeRendererFactory::createRendererIfNeeded()
    324340{
     
    341357#if ENABLE(FULLSCREEN_API)
    342358    if (document->webkitIsFullScreen() && document->webkitCurrentFullScreenElement() == node)
    343         newRenderer = RenderFullScreen::wrapRenderer(newRenderer, document);
     359        newRenderer = wrapWithRenderFullScreen(newRenderer, document);
    344360#endif
    345361
  • trunk/Source/WebCore/rendering/RenderFullScreen.cpp

    r94510 r94513  
    8080}
    8181
    82 static PassRefPtr<RenderStyle> createFullScreenStyle()
     82PassRefPtr<RenderStyle> RenderFullScreen::createFullScreenStyle()
    8383{
    8484    RefPtr<RenderStyle> fullscreenStyle = RenderStyle::createDefaultStyle();
     
    9898    fullscreenStyle->setWidth(Length(100.0, Percent));
    9999    fullscreenStyle->setHeight(Length(100.0, Percent));
    100     fullscreenStyle->setLeft(Length(0, WebCore::Fixed));
    101     fullscreenStyle->setTop(Length(0, WebCore::Fixed));
     100    fullscreenStyle->setLeft(Length(0, Fixed));
     101    fullscreenStyle->setTop(Length(0, Fixed));
    102102   
    103103    fullscreenStyle->setBackgroundColor(Color::black);
    104104   
    105105    return fullscreenStyle.release();
    106 }
    107 
    108 RenderObject* RenderFullScreen::wrapRenderer(RenderObject* object, Document* document)
    109 {
    110     RenderFullScreen* fullscreenRenderer = new (document->renderArena()) RenderFullScreen(document);
    111     fullscreenRenderer->setStyle(createFullScreenStyle());
    112     if (object) {
    113         if (RenderObject* parent = object->parent()) {
    114             parent->addChild(fullscreenRenderer, object);
    115             object->remove();
    116         }
    117         fullscreenRenderer->addChild(object);
    118     }
    119     document->setFullScreenRenderer(fullscreenRenderer);
    120     if (fullscreenRenderer->placeholder())
    121         return fullscreenRenderer->placeholder();
    122     return fullscreenRenderer;
    123 }
    124 
    125 void RenderFullScreen::unwrapRenderer()
    126 {
    127     RenderObject* wrappedRenderer = firstChild();
    128     if (wrappedRenderer) {
    129         wrappedRenderer->remove();
    130         RenderObject* holder = placeholder() ? placeholder() : this;
    131         RenderObject* parent = holder->parent();
    132         if (parent)
    133             parent->addChild(wrappedRenderer, holder);
    134     }
    135     remove();
    136     document()->setFullScreenRenderer(0);
    137106}
    138107
  • trunk/Source/WebCore/rendering/RenderFullScreen.h

    r94510 r94513  
    4242    void createPlaceholder(PassRefPtr<RenderStyle>, const IntRect& frameRect);
    4343
    44 
    45     static RenderObject* wrapRenderer(RenderObject* renderer, Document*);
    46     void unwrapRenderer();
     44    static PassRefPtr<RenderStyle> createFullScreenStyle();
    4745
    4846private:
Note: See TracChangeset for help on using the changeset viewer.