diff --git a/R/chrome.R b/R/chrome.R index 9fdbaed3..122bd5a2 100644 --- a/R/chrome.R +++ b/R/chrome.R @@ -50,7 +50,7 @@ chrome_print = function( ) sv = servr::httd( dirname(url), daemon = TRUE, browser = FALSE, verbose = FALSE, - initpath = httpuv::encodeURIComponent(basename(url)) + port = random_port(), initpath = httpuv::encodeURIComponent(basename(url)) ) on.exit(sv$stop_server(), add = TRUE) url = sv$url @@ -74,7 +74,7 @@ chrome_print = function( '--headless', '--no-first-run', '--no-default-browser-check' )) - debug_port = servr::random_port() + debug_port = random_port() ps = processx::process$new(browser, c( paste0('--remote-debugging-port=', debug_port), paste0('--user-data-dir=', work_dir), extra_args diff --git a/R/utils.R b/R/utils.R index cd07d5fe..b1afcae6 100644 --- a/R/utils.R +++ b/R/utils.R @@ -27,3 +27,7 @@ merge_list = function(x, y) { x[names(y)] = y x } + +# don't prefer the port 4321 (otherwise we may see the meaningless error message +# "createTcpServer: address already in use" too often) +random_port = function() servr::random_port(NULL)