[vm/ffi] Add embedder API for resolving asset ids Extends the `NativeAssetsApi` with a `dlopen` that takes an asset id instead of an asset path. This enables the embedder (instead of the vm) to resolve the asset id to asset path. Additionally, the `NativeAssetsApi` gets an `available_assets` callback to report which asset ids are available if asset resolution failed. (Otherwise, users would lose this important part of the error message on failed resolution.) We postpone migrating the Dart standalone embedder to this API: https://dart-review.googlesource.com/c/sdk/+/388160. That CL verifies this new API and it's implementation. Without that CL this new API is hard to test. So, no further tests are added here. Tests that verify the old behavior for the standalone embedder: TEST=tests/ffi/native_assets/* TEST=pkg/dartdev/test/native_assets/* Bug: https://github.com/flutter/flutter/issues/154425 Change-Id: I04d0fb45dc5663e63d91b21a6f5764929f10aaff Cq-Include-Trybots: dart/try:vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-release-arm64-try,vm-aot-mac-release-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try,vm-aot-win-debug-arm64-try,vm-aot-win-debug-x64-try,vm-aot-win-debug-x64c-try,pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-win-release-try,pkg-win-release-arm64-try,vm-aot-asan-linux-release-x64-try,vm-asan-linux-release-x64-try,vm-aot-msan-linux-release-x64-try,vm-msan-linux-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388161 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> https://dart.googlesource.com/sdk/+/9a6503b5006b34eb5645f952f4b3e08dd8641f97
diff --git a/DEPS b/DEPS index 0d1f1a1..852c781 100644 --- a/DEPS +++ b/DEPS
@@ -282,7 +282,7 @@ 'engine/src/flutter': Var('flutter_git') + '/mirrors/engine' + '@' + 'e03449ed1ee1f18b06adb8c250dc0781be66db67', - 'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + '57bec7feddc43c4e9486697e8db960434f7a8aa7', + 'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + '9a6503b5006b34eb5645f952f4b3e08dd8641f97', 'flutter': Var('flutter_git') + '/mirrors/flutter' + '@' + '195f81e025de57ec3ddd962066d1d11b33534025',
diff --git a/commits.json b/commits.json index 887ccd5..1742628 100644 --- a/commits.json +++ b/commits.json
@@ -1,5 +1,5 @@ { "engine/src/flutter":"e03449ed1ee1f18b06adb8c250dc0781be66db67", - "engine/src/flutter/third_party/dart":"57bec7feddc43c4e9486697e8db960434f7a8aa7", + "engine/src/flutter/third_party/dart":"9a6503b5006b34eb5645f952f4b3e08dd8641f97", "flutter":"195f81e025de57ec3ddd962066d1d11b33534025" } \ No newline at end of file