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

Unified Diff: sky/engine/tonic/dart_converter.h

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
Index: sky/engine/tonic/dart_converter.h
diff --git a/sky/engine/tonic/dart_converter.h b/sky/engine/tonic/dart_converter.h
index c40fe5383dc69a0dd30bdf9df9d937c742430342..52deadcd5670dba3ad5f51bafaa7e087cb9bdece 100644
--- a/sky/engine/tonic/dart_converter.h
+++ b/sky/engine/tonic/dart_converter.h
@@ -6,6 +6,7 @@
#define SKY_ENGINE_TONIC_DART_CONVERTER_H_
#include <string>
+#include "mojo/public/cpp/system/handle.h"
#include "sky/engine/tonic/dart_state.h"
#include "sky/engine/tonic/dart_string.h"
#include "sky/engine/tonic/dart_string_cache.h"
@@ -266,6 +267,26 @@ struct DartConverter<Vector<T>> {
};
////////////////////////////////////////////////////////////////////////////////
+// mojo types
+
+template <typename HandleType>
+struct DartConverter<mojo::ScopedHandleBase<HandleType>> {
+ static mojo::ScopedHandleBase<HandleType> FromDart(Dart_Handle handle) {
+ uint64_t mojo_handle64 = 0;
+ Dart_Handle result = Dart_IntegerToUint64(handle, &mojo_handle64);
+ if (Dart_IsError(result) || !mojo_handle64)
+ return mojo::ScopedHandleBase<HandleType>();
+
+ HandleType mojo_handle(static_cast<MojoHandle>(mojo_handle64));
+ return mojo::MakeScopedHandle(mojo_handle);
+ }
+
+ static Dart_Handle ToDart(mojo::ScopedHandleBase<HandleType> mojo_handle) {
+ return Dart_NewInteger(static_cast<int64_t>(mojo_handle.release().value()));
+ }
+};
abarth-chromium 2015/02/23 22:29:37 Please move this declaration to a separate header
+
+////////////////////////////////////////////////////////////////////////////////
// DartValue
template <>

Powered by Google App Engine
This is Rietveld 408576698