Index: tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py |
diff --git a/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py b/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py |
index 1c6fdaa4ff07492e00d16a5c02764cb034070af7..8035bfd8dcc2985928081dda5c0039080cefb3a1 100644 |
--- a/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py |
+++ b/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py |
@@ -72,6 +72,10 @@ class ChromeProxyBypass(ChromeProxyValidation): |
restart_after_each_page=True, |
metrics=metrics.ChromeProxyMetric()) |
+ def CustomizeBrowserOptions(self, options): |
+ super(ChromeProxyBypass, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs('--disable-quic') |
+ |
def AddResults(self, tab, results): |
self._metrics.AddResultsForBypass(tab, results) |
@@ -205,8 +209,8 @@ class ChromeProxyBadHTTPSFallback(ChromeProxyValidation): |
self._is_chrome_proxy_enabled = True |
def CustomizeBrowserOptions(self, options): |
- super(ChromeProxyBadHTTPSFallback, self).CustomizeBrowserOptions( |
- options) |
+ super(ChromeProxyBadHTTPSFallback, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs('--disable-quic') |
def AddResults(self, tab, results): |
self._metrics.AddResultsForBadHTTPSFallback(tab, results) |
@@ -279,6 +283,10 @@ class ChromeProxyClientType(ChromeProxyValidation): |
metrics=metrics.ChromeProxyMetric()) |
self._chrome_proxy_client_type = None |
+ def CustomizeBrowserOptions(self, options): |
+ super(ChromeProxyClientType, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs('--disable-quic') |
+ |
def AddResults(self, tab, results): |
# Get the Chrome-Proxy client type from the first page in the page set, so |
# that the client type value can be used to determine which of the later |
@@ -307,6 +315,7 @@ class ChromeProxyLoFi(ChromeProxyValidation): |
# Disable server experiments such as tamper detection. |
options.AppendExtraBrowserArgs( |
'--data-reduction-proxy-server-experiments-disabled') |
+ options.AppendExtraBrowserArgs('--disable-quic') |
def AddResults(self, tab, results): |
self._metrics.AddResultsForLoFi(tab, results) |
@@ -341,6 +350,7 @@ class ChromeProxyCacheLoFiDisabled(ChromeProxyValidation): |
'--data-reduction-proxy-lo-fi=always-on') |
self.options.AppendExtraBrowserArgs( |
'--data-reduction-proxy-server-experiments-disabled') |
+ self.options.AppendExtraBrowserArgs('--disable-quic') |
self._is_lo_fi_enabled = True |
else: |
# Second page load, disable LoFi. Chrome proxy is still enabled. Disable |
@@ -349,6 +359,7 @@ class ChromeProxyCacheLoFiDisabled(ChromeProxyValidation): |
'--data-reduction-proxy-lo-fi=always-on') |
self.options.AppendExtraBrowserArgs( |
'--data-reduction-proxy-server-experiments-disabled') |
+ self.options.AppendExtraBrowserArgs('--disable-quic') |
self._is_lo_fi_enabled = False |
def WillNavigateToPage(self, page, tab): |
@@ -393,8 +404,10 @@ class ChromeProxyCacheProxyDisabled(ChromeProxyValidation): |
'--data-reduction-proxy-lo-fi=always-on') |
self.options.AppendExtraBrowserArgs( |
'--data-reduction-proxy-server-experiments-disabled') |
+ self.options.AppendExtraBrowserArgs('--disable-quic') |
else: |
# Second page load, disable chrome proxy. LoFi is still enabled. |
+ self.options.AppendExtraBrowserArgs('--disable-quic') |
self.DisableChromeProxy() |
def WillNavigateToPage(self, page, tab): |
@@ -422,6 +435,7 @@ class ChromeProxyLoFiPreview(ChromeProxyValidation): |
'--data-reduction-proxy-lo-fi=always-on') |
options.AppendExtraBrowserArgs( |
'--enable-data-reduction-proxy-lo-fi-preview') |
+ options.AppendExtraBrowserArgs('--disable-quic') |
def AddResults(self, tab, results): |
self._metrics.AddResultsForLoFiPreview(tab, results) |
@@ -459,6 +473,7 @@ class ChromeProxyPassThrough(ChromeProxyValidation): |
def CustomizeBrowserOptions(self, options): |
super(ChromeProxyPassThrough, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs('--disable-quic') |
def AddResults(self, tab, results): |
self._metrics.AddResultsForPassThrough(tab, results) |
@@ -564,6 +579,48 @@ class ChromeProxySmoke(ChromeProxyValidation): |
for add_result in page_to_metrics[self._page.name]: |
add_result(tab, results) |
+class ChromeProxyQuicSmoke(ChromeProxyValidation): |
+ """Smoke measurement for basic chrome proxy correctness when using a |
+ proxy that supports QUIC.""" |
+ |
+ def __init__(self): |
+ super(ChromeProxyQuicSmoke, self).__init__(restart_after_each_page=True, |
+ metrics=metrics.ChromeProxyMetric()) |
+ |
+ def CustomizeBrowserOptions(self, options): |
+ super(ChromeProxyQuicSmoke, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs( |
+ '--enable-quic') |
+ options.AppendExtraBrowserArgs( |
+ '--data-reduction-proxy-http-proxies=https://proxy.googlezip.net:443') |
+ options.AppendExtraBrowserArgs( |
+ '--force-fieldtrials=DataReductionProxyUseQuic/Enabled') |
+ |
+ def AddResults(self, tab, results): |
+ # Map a page name to its AddResults func. |
+ page_to_metrics = { |
+ 'header validation': [self._metrics.AddResultsForHeaderValidation], |
+ 'compression: image': [ |
+ self._metrics.AddResultsForHeaderValidation, |
+ self._metrics.AddResultsForDataSaving, |
+ ], |
+ 'compression: javascript': [ |
+ self._metrics.AddResultsForHeaderValidation, |
+ self._metrics.AddResultsForDataSaving, |
+ ], |
+ 'compression: css': [ |
+ self._metrics.AddResultsForHeaderValidation, |
+ self._metrics.AddResultsForDataSaving, |
+ ], |
+ 'bypass': [self._metrics.AddResultsForBypass], |
+ } |
+ if not self._page.name in page_to_metrics: |
+ raise page_test.MeasurementFailure( |
+ 'Invalid page name (%s) in QUIC smoke. ' |
+ 'Page name must be one of:\n%s' % ( |
+ self._page.name, page_to_metrics.keys())) |
+ for add_result in page_to_metrics[self._page.name]: |
+ add_result(tab, results) |
PROXIED = metrics.PROXIED |
DIRECT = metrics.DIRECT |
@@ -580,6 +637,7 @@ class ChromeProxyClientConfig(ChromeProxyValidation): |
super(ChromeProxyClientConfig, self).CustomizeBrowserOptions(options) |
options.AppendExtraBrowserArgs( |
'--enable-data-reduction-proxy-config-client') |
+ options.AppendExtraBrowserArgs('--disable-quic') |
def AddResults(self, tab, results): |
self._metrics.AddResultsForClientConfig(tab, results) |
@@ -707,3 +765,25 @@ class ChromeProxyPingback(ChromeProxyValidation): |
def AddResults(self, tab, results): |
self._metrics.AddResultsForPingback(tab, results) |
+ |
+class ChromeProxyQuicTransaction(ChromeProxyValidation): |
+ """Chrome quic proxy usage validation when connecting to a proxy that |
+ supports QUIC.""" |
+ |
+ def __init__(self): |
+ super(ChromeProxyQuicTransaction, self).__init__( |
+ metrics=metrics.ChromeProxyMetric()) |
+ |
+ def CustomizeBrowserOptions(self, options): |
+ super(ChromeProxyQuicTransaction, self).CustomizeBrowserOptions(options) |
+ options.AppendExtraBrowserArgs( |
+ '--enable-quic') |
+ options.AppendExtraBrowserArgs( |
+ '--data-reduction-proxy-http-proxies=https://proxy.googlezip.net:443') |
+ options.AppendExtraBrowserArgs( |
+ '--force-fieldtrials=DataReductionProxyUseQuic/Enabled') |
+ options.AppendExtraBrowserArgs( |
+ '--enable-stats-collection-bindings') |
+ |
+ def AddResults(self, tab, results): |
+ self._metrics.AddResultsForQuicTransaction(tab, results) |