diff --git a/include/internal/cef_types.h b/include/internal/cef_types.h index 0dfaf0e88..acc707e9e 100644 --- a/include/internal/cef_types.h +++ b/include/internal/cef_types.h @@ -432,15 +432,11 @@ typedef struct _cef_settings_t { /// /// Set to a value between 1024 and 65535 to enable remote debugging on the - /// specified port. Setting 0 will result in the selection of an ephemeral - /// port, the port number will be printed as part of WebSocket endpoit URL - /// to stderr. If the cache directory path is provided, the port will be - /// also written into /DevToolsActivePort file. - /// Also configurable using the "remote-debugging-port" command-line switch. - /// Remote debugging can be accessed by loading the chrome://inspect page in - /// Google Chrome. Port numbers 9222 and 9229 are discoverable by default. - /// Other port numbers may need to be configured via "Discover network - /// targets" on the Devices tab. + /// specified port. Also configurable using the "remote-debugging-port" + /// command-line switch. Remote debugging can be accessed by loading the + /// chrome://inspect page in Google Chrome. Port numbers 9222 and 9229 are + /// discoverable by default. Other port numbers may need to be configured via + /// "Discover network targets" on the Devices tab. /// int remote_debugging_port; diff --git a/libcef/browser/devtools/devtools_manager_delegate.cc b/libcef/browser/devtools/devtools_manager_delegate.cc index c847032e3..9e6de98c7 100644 --- a/libcef/browser/devtools/devtools_manager_delegate.cc +++ b/libcef/browser/devtools/devtools_manager_delegate.cc @@ -70,29 +70,28 @@ class TCPServerSocketFactory : public content::DevToolsSocketFactory { std::unique_ptr CreateSocketFactory() { const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); - // See if the user specified a port on the command line. Specifying 0 - // results in the selection of an ephemeral port, the port number will - // be printed as part of WebSocket endpoit URL to stderr. - // If the cache directory path is provided, the port will be also written - // into /DevToolsActivePort file. - // - // It's not allowed to bind ports between 0 and 1024 exclusive because - // they're normally restricted to root on Posix-based systems. + // See if the user specified a port on the command line. Specifying 0 would + // result in the selection of an ephemeral port but that doesn't make sense + // for CEF where the URL is otherwise undiscoverable. Also, don't allow + // binding of ports between 0 and 1024 exclusive because they're normally + // restricted to root on Posix-based systems. + uint16_t port = 0; if (command_line.HasSwitch(switches::kRemoteDebuggingPort)) { - int port = 0; + int temp_port; std::string port_str = command_line.GetSwitchValueASCII(switches::kRemoteDebuggingPort); - - if (base::StringToInt(port_str, &port) && - (0 == port || (port >= 1024 && port < 65535))) { - return std::unique_ptr( - new TCPServerSocketFactory("127.0.0.1", port)); + if (base::StringToInt(port_str, &temp_port) && temp_port >= 1024 && + temp_port < 65535) { + port = static_cast(temp_port); } else { - DLOG(WARNING) << "Invalid http debugger port number '" << port_str << "'"; + DLOG(WARNING) << "Invalid http debugger port number " << temp_port; } } - - return nullptr; + if (port == 0) { + return nullptr; + } + return std::unique_ptr( + new TCPServerSocketFactory("127.0.0.1", port)); } } // namespace diff --git a/libcef/common/alloy/alloy_main_delegate.cc b/libcef/common/alloy/alloy_main_delegate.cc index d72c55171..bdab512f1 100644 --- a/libcef/common/alloy/alloy_main_delegate.cc +++ b/libcef/common/alloy/alloy_main_delegate.cc @@ -346,9 +346,8 @@ std::optional AlloyMainDelegate::BasicStartupComplete() { } } - if (settings_->remote_debugging_port == 0 || - (settings_->remote_debugging_port >= 1024 && - settings_->remote_debugging_port <= 65535)) { + if (settings_->remote_debugging_port >= 1024 && + settings_->remote_debugging_port <= 65535) { command_line->AppendSwitchASCII( switches::kRemoteDebuggingPort, base::NumberToString(settings_->remote_debugging_port)); diff --git a/libcef/common/chrome/chrome_main_delegate_cef.cc b/libcef/common/chrome/chrome_main_delegate_cef.cc index 3274f3860..c624e844a 100644 --- a/libcef/common/chrome/chrome_main_delegate_cef.cc +++ b/libcef/common/chrome/chrome_main_delegate_cef.cc @@ -114,9 +114,8 @@ std::optional ChromeMainDelegateCef::BasicStartupComplete() { CefString(&settings_->javascript_flags).ToString()); } - if (settings_->remote_debugging_port == 0 || - (settings_->remote_debugging_port >= 1024 && - settings_->remote_debugging_port <= 65535)) { + if (settings_->remote_debugging_port >= 1024 && + settings_->remote_debugging_port <= 65535) { command_line->AppendSwitchASCII( switches::kRemoteDebuggingPort, base::NumberToString(settings_->remote_debugging_port));