예제 #1
0
PassRefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> > InspectorLayerTreeAgent::buildLayerTree()
{
    PaintLayerCompositor* compositor = paintLayerCompositor();
    if (!compositor || !compositor->inCompositingMode())
        return nullptr;

    LayerIdToNodeIdMap layerIdToNodeIdMap;
    RefPtr<TypeBuilder::Array<TypeBuilder::LayerTree::Layer> > layers = TypeBuilder::Array<TypeBuilder::LayerTree::Layer>::create();
    buildLayerIdToNodeIdMap(compositor->rootLayer(), layerIdToNodeIdMap);
    gatherGraphicsLayers(rootGraphicsLayer(), layerIdToNodeIdMap, layers);
    return layers.release();
}
예제 #2
0
std::unique_ptr<Array<protocol::LayerTree::Layer>>
InspectorLayerTreeAgent::buildLayerTree() {
  PaintLayerCompositor* compositor = paintLayerCompositor();
  if (!compositor || !compositor->inCompositingMode())
    return nullptr;

  LayerIdToNodeIdMap layerIdToNodeIdMap;
  std::unique_ptr<Array<protocol::LayerTree::Layer>> layers =
      Array<protocol::LayerTree::Layer>::create();
  buildLayerIdToNodeIdMap(compositor->rootLayer(), layerIdToNodeIdMap);
  int scrollingLayerId = m_inspectedFrames->root()
                             ->view()
                             ->layerForScrolling()
                             ->platformLayer()
                             ->id();
  bool haveBlockingWheelEventHandlers =
      m_inspectedFrames->root()->chromeClient().eventListenerProperties(
          WebEventListenerClass::MouseWheel) ==
      WebEventListenerProperties::Blocking;

  gatherGraphicsLayers(rootGraphicsLayer(), layerIdToNodeIdMap, layers,
                       haveBlockingWheelEventHandlers, scrollingLayerId);
  return layers;
}