| 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..d3c449201da80ac9c4bbd392d3e7e3195d29b5c5 100644
|
| --- a/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py
|
| +++ b/tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py
|
| @@ -279,6 +279,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 +311,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)
|
| @@ -334,6 +339,7 @@ class ChromeProxyCacheLoFiDisabled(ChromeProxyValidation):
|
|
|
| def WillStartBrowser(self, platform):
|
| super(ChromeProxyCacheLoFiDisabled, self).WillStartBrowser(platform)
|
| + self.options.AppendExtraBrowserArgs('--disable-quic')
|
| if not self._page:
|
| # First page load, enable LoFi and chrome proxy. Disable server
|
| # experiments such as tamper detection.
|
| @@ -386,6 +392,7 @@ class ChromeProxyCacheProxyDisabled(ChromeProxyValidation):
|
|
|
| def WillStartBrowser(self, platform):
|
| super(ChromeProxyCacheProxyDisabled, self).WillStartBrowser(platform)
|
| + self.options.AppendExtraBrowserArgs('--disable-quic')
|
| if not self._page:
|
| # First page load, enable LoFi and chrome proxy. Disable server
|
| # experiments such as tamper detection.
|
| @@ -422,6 +429,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 +467,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 +573,58 @@ class ChromeProxySmoke(ChromeProxyValidation):
|
| for add_result in page_to_metrics[self._page.name]:
|
| add_result(tab, results)
|
|
|
| +class ChromeProxyQuicSmoke(page_test.PageTest):
|
| + """Smoke measurement for basic chrome proxy correctness when using a
|
| + proxy that supports QUIC."""
|
| +
|
| + def __init__(self, *args, **kwargs):
|
| + super(ChromeProxyQuicSmoke, self).__init__(*args, **kwargs)
|
| + self._metrics = metrics.ChromeProxyMetric()
|
| + self._enable_proxy = True
|
| +
|
| + 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')
|
| + options.AppendExtraBrowserArgs('--enable-spdy-proxy-auth')
|
| +
|
| + def WillNavigateToPage(self, page, tab):
|
| + if self._enable_proxy:
|
| + measurements.WaitForViaHeader(tab)
|
| + tab.ClearCache(force=True)
|
| + self._metrics.Start(page, tab)
|
| +
|
| + def ValidateAndMeasurePage(self, page, tab, results):
|
| + # Wait for the load event.
|
| + tab.WaitForJavaScriptExpression('performance.timing.loadEventStart', 300)
|
| + self._metrics.Stop(page, tab)
|
| + 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 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' % (
|
| + page.name, page_to_metrics.keys()))
|
| + for add_result in page_to_metrics[page.name]:
|
| + add_result(tab, results)
|
|
|
| PROXIED = metrics.PROXIED
|
| DIRECT = metrics.DIRECT
|
| @@ -580,6 +641,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 +769,35 @@ class ChromeProxyPingback(ChromeProxyValidation):
|
|
|
| def AddResults(self, tab, results):
|
| self._metrics.AddResultsForPingback(tab, results)
|
| +
|
| +class ChromeProxyQuicTransaction(page_test.PageTest):
|
| + """Chrome quic proxy usage validation when connecting to a proxy that
|
| + supports QUIC."""
|
| +
|
| + def __init__(self, *args, **kwargs):
|
| + super(ChromeProxyQuicTransaction, self).__init__(*args, **kwargs)
|
| + self._metrics = metrics.ChromeProxyMetric()
|
| + self._enable_proxy = True
|
| +
|
| + def CustomizeBrowserOptions(self, 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-spdy-proxy-auth')
|
| + options.AppendExtraBrowserArgs(
|
| + '--enable-stats-collection-bindings')
|
| +
|
| + def WillNavigateToPage(self, page, tab):
|
| + if self._enable_proxy:
|
| + measurements.WaitForViaHeader(tab)
|
| + tab.ClearCache(force=True)
|
| + self._metrics.Start(page, tab)
|
| +
|
| + def ValidateAndMeasurePage(self, page, tab, results):
|
| + # Wait for the load event.
|
| + tab.WaitForJavaScriptExpression('performance.timing.loadEventStart', 300)
|
| + self._metrics.Stop(page, tab)
|
| + self._metrics.AddResultsForQuicTransaction(tab, results)
|
|
|