diff --git a/sky/engine/bindings/dart_ui.cc b/sky/engine/bindings/dart_ui.cc index d24472da75b..5ecdc2c5df1 100644 --- a/sky/engine/bindings/dart_ui.cc +++ b/sky/engine/bindings/dart_ui.cc @@ -42,7 +42,7 @@ const uint8_t* GetSymbol(Dart_NativeFunction native_function) { } // namespace -void DartUI::InitForIsolate() { +void DartUI::InitForGlobal() { if (!g_natives) { g_natives = new DartLibraryNatives(); Canvas::RegisterNatives(g_natives); @@ -64,7 +64,10 @@ void DartUI::InitForIsolate() { SceneBuilder::RegisterNatives(g_natives); Window::RegisterNatives(g_natives); } +} +void DartUI::InitForIsolate() { + DCHECK(g_natives); DART_CHECK_VALID(Dart_SetNativeResolver( Dart_LookupLibrary(ToDart("dart:ui")), GetNativeFunction, GetSymbol)); } diff --git a/sky/engine/bindings/dart_ui.h b/sky/engine/bindings/dart_ui.h index c52e2a7243a..3e19fcfc0f4 100644 --- a/sky/engine/bindings/dart_ui.h +++ b/sky/engine/bindings/dart_ui.h @@ -11,6 +11,7 @@ namespace blink { class DartUI { public: + static void InitForGlobal(); static void InitForIsolate(); private: diff --git a/sky/engine/core/script/dart_init.cc b/sky/engine/core/script/dart_init.cc index e4cd612384f..ad23c1042a4 100644 --- a/sky/engine/core/script/dart_init.cc +++ b/sky/engine/core/script/dart_init.cc @@ -290,6 +290,8 @@ void InitDartVM() { DartDebugger::InitDebugger(); } + DartUI::InitForGlobal(); + { TRACE_EVENT0("flutter", "Dart_Initialize"); CHECK(Dart_Initialize(reinterpret_cast(