summaryrefslogtreecommitdiffstats
path: root/gin/per_isolate_data.cc
Commit message (Collapse)AuthorAgeFilesLines
* [gin] Add a v8::Platform implementation to allow for v8 posting tasksjochen@chromium.org2014-04-041-1/+4
| | | | | | | | | | | | This currently has no effect unless concurrent sweeping and job based sweeping is turned on in v8. BUG=v8:3015 R=abarth@chromium.org,dcarney@chromium.org Review URL: https://codereview.chromium.org/225413004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261872 0039d316-1c4b-4281-b951-d872f2087c98
* gin: Add the concept of named and indexed interceptors.jochen@chromium.org2014-03-121-0/+51
| | | | | | | | | | | This will allow for using gin as a drop-in replacement for NPObject. BUG=347565 R=abarth@chromium.org,dcarney@chromium.org,aa@chromium.org Review URL: https://codereview.chromium.org/194603003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256431 0039d316-1c4b-4281-b951-d872f2087c98
* gin: Make it possible to use gin array buffers when running on top of blinkjochen@chromium.org2014-02-201-2/+4
| | | | | | | | | | | | | | | This approach won't let use share an array buffer with blink, however, it's good enough for a mojo js app. For gin::Wrappable objects that want to interact with blink APIs, they need to provide a custom converter to and from WebArrayBuffer(View) BUG=none R=abarth@chromium.org, dslomov@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/172133002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252190 0039d316-1c4b-4281-b951-d872f2087c98
* [Mojo] Almost connect mojo_js with hello_world_serviceabarth@chromium.org2013-11-251-1/+0
| | | | | | | | | | | | This CL connects mojo_js with hello_world_service. After this CL, the JavaScript and C++ implementations have reached parity. BUG=317398 Review URL: https://codereview.chromium.org/82953004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237018 0039d316-1c4b-4281-b951-d872f2087c98
* [gin] add support for non-gin managed isolates in gin.jochen@chromium.org2013-11-221-2/+4
| | | | | | | | | BUG=317398 R=abarth@chromium.org,aa@chromium.org Review URL: https://codereview.chromium.org/82963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236766 0039d316-1c4b-4281-b951-d872f2087c98
* This CL implements the Asynchronous Module Definition (AMD)abarth@chromium.org2013-11-171-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | API, which we plan to use for JavaScript in Mojo. We don't yet implement every feature in the AMD spec <https://github.com/amdjs/amdjs-api/wiki/AMD>, but we implement the basic framework, which will let us get started writing and testing JavaScript modules in Mojo. The two other leading choices for a modules system are CommonJS and ES6 modules. We decided not to use CommonJS, despite its popularity, because it implies the ability to load modules synchronously. That works well in server environments like node.js, but it won't work well for Mojo where modules might be loaded across a network. I would really like to have used ES6 modules, but the spec isn't finalized yet and V8 doesn't yet implement them. It's likely that we'll replace this AMD module system with ES6 modules once ES6 modules are ready. Structurally, I've implemented AMD in the ModuleRegistry class in a new "modules" directory in Gin. Nothing else in Gin (except the tests) depends on ModuleRegistry, which means folks are free to use Gin without AMD. At the Mojo layer, I've added a dependency on AMD. BUG=317398 Review URL: https://codereview.chromium.org/62333018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235543 0039d316-1c4b-4281-b951-d872f2087c98
* Begin implementing V8 bindings for Mojoabarth@chromium.org2013-11-121-3/+11
| | | | | | | | | | | | | | | | | | | | This CL contains the beginnings of JavaScript bindings for the core Mojo system. The approach in this CL is to bind as close to the "metal" as possible so as to self-host as much as possiblem in the VM. I've tried to avoid retaining any state on the C++ side of the bindings, but I didn't quite succeed because V8 requires embedders to retain state in order to access the memory that backs ArrayBuffers. In this CL, I've added some basic bindings for the symbols exported by core.h. Specifically, I've created bindings for CreateMessagePipe, Close, Wait, WaitMany, WriteMessage, and ReadMessage. R=aa@chromium.org, darin@chromium.org BUG=317398 Review URL: https://codereview.chromium.org/59153005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234347 0039d316-1c4b-4281-b951-d872f2087c98
* This CL introduces a lightweight bindings system for V8 called ginabarth@chromium.org2013-11-101-0/+33
Unlike the extensions V8 bindings, gin is based on ObjectTemplates rather than on evaluating script. Unlike the Blink V8 bindings, gin isn't tightly coupled to Blink. In fact, gin's only link-time dependency is V8. We plan to use gin to build the V8 bindings for Mojo (see https://codereview.chromium.org/59153005/ for an example of how they will be used). In the long term, gin could serve as a basis for both the Blink and the extension system bindings, but we don't have any immediate plans to pursue that use of this code. This code is largely inspired by a lightweight bindings system designed by Aaron Boodman. Review URL: https://codereview.chromium.org/67763002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234160 0039d316-1c4b-4281-b951-d872f2087c98