Chromium IME Note

chromium中提供了一个IME模块,作用就是用来处理在使用过程中与输入相关的事件,该模块的特殊性,要么处理事件,要么将事件抛到chromium的事件处理器。


过程如下:

页面上click事件发生--->系统得到事件--->传递到chromium的Platform Event Source模块--->Platform Event Dispatcher--->UI 或者页面。


chromium的事件传送机制通过观察者模式来实现:

PlatformEventSource :事件源,也就是chromium事件开始传递的起点;

EventDispatcher:事件传递者,具有传递事件的功能,提供了传递事件以及事件处理的接口,是所有事件传递类的基类;


事件处理过程:

1、在PlatformEventSource中维护一个EventDispatcher vector,每一个dispatcher创建时,通过该类的静态放法,注册到vector中;

2、当有事件到达时,开始遍历dispatcher列表:首先调用dispatcher的CanDispatchEvent方法,判断可以传递,则传递,否则,跳过当前dispatcher;

3、dispatcher的CanDispatchEvent方法返回true,则调用dispatcher的DispatchEvent方法,重写这个方法,就可以按照实际的需求处理事件了。

4、事件处理完成,返回事件不再继续传递的值,则此次事件处理流程结束,若返回的不是停止传送值,则PlatformEventSource则将事件传送到下一个dispatcher。

5、若最终事件没有得到处理,则被丢弃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值