| Index: components/viz/client/client_layer_tree_frame_sink.cc
|
| diff --git a/components/viz/client/client_layer_tree_frame_sink.cc b/components/viz/client/client_layer_tree_frame_sink.cc
|
| index 795f7d2581b48eeb69c138a73b68b80a06154b39..3c5cd39ed6e995da585b31ce32913b969102cbcb 100644
|
| --- a/components/viz/client/client_layer_tree_frame_sink.cc
|
| +++ b/components/viz/client/client_layer_tree_frame_sink.cc
|
| @@ -9,6 +9,7 @@
|
| #include "cc/output/begin_frame_args.h"
|
| #include "cc/output/compositor_frame.h"
|
| #include "cc/output/layer_tree_frame_sink_client.h"
|
| +#include "components/viz/client/hit_test_data_provider.h"
|
| #include "components/viz/client/local_surface_id_provider.h"
|
|
|
| namespace viz {
|
| @@ -21,12 +22,14 @@ ClientLayerTreeFrameSink::ClientLayerTreeFrameSink(
|
| std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source,
|
| cc::mojom::CompositorFrameSinkPtrInfo compositor_frame_sink_info,
|
| cc::mojom::CompositorFrameSinkClientRequest client_request,
|
| + std::unique_ptr<HitTestDataProvider> hit_test_data_provider,
|
| std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider,
|
| bool enable_surface_synchronization)
|
| : cc::LayerTreeFrameSink(std::move(context_provider),
|
| std::move(worker_context_provider),
|
| gpu_memory_buffer_manager,
|
| shared_bitmap_manager),
|
| + hit_test_data_provider_(std::move(hit_test_data_provider)),
|
| local_surface_id_provider_(std::move(local_surface_id_provider)),
|
| synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)),
|
| compositor_frame_sink_info_(std::move(compositor_frame_sink_info)),
|
| @@ -42,9 +45,11 @@ ClientLayerTreeFrameSink::ClientLayerTreeFrameSink(
|
| std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source,
|
| cc::mojom::CompositorFrameSinkPtrInfo compositor_frame_sink_info,
|
| cc::mojom::CompositorFrameSinkClientRequest client_request,
|
| + std::unique_ptr<HitTestDataProvider> hit_test_data_provider,
|
| std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider,
|
| bool enable_surface_synchronization)
|
| : cc::LayerTreeFrameSink(std::move(vulkan_context_provider)),
|
| + hit_test_data_provider_(std::move(hit_test_data_provider)),
|
| local_surface_id_provider_(std::move(local_surface_id_provider)),
|
| synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)),
|
| compositor_frame_sink_info_(std::move(compositor_frame_sink_info)),
|
| @@ -114,6 +119,21 @@ void ClientLayerTreeFrameSink::SubmitCompositorFrame(
|
| local_surface_id_provider_->GetLocalSurfaceIdForFrame(frame);
|
| }
|
|
|
| + if (hit_test_data_provider_) {
|
| + std::unique_ptr<HitTestDataProvider::HitTestRegionList> hit_test_data =
|
| + hit_test_data_provider_->GetHitTestData();
|
| + if (!hit_test_data->empty()) {
|
| + LOG(ERROR) << __FUNCTION__ << "--- " << hit_test_data->size() << " ---";
|
| + int i = 0;
|
| + for (const auto& region : *hit_test_data) {
|
| + LOG(ERROR) << __FUNCTION__ << "[" << i++ << "] flags=" << region.flags
|
| + << " cid=" << region.frame_sink_id.client_id()
|
| + << " sid=" << region.frame_sink_id.sink_id()
|
| + << " wid=" << (region.window_id & 0xFFFF)
|
| + << " rect=" << region.rect.ToString();
|
| + }
|
| + }
|
| + }
|
| compositor_frame_sink_->SubmitCompositorFrame(local_surface_id_,
|
| std::move(frame));
|
| }
|
|
|