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

Side by Side Diff: mojo/apps/js/threading.cc

Issue 93813002: Implement gin::ObjectTemplateBuilder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: asdf Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gin/test/gtest.cc ('k') | mojo/public/bindings/js/core.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/apps/js/threading.h" 5 #include "mojo/apps/js/threading.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "gin/function_template.h" 9 #include "gin/function_template.h"
10 #include "gin/object_template_builder.h"
10 #include "gin/per_isolate_data.h" 11 #include "gin/per_isolate_data.h"
11 #include "mojo/public/bindings/js/handle.h" 12 #include "mojo/public/bindings/js/handle.h"
12 13
13 namespace mojo { 14 namespace mojo {
14 namespace apps { 15 namespace apps {
15 16
16 namespace { 17 namespace {
17 18
18 void Quit() { 19 void Quit() {
19 base::MessageLoop::current()->QuitNow(); 20 base::MessageLoop::current()->QuitNow();
20 } 21 }
21 22
22 gin::WrapperInfo g_wrapper_info = { gin::kEmbedderNativeGin }; 23 gin::WrapperInfo g_wrapper_info = { gin::kEmbedderNativeGin };
23 24
24 } // namespace 25 } // namespace
25 26
26 const char Threading::kModuleName[] = "mojo/apps/js/threading"; 27 const char Threading::kModuleName[] = "mojo/apps/js/threading";
27 28
28 v8::Local<v8::ObjectTemplate> Threading::GetTemplate(v8::Isolate* isolate) { 29 v8::Local<v8::ObjectTemplate> Threading::GetTemplate(v8::Isolate* isolate) {
29 gin::PerIsolateData* data = gin::PerIsolateData::From(isolate); 30 gin::PerIsolateData* data = gin::PerIsolateData::From(isolate);
30 v8::Local<v8::ObjectTemplate> templ = data->GetObjectTemplate( 31 v8::Local<v8::ObjectTemplate> templ = data->GetObjectTemplate(
31 &g_wrapper_info); 32 &g_wrapper_info);
32 33
33 if (templ.IsEmpty()) { 34 if (templ.IsEmpty()) {
34 templ = v8::ObjectTemplate::New(); 35 templ = gin::ObjectTemplateBuilder(isolate)
35 templ->Set(gin::StringToSymbol(isolate, "quit"), 36 .SetMethod("quit", Quit)
36 gin::CreateFunctionTemplate(isolate, base::Bind(Quit))); 37 .Build();
38
37 data->SetObjectTemplate(&g_wrapper_info, templ); 39 data->SetObjectTemplate(&g_wrapper_info, templ);
38 } 40 }
39 41
40 return templ; 42 return templ;
41 } 43 }
42 44
43 } // namespace apps 45 } // namespace apps
44 } // namespace mojo 46 } // namespace mojo
OLDNEW
« no previous file with comments | « gin/test/gtest.cc ('k') | mojo/public/bindings/js/core.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698