File: jsonrpc.js

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (63 lines) | stat: -rw-r--r-- 1,864 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright 2014 The Chromium Authors
// 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 {number=} opt_ident The request id.
 * @return The JSON-RPC request object
 */
jsonRpc.generateJsonRpcRequest = function(methodname, params, opt_ident) {
  ident = opt_ident == undefined ? 0 : opt_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) {
  jsonRpc.responseObject = null;
  var xhr = new XMLHttpRequest();
  xhr.open('POST', '/RPC2', true);
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
      try {
        var response = xhr.responseText;
        jsonRpc.responseObject = JSON.parse(response).response;
      } catch (err) {
        console.error('Could not parse server response.');
        return;
      }
    }
  }
  string_request = JSON.stringify(json_request);
  xhr.send(string_request);
}