From 4f370b3e6ed501163055b634ceff3791b91b4977 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Mon, 10 Oct 2016 14:51:22 -0700 Subject: [PATCH] Add more wiring for new semantics backend (#3111) Previously the Dart entry points weren't wired up. --- lib/ui/dart_ui.cc | 6 +++++- lib/ui/window/window.cc | 21 +++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/ui/dart_ui.cc b/lib/ui/dart_ui.cc index e34bca046..1f7735d68 100644 --- a/lib/ui/dart_ui.cc +++ b/lib/ui/dart_ui.cc @@ -4,8 +4,8 @@ #include "flutter/lib/ui/dart_ui.h" -#include "flutter/lib/ui/compositing/scene_builder.h" #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/mojo_services.h" #include "flutter/lib/ui/painting/canvas.h" @@ -18,6 +18,8 @@ #include "flutter/lib/ui/painting/path.h" #include "flutter/lib/ui/painting/picture.h" #include "flutter/lib/ui/painting/picture_recorder.h" +#include "flutter/lib/ui/semantics/semantics_update.h" +#include "flutter/lib/ui/semantics/semantics_update_builder.h" #include "flutter/lib/ui/text/paragraph.h" #include "flutter/lib/ui/text/paragraph_builder.h" #include "flutter/lib/ui/window/window.h" @@ -63,6 +65,8 @@ void DartUI::InitForGlobal() { PictureRecorder::RegisterNatives(g_natives); Scene::RegisterNatives(g_natives); SceneBuilder::RegisterNatives(g_natives); + SemanticsUpdate::RegisterNatives(g_natives); + SemanticsUpdateBuilder::RegisterNatives(g_natives); Window::RegisterNatives(g_natives); } } diff --git a/lib/ui/window/window.cc b/lib/ui/window/window.cc index fdc45ea01..b0f67893d 100644 --- a/lib/ui/window/window.cc +++ b/lib/ui/window/window.cc @@ -35,6 +35,17 @@ void Render(Dart_NativeArguments args) { UIDartState::Current()->window()->client()->Render(scene); } +void UpdateSemantics(Dart_NativeArguments args) { + Dart_Handle exception = nullptr; + SemanticsUpdate* update = + tonic::DartConverter::FromArguments(args, 1, exception); + if (exception) { + Dart_ThrowException(exception); + return; + } + UIDartState::Current()->window()->client()->UpdateSemantics(update); +} + void SendPlatformMessage(Dart_Handle window, const std::string& name, Dart_Handle callback, @@ -188,10 +199,12 @@ void Window::OnAppLifecycleStateChanged(sky::AppLifecycleState state) { } void Window::RegisterNatives(tonic::DartLibraryNatives* natives) { - natives->Register( - {{"Window_scheduleFrame", ScheduleFrame, 1, true}, - {"Window_render", Render, 2, true}, - {"Window_sendPlatformMessage", _SendPlatformMessage, 4, true}}); + natives->Register({ + {"Window_scheduleFrame", ScheduleFrame, 1, true}, + {"Window_sendPlatformMessage", _SendPlatformMessage, 4, true}, + {"Window_render", Render, 2, true}, + {"Window_updateSemantics", UpdateSemantics, 2, true}, + }); } } // namespace blink -- GitLab