Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / wpr_server.py
index 0e121b7..d0ebb84 100644 (file)
@@ -2,15 +2,21 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+from telemetry.core import forwarders
 from telemetry.core import util
 
-# TODO(tonyg): Move webpagereplay.py to a common location.
+
+# TODO(tonyg): Move webpagereplay.py's guts into this class and
+# make ReplayServer subclass LocalServer.
 util.AddDirToPythonPath(
     util.GetChromiumSrcDir(), 'chrome', 'test', 'functional')
 import webpagereplay  # pylint: disable=F0401
 
-def GetChromeFlags(replay_host, http_port, https_port):
-  return webpagereplay.GetChromeFlags(replay_host, http_port, https_port)
+
+def GetChromeFlags(replay_host, port_pairs):
+  return webpagereplay.GetChromeFlags(replay_host, port_pairs.http.remote_port,
+                                      port_pairs.https.remote_port)
+
 
 class ReplayServer(object):
   def __init__(self, browser_backend, path, is_record_mode, is_append_mode,
@@ -31,29 +37,34 @@ class ReplayServer(object):
       wpr_args.append('--inject_scripts=')
     browser_backend.AddReplayServerOptions(wpr_args)
     self._web_page_replay = webpagereplay.ReplayServer(
-        path,
-        browser_backend.WEBPAGEREPLAY_HOST,
-        browser_backend.wpr_http_port_pair.local_port,
-        browser_backend.wpr_https_port_pair.local_port,
+        path, self._browser_backend.forwarder_factory.host_ip,
+        browser_backend.wpr_port_pairs.dns.local_port if
+        browser_backend.wpr_port_pairs.dns else 0,
+        browser_backend.wpr_port_pairs.http.local_port,
+        browser_backend.wpr_port_pairs.https.local_port,
         wpr_args)
     # Remove --no-dns_forwarding if it wasn't explicitly requested by backend.
     if '--no-dns_forwarding' not in wpr_args:
       self._web_page_replay.replay_options.remove('--no-dns_forwarding')
     self._web_page_replay.StartServer()
 
-    browser_backend.wpr_http_port_pair.local_port = (
-        self._web_page_replay.http_port)
-    browser_backend.wpr_http_port_pair.remote_port = (
-        browser_backend.wpr_http_port_pair.remote_port or
-        self._web_page_replay.http_port)
-    browser_backend.wpr_https_port_pair.local_port = (
-        self._web_page_replay.https_port)
-    browser_backend.wpr_https_port_pair.remote_port = (
-        browser_backend.wpr_https_port_pair.remote_port or
-        self._web_page_replay.https_port)
+    browser_backend.wpr_port_pairs = forwarders.PortPairs(
+        http=forwarders.PortPair(
+            self._web_page_replay.http_port,
+            browser_backend.wpr_port_pairs.http.remote_port or
+            self._web_page_replay.http_port),
+        https=forwarders.PortPair(
+            self._web_page_replay.https_port,
+            browser_backend.wpr_port_pairs.https.remote_port or
+            self._web_page_replay.https_port),
+        dns=forwarders.PortPair(
+            self._web_page_replay.dns_port,
+            browser_backend.wpr_port_pairs.dns.remote_port or
+            self._web_page_replay.dns_port)
+            if browser_backend.wpr_port_pairs.dns else None)
 
-    self._forwarder = browser_backend.CreateForwarder(
-        browser_backend.wpr_http_port_pair, browser_backend.wpr_https_port_pair)
+    self._forwarder = browser_backend.forwarder_factory.Create(
+        browser_backend.wpr_port_pairs)
 
   def __enter__(self):
     return self