void GraphicsLayerChromium::updateChildList() { WebLayer* childHost = m_transformLayer ? m_transformLayer.get() : m_layer->layer(); childHost->removeAllChildren(); clearContentsLayerIfUnregistered(); if (m_transformLayer) { // Add the primary layer first. Even if we have negative z-order children, the primary layer always comes behind. childHost->addChild(m_layer->layer()); } else if (m_contentsLayer) { // FIXME: add the contents layer in the correct order with negative z-order children. // This does not cause visible rendering issues because currently contents layers are only used // for replaced elements that don't have children. childHost->addChild(m_contentsLayer); } const Vector<GraphicsLayer*>& childLayers = children(); size_t numChildren = childLayers.size(); for (size_t i = 0; i < numChildren; ++i) { GraphicsLayerChromium* curChild = static_cast<GraphicsLayerChromium*>(childLayers[i]); childHost->addChild(curChild->platformLayer()); } if (m_linkHighlight) childHost->addChild(m_linkHighlight->layer()); if (m_transformLayer && m_contentsLayer) { // If we have a transform layer, then the contents layer is parented in the // primary layer (which is itself a child of the transform layer). m_layer->layer()->removeAllChildren(); m_layer->layer()->addChild(m_contentsLayer); } }
void GraphicsLayer::setContentsOpaque(bool opaque) { m_contentsOpaque = opaque; m_layer->layer()->setOpaque(m_contentsOpaque); m_contentLayerDelegate->setOpaque(m_contentsOpaque); clearContentsLayerIfUnregistered(); if (m_contentsLayer) m_contentsLayer->setOpaque(opaque); }
void GraphicsLayer::updateChildList() { WebLayer* childHost = m_layer->layer(); childHost->removeAllChildren(); clearContentsLayerIfUnregistered(); if (m_contentsLayer) { // FIXME: add the contents layer in the correct order with negative z-order children. // This does not cause visible rendering issues because currently contents layers are only used // for replaced elements that don't have children. childHost->addChild(m_contentsLayer); } for (size_t i = 0; i < m_children.size(); ++i) childHost->addChild(m_children[i]->platformLayer()); for (size_t i = 0; i < m_linkHighlights.size(); ++i) childHost->addChild(m_linkHighlights[i]->layer()); }
WebLayer* GraphicsLayer::contentsLayerIfRegistered() { clearContentsLayerIfUnregistered(); return m_contentsLayer; }