| Index: remoting/tools/remote_test_helper/rth_server.py
|
| diff --git a/remoting/tools/remote_test_helper/rth_server.py b/remoting/tools/remote_test_helper/rth_server.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c42b917fecbff4b0adb3fbce2e11e75aa7cb48bf
|
| --- /dev/null
|
| +++ b/remoting/tools/remote_test_helper/rth_server.py
|
| @@ -0,0 +1,69 @@
|
| +# 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.
|
| +import jsonrpclib
|
| +import SimpleJSONRPCServer as _server
|
| +
|
| +
|
| +class RequestHandler(_server.SimpleJSONRPCRequestHandler):
|
| + """Custom JSON-RPC request handler."""
|
| +
|
| + FILES = {
|
| + 'client.html': {'content-type': 'text/html'},
|
| + 'host.html': {'content-type': 'text/html'},
|
| + 'client.js': {'content-type': 'application/javascript'},
|
| + 'host.js': {'content-type': 'application/javascript'},
|
| + 'jsonrpc.js': {'content-type': 'application/javascript'}
|
| + }
|
| +
|
| + def do_GET(self):
|
| + """Custom GET handler to return default pages."""
|
| + filename = self.path.lstrip('/')
|
| + if filename not in self.FILES:
|
| + self.report_404()
|
| + return
|
| + with open(filename) as f:
|
| + data = f.read()
|
| + self.send_response(200)
|
| + for key, value in self.FILES[filename].iteritems():
|
| + self.send_header(key, value)
|
| + self.end_headers()
|
| + self.wfile.write(data)
|
| +
|
| +
|
| +class RPCHandler(object):
|
| + """Class to define and handle RPC calls."""
|
| +
|
| + CLEARED_EVENT = {'action': 0, 'event': 0, 'modifiers': 0}
|
| +
|
| + def __init__(self):
|
| + self.last_event = self.CLEARED_EVENT
|
| +
|
| + def ClearLastEvent(self):
|
| + """Clear the last event."""
|
| + self.last_event = self.CLEARED_EVENT
|
| + return True
|
| +
|
| + def SetLastEvent(self, action, value, modifier):
|
| + """Set the last action, value, and modifiers."""
|
| + self.last_event = {
|
| + 'action': action,
|
| + 'value': value,
|
| + 'modifiers': modifier
|
| + }
|
| + return True
|
| +
|
| + def GetLastEvent(self):
|
| + return self.last_event
|
| +
|
| +
|
| +def main():
|
| + server = _server.SimpleJSONRPCServer(
|
| + ('', 3474), requestHandler=RequestHandler,
|
| + logRequests=True, allow_none=True)
|
| + server.register_instance(RPCHandler())
|
| + server.serve_forever()
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + main()
|
|
|