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() |