summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorbenjhayden@chromium.org <benjhayden@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 19:14:50 +0000
committerbenjhayden@chromium.org <benjhayden@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 19:14:50 +0000
commit14d034c0ae6ce3031f3dbc87bb8e2855b63aa864 (patch)
treebac753dc16941498ecee50ef4ef997c8031ae097 /net
parent19d93f10d40ebddb4019711239d4fdba4a8f75b7 (diff)
downloadchromium_src-14d034c0ae6ce3031f3dbc87bb8e2855b63aa864.zip
chromium_src-14d034c0ae6ce3031f3dbc87bb8e2855b63aa864.tar.gz
chromium_src-14d034c0ae6ce3031f3dbc87bb8e2855b63aa864.tar.bz2
Implement chrome.experimental.downloads.onChanged
ExtensionDownloadsEventRouter now also observes all DownloadItems and dispatches onChanged events. Download.OnChanged records the percentage of OnDownloadUpdated() calls that are propagated as onChanged events instead of being suppressed. BUG=12133 Review URL: http://codereview.chromium.org/8203005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121912 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rwxr-xr-xnet/tools/testserver/testserver.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
index 12882b5..f280333 100755
--- a/net/tools/testserver/testserver.py
+++ b/net/tools/testserver/testserver.py
@@ -909,9 +909,6 @@ class TestPageHandler(BasePageHandler):
prefix = self.server.file_root_url
if not self.path.startswith(prefix):
return False
- # Consume a request body if present.
- if self.command == 'POST' or self.command == 'PUT' :
- self.ReadRequestBody()
return self._FileHandlerHelper(prefix)
def PostOnlyFileHandler(self):
@@ -919,12 +916,33 @@ class TestPageHandler(BasePageHandler):
prefix = urlparse.urljoin(self.server.file_root_url, 'post/')
if not self.path.startswith(prefix):
return False
- self.ReadRequestBody()
return self._FileHandlerHelper(prefix)
def _FileHandlerHelper(self, prefix):
- old_protocol_version = self.protocol_version
+ request_body = ''
+ if self.command == 'POST' or self.command == 'PUT':
+ # Consume a request body if present.
+ request_body = self.ReadRequestBody()
+
_, _, url_path, _, query, _ = urlparse.urlparse(self.path)
+ query_dict = cgi.parse_qs(query)
+
+ expected_body = query_dict.get('expected_body', [])
+ if expected_body and request_body not in expected_body:
+ self.send_response(404)
+ self.end_headers()
+ self.wfile.write('')
+ return True
+
+ expected_headers = query_dict.get('expected_headers', [])
+ for expected_header in expected_headers:
+ header_name, expected_value = expected_header.split(':')
+ if self.headers.getheader(header_name) != expected_value:
+ self.send_response(404)
+ self.end_headers()
+ self.wfile.write('')
+ return True
+
sub_path = url_path[len(prefix):]
entries = sub_path.split('/')
file_path = os.path.join(self.server.data_dir, *entries)
@@ -942,6 +960,8 @@ class TestPageHandler(BasePageHandler):
data = self._ReplaceFileData(data, query)
+ old_protocol_version = self.protocol_version
+
# If file.mock-http-headers exists, it contains the headers we
# should send. Read them in and parse them.
headers_path = file_path + '.mock-http-headers'