| Index: chrome/browser/nacl_host/nacl_process_host.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/nacl_host/nacl_process_host.cc	(revision 163266)
 | 
| +++ chrome/browser/nacl_host/nacl_process_host.cc	(working copy)
 | 
| @@ -656,10 +656,24 @@
 | 
|  
 | 
|  #if defined(OS_POSIX)
 | 
|  SocketDescriptor NaClProcessHost::GetDebugStubSocketHandle() {
 | 
| -  SocketDescriptor s = net::TCPListenSocket::CreateAndBind("127.0.0.1",
 | 
| -                                                           kDebugStubPort);
 | 
| +  NaClBrowser* nacl_browser = NaClBrowser::GetInstance();
 | 
| +  SocketDescriptor s;
 | 
| +  if (nacl_browser->HasDebugStubPortListener()) {
 | 
| +    int port;
 | 
| +    s = net::TCPListenSocket::CreateAndBindAnyPort("127.0.0.1", &port);
 | 
| +    if (s != net::TCPListenSocket::kInvalidSocket) {
 | 
| +      nacl_browser->DebugStubNewPortAllocated(port);
 | 
| +    }
 | 
| +  } else {
 | 
| +    s = net::TCPListenSocket::CreateAndBind("127.0.0.1", kDebugStubPort);
 | 
| +  }
 | 
| +  if (s == net::TCPListenSocket::kInvalidSocket) {
 | 
| +    LOG(ERROR) << "failed to open socket for debug stub";
 | 
| +    return net::TCPListenSocket::kInvalidSocket;
 | 
| +  }
 | 
|    if (listen(s, 1)) {
 | 
|      LOG(ERROR) << "listen() failed on debug stub socket";
 | 
| +    close(s);
 | 
|      return net::TCPListenSocket::kInvalidSocket;
 | 
|    }
 | 
|    return s;
 | 
| 
 |