Commit 21de9cb2 authored by toyoshim@chromium.org's avatar toyoshim@chromium.org

PPAPI/WS: use server providing hostname as test serevr hostname

'localhost' can be resolved as IPv6 address and IPv4 address.
On the other hands, a test server listens at '127.0.0.1' by default.
Chrome want to connect using IPv6 address firstly. So if the server listens at
only IPv4 address, Chrome connects IPv4 address after IPv6 timeout.

This change passes server proviting host to PPAPI tests, then makes it
available from WebSocket related PPAPI tests.

BUG=175237
TEST=browser_tests --gtest_filter='*.WebSocket_*'

Review URL: https://codereview.chromium.org/12252004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182452 0039d316-1c4b-4281-b951-d872f2087c98
parent 29e8270f
......@@ -219,10 +219,13 @@ void PPAPITestBase::RunTestWithWebSocketServer(const std::string& test_case) {
ASSERT_TRUE(http_server.BlockUntilStarted());
ASSERT_TRUE(ws_server.BlockUntilStarted());
std::string host = ws_server.host_port_pair().HostForURL();
uint16_t port = ws_server.host_port_pair().port();
RunTestURL(GetTestURL(http_server,
test_case,
StringPrintf("websocket_port=%d", port)));
StringPrintf("websocket_host=%s&websocket_port=%d",
host.c_str(),
port)));
}
void PPAPITestBase::RunTestIfAudioOutputAvailable(
......
......@@ -33,11 +33,14 @@ function AppendFrame(testcase, i) {
var frame = document.createElement("IFRAME");
var mode = ExtractSearchParameter("mode");
var websocket_host = ExtractSearchParameter("websocket_host");
var websocket_port = ExtractSearchParameter("websocket_port");
var ssl_server_port = ExtractSearchParameter("ssl_server_port");
var src = "?testcase=" + testcase;
if (mode == "nacl")
src += "&mode=nacl";
if (websocket_host != "")
src += "&websocket_host=" + websocket_host;
if (websocket_port != "")
src += "&websocket_port=" + websocket_port;
if (ssl_server_port != "")
......@@ -249,6 +252,9 @@ onload = function() {
obj.setAttribute("id", "plugin");
obj.setAttribute("testcase", testcase);
obj.setAttribute("protocol", window.location.protocol);
var websocket_host = ExtractSearchParameter("websocket_host");
if (websocket_host != "")
obj.setAttribute("websocket_host", websocket_host);
var websocket_port = ExtractSearchParameter("websocket_port");
if (websocket_port != "")
obj.setAttribute("websocket_port", websocket_port);
......
......@@ -240,8 +240,13 @@ void TestWebSocket::RunTests(const std::string& filter) {
}
std::string TestWebSocket::GetFullURL(const char* url) {
std::string rv = "ws://localhost";
// Some WebSocket tests don't start the server so there'll be no port.
std::string rv = "ws://";
// Some WebSocket tests don't start the server so there'll be no host and
// port.
if (instance_->websocket_host().empty())
rv += "127.0.0.1";
else
rv += instance_->websocket_host();
if (instance_->websocket_port() != -1) {
char buffer[10];
sprintf(buffer, ":%d", instance_->websocket_port());
......
......@@ -52,6 +52,8 @@ bool TestingInstance::Init(uint32_t argc,
nacl_mode_ = true;
} else if (std::strcmp(argn[i], "protocol") == 0) {
protocol_ = argv[i];
} else if (std::strcmp(argn[i], "websocket_host") == 0) {
websocket_host_ = argv[i];
} else if (std::strcmp(argn[i], "websocket_port") == 0) {
websocket_port_ = atoi(argv[i]);
} else if (std::strcmp(argn[i], "ssl_server_port") == 0) {
......
......@@ -90,6 +90,7 @@ pp::InstancePrivate {
int ssl_server_port() { return ssl_server_port_; }
const std::string& websocket_host() { return websocket_host_; }
int websocket_port() { return websocket_port_; }
// Posts a message to the test page to eval() the script.
......@@ -166,6 +167,9 @@ pp::InstancePrivate {
// SSL server port.
int ssl_server_port_;
// WebSocket host.
std::string websocket_host_;
// WebSocket port.
int websocket_port_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment