-
Notifications
You must be signed in to change notification settings - Fork 6k
Always keep thread merged when there are platform views. #18245
Conversation
// Returns true if there are embedded in the scene at current frame | ||
// Or there will be embedded in the next frame. | ||
// TODO(cyanglaz): https://github.com/flutter/flutter/issues/56474 | ||
// Remove this method is the issue above is resloved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove this method when the issue above is resolved?.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
The |
* 7b64067 Use 'message' as the parameter name in FlMessageCodec::encode_message (flutter/engine#18253) * 429beae Roll src/third_party/skia 3d2c41b773f6..3ebadcc98eab (14 commits) (flutter/engine#18333) * 66ba3a7 Roll src/third_party/dart 2bf325900586..d6fed1f62444 (1 commits) (flutter/engine#18334) * 2f8495a Completely disable paving the device on Fuchsia (flutter/engine#18340) * 006dbfc Always keep thread merged when there are platform views. (flutter/engine#18245) * 21b4d2f [web] Fix paragraph positioning (flutter/engine#18329) * efdc099 Re-enable Fuchsia tests (flutter/engine#18342) * ae2222f Revert "Re-enable Fuchsia tests (#18342)" (flutter/engine#18345)
(combing through recent untested PRs) |
AFAIK, we don't have a way to unit test this with current infra setup. (Maybe my knowledge is outdated) As far as integration tests, we probably can't test this behavior specifically. I will make sure to add an e2e test for the whole thread merging process before actually enabling the thread merging. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup
The unobstructed platform view has been implemented. So there is a chance the overlay UIView can change even there is no changes in the platform view itself. Operations in overlay also needs to be run on the platform thread.
Because the current implementation depends on the "paint" traversal to know if an overlay is going to change; and we need to merge the thread before the "paint" traversal. There is no clean way to un-merged the threads when there are platform views.
This PR keeps the threads merged until the platform views are move out of the scene completely.
issue:
flutter/flutter#56474