Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

External view embedder can tell if embedded views have mutated #9653

Merged
merged 9 commits into from
Jul 3, 2019

Conversation

iskakaushik
Copy link
Contributor

No description provided.

@iskakaushik iskakaushik requested review from amirh and cyanglaz July 2, 2019 23:39
@iskakaushik iskakaushik changed the title External view embedded can tell if embedded views have mutated External view embedded can tell if embedder views have mutated Jul 2, 2019
@iskakaushik iskakaushik changed the title External view embedded can tell if embedder views have mutated External view embedder can tell if embedded views have mutated Jul 2, 2019
@iskakaushik iskakaushik force-pushed the embedded_views_mutated branch from 69ea711 to 5700290 Compare July 2, 2019 23:49
Copy link
Contributor

@cyanglaz cyanglaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM overall, left some comments.

if (!views_to_recomposite_.empty()) {
return true;
}
if (active_composition_order_.size() != composition_order_.size()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: can we just simply compare if (active_composition_order_ != composition_order_) return true; I might be missing something in c++

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -183,6 +183,8 @@ class ExternalViewEmbedder {
public:
ExternalViewEmbedder() = default;

virtual bool HaveEmbeddedViewsMutated() = 0;
Copy link
Contributor

@cyanglaz cyanglaz Jul 3, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe name it EmbeddedViewsWillMutateAtTheCurrentFrame? Since this method has to be called before the mutation actually happens at the same frame, we probably want to to have the name indicate that. This method is not going to give the desired result if called after CompositeEmbeddedView. Although EmbeddedViewsWillMutateAtTheCurrentFrame is too wordy.
I'm not good with names tho @amirh might have some thoughts.
Also, maybe document it somewhere to explain when the method should be invoked to get the desired result.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or maybe just EmbeddedViewsWillMutate and document explain the current frame part.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not very satisfied with the name. having CurrentFrame is misleading as we could process multiple layer trees in the current frame. I added a comment saying that this needs to be called after pre-roll.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe: HasPendingViewOperations?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

@@ -183,6 +183,8 @@ class ExternalViewEmbedder {
public:
ExternalViewEmbedder() = default;

virtual bool HaveEmbeddedViewsMutated() = 0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe: HasPendingViewOperations?

@@ -183,6 +183,10 @@ class ExternalViewEmbedder {
public:
ExternalViewEmbedder() = default;

// This will return true after pre-roll if any of the embedded views
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't have to be in this PR, but we will need a way to clear active_composition_order_ if we're redoing the frame, maybe by adding something like CancelFrame here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, will do it as a follow-up PR.

@iskakaushik iskakaushik merged commit d637f29 into flutter:master Jul 3, 2019
@iskakaushik iskakaushik deleted the embedded_views_mutated branch July 3, 2019 14:28
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 3, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 4, 2019
engine-flutter-autoroll added a commit to flutter/flutter that referenced this pull request Jul 4, 2019
flutter/engine@7d3e722...3c51a7b

git log 7d3e722..3c51a7b --no-merges --oneline
3c51a7b Roll src/third_party/skia 11eb847a2080..857c9f955edb (2 commits) (flutter/engine#9676)
7f828dd Raster now returns an enum rather than boolean (flutter/engine#9661)
11b6afe  Roll src/third_party/dart 67ab3be10d...b5aeaa6796 (flutter/engine#9675)
3c4dbe2 Revert " Roll src/third_party/dart 67ab3be10d...43891316ca (#9670)" (flutter/engine#9673)
5e596f2  Roll src/third_party/dart 67ab3be10d...43891316ca (flutter/engine#9670)
46a2239 Roll src/third_party/skia 5b52c52141ac..11eb847a2080 (6 commits) (flutter/engine#9671)
b84f89b Allow embedders to add callbacks for responses to platform messages from the framework. (flutter/engine#9655)
8dac2e9 Begin separating macOS engine from view controller (flutter/engine#9654)
d3616c7 Roll src/third_party/skia 0e0113dcbd9a..5b52c52141ac (8 commits) (flutter/engine#9665)
cea2c36 Mutators Stack refactoring (flutter/engine#9663)
6a8782f Roll src/third_party/skia 93eeff578b08..0e0113dcbd9a (9 commits) (flutter/engine#9662)
791143f ExternalViewEmbedder can CancelFrame after pre-roll (flutter/engine#9660)
d637f29 External view embedder can tell if embedded views have mutated (flutter/engine#9653)
ceee3d7 Roll src/third_party/skia 38ae3f42fec1..93eeff578b08 (1 commits) (flutter/engine#9659)
d757290 Roll src/third_party/skia febc162c7898..38ae3f42fec1 (3 commits) (flutter/engine#9658)
58133ab Roll src/third_party/skia 3de5c6388142..febc162c7898 (2 commits) (flutter/engine#9657)
29342dd Roll src/third_party/skia 1e2cb444e0c1..3de5c6388142 (8 commits) (flutter/engine#9656)
b547356 Pipeline allows continuations that can produce to front (flutter/engine#9652)
8306ee6 Move the mutators stack handling to preroll (flutter/engine#9651)
511b9f2 Roll src/third_party/skia 215ff3325230..1e2cb444e0c1 (12 commits) (flutter/engine#9650)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff ([email protected]), and stop
the roller if necessary.
johnsonmh pushed a commit to johnsonmh/flutter that referenced this pull request Jul 30, 2019
flutter/engine@7d3e722...3c51a7b

git log 7d3e722..3c51a7b --no-merges --oneline
3c51a7b Roll src/third_party/skia 11eb847a2080..857c9f955edb (2 commits) (flutter/engine#9676)
7f828dd Raster now returns an enum rather than boolean (flutter/engine#9661)
11b6afe  Roll src/third_party/dart 67ab3be10d...b5aeaa6796 (flutter/engine#9675)
3c4dbe2 Revert &flutter#34; Roll src/third_party/dart 67ab3be10d...43891316ca (flutter#9670)&flutter#34; (flutter/engine#9673)
5e596f2  Roll src/third_party/dart 67ab3be10d...43891316ca (flutter/engine#9670)
46a2239 Roll src/third_party/skia 5b52c52141ac..11eb847a2080 (6 commits) (flutter/engine#9671)
b84f89b Allow embedders to add callbacks for responses to platform messages from the framework. (flutter/engine#9655)
8dac2e9 Begin separating macOS engine from view controller (flutter/engine#9654)
d3616c7 Roll src/third_party/skia 0e0113dcbd9a..5b52c52141ac (8 commits) (flutter/engine#9665)
cea2c36 Mutators Stack refactoring (flutter/engine#9663)
6a8782f Roll src/third_party/skia 93eeff578b08..0e0113dcbd9a (9 commits) (flutter/engine#9662)
791143f ExternalViewEmbedder can CancelFrame after pre-roll (flutter/engine#9660)
d637f29 External view embedder can tell if embedded views have mutated (flutter/engine#9653)
ceee3d7 Roll src/third_party/skia 38ae3f42fec1..93eeff578b08 (1 commits) (flutter/engine#9659)
d757290 Roll src/third_party/skia febc162c7898..38ae3f42fec1 (3 commits) (flutter/engine#9658)
58133ab Roll src/third_party/skia 3de5c6388142..febc162c7898 (2 commits) (flutter/engine#9657)
29342dd Roll src/third_party/skia 1e2cb444e0c1..3de5c6388142 (8 commits) (flutter/engine#9656)
b547356 Pipeline allows continuations that can produce to front (flutter/engine#9652)
8306ee6 Move the mutators stack handling to preroll (flutter/engine#9651)
511b9f2 Roll src/third_party/skia 215ff3325230..1e2cb444e0c1 (12 commits) (flutter/engine#9650)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff ([email protected]), and stop
the roller if necessary.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants