-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Read AndroidManifest.xml and emit manifest-impeller-(enabled|disabled) analytics
#150791
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
Conversation
| ? 'manifest-impeller-enabled' | ||
| : 'manifest-impeller-disabled'; | ||
| globals.analytics.send(Event.flutterBuildInfo( | ||
| label: buildLabel, |
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.
Does the 2 values for label get put in the same bucket so in analytics you'll get a pie chart showing the percentage of one versus the other? As opposed to being disjoint tallies?
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.
Right, I talked to @zanderso and @jonahwilliams about this and emulated the iOS behavior for that reason.
zanderso
left a comment
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 is the plan to add to build aar in a subsequent PR?
| return AndroidEmbeddingVersionResult(AndroidEmbeddingVersion.v1, 'No `<meta-data android:name="flutterEmbedding" android:value="2"/>` in ${appManifestFile.absolute.path}'); | ||
| } | ||
|
|
||
| static const bool _impellerEnabledByDefault = false; |
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.
This should have a TODO and linked issue to switch it over when we change the default.
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.
Done.
|
@andrewkolos mentioned he's quite busy for the next few days, so moving to CC. (Andrew, if you see anything after the fact I did sub-optimally, LMK and I'll address in a follow-up) |
andrewkolos
left a comment
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.
Belated LGTM
| } on FileSystemException { | ||
| throwToolExit('Error reading $appManifestFile even though it exists. ' | ||
| 'Please ensure that you have read permission to this file and try again.'); | ||
| } |
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.
uber-nit: Handling FileSystemException is probably redundant as appManifestFile should be an instance of ErrorHandlingFile1, which should handle permissions issues, but this is fine.
Footnotes
-
this is the case of all instances of
Filewithin the flutter tool code, though we occasionally get surprised by exceptions coming from instances ofFilerather thanErrorHandlingFile↩
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.
Just a fun fact: we've had instances where existsSync returns true, but an immediately-following synchronous file op fails with a file/path-not-found error 🙃. As a result—for some tiny amount of users—this exit message could be inaccurate 😛 (though I would 100% leave this as-is for practical reasons)
* master: (23 commits) Roll pub packages (flutter#150810) Remove reference to `MaterialApp` and `showCupertinoModalPopup` from `CupertinoAlertDialog` (flutter#150725) Read `AndroidManifest.xml` and emit `manifest-impeller-(enabled|disabled)` analytics (flutter#150791) [flutter_tools] Shut down Chromium cleanly using a command sent through the debug protocol (flutter#150645) Reland fix inputDecorator hint color on M3 (flutter#150278) Roll Flutter Engine from 62e0b5f9c340 to 94023d711db3 (7 revisions) (flutter#150797) Fix collapsed InputDecorator minimum height (flutter#150770) Add more warm up frame docs (flutter#150464) Roll pub packages (flutter#150739) Add `focusNode`, `focusColor`, `onFocusChange`, `autofocus` to `CupertinoButton` (flutter#150721) Document RenderObject._relayoutBoundary and its invariant; small refactors (flutter#150527) Roll Flutter Engine from 6313b1e5afd7 to 62e0b5f9c340 (1 revision) (flutter#150790) fix a typo (flutter#150682) Fix link in RenderObjectWidget doc comment (flutter#150600) Roll Flutter Engine from fbd92055f3a6 to 6313b1e5afd7 (1 revision) (flutter#150781) [tool] make `ErrorHandlingFileSystem.deleteIfExists` catch error code 3 (`ERROR_PATH_NOT_FOUND` on Windows) (flutter#150741) Roll Packages from 711b4ac to 03f5f6d (21 revisions) (flutter#150779) Roll Flutter Engine from afa7ce19bca8 to fbd92055f3a6 (1 revision) (flutter#150777) Reland Add tests for form_text_field.1.dart (flutter#150481) (flutter#150696) (flutter#150750) Add an example for CupertinoPopupSurface (flutter#150357) ...
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…bled) analytics Same as flutter#150791 except with AARs (`flutter build module`)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
…ed|disabled)` analytics (flutter/flutter#150791)
Manual roll Flutter from e726eb4 to 15f95ce (48 revisions) Manual roll requested by [email protected] flutter/flutter@e726eb4...15f95ce 2024-06-28 [email protected] Roll Flutter Engine from ddd4814b9d40 to 94591ffb20df (5 revisions) (flutter/flutter#150968) 2024-06-27 [email protected] Manual engine roll to ddd4814 (flutter/flutter#150952) 2024-06-27 [email protected] local lint copy gradle task config (flutter/flutter#150957) 2024-06-27 [email protected] Roll Flutter Engine from b42c80460538 to d1506c12808e (3 revisions) (flutter/flutter#150951) 2024-06-27 [email protected] [tool] make the `systemTempDirectory` getter on `ErrorHandlingFileSystem` wrap the underlying filesystem's temp directory in a`ErrorHandlingDirectory` (flutter/flutter#150876) 2024-06-27 [email protected] Have flutter.js load local canvaskit instead of the CDN when appropriate (flutter/flutter#150806) 2024-06-27 [email protected] Roll Flutter Engine from a9194f0f01f4 to b42c80460538 (10 revisions) (flutter/flutter#150940) 2024-06-27 [email protected] [a11y] Reland [#149375 ] Update semantics in dropdown.dart (flutter/flutter#150578) 2024-06-27 [email protected] Bump dartdoc to 8.0.9+1 (flutter/flutter#150935) 2024-06-27 [email protected] add onFocus to text fields (flutter/flutter#150648) 2024-06-27 [email protected] Fixes `flutter build ipa` failure: Command line name "app-store" is deprecated. Use "app-store-connect" (flutter/flutter#150407) 2024-06-27 [email protected] Copy any previous `IconThemeData` instead of overwriting it in CupertinoButton (flutter/flutter#149777) 2024-06-27 [email protected] Improve the behavior of scrollbar drag-scrolls triggered by the trackpad (flutter/flutter#150275) 2024-06-27 [email protected] feat: Add autofocus for `MenuItemButton` (flutter/flutter#139396) 2024-06-27 [email protected] Roll Flutter Engine from 1d5e3cc55a75 to a9194f0f01f4 (7 revisions) (flutter/flutter#150888) 2024-06-26 [email protected] Reland "Remove dual_screen from new_gallery integration test" (flutter/flutter#150873) 2024-06-26 [email protected] Switch to more reliable flutter.dev link destinations in the tool (flutter/flutter#150587) 2024-06-26 [email protected] Adding `@docImport`s to the `animation` library (flutter/flutter#150798) 2024-06-26 [email protected] Remove CODEOWNERS trailing whitespace (flutter/flutter#150882) 2024-06-26 [email protected] Roll Flutter Engine from e03cf86c4170 to 1d5e3cc55a75 (3 revisions) (flutter/flutter#150875) 2024-06-26 [email protected] Remind folks we are moving. (flutter/flutter#150872) 2024-06-26 [email protected] Remove `bringup: true` from web test shard. (flutter/flutter#150785) 2024-06-26 [email protected] Roll Flutter Engine from c0017bed42c2 to e03cf86c4170 (1 revision) (flutter/flutter#150867) 2024-06-26 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Remove `dual_screen` from `new_gallery` integration test (#150808)" (flutter/flutter#150871) 2024-06-26 [email protected] Remove `dual_screen` from `new_gallery` integration test (flutter/flutter#150808) 2024-06-26 [email protected] Roll Flutter Engine from d4624a36712b to c0017bed42c2 (4 revisions) (flutter/flutter#150865) 2024-06-26 [email protected] Fixes for Style Guide for Flutter Repo (flutter/flutter#150167) 2024-06-26 [email protected] Roll Flutter Engine from da62c629ed5c to d4624a36712b (3 revisions) (flutter/flutter#150852) 2024-06-26 [email protected] Use `Isolate.packageConfigSync! to locate the packageconfig of flutter tools (flutter/flutter#150340) 2024-06-26 [email protected] Roll Flutter Engine from 25af762ffbb3 to da62c629ed5c (2 revisions) (flutter/flutter#150829) 2024-06-26 [email protected] Fix leaky tests. (flutter/flutter#150817) 2024-06-26 [email protected] Roll Flutter Engine from 94023d711db3 to 25af762ffbb3 (4 revisions) (flutter/flutter#150818) 2024-06-26 [email protected] Roll pub packages (flutter/flutter#150810) 2024-06-25 [email protected] Remove reference to `MaterialApp` and `showCupertinoModalPopup` from `CupertinoAlertDialog` (flutter/flutter#150725) 2024-06-25 [email protected] Read `AndroidManifest.xml` and emit `manifest-impeller-(enabled|disabled)` analytics (flutter/flutter#150791) 2024-06-25 [email protected] [flutter_tools] Shut down Chromium cleanly using a command sent through the debug protocol (flutter/flutter#150645) 2024-06-25 [email protected] Reland fix inputDecorator hint color on M3 (flutter/flutter#150278) 2024-06-25 [email protected] Roll Flutter Engine from 62e0b5f9c340 to 94023d711db3 (7 revisions) (flutter/flutter#150797) 2024-06-25 [email protected] Fix collapsed InputDecorator minimum height (flutter/flutter#150770) 2024-06-25 [email protected] Add more warm up frame docs (flutter/flutter#150464) 2024-06-25 [email protected] Roll pub packages (flutter/flutter#150739) 2024-06-25 [email protected] Add `focusNode`, `focusColor`, `onFocusChange`, `autofocus` to `CupertinoButton` (flutter/flutter#150721) 2024-06-25 [email protected] Document RenderObject._relayoutBoundary and its invariant; small refactors (flutter/flutter#150527) 2024-06-25 [email protected] Roll Flutter Engine from 6313b1e5afd7 to 62e0b5f9c340 (1 revision) (flutter/flutter#150790) ...
…bled) analytics (flutter#150970) Same as flutter#150791 except with AARs (`flutter build module`)
…bled) analytics (flutter#150970) Same as flutter#150791 except with AARs (`flutter build module`)
…ed|disabled)` analytics (flutter/flutter#150791)

Work towards #132712.
After this PR, after a completed
flutter build apkcommand, we:manifest-impeller-disabledcommand ifio.flutter.embedding.android.EnableImpelleris'false'.manifest-impeller-disabledcommand ifio.flutter.embedding.android.EnableImpelleris missing.manifest-impeller-enabledcommand ifio.flutter.embedding.android.EnableImpelleris'true'.We will need to change the default (see
_impellerEnabledByDefaultinproject.dart) before releasing, otherwise we will misreportmanifest-impeller-disabledat a much higher rate than actual. If there is a way to instead compute the default instead of hard-coding, that would have been good.See https://docs.flutter.dev/perf/impeller#android for details on the key-value pair.
I also did a tad of TLC, by removing the (now-defunct)
Usageevents forflutter build ios, so they are consistent./cc @zanderso, @chinmaygarde, @jonahwilliams