Index: tools/chrome_proxy/webdriver/common.py |
diff --git a/tools/chrome_proxy/webdriver/common.py b/tools/chrome_proxy/webdriver/common.py |
index 05b2c89dc0e0bc453b78d2f0d2ce3cf131d8cc49..53e0b094c1799a6152ca32cda80b63fcfd25e646 100644 |
--- a/tools/chrome_proxy/webdriver/common.py |
+++ b/tools/chrome_proxy/webdriver/common.py |
@@ -13,6 +13,7 @@ import sys |
import time |
import traceback |
import unittest |
+import urlparse |
sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, |
os.pardir, 'third_party', 'webdriver', 'pylib')) |
@@ -53,7 +54,7 @@ def ParseFlags(): |
parser.add_argument('-f', '--failfast', help='Stop the test run on the first ' |
'error or failure.', action='store_true') |
parser.add_argument('--logging_level', choices=['DEBUG', 'INFO', 'WARN', |
- 'ERROR', 'CRIT'], default='ERROR', help='The logging verbosity for log ' |
+ 'ERROR', 'CRIT'], default='WARN', help='The logging verbosity for log ' |
'messages, printed to stderr. To see stderr logging output during a ' |
'successful test run, also pass --disable_buffer. Default=ERROR') |
parser.add_argument('--log_file', help='If given, write logging statements ' |
@@ -260,6 +261,10 @@ class TestDriver: |
timeout: The time in seconds to load the page before timing out. |
""" |
self._url = url |
+ if (len(urlparse.urlparse(url).netloc) == 0 and |
+ len(urlparse.urlparse(url).scheme) == 0): |
+ self._logger.warn('Invalid URL: "%s". Did you forget to prepend ' |
+ '"http://"? See RFC 1808 for more information', url) |
if not self._driver: |
self._StartDriver() |
self._driver.set_page_load_timeout(timeout) |
@@ -357,7 +362,7 @@ class TestDriver: |
len(all_messages), method_filter) |
return all_messages |
- def GetHTTPResponses(self, include_favicon=False): |
+ def GetHTTPResponses(self, include_favicon=False, skip_domainless_pages=True): |
"""Parses the Performance Logs and returns a list of HTTPResponse objects. |
Use caution when calling this function multiple times. Only responses |
@@ -366,6 +371,8 @@ class TestDriver: |
Args: |
include_favicon: A bool that if True will include responses for favicons. |
+ skip_domainless_pages: If True, only responses with a net_loc as in RFC |
+ 1808 will be included. Pages such as about:blank will be skipped. |
Returns: |
A list of HTTPResponse objects, each representing a single completed HTTP |
transaction by Chrome. |
@@ -392,8 +399,13 @@ class TestDriver: |
response = MakeHTTPResponse(message) |
self._logger.debug('New HTTPResponse: %s', str(response)) |
is_favicon = response.url.endswith('favicon.ico') |
- if not is_favicon or include_favicon: |
+ has_domain = len(urlparse.urlparse(response.url).netloc) > 0 |
+ if (not is_favicon or include_favicon) and (not skip_domainless_pages or |
+ has_domain): |
all_responses.append(response) |
+ else: |
+ self._logger.info("Skipping HTTPResponse with url=%s in returned logs.", |
+ response.url) |
self._logger.info('%d new HTTPResponse objects found in the logs %s ' |
'favicons', len(all_responses), ('including' if include_favicon else |
'not including')) |