From 04f46db3fcc4b57edaa7c3cde92b7d0027dc8e9a Mon Sep 17 00:00:00 2001 From: Helmut Dobretzberger Date: Mon, 31 Jan 2022 15:54:57 +0100 Subject: [PATCH] Allow to set a executable path for the browser which should be used and avoid downloading if a local path is given. --- .../PuppeteerSharpRenderer.fs | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs index 9db8ea5ea..55ed1480e 100644 --- a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs +++ b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs @@ -12,9 +12,11 @@ open DynamicObj module PuppeteerSharpRendererOptions = let mutable launchOptions = LaunchOptions() - launchOptions.Timeout <- 60000 + let mutable localBrowserExecutablePath = None + + type PuppeteerSharpRenderer() = /// adapted from the original C# implementation by @ilyalatt : https://github.com/ilyalatt/Plotly.NET.PuppeteerRenderer @@ -78,16 +80,25 @@ type PuppeteerSharpRenderer() = /// Initalizes headless browser let fetchAndLaunchBrowserAsync () = async { - use browserFetcher = new BrowserFetcher() + match PuppeteerSharpRendererOptions.localBrowserExecutablePath with + | None -> + use browserFetcher = new BrowserFetcher() - let! revision = browserFetcher.DownloadAsync() |> Async.AwaitTask + let! revision = browserFetcher.DownloadAsync() |> Async.AwaitTask - let launchOptions = - PuppeteerSharpRendererOptions.launchOptions + let launchOptions = + PuppeteerSharpRendererOptions.launchOptions - launchOptions.ExecutablePath <- revision.ExecutablePath + launchOptions.ExecutablePath <- revision.ExecutablePath - return! Puppeteer.LaunchAsync(launchOptions) |> Async.AwaitTask + return! Puppeteer.LaunchAsync(launchOptions) |> Async.AwaitTask + | Some p -> + let launchOptions = + PuppeteerSharpRendererOptions.launchOptions + + launchOptions.ExecutablePath <- p + + return! Puppeteer.LaunchAsync(launchOptions) |> Async.AwaitTask } /// Initalizes headless browser