网页图片长按HitTest流程分析

<div data-v-459d48d0="" class="li-poster-wrap">
<img data-v-459d48d0="" src="https://p2.ssl.qhimgs1.com/bdr/460__/t04016f5149e31e0b22.jpg" data-width="1920" data-height="1080" style="width: 166px; height: 93px;"> 
<div data-v-459d48d0="" class="img-tag-wrap"><!----> <!----> <!---->
</div>
<::after></::after>
</div>

HitTestResultForTap

  1. 命中测试结果管理
    HitTestResult 类用于存储和管理命中测试的结果,包括被命中的节点、位置信息、滚动条状态等。
    支持点测试和矩形测试两种方式,分别用于处理鼠标点击和区域选择等交互场景。
  2. 节点信息获取
    提供了多个方法来获取被命中节点的信息,如 InnerNode()、InnerPossiblyPseudoNode()、InnerElement() 等。
    支持获取伪元素节点和图像映射区域的相关节点。
  3. 位置信息管理
    提供了多个方法来获取和设置命中点的位置信息,如 PointInInnerNodeFrame()、LocalPoint() 等。
    支持将位置信息转换为不同坐标系下的表示。
  4. 滚动条和滚动角处理
    提供了方法来检测是否命中了滚动条或滚动角,如 GetScrollbar()、IsOverScrollCorner() 等。
    支持设置和获取滚动条的状态。
  5. URL 和媒体处理
    提供了方法来获取与命中节点相关的 URL 和媒体信息,如 AbsoluteImageURL()、AbsoluteMediaURL() 等。
    支持获取媒体流描述符和媒体源句柄。
  6. 缓存和性能优化
    支持命中测试结果的缓存,通过 CacheValues() 和 PopulateFromCachedResult() 方法来提高性能。
    提供了 IsCacheable() 和 SetCacheable() 方法来控制是否缓存结果。
  7. 列表测试结果管理
    提供了方法来管理基于列表的测试结果,如 AddNodeToListBasedTestResult()、ListBasedTestResult() 等。
    支持将矩形测试结果解析为单个目标。
  8. 特殊处理
    提供了 SetToShadowHostIfInUAShadowRoot() 方法来处理用户代理阴影根节点的情况。
    支持 USE_360HACK 宏定义下的特殊处理,如 AbsoluteBackgroundImageURL() 方法。
  9. 内存管理
    使用了 Blink 的内存管理机制,如 Member 和 HeapLinkedHashSet,确保对象在垃圾回收时正确处理。
  10. 调试和开发支持
    提供了多个 FIXME 和 TODO 注释,指出了代码中需要改进或优化的地方。
    总结
    HitTestResult 类是 Blink 渲染引擎中处理用户交互的核心组件之一,它负责管理和提供命中测试的相关信息,支持多种交互场景和性能优化策略。通过这个类,Blink 能够高效地处理用户的点击、选择等操作,并确保渲染结果的正确性和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JT-Blink

因热爱创作,打赏促优质创作。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值