Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 define("mojo/public/js/lib/control_message_proxy", [ | |
| 6 "mojo/public/interfaces/bindings/interface_control_messages.mojom", | |
| 7 "mojo/public/js/validator", | |
|
yzshen1
2017/02/11 01:11:29
Alphabetically, please.
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 8 "mojo/public/js/codec", | |
| 9 ], function(interfaceCtrlMsgs, validator, codec) { | |
|
yzshen1
2017/02/11 01:11:29
interfaceCtrlMsgs -> controlMessages?
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 10 | |
| 11 var Validator = validator.Validator; | |
| 12 | |
| 13 function sendRunOrClosePipeMessage(receiver, runOrClosePipeMsgParams) { | |
| 14 var messageName = interfaceCtrlMsgs.kRunOrClosePipeMessageId; | |
| 15 var payloadSize = interfaceCtrlMsgs.RunOrClosePipeMessageParams | |
| 16 .encodedSize; | |
| 17 var builder = new codec.MessageBuilder(messageName, payloadSize); | |
| 18 builder.encodeStruct(interfaceCtrlMsgs.RunOrClosePipeMessageParams, | |
| 19 runOrClosePipeMsgParams); | |
| 20 var message = builder.finish(); | |
| 21 receiver.accept(message); | |
| 22 } | |
| 23 | |
| 24 function validateControlResponse(message) { | |
| 25 var messageValidator = new Validator(message); | |
| 26 var error = messageValidator.validateMessageIsResponse(); | |
| 27 if (error != validator.validationError.NONE) { | |
| 28 throw error; | |
| 29 } | |
| 30 | |
| 31 if (!message.getName() && | |
|
yzshen1
2017/02/11 01:11:29
Do we need this check at all?
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 32 message.getName() != interfaceCtrlMsgs.kRunMessageId) { | |
| 33 throw new Error('Control message name is not kRunMessageId'); | |
|
yzshen1
2017/02/11 01:11:29
Please consider using double quotes.
And we need
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 34 } | |
| 35 } | |
| 36 | |
| 37 function accept(message) { | |
|
yzshen1
2017/02/11 01:11:29
Could we give it a more descriptive name? We have
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 38 validateControlResponse(message); | |
| 39 | |
| 40 var reader = new codec.MessageReader(message); | |
| 41 var runResponseMessageParams = reader.decodeStruct( | |
| 42 interfaceCtrlMsgs.RunResponseMessageParams); | |
| 43 | |
| 44 return Promise.resolve(runResponseMessageParams); | |
| 45 } | |
| 46 | |
| 47 /** | |
| 48 * Sends the given run message through the receiver. | |
| 49 * Accept the response message from the receiver and decode | |
| 50 * the message struct to RunResponseMessageParams. | |
| 51 * . | |
| 52 * @param {Router} receiver. | |
| 53 * @param {RunMessageParams} runMessageParams to be sent via a message. | |
| 54 * @return {Promise} that resolves to a RunResponseMessageParams. | |
| 55 */ | |
| 56 function sendRunMessage(receiver, runMsgParams) { | |
| 57 var messageName = interfaceCtrlMsgs.kRunMessageId; | |
| 58 var payloadSize = interfaceCtrlMsgs.RunMessageParams.encodedSize; | |
| 59 // requestID is set to 0, but is later | |
|
yzshen1
2017/02/11 01:11:29
Please fill this line to as close to 80 chars as p
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 60 // properly set by Router's acceptAndExpectResponse | |
|
yzshen1
2017/02/11 01:11:29
Usually in comments, we use xxx() to indicate func
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 61 var builder = new codec.MessageWithRequestIDBuilder(messageName, | |
| 62 payloadSize, codec.kMessageExpectsResponse, 0); | |
| 63 builder.encodeStruct(interfaceCtrlMsgs.RunMessageParams, runMsgParams); | |
| 64 var message = builder.finish(); | |
| 65 | |
| 66 return receiver.acceptAndExpectResponse(message).then(accept); | |
| 67 } | |
| 68 | |
| 69 function ControlMessageProxy() { | |
| 70 this.receiver = null; | |
| 71 } | |
| 72 | |
| 73 ControlMessageProxy.prototype.queryVersion = function() { | |
| 74 var runMsgParams = new interfaceCtrlMsgs.RunMessageParams(); | |
| 75 runMsgParams.input = new interfaceCtrlMsgs.RunInput(); | |
| 76 runMsgParams.input.query_version = new interfaceCtrlMsgs.QueryVersion(); | |
| 77 | |
| 78 return sendRunMessage(this.receiver, runMsgParams).then(function( | |
| 79 runResponseMsgParams) { | |
|
yzshen1
2017/02/11 01:11:29
4 spaces.
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 80 return runResponseMsgParams.output.query_version_result.version; | |
| 81 }); | |
| 82 }; | |
| 83 | |
| 84 ControlMessageProxy.prototype.requireVersion = function(version) { | |
| 85 var runOrClosePipeMsgParams = new | |
| 86 interfaceCtrlMsgs.RunOrClosePipeMessageParams(); | |
|
yzshen1
2017/02/11 01:11:29
4 spaces.
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 87 runOrClosePipeMsgParams.input = new interfaceCtrlMsgs.RunOrClosePipeInput(); | |
| 88 runOrClosePipeMsgParams.input.require_version = new | |
| 89 interfaceCtrlMsgs.RequireVersion({'version': version}); | |
|
yzshen1
2017/02/11 01:11:29
4 spaces.
wangjimmy
2017/02/13 20:43:07
Done.
| |
| 90 sendRunOrClosePipeMessage(this.receiver, runOrClosePipeMsgParams); | |
| 91 }; | |
| 92 | |
| 93 var exports = {}; | |
| 94 exports.ControlMessageProxy = ControlMessageProxy; | |
| 95 | |
| 96 return exports; | |
| 97 }); | |
| OLD | NEW |