# Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Command for measuring how long pages take to load in a browser. Prerequisites: 1. The command_line package from tools/site_compare 2. Either the IE BHO or Firefox extension (or both) Installation: 1. Build the IE BHO, or call regsvr32 on a prebuilt binary 2. Add a file called "measurepageloadtimeextension@google.com" to the default Firefox profile directory under extensions, containing the path to the Firefox extension root Invoke with the command line arguments as documented within the command line. """ import command_line import win32process from drivers import windowing from utils import browser_iterate def CreateCommand(cmdline): """Inserts the command and arguments into a command line for parsing.""" cmd = cmdline.AddCommand( ["measure"], "Measures how long a series of URLs takes to load in one or more browsers.", None, ExecuteMeasure) browser_iterate.SetupIterationCommandLine(cmd) cmd.AddArgument( ["-log", "--logfile"], "File to write output", type="string", required=True) def ExecuteMeasure(command): """Executes the Measure command.""" def LogResult(url, proc, wnd, result): """Write the result of the browse to the log file.""" log_file.write(result) log_file = open(command["--logfile"], "w") browser_iterate.Iterate(command, LogResult) # Close the log file and return. We're done. log_file.close()