diff --git a/DEPS b/DEPS index f2eb58eb680..fa78e12f885 100644 --- a/DEPS +++ b/DEPS @@ -31,7 +31,7 @@ vars = { # Dart is: https://github.com/dart-lang/sdk/blob/master/DEPS. # You can use //tools/dart/create_updated_flutter_deps.py to produce # updated revision list of existing dependencies. - 'dart_revision': '46ab040e589adc5200370dec7952ce5150850822', + 'dart_revision': 'a5c11d7d0329432ca37e35bb249b20f60aa0aa31', 'dart_args_tag': '1.4.1', 'dart_async_tag': '2.0.6', @@ -126,7 +126,7 @@ deps = { Var('fuchsia_git') + '/garnet' + '@' + 'b7492b5f34e32248b164eb48ae8e67995aebda67', 'src/topaz': - Var('fuchsia_git') + '/topaz' + '@' + 'e331f910c1003d154a4de6e1b5356f8d785fd6ec', + Var('fuchsia_git') + '/topaz' + '@' + '5fa651cf9cc5f338379e34964ff5dd70052f6237', 'src/third_party/benchmark': Var('fuchsia_git') + '/third_party/benchmark' + '@' + '296537bc48d380adf21567c5d736ab79f5363d22', diff --git a/engine/src/flutter/runtime/dart_isolate.cc b/engine/src/flutter/runtime/dart_isolate.cc index 976e5d22a13..91c91f4905d 100644 --- a/engine/src/flutter/runtime/dart_isolate.cc +++ b/engine/src/flutter/runtime/dart_isolate.cc @@ -541,10 +541,10 @@ Dart_Isolate DartIsolate::DartCreateAndStartServiceIsolate( // thread. service_isolate->ResetWeakPtrFactory(); - const bool isolate_snapshot_is_dart_2 = - Dart_IsDart2Snapshot(vm->GetIsolateSnapshot()->GetData()->GetSnapshotPointer()); + const bool isolate_snapshot_is_dart_2 = Dart_IsDart2Snapshot( + vm->GetIsolateSnapshot()->GetData()->GetSnapshotPointer()); const bool is_preview_dart2 = - vm->GetPlatformKernel() != nullptr || isolate_snapshot_is_dart_2; + (vm->GetPlatformKernel().GetSize() > 0) || isolate_snapshot_is_dart_2; const bool running_from_sources = !DartVM::IsRunningPrecompiledCode() && !is_preview_dart2; @@ -648,14 +648,16 @@ DartIsolate::CreateDartVMAndEmbedderObjectPair( // Create the Dart VM isolate and give it the embedder object as the baton. Dart_Isolate isolate = - vm->GetPlatformKernel() != nullptr - ? Dart_CreateIsolateFromKernel(advisory_script_uri, // - advisory_script_entrypoint, // - vm->GetPlatformKernel(), // - flags, // - embedder_isolate.get(), // - error // - ) + (vm->GetPlatformKernel().GetSize() > 0) + ? Dart_CreateIsolateFromKernel( + advisory_script_uri, // + advisory_script_entrypoint, // + vm->GetPlatformKernel().GetMapping(), // + vm->GetPlatformKernel().GetSize(), // + flags, // + embedder_isolate.get(), // + error // + ) : Dart_CreateIsolate(advisory_script_uri, // advisory_script_entrypoint, // embedder_isolate->GetIsolateSnapshot() diff --git a/engine/src/flutter/runtime/dart_vm.cc b/engine/src/flutter/runtime/dart_vm.cc index 378a6426811..eeb395257c4 100644 --- a/engine/src/flutter/runtime/dart_vm.cc +++ b/engine/src/flutter/runtime/dart_vm.cc @@ -278,18 +278,6 @@ DartVM::DartVM(const Settings& settings, FXL_DCHECK(isolate_snapshot_ && isolate_snapshot_->IsValid()) << "Isolate snapshot must be valid."; - if (platform_kernel_mapping_->GetSize() > 0) { - // The platform kernel mapping lifetime is managed by this instance of the - // DartVM and hence will exceed that of the PlatformKernel. So provide an - // empty release callback. - Dart_ReleaseBufferCallback empty = [](auto arg) {}; - platform_kernel_ = reinterpret_cast(Dart_ReadKernelBinary( - platform_kernel_mapping_->GetMapping(), // buffer - platform_kernel_mapping_->GetSize(), // buffer size - empty // buffer deleter - )); - } - { TRACE_EVENT0("flutter", "dart::bin::BootstrapDartIo"); dart::bin::BootstrapDartIo(); @@ -340,11 +328,11 @@ DartVM::DartVM(const Settings& settings, Dart_IsDart2Snapshot(isolate_snapshot_->GetData()->GetSnapshotPointer()); const bool is_preview_dart2 = - platform_kernel_ != nullptr || isolate_snapshot_is_dart_2; + (platform_kernel_mapping_->GetSize() > 0) || isolate_snapshot_is_dart_2; FXL_DLOG(INFO) << "Dart 2 " << (is_preview_dart2 ? "is" : "is NOT") << " enabled. Platform kernel: " - << static_cast(platform_kernel_) + << static_cast(platform_kernel_mapping_->GetSize() > 0) << " Isolate Snapshot is Dart 2: " << isolate_snapshot_is_dart_2; @@ -453,8 +441,8 @@ const Settings& DartVM::GetSettings() const { return settings_; } -DartVM::PlatformKernel* DartVM::GetPlatformKernel() const { - return platform_kernel_; +const fml::Mapping& DartVM::GetPlatformKernel() const { + return *platform_kernel_mapping_.get(); } const DartSnapshot& DartVM::GetVMSnapshot() const { diff --git a/engine/src/flutter/runtime/dart_vm.h b/engine/src/flutter/runtime/dart_vm.h index e8feb9ba1de..12ac1c6b21b 100644 --- a/engine/src/flutter/runtime/dart_vm.h +++ b/engine/src/flutter/runtime/dart_vm.h @@ -25,8 +25,6 @@ namespace blink { class DartVM : public fxl::RefCountedThreadSafe { public: - class PlatformKernel; - static fxl::RefPtr ForProcess(Settings settings); static fxl::RefPtr ForProcess( @@ -40,7 +38,7 @@ class DartVM : public fxl::RefCountedThreadSafe { const Settings& GetSettings() const; - PlatformKernel* GetPlatformKernel() const; + const fml::Mapping& GetPlatformKernel() const; const DartSnapshot& GetVMSnapshot() const; @@ -55,7 +53,6 @@ class DartVM : public fxl::RefCountedThreadSafe { const fxl::RefPtr vm_snapshot_; const fxl::RefPtr isolate_snapshot_; std::unique_ptr platform_kernel_mapping_; - PlatformKernel* platform_kernel_ = nullptr; ServiceProtocol service_protocol_; fxl::WeakPtrFactory weak_factory_; diff --git a/engine/src/flutter/runtime/dart_vm_unittests.cc b/engine/src/flutter/runtime/dart_vm_unittests.cc index 5b2f5e6ee82..d0664d11118 100644 --- a/engine/src/flutter/runtime/dart_vm_unittests.cc +++ b/engine/src/flutter/runtime/dart_vm_unittests.cc @@ -15,7 +15,7 @@ TEST(DartVM, SimpleInitialization) { ASSERT_TRUE(vm); ASSERT_EQ(vm, DartVM::ForProcess(settings)); ASSERT_FALSE(DartVM::IsRunningPrecompiledCode()); - ASSERT_EQ(vm->GetPlatformKernel(), nullptr); + ASSERT_EQ(vm->GetPlatformKernel().GetSize(), 0u); } } // namespace blink diff --git a/engine/src/flutter/shell/common/BUILD.gn b/engine/src/flutter/shell/common/BUILD.gn index 5817d1616fc..02e5f12b7d0 100644 --- a/engine/src/flutter/shell/common/BUILD.gn +++ b/engine/src/flutter/shell/common/BUILD.gn @@ -103,7 +103,6 @@ source_set("common") { "$flutter_root/third_party/txt", "//garnet/public/lib/fxl", "//third_party/dart/runtime:dart_api", - "//third_party/dart/runtime/platform:libdart_platform", "//third_party/rapidjson", "//third_party/skia", "//third_party/skia:gpu", diff --git a/engine/src/flutter/shell/testing/BUILD.gn b/engine/src/flutter/shell/testing/BUILD.gn index 36bc9acc452..e0384da2185 100644 --- a/engine/src/flutter/shell/testing/BUILD.gn +++ b/engine/src/flutter/shell/testing/BUILD.gn @@ -21,8 +21,6 @@ executable("testing") { "//garnet/public/lib/fxl", "//third_party/dart/runtime:libdart_jit", "//third_party/dart/runtime/bin:embedded_dart_io", - "//third_party/dart/runtime/bin:libdart_builtin", - "//third_party/dart/runtime/platform:libdart_platform", "//third_party/skia", "//topaz/lib/tonic", ]