chromium/tools/android/wpr/chrome_proxy_wpr_replay.py

#!/usr/bin/env python3
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Begins proxying requests from Chrome, replaying a WPR replay file.

To use the proxy, run Chrome with the flags printed by this script.
"""

import argparse
import os
import subprocess
import sys
import time

chrome_root = os.path.join(os.path.dirname(__file__), '../../..')
sys.path.insert(0, os.path.join(chrome_root, 'build/android'))
sys.path.insert(0, os.path.join(chrome_root, 'third_party/catapult/devil'))

from devil.android import device_utils
import pylib.utils.chrome_proxy_utils as chrome_proxy_utils

parser = argparse.ArgumentParser()
parser.add_argument('--device', required=True)
parser.add_argument('--replay-file', required=True)
args = parser.parse_args()

session = chrome_proxy_utils.ChromeProxySession()
session.wpr_record_mode = False
session.Start(device_utils.DeviceUtils(args.device), args.replay_file)

print('Use these chrome flags:')
print(' '.join(session.GetFlags()))

print('Replaying ', args.replay_file)

# When this script exits, replaying stops. Wait for one hour.
print('Press Ctrl+C to quit')
time.sleep(3600)