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

Side by Side Diff: mojo/public/js/lib/control_message_proxy.js

Issue 2744963002: Introduce InterfaceEndpointClient(IEC), InterfaceEndpointHandle and (Closed)
Patch Set: Throw the error with the string being the stack trace needed to debug layouts which don't output an… Created 3 years, 8 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_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
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 });
OLDNEW
« no previous file with comments | « mojo/public/js/lib/control_message_handler.js ('k') | mojo/public/js/lib/interface_endpoint_client.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698