OLD | NEW |
| (Empty) |
1 # Copyright (c) 2012 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 import os | |
5 import sys | |
6 | |
7 # Get chrome/test/functional scripts into our path. | |
8 # TODO(tonyg): Move webpagereplay.py to a common location. | |
9 sys.path.append( | |
10 os.path.abspath( | |
11 os.path.join(os.path.dirname(__file__), | |
12 '../../../chrome/test/functional'))) | |
13 import webpagereplay # pylint: disable=F0401 | |
14 | |
15 CHROME_FLAGS = webpagereplay.CHROME_FLAGS | |
16 | |
17 class ReplayServer(object): | |
18 def __init__(self, browser_backend, path, is_record_mode): | |
19 self._browser_backend = browser_backend | |
20 self._forwarder = None | |
21 self._web_page_replay = None | |
22 self._is_record_mode = is_record_mode | |
23 | |
24 self._forwarder = browser_backend.CreateForwarder( | |
25 webpagereplay.HTTP_PORT, webpagereplay.HTTPS_PORT) | |
26 | |
27 options = [] | |
28 if self._is_record_mode: | |
29 options.append('--record') | |
30 if not browser_backend.options.wpr_make_javascript_deterministic: | |
31 options.append('--inject_scripts=') | |
32 self._web_page_replay = webpagereplay.ReplayServer(path, options) | |
33 self._web_page_replay.StartServer() | |
34 | |
35 def __enter__(self): | |
36 return self | |
37 | |
38 def __exit__(self, *args): | |
39 self.Close() | |
40 | |
41 def Close(self): | |
42 if self._forwarder: | |
43 self._forwarder.Close() | |
44 self._forwarder = None | |
45 if self._web_page_replay: | |
46 self._web_page_replay.StopServer() | |
47 self._web_page_replay = None | |
OLD | NEW |