Fatal error in wp-admin/setup-config.php

Description

There's a fatal error in wp-admin/setup-config.php when creating wp-config.php via the web interface.

Introduced in [24480] and [24482]. [24497] added a function_exists() check for wp_kses_bad_protocol(), since it's not available in setup-config.php. However, as ​noted by markoheijnen in IRC, wp_http_validate_url() calls esc_url(), which in turn calls wp_kses_bad_protocol() too, so wp_http_validate_url() should also be wrapped in the function_exists() check.

In 3.5.2 reject_unsafe_urls is false by default, so wp_http_validate_url() is not called, and there's no error.
Even if a mu-plugin changes reject_unsafe_urls to true, plugins are not loaded in setup-config.php.