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) { ...@@ -219,10 +219,13 @@ void PPAPITestBase::RunTestWithWebSocketServer(const std::string& test_case) {
ASSERT_TRUE(http_server.BlockUntilStarted()); ASSERT_TRUE(http_server.BlockUntilStarted());
ASSERT_TRUE(ws_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(); uint16_t port = ws_server.host_port_pair().port();
RunTestURL(GetTestURL(http_server, RunTestURL(GetTestURL(http_server,
test_case, test_case,
StringPrintf("websocket_port=%d", port))); StringPrintf("websocket_host=%s&websocket_port=%d",
host.c_str(),
port)));
} }
void PPAPITestBase::RunTestIfAudioOutputAvailable( void PPAPITestBase::RunTestIfAudioOutputAvailable(
......
...@@ -33,11 +33,14 @@ function AppendFrame(testcase, i) { ...@@ -33,11 +33,14 @@ function AppendFrame(testcase, i) {
var frame = document.createElement("IFRAME"); var frame = document.createElement("IFRAME");
var mode = ExtractSearchParameter("mode"); var mode = ExtractSearchParameter("mode");
var websocket_host = ExtractSearchParameter("websocket_host");
var websocket_port = ExtractSearchParameter("websocket_port"); var websocket_port = ExtractSearchParameter("websocket_port");
var ssl_server_port = ExtractSearchParameter("ssl_server_port"); var ssl_server_port = ExtractSearchParameter("ssl_server_port");
var src = "?testcase=" + testcase; var src = "?testcase=" + testcase;
if (mode == "nacl") if (mode == "nacl")
src += "&mode=nacl"; src += "&mode=nacl";
if (websocket_host != "")
src += "&websocket_host=" + websocket_host;
if (websocket_port != "") if (websocket_port != "")
src += "&websocket_port=" + websocket_port; src += "&websocket_port=" + websocket_port;
if (ssl_server_port != "") if (ssl_server_port != "")
...@@ -249,6 +252,9 @@ onload = function() { ...@@ -249,6 +252,9 @@ onload = function() {
obj.setAttribute("id", "plugin"); obj.setAttribute("id", "plugin");
obj.setAttribute("testcase", testcase); obj.setAttribute("testcase", testcase);
obj.setAttribute("protocol", window.location.protocol); 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"); var websocket_port = ExtractSearchParameter("websocket_port");
if (websocket_port != "") if (websocket_port != "")
obj.setAttribute("websocket_port", websocket_port); obj.setAttribute("websocket_port", websocket_port);
......
...@@ -240,8 +240,13 @@ void TestWebSocket::RunTests(const std::string& filter) { ...@@ -240,8 +240,13 @@ void TestWebSocket::RunTests(const std::string& filter) {
} }
std::string TestWebSocket::GetFullURL(const char* url) { std::string TestWebSocket::GetFullURL(const char* url) {
std::string rv = "ws://localhost"; std::string rv = "ws://";
// Some WebSocket tests don't start the server so there'll be no port. // 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) { if (instance_->websocket_port() != -1) {
char buffer[10]; char buffer[10];
sprintf(buffer, ":%d", instance_->websocket_port()); sprintf(buffer, ":%d", instance_->websocket_port());
......
...@@ -52,6 +52,8 @@ bool TestingInstance::Init(uint32_t argc, ...@@ -52,6 +52,8 @@ bool TestingInstance::Init(uint32_t argc,
nacl_mode_ = true; nacl_mode_ = true;
} else if (std::strcmp(argn[i], "protocol") == 0) { } else if (std::strcmp(argn[i], "protocol") == 0) {
protocol_ = argv[i]; 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) { } else if (std::strcmp(argn[i], "websocket_port") == 0) {
websocket_port_ = atoi(argv[i]); websocket_port_ = atoi(argv[i]);
} else if (std::strcmp(argn[i], "ssl_server_port") == 0) { } else if (std::strcmp(argn[i], "ssl_server_port") == 0) {
......
...@@ -90,6 +90,7 @@ pp::InstancePrivate { ...@@ -90,6 +90,7 @@ pp::InstancePrivate {
int ssl_server_port() { return ssl_server_port_; } int ssl_server_port() { return ssl_server_port_; }
const std::string& websocket_host() { return websocket_host_; }
int websocket_port() { return websocket_port_; } int websocket_port() { return websocket_port_; }
// Posts a message to the test page to eval() the script. // Posts a message to the test page to eval() the script.
...@@ -166,6 +167,9 @@ pp::InstancePrivate { ...@@ -166,6 +167,9 @@ pp::InstancePrivate {
// SSL server port. // SSL server port.
int ssl_server_port_; int ssl_server_port_;
// WebSocket host.
std::string websocket_host_;
// WebSocket port. // WebSocket port.
int 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