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

Side by Side Diff: mojo/public/js/bindings.js

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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 unified diff | Download patch
« no previous file with comments | « mojo/public/js/BUILD.gn ('k') | mojo/public/js/buffer.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 define("mojo/public/js/bindings", [
6 "mojo/public/js/router",
7 ], function(router) {
8
9 var Router = router.Router;
10
11 var kProxyProperties = Symbol("proxyProperties");
12 var kStubProperties = Symbol("stubProperties");
13
14 // Public proxy class properties that are managed at runtime by the JS
15 // bindings. See ProxyBindings below.
16 function ProxyProperties(receiver) {
17 this.receiver = receiver;
18 }
19
20 ProxyProperties.prototype.getLocalDelegate = function() {
21 return this.local && StubBindings(this.local).delegate;
22 }
23
24 ProxyProperties.prototype.setLocalDelegate = function(impl) {
25 if (this.local)
26 StubBindings(this.local).delegate = impl;
27 else
28 throw new Error("no stub object");
29 }
30
31 // Public stub class properties that are managed at runtime by the JS
32 // bindings. See StubBindings below.
33 function StubProperties(delegate) {
34 this.delegate = delegate;
35 }
36
37 // The base class for generated proxy classes.
38 function ProxyBase(receiver) {
39 this[kProxyProperties] = new ProxyProperties(receiver);
40
41 // TODO(hansmuller): Temporary, for Chrome backwards compatibility.
42 if (receiver instanceof Router)
43 this.receiver_ = receiver;
44 }
45
46 // The base class for generated stub classes.
47 function StubBase(delegate) {
48 this[kStubProperties] = new StubProperties(delegate);
49 }
50
51 // Provides access to properties added to a proxy object without risking
52 // Mojo interface name collisions. Unless otherwise specified, the initial
53 // value of all properties is undefined.
54 //
55 // ProxyBindings(proxy).connection - The Connection object that links the
56 // proxy for a remote Mojo service to an optional local stub for a local
57 // service. The value of ProxyBindings(proxy).connection.remote == proxy.
58 //
59 // ProxyBindings(proxy).local - The "local" stub object whose delegate
60 // implements the proxy's Mojo client interface.
61 //
62 // ProxyBindings(proxy).setLocalDelegate(impl) - Sets the implementation
63 // delegate of the proxy's client stub object. This is just shorthand
64 // for |StubBindings(ProxyBindings(proxy).local).delegate = impl|.
65 //
66 // ProxyBindings(proxy).getLocalDelegate() - Returns the implementation
67 // delegate of the proxy's client stub object. This is just shorthand
68 // for |StubBindings(ProxyBindings(proxy).local).delegate|.
69
70 function ProxyBindings(proxy) {
71 return (proxy instanceof ProxyBase) ? proxy[kProxyProperties] : proxy;
72 }
73
74 // Provides access to properties added to a stub object without risking
75 // Mojo interface name collisions. Unless otherwise specified, the initial
76 // value of all properties is undefined.
77 //
78 // StubBindings(stub).delegate - The optional implementation delegate for
79 // the Mojo interface stub.
80 //
81 // StubBindings(stub).connection - The Connection object that links an
82 // optional proxy for a remote service to this stub. The value of
83 // StubBindings(stub).connection.local == stub.
84 //
85 // StubBindings(stub).remote - A proxy for the the stub's Mojo client
86 // service.
87
88 function StubBindings(stub) {
89 return stub instanceof StubBase ? stub[kStubProperties] : stub;
90 }
91
92 var exports = {};
93 exports.EmptyProxy = ProxyBase;
94 exports.EmptyStub = StubBase;
95 exports.ProxyBase = ProxyBase;
96 exports.ProxyBindings = ProxyBindings;
97 exports.StubBase = StubBase;
98 exports.StubBindings = StubBindings;
99 return exports;
100 });
OLDNEW
« no previous file with comments | « mojo/public/js/BUILD.gn ('k') | mojo/public/js/buffer.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698