Scrape search definitions from forms that have onsubmit handlers. The scraping is done after submit events are handled by the page DOM so doing this is safe.

Adds test infrastructure for determining that scraping occurs on submit:
- allow testserver to be configured to serve pages from / on the server
- provide a ui test util that navigates and waits for N subsequent redirections/navigations before returning control to the test to handle automated submission

Eric, please review the test server changes.
Scott, please look over everything else.
Review URL: http://codereview.chromium.org/62145

git-svn-id: http://src.chromium.org/svn/trunk/src/net/tools/testserver@13444 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/testserver.py b/testserver.py
index 5784059..9ab77a8 100644
--- a/testserver.py
+++ b/testserver.py
@@ -565,13 +565,15 @@
     """This handler sends the contents of the requested file.  Wow, it's like
     a real webserver!"""
 
-    prefix='/files/'
+    prefix = self.server.file_root_url
     if not self.path.startswith(prefix):
       return False
 
     file = self.path[len(prefix):]
     entries = file.split('/');
     path = os.path.join(self.server.data_dir, *entries)
+    if os.path.isdir(path):
+      path = os.path.join(path, 'index.html')
 
     if not os.path.isfile(path):
       print "File not found " + file + " full path:" + path
@@ -1047,6 +1049,7 @@
       print 'HTTP server started on port %d...' % port
 
     server.data_dir = MakeDataDir()
+    server.file_root_url = options.file_root_url
     MakeDumpDir(server.data_dir)
 
   # means FTP Server
@@ -1102,6 +1105,8 @@
                            help='Specify that https should be used, specify '
                            'the path to the cert containing the private key '
                            'the server should use')
+  option_parser.add_option('', '--file-root-url', default='/files/',
+                           help='Specify a root URL for files served.')
   options, args = option_parser.parse_args()
 
   sys.exit(main(options, args))