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

Unified Diff: mojo/public/bindings/js/core.cc

Issue 93813002: Implement gin::ObjectTemplateBuilder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: asdf Created 7 years, 1 month 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
« no previous file with comments | « mojo/apps/js/threading.cc ('k') | mojo/public/bindings/js/support.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/bindings/js/core.cc
diff --git a/mojo/public/bindings/js/core.cc b/mojo/public/bindings/js/core.cc
index 5ca062c7906caab47a704ca5b4b6fda894c0d297..86c821ff94245099345f4b6458f06c8653edc81d 100644
--- a/mojo/public/bindings/js/core.cc
+++ b/mojo/public/bindings/js/core.cc
@@ -11,6 +11,7 @@
#include "gin/converter.h"
#include "gin/dictionary.h"
#include "gin/function_template.h"
+#include "gin/object_template_builder.h"
#include "gin/per_isolate_data.h"
#include "gin/public/wrapper_info.h"
#include "mojo/public/bindings/js/handle.h"
@@ -93,85 +94,49 @@ v8::Local<v8::ObjectTemplate> Core::GetTemplate(v8::Isolate* isolate) {
&g_wrapper_info);
if (templ.IsEmpty()) {
- templ = v8::ObjectTemplate::New(isolate);
-
- templ->Set(gin::StringToSymbol(isolate, "close"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(mojo::CloseRaw)));
- templ->Set(gin::StringToSymbol(isolate, "wait"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(mojo::Wait)));
- templ->Set(gin::StringToSymbol(isolate, "waitMany"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(mojo::WaitMany<std::vector<mojo::Handle>,
- std::vector<MojoWaitFlags> >)));
- templ->Set(gin::StringToSymbol(isolate, "createMessagePipe"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(CreateMessagePipe)));
- templ->Set(gin::StringToSymbol(isolate, "writeMessage"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(WriteMessage)));
- templ->Set(gin::StringToSymbol(isolate, "readMessage"),
- gin::CreateFunctionTemplate(isolate,
- base::Bind(ReadMessage)));
-
- // TODO(vtl): Change name of "kInvalidHandle", now that there's no such C++
- // constant?
- templ->Set(gin::StringToSymbol(isolate, "kInvalidHandle"),
- gin::ConvertToV8(isolate, mojo::Handle()));
-
- templ->Set(gin::StringToSymbol(isolate, "RESULT_OK"),
- gin::ConvertToV8(isolate, MOJO_RESULT_OK));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_CANCELLED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_CANCELLED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_UNKNOWN"),
- gin::ConvertToV8(isolate, MOJO_RESULT_UNKNOWN));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_INVALID_ARGUMENT"),
- gin::ConvertToV8(isolate, MOJO_RESULT_INVALID_ARGUMENT));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_DEADLINE_EXCEEDED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_DEADLINE_EXCEEDED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_NOT_FOUND"),
- gin::ConvertToV8(isolate, MOJO_RESULT_NOT_FOUND));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_ALREADY_EXISTS"),
- gin::ConvertToV8(isolate, MOJO_RESULT_ALREADY_EXISTS));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_PERMISSION_DENIED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_PERMISSION_DENIED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_RESOURCE_EXHAUSTED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_RESOURCE_EXHAUSTED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_FAILED_PRECONDITION"),
- gin::ConvertToV8(isolate, MOJO_RESULT_FAILED_PRECONDITION));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_ABORTED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_ABORTED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_OUT_OF_RANGE"),
- gin::ConvertToV8(isolate, MOJO_RESULT_OUT_OF_RANGE));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_UNIMPLEMENTED"),
- gin::ConvertToV8(isolate, MOJO_RESULT_UNIMPLEMENTED));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_INTERNAL"),
- gin::ConvertToV8(isolate, MOJO_RESULT_INTERNAL));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_UNAVAILABLE"),
- gin::ConvertToV8(isolate, MOJO_RESULT_UNAVAILABLE));
- templ->Set(gin::StringToSymbol(isolate, "RESULT_DATA_LOSS"),
- gin::ConvertToV8(isolate, MOJO_RESULT_DATA_LOSS));
-
- templ->Set(gin::StringToSymbol(isolate, "DEADLINE_INDEFINITE"),
- gin::ConvertToV8(isolate, MOJO_DEADLINE_INDEFINITE));
-
- templ->Set(gin::StringToSymbol(isolate, "WAIT_FLAG_NONE"),
- gin::ConvertToV8(isolate, MOJO_WAIT_FLAG_NONE));
- templ->Set(gin::StringToSymbol(isolate, "WAIT_FLAG_READABLE"),
- gin::ConvertToV8(isolate, MOJO_WAIT_FLAG_READABLE));
- templ->Set(gin::StringToSymbol(isolate, "WAIT_FLAG_READABLE"),
- gin::ConvertToV8(isolate, MOJO_WAIT_FLAG_READABLE));
- templ->Set(gin::StringToSymbol(isolate, "WAIT_FLAG_EVERYTHING"),
- gin::ConvertToV8(isolate, MOJO_WAIT_FLAG_EVERYTHING));
-
- templ->Set(gin::StringToSymbol(isolate, "WRITE_MESSAGE_FLAG_NONE"),
- gin::ConvertToV8(isolate, MOJO_WRITE_MESSAGE_FLAG_NONE));
-
- templ->Set(gin::StringToSymbol(isolate, "READ_MESSAGE_FLAG_NONE"),
- gin::ConvertToV8(isolate, MOJO_READ_MESSAGE_FLAG_NONE));
- templ->Set(gin::StringToSymbol(isolate, "READ_MESSAGE_FLAG_MAY_DISCARD"),
- gin::ConvertToV8(isolate, MOJO_READ_MESSAGE_FLAG_MAY_DISCARD));
+ templ = gin::ObjectTemplateBuilder(isolate)
+ .SetMethod("close", mojo::CloseRaw)
+ .SetMethod("wait", mojo::Wait)
+ .SetMethod("waitMany", mojo::WaitMany<std::vector<mojo::Handle>,
+ std::vector<MojoWaitFlags> >)
+ .SetMethod("createMessagePipe", CreateMessagePipe)
+ .SetMethod("writeMessage", WriteMessage)
+ .SetMethod("readMessage", ReadMessage)
+
+ // TODO(vtl): Change name of "kInvalidHandle", now that there's no such
+ // C++ constant?
+ .SetValue("kInvalidHandle", mojo::Handle())
+
+ .SetValue("RESULT_OK", MOJO_RESULT_OK)
+ .SetValue("RESULT_CANCELLED", MOJO_RESULT_CANCELLED)
+ .SetValue("RESULT_UNKNOWN", MOJO_RESULT_UNKNOWN)
+ .SetValue("RESULT_INVALID_ARGUMENT", MOJO_RESULT_INVALID_ARGUMENT)
+ .SetValue("RESULT_DEADLINE_EXCEEDED", MOJO_RESULT_DEADLINE_EXCEEDED)
+ .SetValue("RESULT_NOT_FOUND", MOJO_RESULT_NOT_FOUND)
+ .SetValue("RESULT_ALREADY_EXISTS", MOJO_RESULT_ALREADY_EXISTS)
+ .SetValue("RESULT_PERMISSION_DENIED", MOJO_RESULT_PERMISSION_DENIED)
+ .SetValue("RESULT_RESOURCE_EXHAUSTED", MOJO_RESULT_RESOURCE_EXHAUSTED)
+ .SetValue("RESULT_FAILED_PRECONDITION", MOJO_RESULT_FAILED_PRECONDITION)
+ .SetValue("RESULT_ABORTED", MOJO_RESULT_ABORTED)
+ .SetValue("RESULT_OUT_OF_RANGE", MOJO_RESULT_OUT_OF_RANGE)
+ .SetValue("RESULT_UNIMPLEMENTED", MOJO_RESULT_UNIMPLEMENTED)
+ .SetValue("RESULT_INTERNAL", MOJO_RESULT_INTERNAL)
+ .SetValue("RESULT_UNAVAILABLE", MOJO_RESULT_UNAVAILABLE)
+ .SetValue("RESULT_DATA_LOSS", MOJO_RESULT_DATA_LOSS)
+
+ .SetValue("DEADLINE_INDEFINITE", MOJO_DEADLINE_INDEFINITE)
+
+ .SetValue("WAIT_FLAG_NONE", MOJO_WAIT_FLAG_NONE)
+ .SetValue("WAIT_FLAG_READABLE", MOJO_WAIT_FLAG_READABLE)
+ .SetValue("WAIT_FLAG_READABLE", MOJO_WAIT_FLAG_READABLE)
+ .SetValue("WAIT_FLAG_EVERYTHING", MOJO_WAIT_FLAG_EVERYTHING)
+
+ .SetValue("WRITE_MESSAGE_FLAG_NONE", MOJO_WRITE_MESSAGE_FLAG_NONE)
+
+ .SetValue("READ_MESSAGE_FLAG_NONE", MOJO_READ_MESSAGE_FLAG_NONE)
+ .SetValue("READ_MESSAGE_FLAG_MAY_DISCARD",
+ MOJO_READ_MESSAGE_FLAG_MAY_DISCARD)
+ .Build();
data->SetObjectTemplate(&g_wrapper_info, templ);
}
« no previous file with comments | « mojo/apps/js/threading.cc ('k') | mojo/public/bindings/js/support.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698