158 Commits

Author SHA1 Message Date
Andrew Kolos
cfe4fedca2
rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529)
Closes https://github.com/flutter/flutter/issues/128456, which is now linked to in a code comment in this change.
Reopens https://github.com/flutter/flutter/issues/124883.

This effectively reverts https://github.com/flutter/flutter/pull/126077 and is intended to be cherry-picked into stable.
2023-06-09 21:20:50 +00:00
Andrew Kolos
759ebef689
Do not try to load main/default asset image if only higher-res variants exist (#128143)
Fixes https://github.com/flutter/flutter/issues/127090.

https://github.com/flutter/flutter/pull/122505 did a few things to speed up the first asset load that a flutter app performs. One of those things was to not include the main asset in its own list of variants in the asset manifest. The idea was that we know that the main asset always exists, so including it in its list of variants is a waste of storage space and loading time (even if the cost was tiny).

However, the assumption that the main asset always exists is wrong. From [Declaring resolution-aware image assets](https://docs.flutter.dev/ui/assets-and-images#resolution-aware), which predates https://github.com/flutter/flutter/pull/122505:

> Each entry in the asset section of the pubspec.yaml should correspond to a real file, with the exception of the main asset entry. If the main asset entry doesn’t correspond to a real file, then the asset with the lowest resolution is used as the fallback for devices with device pixel ratios below that resolution. The entry should still be included in the pubspec.yaml manifest, however.

For example, it's valid to declare `assets/image.png` as an asset even if only `assets/3x/image.png` exists on disk.

This fix restores older behavior of including a main asset as a variant of itself in the manifest if it exists.

This fix also includes a non-user-visible behavior change:
* `"dpr"` is no longer a required field in the asset manifest's underlying structure. For the main asset entry, we do not include `"dpr"`. It makes less sense for the tool to decide what the default target dpr for an image should be. This should be left to the framework.
2023-06-07 03:19:15 +00:00
Phil Quitslund
5bf6318688
Update collection-fors to prefer final (as per updated prefer_final_in_for_each) (#127511)
The newly updated lint will soon flag for-each in collections.

See discussion: https://github.com/dart-lang/linter/pull/4383

/cc @goderbauer
2023-05-26 23:34:36 +00:00
Andrew Kolos
d3e0e03e2e
rename AssetManifest.bin (#126077)
Fixes #124883. Will require a g3fix.

Renames `AssetManifest.bin` to `AssetManifest.smcbin` (madeup extension for "Standard Message Codec binary").
2023-05-15 15:45:09 +00:00
Andrew Kolos
4a9660881e
Reland "Stop recursively including assets from asset directories" (#120312)
* stop recursively including assets from asset directories

* remove unused imports

* lint
2023-02-08 21:41:19 +00:00
Mouad Debbar
7f578fb01f
Revert "Stop recursively including assets from asset folders (#120167)" (#120283)
This reverts commit da36bd6fc02603ca446093a27f86e73dea768e82.
2023-02-08 10:42:02 -05:00
Andrew Kolos
da36bd6fc0
Stop recursively including assets from asset folders (#120167)
* add test

* fix

* use preexisting testFileSystem

* fix variant tests

* Revert "use preexisting testFileSystem"

This reverts commit b6df288ef4a6ff007ecd984e98a1a3f2001ad242.

* nit: grammar
2023-02-07 16:20:23 +00:00
Michael Goderbauer
38630b6bd1
Remove unnecessary null checks in flutter_tool (#118857)
* dart fix --apply

* manual fixes

* fix after merge conflicts

* review
2023-01-23 21:43:08 +00:00
Jonah Williams
2fd8250285
[flutter_tools] re-enable web shader compilation (#118461)
* [flutter_tools] re-enable web shader compilation

* update test cases
2023-01-13 19:43:27 +00:00
Andrew Kolos
5630d531b1
[tool] Generate a binary version of the asset manifest (#117233)
* initial

* update asset_bundle_package_test

* Update asset_bundle_test.dart

* Update asset_bundle_package_fonts_test.dart

* update pubspec checksum for smc dependency

* flutter update-packages --force-upgrade

* prefer += 1 over ++

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* add regexp comment

* rescope int list comparison function

* update packages

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-01-12 19:33:30 +00:00
Brandon DeRosier
700fe3d2b0
[Impeller Scene] Add SceneC asset importing (#118157) 2023-01-10 01:51:40 -08:00
Casey Hillers
7673108d7e
Revert "Speed up first asset load by encoding asset manifest in binary rather than JSON (#113637)" (#116662)
This reverts commit 56cad89b1e8d79b75b88116a5db9cb70f91c4986.
2022-12-07 17:29:05 +00:00
Jonah Williams
27281dab81
[flutter_tools] dont include material shaders in web builds (#116538)
* [flutter_tools] dont include material shaders in web builds

* add test
2022-12-05 20:42:15 +00:00
Andrew Kolos
56cad89b1e
Speed up first asset load by encoding asset manifest in binary rather than JSON (#113637) 2022-12-05 10:39:10 -08:00
Jonah Williams
75f61903e0
[flutter_tools] disable web compilation (#116368) 2022-12-01 21:40:50 +00:00
Jonah Williams
4f19a9fa46
[flutter_tools] Add support for compiling shaders to JSON bundle for web (#114295) 2022-10-31 16:52:09 +00:00
Mouad Debbar
2dd87fbdf2
Fix --local-engine for the new web/wasm mode (#113759) 2022-10-24 20:43:09 +00:00
Andrew Kolos
f8c9f72b94
URI-decode asset paths before writing them to the asset manifest (#112415) 2022-10-01 01:09:06 +00:00
Jonah Williams
99fb2d36e8
[flutter_tools] cache more directories (#112651) 2022-09-30 08:52:29 +00:00
Jason Simmons
74dfc0708d
Treat assets as variants only if they share the same filename (#112602) 2022-09-29 01:36:20 +00:00
Andrew Kolos
cb5b5c3459
Tighten asset variant detection criteria to only include device-pixel-ratio variants (#110721) 2022-09-27 20:57:33 +00:00
Pierre-Louis
0c2f7bc2a2
Remove errant double spaces (#110758) 2022-09-02 04:00:58 +00:00
Zachary Anderson
9c0f239947
Put shaders under a 'shaders' section in the manifest (#106752) 2022-06-28 19:31:27 -07:00
Zachary Anderson
577919dbfe
Don't hardcode ink sparkle spir-v (#102674) 2022-05-04 09:28:45 -07:00
Christopher Fujino
91dd3276fd
migrate vm service to null safety (#88320) 2021-10-02 10:18:03 -07:00
Jenn Magder
34ba64738e
Clean up null assumptions in devfs to prep for null safety migration (#88934) 2021-09-08 15:27:05 -07:00
Greg Spencer
cb651352dd
Fix errors in examples (#87962) 2021-08-11 14:37:06 -07:00
Dan Field
e36e62e9a6
Revert "Revert "Audit hashCode overrides outside of packages/flutter (#85370)" (#85451)" (#85567)
This reverts commit 2be0d57fa25423ffcba5a07d22ef9386a89dcf4c.
2021-06-30 09:46:54 -07:00
Ren You
2be0d57fa2
Revert "Audit hashCode overrides outside of packages/flutter (#85370)" (#85451)
This reverts commit 9846fa5145f60d55a80b10e6adee7d174a884188.
2021-06-28 09:55:31 -07:00
Dan Field
9846fa5145
Audit hashCode overrides outside of packages/flutter (#85370) 2021-06-26 17:36:04 -07:00
Aliaksei Chorny
871b0ce363
Double we typo fixed (#82933) 2021-06-03 17:34:06 -07:00
Jay Zhuang
41ced7b5c3
[asset] Include assets in input files (#83416) 2021-06-01 11:24:04 -07:00
Jay Zhuang
f512ebfd06
[fuchsia_asset_builder] Write depfile (#82469) 2021-05-18 20:24:04 -07:00
xster
ff2dde2c7f
Reland double gzip wrapping NOTICES to reduce on-disk installed space (#80897) 2021-04-26 22:35:45 -07:00
Gary Qian
2f05751973
Record deferred components assets in AssetManifest.json (#78824) 2021-03-24 02:57:01 -07:00
Gary Qian
ee41782732
[flutter_tools] Deferred components build system (#76192) 2021-03-04 18:09:02 -08:00
Jonah Williams
74bd7b6f6d
[flutter_tools] opt all flutter tool libraries and tests out of null safety. (#74832)
* opt out the flutter tool

* oops EOF

* fix import

* Update tool_backend.dart

* Update daemon_client.dart

* fix more
2021-01-27 15:17:53 -08:00
Jonah Williams
8d72307c47
[flutter_tools] allow applications to specify additional license files to be bundled into the application NOTICES automatically (#73430) 2021-01-14 16:59:04 -08:00
xster
ca82c572b7
Revert "let NOTICES be double gzip wrapped to reduce on-disk installed space (#71899)" (#72438) 2020-12-16 10:58:19 -08:00
xster
4ed3432e8f
let NOTICES be double gzip wrapped to reduce on-disk installed space (#71899) 2020-12-15 13:29:14 -08:00
Jonah Williams
8d15fa3936
[flutter_tools] remove unused/deprecated asset flags (#70509) 2020-11-17 11:02:14 -08:00
Jonah Williams
dbcd7868a4
[flutter_tools] remove most globals from asset system and remove Cache manipulation in unit tests (#70011) 2020-11-09 18:01:04 -08:00
Jonah Williams
52d49fb358
[flutter_tools] remove material design schema, use dart code (#69987)
Instead of loading the use-material-design asset data from a yaml file in the repo, leave it in dart code and simplify. Remove some of the globals, but not enough to update to testWithoutContext
2020-11-06 19:55:55 -08:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Nolan Scobie
43c1b34cf5
Add punctuation for unterminated sentences in doc comments (#62755)
* Add punctuation for unterminated sentences in doc comments

* Addressing review nit
2020-08-06 19:18:52 -04:00
Jonah Williams
741608a261
[flutter_tools] fix recursive asset variant issue (#61129)
Fixes #45075
Fixes #57210

If an asset was included directly from the project root directory, then the same asset when copied to various output or ephemeral directories would also be picked up as an asset variant. This could cause assets to be recursively copied into asset/build/ephemeral directories, as each time it would run it would pick up all of the previous "variants".

The solution is to include project ephemeral directories, in addition to the build directory.
2020-07-08 18:07:27 -07:00
Jonah Williams
82a6f9bf0b
[flutter_tools] remove most use of global packages path (#60231)
The global packages path could cause tests to fail when it would be overriden to unexpected (in test setup) values. Remove most usage and make it a configuration on buildInfo, along with most other build information. Cleanup the asset builder to require the .packages path and the resident runners to no longer require it, since they already have the information in build_info.

It needs to stick around for the fuchsia deps we do not control.

Filled #60232 for remaining work.
2020-06-25 12:52:14 -07:00
Jonah Williams
4845df906a
[flutter_tools] do not include material icon incorrectly (#58335)
If a dependency specified uses-material-design: true and the main pubspec specifies uses-material-design: false, then the MaterialIcons font would be included in the font manifest, but not in the AssetManifest or final bundle. Remove it from the FontManifest if this occurs
2020-06-01 16:30:43 -07:00
Jonah Williams
d9144bf8fc
[flutter_tools] rename output LICENSE file to NOTICES and support loading either (#57871)
Work towards #16723

This is only safe to land after #58131 lands in google3. Only build NOTICES in asset manfiest, and load either LICENSE or NOTICES from pubspec dependencies.
2020-05-29 11:55:02 -07:00
Jonah Williams
d0d9da832b
[flutter_tools] prevent wildcard assets from causing build invalidation issues (#56472) 2020-05-19 12:37:04 -07:00