OLD | NEW |
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_proxy", [ | 5 define("mojo/public/js/lib/control_message_proxy", [ |
6 "mojo/public/interfaces/bindings/interface_control_messages.mojom", | 6 "mojo/public/interfaces/bindings/interface_control_messages.mojom", |
7 "mojo/public/js/codec", | 7 "mojo/public/js/codec", |
8 "mojo/public/js/validator", | 8 "mojo/public/js/validator", |
9 ], function(controlMessages, codec, validator) { | 9 ], function(controlMessages, codec, validator) { |
10 | 10 |
11 var Validator = validator.Validator; | 11 var Validator = validator.Validator; |
12 | 12 |
13 function sendRunOrClosePipeMessage(receiver, runOrClosePipeMessageParams) { | 13 function constructRunOrClosePipeMessage(runOrClosePipeInput) { |
| 14 var runOrClosePipeMessageParams = new |
| 15 controlMessages.RunOrClosePipeMessageParams(); |
| 16 runOrClosePipeMessageParams.input = runOrClosePipeInput; |
| 17 |
14 var messageName = controlMessages.kRunOrClosePipeMessageId; | 18 var messageName = controlMessages.kRunOrClosePipeMessageId; |
15 var payloadSize = controlMessages.RunOrClosePipeMessageParams.encodedSize; | 19 var payloadSize = controlMessages.RunOrClosePipeMessageParams.encodedSize; |
16 var builder = new codec.MessageBuilder(messageName, payloadSize); | 20 var builder = new codec.MessageBuilder(messageName, payloadSize); |
17 builder.encodeStruct(controlMessages.RunOrClosePipeMessageParams, | 21 builder.encodeStruct(controlMessages.RunOrClosePipeMessageParams, |
18 runOrClosePipeMessageParams); | 22 runOrClosePipeMessageParams); |
19 var message = builder.finish(); | 23 var message = builder.finish(); |
20 receiver.accept(message); | 24 return message; |
21 } | 25 } |
22 | 26 |
23 function validateControlResponse(message) { | 27 function validateControlResponse(message) { |
24 var messageValidator = new Validator(message); | 28 var messageValidator = new Validator(message); |
25 var error = messageValidator.validateMessageIsResponse(); | 29 var error = messageValidator.validateMessageIsResponse(); |
26 if (error != validator.validationError.NONE) { | 30 if (error != validator.validationError.NONE) { |
27 throw error; | 31 throw error; |
28 } | 32 } |
29 | 33 |
30 if (message.getName() != controlMessages.kRunMessageId) { | 34 if (message.getName() != controlMessages.kRunMessageId) { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 // |requestID| is set to 0, but is later properly set by Router. | 68 // |requestID| is set to 0, but is later properly set by Router. |
65 var builder = new codec.MessageWithRequestIDBuilder(messageName, | 69 var builder = new codec.MessageWithRequestIDBuilder(messageName, |
66 payloadSize, codec.kMessageExpectsResponse, 0); | 70 payloadSize, codec.kMessageExpectsResponse, 0); |
67 builder.encodeStruct(controlMessages.RunMessageParams, runMessageParams); | 71 builder.encodeStruct(controlMessages.RunMessageParams, runMessageParams); |
68 var message = builder.finish(); | 72 var message = builder.finish(); |
69 | 73 |
70 return receiver.acceptAndExpectResponse(message).then(acceptRunResponse); | 74 return receiver.acceptAndExpectResponse(message).then(acceptRunResponse); |
71 } | 75 } |
72 | 76 |
73 function ControlMessageProxy(receiver) { | 77 function ControlMessageProxy(receiver) { |
74 this.receiver = receiver; | 78 this.receiver_ = receiver; |
75 } | 79 } |
76 | 80 |
77 ControlMessageProxy.prototype.queryVersion = function() { | 81 ControlMessageProxy.prototype.queryVersion = function() { |
78 var runMessageParams = new controlMessages.RunMessageParams(); | 82 var runMessageParams = new controlMessages.RunMessageParams(); |
79 runMessageParams.input = new controlMessages.RunInput(); | 83 runMessageParams.input = new controlMessages.RunInput(); |
80 runMessageParams.input.query_version = new controlMessages.QueryVersion(); | 84 runMessageParams.input.query_version = new controlMessages.QueryVersion(); |
81 | 85 |
82 return sendRunMessage(this.receiver, runMessageParams).then(function( | 86 return sendRunMessage(this.receiver_, runMessageParams).then(function( |
83 runResponseMessageParams) { | 87 runResponseMessageParams) { |
84 return runResponseMessageParams.output.query_version_result.version; | 88 return runResponseMessageParams.output.query_version_result.version; |
85 }); | 89 }); |
86 }; | 90 }; |
87 | 91 |
88 ControlMessageProxy.prototype.requireVersion = function(version) { | 92 ControlMessageProxy.prototype.requireVersion = function(version) { |
89 var runOrClosePipeMessageParams = new | 93 var runOrClosePipeInput = new controlMessages.RunOrClosePipeInput(); |
90 controlMessages.RunOrClosePipeMessageParams(); | 94 runOrClosePipeInput.require_version = new controlMessages.RequireVersion({ |
91 runOrClosePipeMessageParams.input = new | 95 'version': version}); |
92 controlMessages.RunOrClosePipeInput(); | 96 var message = constructRunOrClosePipeMessage(runOrClosePipeInput); |
93 runOrClosePipeMessageParams.input.require_version = new | 97 this.receiver_.accept(message); |
94 controlMessages.RequireVersion({'version': version}); | |
95 sendRunOrClosePipeMessage(this.receiver, runOrClosePipeMessageParams); | |
96 }; | 98 }; |
97 | 99 |
98 var exports = {}; | 100 var exports = {}; |
99 exports.ControlMessageProxy = ControlMessageProxy; | 101 exports.ControlMessageProxy = ControlMessageProxy; |
100 | 102 |
101 return exports; | 103 return exports; |
102 }); | 104 }); |
OLD | NEW |