Read AndroidManifest.xml and emit manifest-impeller-(enabled|disabled) analytics#150791
Conversation
| ? 'manifest-impeller-enabled' | ||
| : 'manifest-impeller-disabled'; | ||
| globals.analytics.send(Event.flutterBuildInfo( | ||
| label: buildLabel, |
There was a problem hiding this comment.
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.
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.
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.
This should have a TODO and linked issue to switch it over when we change the default.
|
@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) |
| } 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.
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.
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 62e0b5f to 94023d7 (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 6313b1e to 62e0b5f (1 revision) (flutter#150790) fix a typo (flutter#150682) Fix link in RenderObjectWidget doc comment (flutter#150600) Roll Flutter Engine from fbd9205 to 6313b1e (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 afa7ce1 to fbd9205 (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