Initialize the global dart library natives separately and outside the isolate create callback

This commit is contained in:
Chinmay Garde 2016-01-04 16:53:19 -08:00
parent 90ef9fa39c
commit a59456d63c
3 changed files with 7 additions and 1 deletions

View File

@ -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));
}

View File

@ -11,6 +11,7 @@ namespace blink {
class DartUI {
public:
static void InitForGlobal();
static void InitForIsolate();
private:

View File

@ -290,6 +290,8 @@ void InitDartVM() {
DartDebugger::InitDebugger();
}
DartUI::InitForGlobal();
{
TRACE_EVENT0("flutter", "Dart_Initialize");
CHECK(Dart_Initialize(reinterpret_cast<uint8_t*>(