OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2014 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 var jsonRpc = {}; |
| 6 jsonRpc.responseObject = null; |
| 7 |
| 8 jsonRpc.setLastEvent = function(action, value, modifiers) { |
| 9 var request = jsonRpc.generateJsonRpcRequest( |
| 10 'SetLastEvent', [action, value, modifiers]); |
| 11 return jsonRpc.sendRpcRequest(request); |
| 12 } |
| 13 |
| 14 jsonRpc.getLastEvent = function() { |
| 15 var request = jsonRpc.generateJsonRpcRequest('GetLastEvent', []); |
| 16 return jsonRpc.sendRpcRequest(request); |
| 17 } |
| 18 |
| 19 jsonRpc.clearLastEvent = function() { |
| 20 var request = jsonRpc.generateJsonRpcRequest('ClearLastEvent', []); |
| 21 return jsonRpc.sendRpcRequest(request); |
| 22 } |
| 23 |
| 24 /** |
| 25 * Generate the JSON request. |
| 26 * @param {string} methodname The name of the remote method. |
| 27 * @param {list} params The method parameters to pass. |
| 28 * @param {number=} opt_ident The request id. |
| 29 * @return The JSON-RPC request object |
| 30 **/ |
| 31 jsonRpc.generateJsonRpcRequest = function(methodname, params, opt_ident) { |
| 32 ident = opt_ident == undefined ? 0 : opt_ident; |
| 33 var request = { |
| 34 "jsonrpc": "2.0", |
| 35 "method": methodname, |
| 36 "params": params, |
| 37 "id": ident |
| 38 }; |
| 39 return request; |
| 40 } |
| 41 |
| 42 /** |
| 43 * Method to POST the request to the RPC server. |
| 44 * @param {object} json_request The JSON request object. |
| 45 **/ |
| 46 jsonRpc.sendRpcRequest = function(json_request) { |
| 47 jsonRpc.responseObject = null; |
| 48 var xhr = new XMLHttpRequest(); |
| 49 xhr.open('POST', '/RPC2', true); |
| 50 xhr.onreadystatechange = function () { |
| 51 if (xhr.readyState == 4 && xhr.status == 200) { |
| 52 try { |
| 53 var response = xhr.responseText; |
| 54 jsonRpc.responseObject = JSON.parse(response).response; |
| 55 } catch (err) { |
| 56 console.error('Could not parse server response.'); |
| 57 return; |
| 58 } |
| 59 } |
| 60 } |
| 61 string_request = JSON.stringify(json_request); |
| 62 xhr.send(string_request); |
| 63 } |
OLD | NEW |