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

Side by Side Diff: mojo/public/js/new_bindings/lib/control_message_proxy.js

Issue 2779533002: Revert of Mojo JS bindings: change module loading solution. (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 (function() { 5 define("mojo/public/js/lib/control_message_proxy", [
6 var internal = mojoBindings.internal; 6 "mojo/public/interfaces/bindings/interface_control_messages.mojom",
7 "mojo/public/js/codec",
8 "mojo/public/js/validator",
9 ], function(controlMessages, codec, validator) {
10
11 var Validator = validator.Validator;
7 12
8 function sendRunOrClosePipeMessage(receiver, runOrClosePipeMessageParams) { 13 function sendRunOrClosePipeMessage(receiver, runOrClosePipeMessageParams) {
9 var messageName = mojo.interface_control2.kRunOrClosePipeMessageId; 14 var messageName = controlMessages.kRunOrClosePipeMessageId;
10 var payloadSize = 15 var payloadSize = controlMessages.RunOrClosePipeMessageParams.encodedSize;
11 mojo.interface_control2.RunOrClosePipeMessageParams.encodedSize; 16 var builder = new codec.MessageBuilder(messageName, payloadSize);
12 var builder = new internal.MessageBuilder(messageName, payloadSize); 17 builder.encodeStruct(controlMessages.RunOrClosePipeMessageParams,
13 builder.encodeStruct(mojo.interface_control2.RunOrClosePipeMessageParams,
14 runOrClosePipeMessageParams); 18 runOrClosePipeMessageParams);
15 var message = builder.finish(); 19 var message = builder.finish();
16 receiver.accept(message); 20 receiver.accept(message);
17 } 21 }
18 22
19 function validateControlResponse(message) { 23 function validateControlResponse(message) {
20 var messageValidator = new internal.Validator(message); 24 var messageValidator = new Validator(message);
21 var error = messageValidator.validateMessageIsResponse(); 25 var error = messageValidator.validateMessageIsResponse();
22 if (error != internal.validationError.NONE) { 26 if (error != validator.validationError.NONE) {
23 throw error; 27 throw error;
24 } 28 }
25 29
26 if (message.getName() != mojo.interface_control2.kRunMessageId) { 30 if (message.getName() != controlMessages.kRunMessageId) {
27 throw new Error("Control message name is not kRunMessageId"); 31 throw new Error("Control message name is not kRunMessageId");
28 } 32 }
29 33
30 // Validate payload. 34 // Validate payload.
31 error = mojo.interface_control2.RunResponseMessageParams.validate( 35 error = controlMessages.RunResponseMessageParams.validate(
32 messageValidator, message.getHeaderNumBytes()); 36 messageValidator, message.getHeaderNumBytes());
33 if (error != internal.validationError.NONE) { 37 if (error != validator.validationError.NONE) {
34 throw error; 38 throw error;
35 } 39 }
36 } 40 }
37 41
38 function acceptRunResponse(message) { 42 function acceptRunResponse(message) {
39 validateControlResponse(message); 43 validateControlResponse(message);
40 44
41 var reader = new internal.MessageReader(message); 45 var reader = new codec.MessageReader(message);
42 var runResponseMessageParams = reader.decodeStruct( 46 var runResponseMessageParams = reader.decodeStruct(
43 mojo.interface_control2.RunResponseMessageParams); 47 controlMessages.RunResponseMessageParams);
44 48
45 return Promise.resolve(runResponseMessageParams); 49 return Promise.resolve(runResponseMessageParams);
46 } 50 }
47 51
48 /** 52 /**
49 * Sends the given run message through the receiver. 53 * Sends the given run message through the receiver.
50 * Accepts the response message from the receiver and decodes the message 54 * Accepts the response message from the receiver and decodes the message
51 * struct to RunResponseMessageParams. 55 * struct to RunResponseMessageParams.
52 * 56 *
53 * @param {Router} receiver. 57 * @param {Router} receiver.
54 * @param {RunMessageParams} runMessageParams to be sent via a message. 58 * @param {RunMessageParams} runMessageParams to be sent via a message.
55 * @return {Promise} that resolves to a RunResponseMessageParams. 59 * @return {Promise} that resolves to a RunResponseMessageParams.
56 */ 60 */
57 function sendRunMessage(receiver, runMessageParams) { 61 function sendRunMessage(receiver, runMessageParams) {
58 var messageName = mojo.interface_control2.kRunMessageId; 62 var messageName = controlMessages.kRunMessageId;
59 var payloadSize = mojo.interface_control2.RunMessageParams.encodedSize; 63 var payloadSize = controlMessages.RunMessageParams.encodedSize;
60 // |requestID| is set to 0, but is later properly set by Router. 64 // |requestID| is set to 0, but is later properly set by Router.
61 var builder = new internal.MessageWithRequestIDBuilder(messageName, 65 var builder = new codec.MessageWithRequestIDBuilder(messageName,
62 payloadSize, internal.kMessageExpectsResponse, 0); 66 payloadSize, codec.kMessageExpectsResponse, 0);
63 builder.encodeStruct(mojo.interface_control2.RunMessageParams, 67 builder.encodeStruct(controlMessages.RunMessageParams, runMessageParams);
64 runMessageParams);
65 var message = builder.finish(); 68 var message = builder.finish();
66 69
67 return receiver.acceptAndExpectResponse(message).then(acceptRunResponse); 70 return receiver.acceptAndExpectResponse(message).then(acceptRunResponse);
68 } 71 }
69 72
70 function ControlMessageProxy(receiver) { 73 function ControlMessageProxy(receiver) {
71 this.receiver = receiver; 74 this.receiver = receiver;
72 } 75 }
73 76
74 ControlMessageProxy.prototype.queryVersion = function() { 77 ControlMessageProxy.prototype.queryVersion = function() {
75 var runMessageParams = new mojo.interface_control2.RunMessageParams(); 78 var runMessageParams = new controlMessages.RunMessageParams();
76 runMessageParams.input = new mojo.interface_control2.RunInput(); 79 runMessageParams.input = new controlMessages.RunInput();
77 runMessageParams.input.query_version = 80 runMessageParams.input.query_version = new controlMessages.QueryVersion();
78 new mojo.interface_control2.QueryVersion();
79 81
80 return sendRunMessage(this.receiver, runMessageParams).then(function( 82 return sendRunMessage(this.receiver, runMessageParams).then(function(
81 runResponseMessageParams) { 83 runResponseMessageParams) {
82 return runResponseMessageParams.output.query_version_result.version; 84 return runResponseMessageParams.output.query_version_result.version;
83 }); 85 });
84 }; 86 };
85 87
86 ControlMessageProxy.prototype.requireVersion = function(version) { 88 ControlMessageProxy.prototype.requireVersion = function(version) {
87 var runOrClosePipeMessageParams = new 89 var runOrClosePipeMessageParams = new
88 mojo.interface_control2.RunOrClosePipeMessageParams(); 90 controlMessages.RunOrClosePipeMessageParams();
89 runOrClosePipeMessageParams.input = new 91 runOrClosePipeMessageParams.input = new
90 mojo.interface_control2.RunOrClosePipeInput(); 92 controlMessages.RunOrClosePipeInput();
91 runOrClosePipeMessageParams.input.require_version = new 93 runOrClosePipeMessageParams.input.require_version = new
92 mojo.interface_control2.RequireVersion({'version': version}); 94 controlMessages.RequireVersion({'version': version});
93 sendRunOrClosePipeMessage(this.receiver, runOrClosePipeMessageParams); 95 sendRunOrClosePipeMessage(this.receiver, runOrClosePipeMessageParams);
94 }; 96 };
95 97
96 internal.ControlMessageProxy = ControlMessageProxy; 98 var exports = {};
97 })(); 99 exports.ControlMessageProxy = ControlMessageProxy;
100
101 return exports;
102 });
OLDNEW
« no previous file with comments | « mojo/public/js/new_bindings/lib/control_message_handler.js ('k') | mojo/public/js/new_bindings/router.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698