summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-27 22:13:49 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-27 22:13:49 +0000
commit076bca74bc87a189fe2fa3fa8d3e74438c2b7eac (patch)
tree31a923e3c6ecfe4486a9852979adc2ef0904914c /net
parente5d982d40c7d6a0e03da2c6772265bbf7455773f (diff)
downloadchromium_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-xnet/tools/testserver/testserver.py31
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.