Currently, we specify all of the options, for all ports, to new-run-webkit-tests in run_webkit_tests.py. This is (a) a layering problem, (b) makes us see every option supported by any port, and (c) gives us no easy way to specify port-specific default values. I think the only way to really solve this is to parse the options in two passes, the first to figure out which port to use, and then grab the port-specific options and defaults and reparse. (Note that there may be port-specific defaults for generic options). In addition, we need to be careful to ensure that when ports do define options, they all define the option the same way, to avoid confusion.
The current code has the virtue that (nearly all of) the command line options are declared in one place (in run_webkit_tests.py). I've come to believe that this is actually easier for people to modify and maintain than it would be if we scattered all of the options among multiple modules. Of course, the downsides are the layering issues and the ability to set port-specific defaults. I guess what I'm saying is that it's not obvious to me what the "better" way would be. I'm clearing ownership and marking this as WONTFIX for now. Someone can reopen and start working on it if they have any better ideas than I do.