Custom URL opener instead of monkey-patching for tests.