diff options
author | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 22:13:49 +0000 |
---|---|---|
committer | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 22:13:49 +0000 |
commit | 076bca74bc87a189fe2fa3fa8d3e74438c2b7eac (patch) | |
tree | 31a923e3c6ecfe4486a9852979adc2ef0904914c /net | |
parent | e5d982d40c7d6a0e03da2c6772265bbf7455773f (diff) | |
download | chromium_src-076bca74bc87a189fe2fa3fa8d3e74438c2b7eac.zip chromium_src-076bca74bc87a189fe2fa3fa8d3e74438c2b7eac.tar.gz chromium_src-076bca74bc87a189fe2fa3fa8d3e74438c2b7eac.tar.bz2 |
Fix a crash when loading a multipart html page.
When loading a multipart page, the load hasn't been committed yet so
dataSource() is NULL. In that case, use the provisionalDataSource().
BUG=97592
TEST=covered by browser_tests
Review URL: http://codereview.chromium.org/8044003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103027 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rwxr-xr-x | net/tools/testserver/testserver.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py index 7f9e17a..0849a29 100755 --- a/net/tools/testserver/testserver.py +++ b/net/tools/testserver/testserver.py @@ -343,6 +343,7 @@ class TestPageHandler(BasePageHandler): self.ServerRedirectHandler, self.ClientRedirectHandler, self.MultipartHandler, + self.MultipartSlowHandler, self.DefaultResponseHandler] post_handlers = [ self.EchoTitleHandler, @@ -1290,7 +1291,7 @@ class TestPageHandler(BasePageHandler): def MultipartHandler(self): """Send a multipart response (10 text/html pages).""" - test_name = "/multipart" + test_name = '/multipart' if not self._ShouldHandleRequest(test_name): return False @@ -1310,6 +1311,34 @@ class TestPageHandler(BasePageHandler): self.wfile.write('--' + bound + '--') return True + def MultipartSlowHandler(self): + """Send a multipart response (3 text/html pages) with a slight delay + between each page. This is similar to how some pages show status using + multipart.""" + test_name = '/multipart-slow' + if not self._ShouldHandleRequest(test_name): + return False + + num_frames = 3 + bound = '12345' + self.send_response(200) + self.send_header('Content-type', + 'multipart/x-mixed-replace;boundary=' + bound) + self.end_headers() + + for i in xrange(num_frames): + self.wfile.write('--' + bound + '\r\n') + self.wfile.write('Content-type: text/html\r\n\r\n') + time.sleep(0.25) + if i == 2: + self.wfile.write('<title>PASS</title>') + else: + self.wfile.write('<title>page ' + str(i) + '</title>') + self.wfile.write('page ' + str(i) + '<!-- ' + ('x' * 2048) + '-->') + + self.wfile.write('--' + bound + '--') + return True + def DefaultResponseHandler(self): """This is the catch-all response handler for requests that aren't handled by one of the special handlers above. |