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

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