From c3976b3c7183f479717bffed3f640fb92afbd3dc Mon Sep 17 00:00:00 2001 From: Ben Konyi Date: Tue, 12 Jun 2018 17:03:13 -0700 Subject: [PATCH] Revert "Added IsolateNameServer functionality (#5410)" (#5516) This reverts commit 61a2d129cfc8c52cf1ff59b03bccf67d9b07af63. --- lib/ui/BUILD.gn | 4 - lib/ui/dart_ui.cc | 2 - lib/ui/dart_ui.gni | 1 - lib/ui/isolate_name_server.dart | 44 ------ .../isolate_name_server.cc | 44 ------ .../isolate_name_server/isolate_name_server.h | 50 ------- .../isolate_name_server_natives.cc | 64 --------- .../isolate_name_server_natives.h | 27 ---- lib/ui/ui.dart | 2 - lib/ui/ui_dart_state.cc | 10 +- lib/ui/ui_dart_state.h | 7 +- runtime/dart_isolate.cc | 11 +- runtime/dart_isolate.h | 8 +- runtime/dart_vm.cc | 4 - runtime/dart_vm.h | 4 - runtime/dart_vm_unittests.cc | 14 -- runtime/runtime_controller.cc | 4 +- runtime/runtime_controller.h | 6 +- shell/common/engine.cc | 2 +- shell/common/engine.h | 2 +- shell/common/shell.cc | 2 +- shell/common/shell.h | 2 +- testing/dart/isolate_name_server_test.dart | 128 ------------------ testing/run_tests.sh | 1 + travis/licenses_golden/licenses_flutter | 5 - 25 files changed, 22 insertions(+), 426 deletions(-) delete mode 100644 lib/ui/isolate_name_server.dart delete mode 100644 lib/ui/isolate_name_server/isolate_name_server.cc delete mode 100644 lib/ui/isolate_name_server/isolate_name_server.h delete mode 100644 lib/ui/isolate_name_server/isolate_name_server_natives.cc delete mode 100644 lib/ui/isolate_name_server/isolate_name_server_natives.h delete mode 100644 testing/dart/isolate_name_server_test.dart diff --git a/lib/ui/BUILD.gn b/lib/ui/BUILD.gn index 027159fb8..592f985b8 100644 --- a/lib/ui/BUILD.gn +++ b/lib/ui/BUILD.gn @@ -14,10 +14,6 @@ source_set("ui") { "dart_runtime_hooks.h", "dart_ui.cc", "dart_ui.h", - "isolate_name_server/isolate_name_server.cc", - "isolate_name_server/isolate_name_server.h", - "isolate_name_server/isolate_name_server_natives.cc", - "isolate_name_server/isolate_name_server_natives.h", "painting/canvas.cc", "painting/canvas.h", "painting/codec.cc", diff --git a/lib/ui/dart_ui.cc b/lib/ui/dart_ui.cc index 306743c82..824152e28 100644 --- a/lib/ui/dart_ui.cc +++ b/lib/ui/dart_ui.cc @@ -7,7 +7,6 @@ #include "flutter/lib/ui/compositing/scene.h" #include "flutter/lib/ui/compositing/scene_builder.h" #include "flutter/lib/ui/dart_runtime_hooks.h" -#include "flutter/lib/ui/isolate_name_server/isolate_name_server_natives.h" #include "flutter/lib/ui/painting/canvas.h" #include "flutter/lib/ui/painting/codec.h" #include "flutter/lib/ui/painting/frame_info.h" @@ -61,7 +60,6 @@ void DartUI::InitForGlobal() { FrameInfo::RegisterNatives(g_natives); ImageFilter::RegisterNatives(g_natives); ImageShader::RegisterNatives(g_natives); - IsolateNameServerNatives::RegisterNatives(g_natives); Paragraph::RegisterNatives(g_natives); ParagraphBuilder::RegisterNatives(g_natives); Picture::RegisterNatives(g_natives); diff --git a/lib/ui/dart_ui.gni b/lib/ui/dart_ui.gni index e1885d1d0..418b65310 100644 --- a/lib/ui/dart_ui.gni +++ b/lib/ui/dart_ui.gni @@ -7,7 +7,6 @@ dart_ui_files = [ "$flutter_root/lib/ui/geometry.dart", "$flutter_root/lib/ui/hash_codes.dart", "$flutter_root/lib/ui/hooks.dart", - "$flutter_root/lib/ui/isolate_name_server.dart", "$flutter_root/lib/ui/lerp.dart", "$flutter_root/lib/ui/natives.dart", "$flutter_root/lib/ui/painting.dart", diff --git a/lib/ui/isolate_name_server.dart b/lib/ui/isolate_name_server.dart deleted file mode 100644 index 8dcbf7997..000000000 --- a/lib/ui/isolate_name_server.dart +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -part of dart.ui; - -abstract class IsolateNameServer { - // Looks up the [SendPort] associated with a given name. Returns null - // if the name does not exist. - static SendPort lookupPortByName(String name) { - if (name == null) { - throw new ArgumentError("'name' cannot be null."); - } - return _lookupPortByName(name); - } - - // Registers a SendPort with a given name. Returns true if registration is - // successful, false if the name entry already exists. - static bool registerPortWithName(SendPort port, String name) { - if (name == null) { - throw new ArgumentError("'name' cannot be null."); - } - if (port == null) { - throw new ArgumentError("'port' cannot be null."); - } - return _registerPortWithName(port, name); - } - - // Removes a name to SendPort mapping given a name. Returns true if the - // mapping was successfully removed, false if the mapping does not exist. - static bool removePortNameMapping(String name) { - if (name == null) { - throw new ArgumentError("'name' cannot be null."); - } - return _removePortNameMapping(name); - } - - static SendPort _lookupPortByName(String name) - native 'IsolateNameServerNatives_LookupPortByName'; - static bool _registerPortWithName(SendPort port, String name) - native 'IsolateNameServerNatives_RegisterPortWithName'; - static bool _removePortNameMapping(String name) - native 'IsolateNameServerNatives_RemovePortNameMapping'; -} diff --git a/lib/ui/isolate_name_server/isolate_name_server.cc b/lib/ui/isolate_name_server/isolate_name_server.cc deleted file mode 100644 index 7a6a1fe58..000000000 --- a/lib/ui/isolate_name_server/isolate_name_server.cc +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2018 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "flutter/lib/ui/isolate_name_server/isolate_name_server.h" - -namespace blink { - -Dart_Port IsolateNameServer::LookupIsolatePortByName(const std::string& name) { - std::unique_lock lock(mutex_); - return LookupIsolatePortByNameUnprotected(name); -} - -Dart_Port IsolateNameServer::LookupIsolatePortByNameUnprotected( - const std::string& name) { - auto port_iterator = port_mapping_.find(name); - if (port_iterator != port_mapping_.end()) { - return port_iterator->second; - } - return ILLEGAL_PORT; -} - -bool IsolateNameServer::RegisterIsolatePortWithName(Dart_Port port, - const std::string& name) { - std::unique_lock lock(mutex_); - if (LookupIsolatePortByNameUnprotected(name) != ILLEGAL_PORT) { - // Name is already registered. - return false; - } - port_mapping_[name] = port; - return true; -} - -bool IsolateNameServer::RemoveIsolateNameMapping(const std::string& name) { - std::unique_lock lock(mutex_); - auto port_iterator = port_mapping_.find(name); - if (port_iterator == port_mapping_.end()) { - return false; - } - port_mapping_.erase(port_iterator); - return true; -} - -} // namespace blink diff --git a/lib/ui/isolate_name_server/isolate_name_server.h b/lib/ui/isolate_name_server/isolate_name_server.h deleted file mode 100644 index fe1ee7910..000000000 --- a/lib/ui/isolate_name_server/isolate_name_server.h +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2018 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_H_ -#define FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_H_ - -#include -#include -#include - -#include "flutter/fml/synchronization/thread_annotations.h" -#include "lib/fxl/macros.h" -#include "third_party/dart/runtime/include/dart_api.h" - -#define LOCK_UNLOCK(m) FML_ACQUIRE(m) FML_RELEASE(m) - -namespace blink { - -class IsolateNameServer { - public: - IsolateNameServer() {} - - // Looks up the Dart_Port associated with a given name. Returns ILLEGAL_PORT - // if the name does not exist. - Dart_Port LookupIsolatePortByName(const std::string& name) - LOCK_UNLOCK(mutex_); - - // Registers a Dart_Port with a given name. Returns true if registration is - // successful, false if the name entry already exists. - bool RegisterIsolatePortWithName(Dart_Port port, const std::string& name) - LOCK_UNLOCK(mutex_); - - // Removes a name to Dart_Port mapping given a name. Returns true if the - // mapping was successfully removed, false if the mapping does not exist. - bool RemoveIsolateNameMapping(const std::string& name) LOCK_UNLOCK(mutex_); - - private: - Dart_Port LookupIsolatePortByNameUnprotected(const std::string& name) - FML_EXCLUSIVE_LOCKS_REQUIRED(mutex_); - - mutable std::mutex mutex_; - std::map port_mapping_ FML_GUARDED_BY(mutex_); - - FXL_DISALLOW_COPY_AND_ASSIGN(IsolateNameServer); -}; - -} // namespace blink - -#endif // FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_H_ diff --git a/lib/ui/isolate_name_server/isolate_name_server_natives.cc b/lib/ui/isolate_name_server/isolate_name_server_natives.cc deleted file mode 100644 index 3919f9f48..000000000 --- a/lib/ui/isolate_name_server/isolate_name_server_natives.cc +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2018 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include - -#include "flutter/lib/ui/isolate_name_server/isolate_name_server.h" -#include "flutter/lib/ui/isolate_name_server/isolate_name_server_natives.h" -#include "flutter/lib/ui/ui_dart_state.h" -#include "lib/tonic/dart_binding_macros.h" -#include "lib/tonic/dart_library_natives.h" - -namespace blink { - -Dart_Handle IsolateNameServerNatives::LookupPortByName( - const std::string& name) { - IsolateNameServer* name_server = - UIDartState::Current()->GetIsolateNameServer(); - Dart_Port port = name_server->LookupIsolatePortByName(name); - if (port == ILLEGAL_PORT) { - return Dart_Null(); - } - return Dart_NewSendPort(port); -} - -Dart_Handle IsolateNameServerNatives::RegisterPortWithName( - Dart_Handle port_handle, - const std::string& name) { - IsolateNameServer* name_server = - UIDartState::Current()->GetIsolateNameServer(); - Dart_Port port = ILLEGAL_PORT; - Dart_SendPortGetId(port_handle, &port); - if (!name_server->RegisterIsolatePortWithName(port, name)) { - return Dart_False(); - } - return Dart_True(); -} - -Dart_Handle IsolateNameServerNatives::RemovePortNameMapping( - const std::string& name) { - IsolateNameServer* name_server = - UIDartState::Current()->GetIsolateNameServer(); - if (!name_server->RemoveIsolateNameMapping(name)) { - return Dart_False(); - } - return Dart_True(); -} - -#define FOR_EACH_BINDING(V) \ - V(IsolateNameServerNatives, LookupPortByName) \ - V(IsolateNameServerNatives, RegisterPortWithName) \ - V(IsolateNameServerNatives, RemovePortNameMapping) - -FOR_EACH_BINDING(DART_NATIVE_CALLBACK_STATIC) - -#define DART_REGISTER_NATIVE_STATIC_(CLASS, METHOD) \ - DART_REGISTER_NATIVE_STATIC(CLASS, METHOD), - -void IsolateNameServerNatives::RegisterNatives( - tonic::DartLibraryNatives* natives) { - natives->Register({FOR_EACH_BINDING(DART_REGISTER_NATIVE_STATIC_)}); -} - -} // namespace blink diff --git a/lib/ui/isolate_name_server/isolate_name_server_natives.h b/lib/ui/isolate_name_server/isolate_name_server_natives.h deleted file mode 100644 index 2ebbe6e44..000000000 --- a/lib/ui/isolate_name_server/isolate_name_server_natives.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_NATIVES_H_ -#define FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_NATIVES_H_ - -#include "third_party/dart/runtime/include/dart_api.h" - -namespace tonic { -class DartLibraryNatives; -} // namespace tonic - -namespace blink { - -class IsolateNameServerNatives { - public: - static Dart_Handle LookupPortByName(const std::string& name); - static Dart_Handle RegisterPortWithName(Dart_Handle port_handle, - const std::string& name); - static Dart_Handle RemovePortNameMapping(const std::string& name); - static void RegisterNatives(tonic::DartLibraryNatives* natives); -}; - -} // namespace blink - -#endif // FLUTTER_LIB_UI_ISOLATE_NAME_SERVER_NATIVES_H_ diff --git a/lib/ui/ui.dart b/lib/ui/ui.dart index 1d9782311..b6d22ca29 100644 --- a/lib/ui/ui.dart +++ b/lib/ui/ui.dart @@ -17,7 +17,6 @@ import 'dart:collection' as collection; import 'dart:convert'; import 'dart:developer' as developer; import 'dart:io'; -import 'dart:isolate' show SendPort; import 'dart:math' as math; import 'dart:nativewrappers'; import 'dart:typed_data'; @@ -26,7 +25,6 @@ part 'compositing.dart'; part 'geometry.dart'; part 'hash_codes.dart'; part 'hooks.dart'; -part 'isolate_name_server.dart'; part 'lerp.dart'; part 'natives.dart'; part 'painting.dart'; diff --git a/lib/ui/ui_dart_state.cc b/lib/ui/ui_dart_state.cc index f7d3d4c81..77830affd 100644 --- a/lib/ui/ui_dart_state.cc +++ b/lib/ui/ui_dart_state.cc @@ -19,8 +19,7 @@ UIDartState::UIDartState(TaskRunners task_runners, fxl::RefPtr skia_unref_queue, std::string advisory_script_uri, std::string advisory_script_entrypoint, - std::string logger_prefix, - IsolateNameServer* isolate_name_server) + std::string logger_prefix) : task_runners_(std::move(task_runners)), add_callback_(std::move(add_callback)), remove_callback_(std::move(remove_callback)), @@ -28,8 +27,7 @@ UIDartState::UIDartState(TaskRunners task_runners, advisory_script_uri_(std::move(advisory_script_uri)), advisory_script_entrypoint_(std::move(advisory_script_entrypoint)), logger_prefix_(std::move(logger_prefix)), - skia_unref_queue_(std::move(skia_unref_queue)), - isolate_name_server_(isolate_name_server) { + skia_unref_queue_(std::move(skia_unref_queue)) { AddOrRemoveTaskObserver(true /* add */); } @@ -102,8 +100,4 @@ fml::WeakPtr UIDartState::GetResourceContext() const { return resource_context_; } -IsolateNameServer* UIDartState::GetIsolateNameServer() { - return isolate_name_server_; -} - } // namespace blink diff --git a/lib/ui/ui_dart_state.h b/lib/ui/ui_dart_state.h index 5cfdf9a44..ef1832594 100644 --- a/lib/ui/ui_dart_state.h +++ b/lib/ui/ui_dart_state.h @@ -13,7 +13,6 @@ #include "flutter/common/task_runners.h" #include "flutter/flow/skia_gpu_object.h" #include "flutter/fml/memory/weak_ptr.h" -#include "flutter/lib/ui/isolate_name_server/isolate_name_server.h" #include "lib/fxl/build_config.h" #include "lib/tonic/dart_microtask_queue.h" #include "lib/tonic/dart_persistent_value.h" @@ -47,8 +46,6 @@ class UIDartState : public tonic::DartState { fml::WeakPtr GetResourceContext() const; - IsolateNameServer* GetIsolateNameServer(); - template static flow::SkiaGPUObject CreateGPUObject(sk_sp object) { if (!object) { @@ -68,8 +65,7 @@ class UIDartState : public tonic::DartState { fxl::RefPtr skia_unref_queue, std::string advisory_script_uri, std::string advisory_script_entrypoint, - std::string logger_prefix, - IsolateNameServer* isolate_name_server); + std::string logger_prefix); ~UIDartState() override; @@ -94,7 +90,6 @@ class UIDartState : public tonic::DartState { std::unique_ptr window_; fxl::RefPtr skia_unref_queue_; tonic::DartMicrotaskQueue microtask_queue_; - IsolateNameServer* isolate_name_server_; void AddOrRemoveTaskObserver(bool add); }; diff --git a/runtime/dart_isolate.cc b/runtime/dart_isolate.cc index 66af59a58..ded3ff8f6 100644 --- a/runtime/dart_isolate.cc +++ b/runtime/dart_isolate.cc @@ -33,7 +33,7 @@ namespace blink { fml::WeakPtr DartIsolate::CreateRootIsolate( - DartVM* vm, + const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, @@ -94,7 +94,7 @@ fml::WeakPtr DartIsolate::CreateRootIsolate( return embedder_isolate; } -DartIsolate::DartIsolate(DartVM* vm, +DartIsolate::DartIsolate(const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, @@ -110,8 +110,7 @@ DartIsolate::DartIsolate(DartVM* vm, std::move(unref_queue), advisory_script_uri, advisory_script_entrypoint, - vm->GetSettings().log_tag, - vm->GetIsolateNameServer()), + vm->GetSettings().log_tag), vm_(vm), isolate_snapshot_(std::move(isolate_snapshot)), shared_snapshot_(std::move(shared_snapshot)), @@ -132,7 +131,7 @@ DartIsolate::Phase DartIsolate::GetPhase() const { return phase_; } -DartVM* DartIsolate::GetDartVM() const { +const DartVM* DartIsolate::GetDartVM() const { return vm_; } @@ -652,7 +651,7 @@ DartIsolate::CreateDartVMAndEmbedderObjectPair( return {nullptr, {}}; } - DartVM* const vm = embedder_isolate->GetDartVM(); + const DartVM* vm = embedder_isolate->GetDartVM(); if (!is_root_isolate) { auto raw_embedder_isolate = embedder_isolate.release(); diff --git a/runtime/dart_isolate.h b/runtime/dart_isolate.h index ceed7a0fd..e82194690 100644 --- a/runtime/dart_isolate.h +++ b/runtime/dart_isolate.h @@ -39,7 +39,7 @@ class DartIsolate : public UIDartState { // bindings. From the VM's perspective, this isolate is not special in any // way. static fml::WeakPtr CreateRootIsolate( - DartVM* vm, + const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, @@ -50,7 +50,7 @@ class DartIsolate : public UIDartState { std::string advisory_script_entrypoint, Dart_IsolateFlags* flags = nullptr); - DartIsolate(DartVM* vm, + DartIsolate(const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, @@ -84,7 +84,7 @@ class DartIsolate : public UIDartState { void AddIsolateShutdownCallback(fxl::Closure closure); - DartVM* GetDartVM() const; + const DartVM* GetDartVM() const; fxl::RefPtr GetIsolateSnapshot() const; fxl::RefPtr GetSharedSnapshot() const; @@ -107,7 +107,7 @@ class DartIsolate : public UIDartState { }; friend class DartVM; - DartVM* const vm_ = nullptr; + const DartVM* vm_ = nullptr; Phase phase_ = Phase::Unknown; const fxl::RefPtr isolate_snapshot_; const fxl::RefPtr shared_snapshot_; diff --git a/runtime/dart_vm.cc b/runtime/dart_vm.cc index 4f24b5bad..776fbab98 100644 --- a/runtime/dart_vm.cc +++ b/runtime/dart_vm.cc @@ -471,10 +471,6 @@ const DartSnapshot& DartVM::GetVMSnapshot() const { return *vm_snapshot_.get(); } -IsolateNameServer* DartVM::GetIsolateNameServer() { - return &isolate_name_server_; -} - fxl::RefPtr DartVM::GetIsolateSnapshot() const { return isolate_snapshot_; } diff --git a/runtime/dart_vm.h b/runtime/dart_vm.h index 8c2c6f3fe..8202aad12 100644 --- a/runtime/dart_vm.h +++ b/runtime/dart_vm.h @@ -10,7 +10,6 @@ #include #include "flutter/common/settings.h" -#include "flutter/lib/ui/isolate_name_server/isolate_name_server.h" #include "flutter/runtime/dart_isolate.h" #include "flutter/runtime/dart_snapshot.h" #include "flutter/runtime/service_protocol.h" @@ -44,8 +43,6 @@ class DartVM : public fxl::RefCountedThreadSafe { const DartSnapshot& GetVMSnapshot() const; - IsolateNameServer* GetIsolateNameServer(); - fxl::RefPtr GetIsolateSnapshot() const; fxl::RefPtr GetSharedSnapshot() const; @@ -56,7 +53,6 @@ class DartVM : public fxl::RefCountedThreadSafe { private: const Settings settings_; const fxl::RefPtr vm_snapshot_; - IsolateNameServer isolate_name_server_; const fxl::RefPtr isolate_snapshot_; const fxl::RefPtr shared_snapshot_; std::unique_ptr platform_kernel_mapping_; diff --git a/runtime/dart_vm_unittests.cc b/runtime/dart_vm_unittests.cc index 280375dd1..d0664d111 100644 --- a/runtime/dart_vm_unittests.cc +++ b/runtime/dart_vm_unittests.cc @@ -18,18 +18,4 @@ TEST(DartVM, SimpleInitialization) { ASSERT_EQ(vm->GetPlatformKernel().GetSize(), 0u); } -TEST(DartVM, SimpleIsolateNameServer) { - Settings settings = {}; - settings.task_observer_add = [](intptr_t, fxl::Closure) {}; - settings.task_observer_remove = [](intptr_t) {}; - auto vm = DartVM::ForProcess(settings); - auto ns = vm->GetIsolateNameServer(); - ASSERT_EQ(ns->LookupIsolatePortByName("foobar"), ILLEGAL_PORT); - ASSERT_FALSE(ns->RemoveIsolateNameMapping("foobar")); - ASSERT_TRUE(ns->RegisterIsolatePortWithName(123, "foobar")); - ASSERT_FALSE(ns->RegisterIsolatePortWithName(123, "foobar")); - ASSERT_EQ(ns->LookupIsolatePortByName("foobar"), 123); - ASSERT_TRUE(ns->RemoveIsolateNameMapping("foobar")); -} - } // namespace blink diff --git a/runtime/runtime_controller.cc b/runtime/runtime_controller.cc index 18eaaebad..4b4c2cdf3 100644 --- a/runtime/runtime_controller.cc +++ b/runtime/runtime_controller.cc @@ -20,7 +20,7 @@ namespace blink { RuntimeController::RuntimeController( RuntimeDelegate& p_client, - DartVM* p_vm, + const DartVM* p_vm, fxl::RefPtr p_isolate_snapshot, fxl::RefPtr p_shared_snapshot, TaskRunners p_task_runners, @@ -41,7 +41,7 @@ RuntimeController::RuntimeController( RuntimeController::RuntimeController( RuntimeDelegate& p_client, - DartVM* p_vm, + const DartVM* p_vm, fxl::RefPtr p_isolate_snapshot, fxl::RefPtr p_shared_snapshot, TaskRunners p_task_runners, diff --git a/runtime/runtime_controller.h b/runtime/runtime_controller.h index 599d9c73b..746845a7c 100644 --- a/runtime/runtime_controller.h +++ b/runtime/runtime_controller.h @@ -24,7 +24,7 @@ class Window; class RuntimeController final : public WindowClient { public: RuntimeController(RuntimeDelegate& client, - DartVM* vm, + const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, @@ -82,7 +82,7 @@ class RuntimeController final : public WindowClient { }; RuntimeDelegate& client_; - DartVM* const vm_; + const DartVM* vm_; fxl::RefPtr isolate_snapshot_; fxl::RefPtr shared_snapshot_; TaskRunners task_runners_; @@ -95,7 +95,7 @@ class RuntimeController final : public WindowClient { std::pair root_isolate_return_code_ = {false, 0}; RuntimeController(RuntimeDelegate& client, - DartVM* vm, + const DartVM* vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, TaskRunners task_runners, diff --git a/shell/common/engine.cc b/shell/common/engine.cc index d2f6e5780..0eea25f8d 100644 --- a/shell/common/engine.cc +++ b/shell/common/engine.cc @@ -36,7 +36,7 @@ static constexpr char kLocalizationChannel[] = "flutter/localization"; static constexpr char kSettingsChannel[] = "flutter/settings"; Engine::Engine(Delegate& delegate, - blink::DartVM& vm, + const blink::DartVM& vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, blink::TaskRunners task_runners, diff --git a/shell/common/engine.h b/shell/common/engine.h index 46602cdea..e1fed0d68 100644 --- a/shell/common/engine.h +++ b/shell/common/engine.h @@ -39,7 +39,7 @@ class Engine final : public blink::RuntimeDelegate { }; Engine(Delegate& delegate, - blink::DartVM& vm, + const blink::DartVM& vm, fxl::RefPtr isolate_snapshot, fxl::RefPtr shared_snapshot, blink::TaskRunners task_runners, diff --git a/shell/common/shell.cc b/shell/common/shell.cc index 0da5126e5..97385fab6 100644 --- a/shell/common/shell.cc +++ b/shell/common/shell.cc @@ -400,7 +400,7 @@ fml::WeakPtr Shell::GetPlatformView() { return platform_view_->GetWeakPtr(); } -blink::DartVM& Shell::GetDartVM() const { +const blink::DartVM& Shell::GetDartVM() const { return *vm_; } diff --git a/shell/common/shell.h b/shell/common/shell.h index 75ab39052..2a8caeb47 100644 --- a/shell/common/shell.h +++ b/shell/common/shell.h @@ -72,7 +72,7 @@ class Shell final : public PlatformView::Delegate, fml::WeakPtr GetPlatformView(); - blink::DartVM& GetDartVM() const; + const blink::DartVM& GetDartVM() const; bool IsSetup() const; diff --git a/testing/dart/isolate_name_server_test.dart b/testing/dart/isolate_name_server_test.dart deleted file mode 100644 index 98dbf612c..000000000 --- a/testing/dart/isolate_name_server_test.dart +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; -import 'dart:isolate'; -import 'dart:ui'; - -import 'package:test/test.dart'; - -const kPortName = 'foobar'; -const kErrorCode = -1; -const kStartCode = 0; -const kCloseCode = 1; -const kDeletedCode = 2; - -void isolateSpawnEntrypoint(SendPort port) { - sendHelper(int code, [String message = '']) { - port.send([code, message]); - } - - SendPort shared = IsolateNameServer.lookupPortByName(kPortName); - if (shared == null) { - sendHelper(kErrorCode, 'Could not find port: $kPortName'); - return; - } - - // ack that the SendPort lookup was successful. - sendHelper(kStartCode); - - //shared.send(kPortName); - sendHelper(kCloseCode); - - // We'll fail if the ReceivePort's callback is called more than once. Try to - // send another message to ensure we don't crash. - shared.send('garbage'); - - bool result = IsolateNameServer.removePortNameMapping(kPortName); - if (result) { - sendHelper(kDeletedCode); - } else { - sendHelper(kErrorCode, 'Was unable to remove mapping for $kPortName'); - } -} - -void main() { - tearDown(() { - IsolateNameServer.removePortNameMapping(kPortName); - }); - - test('simple isolate name server', () { - // Mapping for 'foobar' isn't set. Check these cases to ensure correct - // negative response. - expect(IsolateNameServer.lookupPortByName(kPortName), isNull); - expect(IsolateNameServer.removePortNameMapping(kPortName), isFalse); - - // Register a SendPort. - final receivePort = new ReceivePort(); - final sendPort = receivePort.sendPort; - expect(IsolateNameServer.registerPortWithName(sendPort, kPortName), isTrue); - expect(IsolateNameServer.lookupPortByName(kPortName), sendPort); - - // Check we can't register the same name twice. - final receivePort2 = new ReceivePort(); - final sendPort2 = receivePort2.sendPort; - expect( - IsolateNameServer.registerPortWithName(sendPort2, kPortName), isFalse); - expect(IsolateNameServer.lookupPortByName(kPortName), sendPort); - - // Remove the mapping. - expect(IsolateNameServer.removePortNameMapping(kPortName), isTrue); - expect(IsolateNameServer.lookupPortByName(kPortName), isNull); - - // Ensure registering a new port with the old name returns the new port. - expect( - IsolateNameServer.registerPortWithName(sendPort2, kPortName), isTrue); - expect(IsolateNameServer.lookupPortByName(kPortName), sendPort2); - }); - - test('isolate name server null args', () { - // None of our IsolateNameServer methods should accept null. - expect(() => IsolateNameServer.lookupPortByName(null), throwsArgumentError); - expect(() => IsolateNameServer.registerPortWithName(null, 'abc'), - throwsArgumentError); - final receivePort = new ReceivePort(); - final sendPort = receivePort.sendPort; - expect(() => IsolateNameServer.registerPortWithName(sendPort, null), - throwsArgumentError); - expect(() => IsolateNameServer.removePortNameMapping(null), - throwsArgumentError); - }); - - test('isolate name server multi-isolate', () async { - // Register our send port with the name server. - final receivePort = new ReceivePort(); - final sendPort = receivePort.sendPort; - expect(IsolateNameServer.registerPortWithName(sendPort, kPortName), isTrue); - - // Test driver. - final testReceivePort = new ReceivePort(); - testReceivePort.listen(expectAsync1((List response) { - final int code = response[0]; - final String message = response[1]; - switch (code) { - case kStartCode: - break; - case kCloseCode: - receivePort.close(); - break; - case kDeletedCode: - expect(IsolateNameServer.lookupPortByName(kPortName), isNull); - break; - case kErrorCode: - throw message; - default: - throw 'UNREACHABLE'; - } - }, count: 3)); - - receivePort.listen(expectAsync1((message) { - // If we don't get this message, we timeout and fail. - expect(message, kPortName); - })); - - // Run the test. - await Isolate.spawn(isolateSpawnEntrypoint, testReceivePort.sendPort); - }); -} diff --git a/testing/run_tests.sh b/testing/run_tests.sh index 26e9401d4..73579c971 100755 --- a/testing/run_tests.sh +++ b/testing/run_tests.sh @@ -4,6 +4,7 @@ set -ex out/host_debug_unopt/fxl_unittests out/host_debug_unopt/synchronization_unittests +out/host_debug_unopt/wtf_unittests flutter/travis/analyze.sh diff --git a/travis/licenses_golden/licenses_flutter b/travis/licenses_golden/licenses_flutter index 222cc2f45..a66035fa4 100644 --- a/travis/licenses_golden/licenses_flutter +++ b/travis/licenses_golden/licenses_flutter @@ -490,7 +490,6 @@ LIBRARY: engine ORIGIN: ../../../flutter/flutter_kernel_transformers/lib/track_widget_constructor_locations.dart + ../../../LICENSE TYPE: LicenseType.bsd FILE: ../../../flutter/flutter_kernel_transformers/lib/track_widget_constructor_locations.dart -FILE: ../../../flutter/lib/ui/isolate_name_server.dart FILE: ../../../flutter/lib/ui/painting/image_encoding.cc FILE: ../../../flutter/lib/ui/painting/image_encoding.h FILE: ../../../flutter/shell/platform/android/apk_asset_provider.h @@ -581,10 +580,6 @@ FILE: ../../../flutter/fml/platform/win/wstring_conversion.h FILE: ../../../flutter/fml/unique_fd.cc FILE: ../../../flutter/fml/unique_fd.h FILE: ../../../flutter/fml/unique_object.h -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.cc -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server.h -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.cc -FILE: ../../../flutter/lib/ui/isolate_name_server/isolate_name_server_natives.h FILE: ../../../flutter/shell/common/isolate_configuration.cc FILE: ../../../flutter/shell/common/isolate_configuration.h FILE: ../../../flutter/shell/platform/android/android_shell_holder.cc -- GitLab