Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Unified Diff: sky/viewer/internals.cc

Issue 948943002: Gets HTMLIFrameElement::embedViewManagerClient to work with dart (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« sky/tests/services/iframe-embed-vmc.sky ('K') | « sky/viewer/internals.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/viewer/internals.cc
diff --git a/sky/viewer/internals.cc b/sky/viewer/internals.cc
index f26a86f9d1020fec3f25a413a52f7bb9b3fc5783..9b41deab8c1dc034088b4f18372ea6640df43188 100644
--- a/sky/viewer/internals.cc
+++ b/sky/viewer/internals.cc
@@ -29,9 +29,15 @@ Internals* GetInternals() {
return static_cast<Internals*>(state->GetUserData(&kInternalsKey));
}
-void RenderTreeAsText(Dart_NativeArguments args) {
- Dart_Handle result = StdStringToDart(GetInternals()->RenderTreeAsText());
- Dart_SetReturnValue(args, result);
+void ConnectToService(Dart_NativeArguments args) {
+ Dart_Handle application_url_handle = Dart_GetNativeArgument(args, 0);
+ Dart_Handle interface_name_handle = Dart_GetNativeArgument(args, 1);
+ mojo::ScopedMessagePipeHandle handle(GetInternals()->ConnectToService(
+ StdStringFromDart(application_url_handle),
+ StdStringFromDart(interface_name_handle)));
+ Dart_SetReturnValue(
+ args,
+ DartConverter<mojo::ScopedMessagePipeHandle>::ToDart(handle.Pass()));
abarth-chromium 2015/02/23 22:29:38 You should add a SetReturnValue function to DartCo
}
void ContentAsText(Dart_NativeArguments args) {
@@ -44,28 +50,34 @@ void NotifyTestComplete(Dart_NativeArguments args) {
GetInternals()->NotifyTestComplete(StdStringFromDart(test_result));
}
+void RenderTreeAsText(Dart_NativeArguments args) {
sky 2015/02/23 22:09:33 I reorder these to be be alphabetical. I can easil
abarth-chromium 2015/02/23 22:29:38 That's great, thanks!
+ Dart_Handle result = StdStringToDart(GetInternals()->RenderTreeAsText());
+ Dart_SetReturnValue(args, result);
+}
+
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());
}
-void TakeServicesProvidedByEmbedder(Dart_NativeArguments args) {
- Dart_SetIntegerReturnValue(args,
- GetInternals()->TakeServicesProvidedByEmbedder().value());
+void TakeServicesProvidedToEmbedder(Dart_NativeArguments args) {
+ Dart_SetIntegerReturnValue(
+ args, GetInternals()->TakeServicesProvidedToEmbedder().value());
}
const DartBuiltin::Natives kNativeFunctions[] = {
- {"renderTreeAsText", RenderTreeAsText, 0},
- {"contentAsText", ContentAsText, 0},
- {"notifyTestComplete", NotifyTestComplete, 1},
- {"takeShellProxyHandle", TakeShellProxyHandle, 0},
- {"takeServicesProvidedToEmbedder", TakeServicesProvidedToEmbedder, 0},
- {"takeServicesProvidedByEmbedder", TakeServicesProvidedByEmbedder, 0},
+ {"connectToService", ConnectToService, 2},
abarth-chromium 2015/02/23 22:29:37 Why do you need connectToService? Can't you just
sky 2015/02/23 22:38:56 That can certainly be done. I was assuming we want
+ {"contentAsText", ContentAsText, 0},
+ {"notifyTestComplete", NotifyTestComplete, 1},
+ {"renderTreeAsText", RenderTreeAsText, 0},
+ {"takeShellProxyHandle", TakeShellProxyHandle, 0},
+ {"takeServicesProvidedByEmbedder", TakeServicesProvidedByEmbedder, 0},
+ {"takeServicesProvidedToEmbedder", TakeServicesProvidedToEmbedder, 0},
};
const DartBuiltin& GetBuiltin() {
@@ -86,12 +98,14 @@ const uint8_t* Symbolizer(Dart_NativeFunction native_function) {
const char kLibraryName[] = "dart:sky.internals";
const char kLibrarySource[] = R"DART(
-String renderTreeAsText() native "renderTreeAsText";
+int connectToService(String application_url, String interface_name) native
+ "connectToService";
String contentAsText() native "contentAsText";
void notifyTestComplete(String test_result) native "notifyTestComplete";
+String renderTreeAsText() native "renderTreeAsText";
int takeShellProxyHandle() native "takeShellProxyHandle";
-int takeServicesProvidedToEmbedder() native "takeServicesProvidedToEmbedder";
int takeServicesProvidedByEmbedder() native "takeServicesProvidedByEmbedder";
+int takeServicesProvidedToEmbedder() native "takeServicesProvidedToEmbedder";
)DART";
} // namespace
@@ -172,10 +186,11 @@ void Internals::ConnectToApplication(
}
}
-mojo::Handle Internals::ConnectToService(
- const std::string& application_url, const std::string& interface_name) {
+mojo::ScopedMessagePipeHandle Internals::ConnectToService(
+ const std::string& application_url,
+ const std::string& interface_name) {
if (!document_view_)
- return mojo::Handle();
+ return mojo::ScopedMessagePipeHandle();
mojo::ServiceProviderPtr service_provider;
ConnectToApplication(application_url, mojo::GetProxy(&service_provider),
@@ -183,7 +198,7 @@ mojo::Handle Internals::ConnectToService(
mojo::MessagePipe pipe;
service_provider->ConnectToService(interface_name, pipe.handle1.Pass());
- return pipe.handle0.release();
+ return pipe.handle0.Pass();
}
void Internals::pauseAnimations(double pauseTime) {
« sky/tests/services/iframe-embed-vmc.sky ('K') | « sky/viewer/internals.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698