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