ensureOwner method
取一个可用于 probe 的 owner。
PB-050-07 / DG-050-05 结论 1:owner/root 已可用时零额外帧。读到的是调用 开始时 engine 已提交的 semantics tree,不承诺再刷新一帧——响应与文档都不得 把它说成「命令后下一帧的树」。首次启用 semantics、owner 被替换或 root 缺失 时才进入有界恢复。
Implementation
Future<SemanticsOwner?> ensureOwner({
Duration frameTimeout = const Duration(seconds: 2),
}) {
if (_ownerState == _OwnerState.disposed) {
return Future<SemanticsOwner?>.value();
}
final SemanticsOwner? ready = _refreshOwnerNow();
if (_ownerState == _OwnerState.ready) {
return Future<SemanticsOwner?>.value(ready);
}
return _awaitOwner(frameTimeout);
}