#include "components/viz/common/hit_test/hit_test_query.h"
#include <sstream>
#include <string>
#include <string_view>
#include <utility>
#include "base/containers/stack.h"
#include "base/strings/string_util.h"
#include "components/viz/common/features.h"
#include "components/viz/common/hit_test/hit_test_region_list.h"
#include "ui/gfx/geometry/point_conversions.h"
#include "ui/gfx/geometry/rect_f.h"
namespace viz {
namespace {
bool RegionMatchEventSource(EventSource event_source, uint32_t flags) { … }
bool CheckChildCount(int32_t child_count, size_t child_count_max) { … }
const std::string GetFlagNames(uint32_t flag) { … }
const std::string GetAsyncHitTestReasons(uint32_t async_hit_test_reasons) { … }
}
HitTestQuery::HitTestQuery() = default;
HitTestQuery::~HitTestQuery() = default;
void HitTestQuery::OnAggregatedHitTestRegionListUpdated(
const std::vector<AggregatedHitTestRegion>& hit_test_data) { … }
Target HitTestQuery::FindTargetForLocation(
EventSource event_source,
const gfx::PointF& location_in_root) const { … }
Target HitTestQuery::FindTargetForLocationStartingFrom(
EventSource event_source,
const gfx::PointF& location,
const FrameSinkId& frame_sink_id) const { … }
bool HitTestQuery::TransformLocationForTarget(
const std::vector<FrameSinkId>& target_ancestors,
const gfx::PointF& location_in_root,
gfx::PointF* transformed_location) const { … }
bool HitTestQuery::GetTransformToTarget(const FrameSinkId& target,
gfx::Transform* transform) const { … }
bool HitTestQuery::ContainsActiveFrameSinkId(
const FrameSinkId& frame_sink_id) const { … }
Target HitTestQuery::FindTargetForLocationStartingFromImpl(
EventSource event_source,
const gfx::PointF& location,
const FrameSinkId& frame_sink_id,
bool is_location_relative_to_parent) const { … }
bool HitTestQuery::FindTargetInRegionForLocation(
EventSource event_source,
const gfx::PointF& location,
size_t region_index,
bool is_location_relative_to_parent,
const FrameSinkId& root_view_frame_sink_id,
Target* target) const { … }
bool HitTestQuery::TransformLocationForTargetRecursively(
const std::vector<FrameSinkId>& target_ancestors,
size_t target_ancestor,
size_t region_index,
gfx::PointF* location_in_target) const { … }
bool HitTestQuery::GetTransformToTargetRecursively(
const FrameSinkId& target,
size_t region_index,
gfx::Transform* transform) const { … }
std::string HitTestQuery::PrintHitTestData() const { … }
bool HitTestQuery::FindIndexOfFrameSink(const FrameSinkId& id,
size_t* index) const { … }
}