Index: sky/viewer/internals.cc |
diff --git a/sky/viewer/internals.cc b/sky/viewer/internals.cc |
index 3070f98273ffb79953d5c52b4981e6b345ffee8f..f26a86f9d1020fec3f25a413a52f7bb9b3fc5783 100644 |
--- a/sky/viewer/internals.cc |
+++ b/sky/viewer/internals.cc |
@@ -44,15 +44,28 @@ void NotifyTestComplete(Dart_NativeArguments args) { |
GetInternals()->NotifyTestComplete(StdStringFromDart(test_result)); |
} |
-void PassShellProxyHandle(Dart_NativeArguments args) { |
- Dart_SetIntegerReturnValue(args, GetInternals()->PassShellProxyHandle().value()); |
+void TakeShellProxyHandle(Dart_NativeArguments args) { |
+ Dart_SetIntegerReturnValue(args, |
+ GetInternals()->TakeShellProxyHandle().value()); |
+} |
+ |
+void TakeServicesProvidedToEmbedder(Dart_NativeArguments args) { |
+ Dart_SetIntegerReturnValue(args, |
+ GetInternals()->TakeServicesProvidedToEmbedder().value()); |
+} |
+ |
+void TakeServicesProvidedByEmbedder(Dart_NativeArguments args) { |
+ Dart_SetIntegerReturnValue(args, |
+ GetInternals()->TakeServicesProvidedByEmbedder().value()); |
} |
const DartBuiltin::Natives kNativeFunctions[] = { |
{"renderTreeAsText", RenderTreeAsText, 0}, |
{"contentAsText", ContentAsText, 0}, |
{"notifyTestComplete", NotifyTestComplete, 1}, |
- {"passShellProxyHandle", PassShellProxyHandle, 0}, |
+ {"takeShellProxyHandle", TakeShellProxyHandle, 0}, |
+ {"takeServicesProvidedToEmbedder", TakeServicesProvidedToEmbedder, 0}, |
+ {"takeServicesProvidedByEmbedder", TakeServicesProvidedByEmbedder, 0}, |
}; |
const DartBuiltin& GetBuiltin() { |
@@ -76,7 +89,9 @@ const char kLibrarySource[] = R"DART( |
String renderTreeAsText() native "renderTreeAsText"; |
String contentAsText() native "contentAsText"; |
void notifyTestComplete(String test_result) native "notifyTestComplete"; |
-int passShellProxyHandle() native "passShellProxyHandle"; |
+int takeShellProxyHandle() native "takeShellProxyHandle"; |
+int takeServicesProvidedToEmbedder() native "takeServicesProvidedToEmbedder"; |
+int takeServicesProvidedByEmbedder() native "takeServicesProvidedByEmbedder"; |
)DART"; |
} // namespace |
@@ -95,8 +110,7 @@ void Internals::Create(Dart_Isolate isolate, DocumentView* document_view) { |
Internals::Internals(DocumentView* document_view) |
: document_view_(document_view->GetWeakPtr()), |
shell_binding_(this) { |
- if (document_view_->imported_services()) |
- mojo::ConnectToService(document_view_->imported_services(), &test_harness_); |
+ test_harness_ = document_view_->TakeTestHarness(); |
} |
Internals::~Internals() { |
@@ -126,21 +140,22 @@ void Internals::NotifyTestComplete(const std::string& test_result) { |
} |
} |
-mojo::Handle Internals::ConnectToEmbedderService( |
- const std::string& interface_name) { |
- if (!document_view_ || !document_view_->imported_services()) |
+mojo::Handle Internals::TakeServicesProvidedToEmbedder() { |
+ if (!document_view_) |
return mojo::Handle(); |
+ return document_view_->TakeServicesProvidedToEmbedder().release(); |
+} |
- mojo::MessagePipe pipe; |
- document_view_->imported_services()->ConnectToService(interface_name, |
- pipe.handle1.Pass()); |
- return pipe.handle0.release(); |
+mojo::Handle Internals::TakeServicesProvidedByEmbedder() { |
+ if (!document_view_) |
+ return mojo::Handle(); |
+ return document_view_->TakeServicesProvidedByEmbedder().release(); |
} |
// Returns a MessagePipe handle that's connected to this Shell. The caller |
// owns the handle and is expected to use it to create the JS Application for |
// the DocumentView. |
-mojo::Handle Internals::PassShellProxyHandle() { |
+mojo::Handle Internals::TakeShellProxyHandle() { |
mojo::ShellPtr shell; |
if (!shell_binding_.is_bound()) |
shell_binding_.Bind(GetProxy(&shell)); |