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

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

Issue 2759563004: 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 define("mojo/public/js/lib/control_message_handler", [ 5 (function() {
6 "mojo/public/js/codec", 6 var internal = mojoBindings.internal;
7 "mojo/public/interfaces/bindings/interface_control_messages.mojom",
8 "mojo/public/js/validator",
9 ], function(codec, controlMessages, validator) {
10
11 var Validator = validator.Validator;
12 7
13 function validateControlRequestWithResponse(message) { 8 function validateControlRequestWithResponse(message) {
14 var messageValidator = new Validator(message); 9 var messageValidator = new internal.Validator(message);
15 var error = messageValidator.validateMessageIsRequestExpectingResponse(); 10 var error = messageValidator.validateMessageIsRequestExpectingResponse();
16 if (error !== validator.validationError.NONE) { 11 if (error !== internal.validationError.NONE) {
17 throw error; 12 throw error;
18 } 13 }
19 14
20 if (message.getName() != controlMessages.kRunMessageId) { 15 if (message.getName() != mojo.interface_control2.kRunMessageId) {
21 throw new Error("Control message name is not kRunMessageId"); 16 throw new Error("Control message name is not kRunMessageId");
22 } 17 }
23 18
24 // Validate payload. 19 // Validate payload.
25 error = controlMessages.RunMessageParams.validate(messageValidator, 20 error = mojo.interface_control2.RunMessageParams.validate(messageValidator,
26 message.getHeaderNumBytes()); 21 message.getHeaderNumBytes());
27 if (error != validator.validationError.NONE) { 22 if (error != internal.validationError.NONE) {
28 throw error; 23 throw error;
29 } 24 }
30 } 25 }
31 26
32 function validateControlRequestWithoutResponse(message) { 27 function validateControlRequestWithoutResponse(message) {
33 var messageValidator = new Validator(message); 28 var messageValidator = new internal.Validator(message);
34 var error = messageValidator.validateMessageIsRequestWithoutResponse(); 29 var error = messageValidator.validateMessageIsRequestWithoutResponse();
35 if (error != validator.validationError.NONE) { 30 if (error != internal.validationError.NONE) {
36 throw error; 31 throw error;
37 } 32 }
38 33
39 if (message.getName() != controlMessages.kRunOrClosePipeMessageId) { 34 if (message.getName() != mojo.interface_control2.kRunOrClosePipeMessageId) {
40 throw new Error("Control message name is not kRunOrClosePipeMessageId"); 35 throw new Error("Control message name is not kRunOrClosePipeMessageId");
41 } 36 }
42 37
43 // Validate payload. 38 // Validate payload.
44 error = controlMessages.RunOrClosePipeMessageParams.validate( 39 error = mojo.interface_control2.RunOrClosePipeMessageParams.validate(
45 messageValidator, message.getHeaderNumBytes()); 40 messageValidator, message.getHeaderNumBytes());
46 if (error != validator.validationError.NONE) { 41 if (error != internal.validationError.NONE) {
47 throw error; 42 throw error;
48 } 43 }
49 } 44 }
50 45
51 function runOrClosePipe(message, interface_version) { 46 function runOrClosePipe(message, interface_version) {
52 var reader = new codec.MessageReader(message); 47 var reader = new internal.MessageReader(message);
53 var runOrClosePipeMessageParams = reader.decodeStruct( 48 var runOrClosePipeMessageParams = reader.decodeStruct(
54 controlMessages.RunOrClosePipeMessageParams); 49 mojo.interface_control2.RunOrClosePipeMessageParams);
55 return interface_version >= 50 return interface_version >=
56 runOrClosePipeMessageParams.input.require_version.version; 51 runOrClosePipeMessageParams.input.require_version.version;
57 } 52 }
58 53
59 function run(message, responder, interface_version) { 54 function run(message, responder, interface_version) {
60 var reader = new codec.MessageReader(message); 55 var reader = new internal.MessageReader(message);
61 var runMessageParams = 56 var runMessageParams =
62 reader.decodeStruct(controlMessages.RunMessageParams); 57 reader.decodeStruct(mojo.interface_control2.RunMessageParams);
63 var runOutput = null; 58 var runOutput = null;
64 59
65 if (runMessageParams.input.query_version) { 60 if (runMessageParams.input.query_version) {
66 runOutput = new controlMessages.RunOutput(); 61 runOutput = new mojo.interface_control2.RunOutput();
67 runOutput.query_version_result = new 62 runOutput.query_version_result = new
68 controlMessages.QueryVersionResult({'version': interface_version}); 63 mojo.interface_control2.QueryVersionResult(
64 {'version': interface_version});
69 } 65 }
70 66
71 var runResponseMessageParams = new 67 var runResponseMessageParams = new
72 controlMessages.RunResponseMessageParams(); 68 mojo.interface_control2.RunResponseMessageParams();
73 runResponseMessageParams.output = runOutput; 69 runResponseMessageParams.output = runOutput;
74 70
75 var messageName = controlMessages.kRunMessageId; 71 var messageName = mojo.interface_control2.kRunMessageId;
76 var payloadSize = controlMessages.RunResponseMessageParams.encodedSize; 72 var payloadSize =
73 mojo.interface_control2.RunResponseMessageParams.encodedSize;
77 var requestID = reader.requestID; 74 var requestID = reader.requestID;
78 var builder = new codec.MessageWithRequestIDBuilder(messageName, 75 var builder = new internal.MessageWithRequestIDBuilder(messageName,
79 payloadSize, codec.kMessageIsResponse, requestID); 76 payloadSize, internal.kMessageIsResponse, requestID);
80 builder.encodeStruct(controlMessages.RunResponseMessageParams, 77 builder.encodeStruct(mojo.interface_control2.RunResponseMessageParams,
81 runResponseMessageParams); 78 runResponseMessageParams);
82 responder.accept(builder.finish()); 79 responder.accept(builder.finish());
83 return true; 80 return true;
84 } 81 }
85 82
86 function isControlMessage(message) { 83 function isInterfaceControlMessage(message) {
87 return message.getName() == controlMessages.kRunMessageId || 84 return message.getName() == mojo.interface_control2.kRunMessageId ||
88 message.getName() == controlMessages.kRunOrClosePipeMessageId; 85 message.getName() ==
86 mojo.interface_control2.kRunOrClosePipeMessageId;
89 } 87 }
90 88
91 function ControlMessageHandler(interface_version) { 89 function ControlMessageHandler(interface_version) {
92 this.interface_version = interface_version; 90 this.interface_version = interface_version;
93 } 91 }
94 92
95 ControlMessageHandler.prototype.accept = function(message) { 93 ControlMessageHandler.prototype.accept = function(message) {
96 validateControlRequestWithoutResponse(message); 94 validateControlRequestWithoutResponse(message);
97 return runOrClosePipe(message, this.interface_version); 95 return runOrClosePipe(message, this.interface_version);
98 }; 96 };
99 97
100 ControlMessageHandler.prototype.acceptWithResponder = function(message, 98 ControlMessageHandler.prototype.acceptWithResponder = function(message,
101 responder) { 99 responder) {
102 validateControlRequestWithResponse(message); 100 validateControlRequestWithResponse(message);
103 return run(message, responder, this.interface_version); 101 return run(message, responder, this.interface_version);
104 }; 102 };
105 103
106 var exports = {}; 104 internal.ControlMessageHandler = ControlMessageHandler;
107 exports.ControlMessageHandler = ControlMessageHandler; 105 internal.isInterfaceControlMessage = isInterfaceControlMessage;
108 exports.isControlMessage = isControlMessage; 106 })();
109
110 return exports;
111 });
OLDNEW
« no previous file with comments | « mojo/public/js/new_bindings/interface_types.js ('k') | mojo/public/js/new_bindings/lib/control_message_proxy.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698