Index: remoting/tools/remote_test_helper/jsonrpc.js |
diff --git a/remoting/tools/remote_test_helper/jsonrpc.js b/remoting/tools/remote_test_helper/jsonrpc.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..89a7d02077959779fc7733eef6fafa6f59b92a35 |
--- /dev/null |
+++ b/remoting/tools/remote_test_helper/jsonrpc.js |
@@ -0,0 +1,64 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+var jsonRpc = {}; |
+jsonRpc.responseObject = null; |
+ |
+jsonRpc.setLastEvent = function(action, value, modifiers) { |
+ var request = jsonRpc.generateJsonRpcRequest( |
+ 'SetLastEvent', [action, value, modifiers]); |
+ return jsonRpc.sendRpcRequest(request); |
+} |
+ |
+jsonRpc.getLastEvent = function() { |
+ var request = jsonRpc.generateJsonRpcRequest('GetLastEvent', []); |
+ return jsonRpc.sendRpcRequest(request); |
+} |
+ |
+jsonRpc.clearLastEvent = function() { |
+ var request = jsonRpc.generateJsonRpcRequest('ClearLastEvent', []); |
+ return jsonRpc.sendRpcRequest(request); |
+} |
+ |
+/** |
+ * Generate the JSON request. |
+ * @param {string} methodname The name of the remote method. |
+ * @param {list} params The method parameters to pass. |
+ * @param {integer} ident The request id. |
+ * @return The JSON-RPC request object |
+ **/ |
+jsonRpc.generateJsonRpcRequest = function(methodname, params, ident) { |
+ ident = ident == undefined ? '...' : ident; |
+ var request = { |
+ "jsonrpc": "2.0", |
+ "method": methodname, |
+ "params": params, |
+ "id": ident |
+ }; |
+ return request; |
+} |
+ |
+/** |
+ * Method to POST the request to the RPC server. |
+ * @param {object} json_request The JSON request object. |
+ **/ |
+jsonRpc.sendRpcRequest = function(json_request) { |
+ var xhr = new XMLHttpRequest(); |
+ xhr.open('POST', '/RPC2', true); |
+ xhr.onreadystatechange = function () { |
+ if (xhr.readyState == 4 && xhr.status == 200) { |
+// console.log('Response text: ' + xhr.responseText); |
Jamie
2014/12/17 03:15:41
Remove, or reinstate.
Mike Meade
2014/12/18 18:54:25
Done.
|
+ try { |
+ var response = xhr.responseText; |
+ jsonRpc.responseObject = JSON.parse(response).response; |
+ } catch (err) { |
+ console.log('Could not parse server response.'); |
Jamie
2014/12/17 03:15:41
console.error?
Mike Meade
2014/12/18 18:54:25
Done.
|
+ return; |
+ } |
+ } |
+ } |
+ string_request = JSON.stringify(json_request); |
+// console.log('Request text: ' + string_request); |
+ xhr.send(string_request); |
+} |