Changeset 126498 in webkit


Ignore:
Timestamp:
Aug 23, 2012 4:14:21 PM (12 years ago)
Author:
jamesr@google.com
Message:

[chromium] Remove WebLayer::setChildren API
https://bugs.webkit.org/show_bug.cgi?id=94749

Reviewed by Adrienne Walker.

Source/Platform:

This is redundant with removeAllChildren() / addChild() and less efficient.

  • chromium/public/WebLayer.h:

(WebLayer):

Source/WebCore:

Sets up the child list directly instead of building an intermediate buffer. Covered by compositing/*

  • platform/graphics/chromium/GraphicsLayerChromium.cpp:

(WebCore::GraphicsLayerChromium::updateChildList):

Source/WebKit/chromium:

  • src/WebLayer.cpp:
Location:
trunk/Source
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/Platform/ChangeLog

    r126378 r126498  
     12012-08-22  James Robinson  <jamesr@chromium.org>
     2
     3        [chromium] Remove WebLayer::setChildren API
     4        https://bugs.webkit.org/show_bug.cgi?id=94749
     5
     6        Reviewed by Adrienne Walker.
     7
     8        This is redundant with removeAllChildren() / addChild() and less efficient.
     9
     10        * chromium/public/WebLayer.h:
     11        (WebLayer):
     12
    1132012-08-22  James Robinson  <jamesr@chromium.org>
    214
  • trunk/Source/Platform/chromium/public/WebLayer.h

    r126378 r126498  
    6868    virtual void insertChild(WebLayer*, size_t index) = 0;
    6969    virtual void replaceChild(WebLayer* reference, WebLayer* newLayer) = 0;
    70     virtual void setChildren(const WebVector<WebLayer*>&) = 0;
    7170    virtual void removeFromParent() = 0;
    7271    virtual void removeAllChildren() = 0;
  • trunk/Source/WebCore/ChangeLog

    r126496 r126498  
     12012-08-22  James Robinson  <jamesr@chromium.org>
     2
     3        [chromium] Remove WebLayer::setChildren API
     4        https://bugs.webkit.org/show_bug.cgi?id=94749
     5
     6        Reviewed by Adrienne Walker.
     7
     8        Sets up the child list directly instead of building an intermediate buffer. Covered by compositing/*
     9
     10        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
     11        (WebCore::GraphicsLayerChromium::updateChildList):
     12
    1132012-08-23  Dominic Mazzoni  <dmazzoni@google.com>
    214
  • trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp

    r126378 r126498  
    598598void GraphicsLayerChromium::updateChildList()
    599599{
    600     Vector<WebLayer*> newChildren;
     600    WebLayer* childHost = m_transformLayer ? m_transformLayer.get() : m_layer->layer();
     601    childHost->removeAllChildren();
    601602
    602603    if (m_transformLayer) {
    603604        // Add the primary layer first. Even if we have negative z-order children, the primary layer always comes behind.
    604         newChildren.append(m_layer->layer());
     605        childHost->addChild(m_layer->layer());
    605606    } else if (m_contentsLayer) {
    606607        // FIXME: add the contents layer in the correct order with negative z-order children.
    607608        // This does not cause visible rendering issues because currently contents layers are only used
    608609        // for replaced elements that don't have children.
    609         newChildren.append(m_contentsLayer);
     610        childHost->addChild(m_contentsLayer);
    610611    }
    611612
     
    615616        GraphicsLayerChromium* curChild = static_cast<GraphicsLayerChromium*>(childLayers[i]);
    616617
    617         newChildren.append(curChild->platformLayer());
     618        childHost->addChild(curChild->platformLayer());
    618619    }
    619620
    620621    if (m_linkHighlight)
    621         newChildren.append(m_linkHighlight->layer());
    622 
    623     for (size_t i = 0; i < newChildren.size(); ++i)
    624         newChildren[i]->removeFromParent();
    625 
    626     WebVector<WebLayer*> newWebChildren;
    627     newWebChildren.assign(newChildren.data(), newChildren.size());
    628 
    629     if (m_transformLayer) {
    630         m_transformLayer->setChildren(newWebChildren);
    631 
    632         if (m_contentsLayer) {
    633             // If we have a transform layer, then the contents layer is parented in the
    634             // primary layer (which is itself a child of the transform layer).
    635             m_layer->layer()->removeAllChildren();
    636             m_layer->layer()->addChild(m_contentsLayer);
    637         }
    638     } else
    639         m_layer->layer()->setChildren(newWebChildren);
     622        childHost->addChild(m_linkHighlight->layer());
     623
     624    if (m_transformLayer && m_contentsLayer) {
     625        // If we have a transform layer, then the contents layer is parented in the
     626        // primary layer (which is itself a child of the transform layer).
     627        m_layer->layer()->removeAllChildren();
     628        m_layer->layer()->addChild(m_contentsLayer);
     629    }
    640630}
    641631
  • trunk/Source/WebKit/chromium/ChangeLog

    r126482 r126498  
     12012-08-22  James Robinson  <jamesr@chromium.org>
     2
     3        [chromium] Remove WebLayer::setChildren API
     4        https://bugs.webkit.org/show_bug.cgi?id=94749
     5
     6        Reviewed by Adrienne Walker.
     7
     8        * src/WebLayer.cpp:
     9
    1102012-08-23  Dana Jansens  <danakj@chromium.org>
    211
  • trunk/Source/WebKit/chromium/src/WebLayerImpl.cpp

    r126378 r126498  
    124124}
    125125
    126 void WebLayerImpl::setChildren(const WebVector<WebLayer*>& webChildren)
    127 {
    128     Vector<RefPtr<LayerChromium> > children(webChildren.size());
    129     for (size_t i = 0; i < webChildren.size(); ++i)
    130         children[i] = static_cast<WebLayerImpl*>(webChildren[i])->layer();
    131     m_layer->setChildren(children);
    132 }
    133 
    134126void WebLayerImpl::removeFromParent()
    135127{
  • trunk/Source/WebKit/chromium/src/WebLayerImpl.h

    r126378 r126498  
    4848    virtual void insertChild(WebLayer*, size_t index) OVERRIDE;
    4949    virtual void replaceChild(WebLayer* reference, WebLayer* newLayer) OVERRIDE;
    50     virtual void setChildren(const WebVector<WebLayer*>&) OVERRIDE;
    5150    virtual void removeFromParent() OVERRIDE;
    5251    virtual void removeAllChildren() OVERRIDE;
Note: See TracChangeset for help on using the changeset viewer.