Skip to content

Commit

Permalink
Fix issue when switching betweeen old and new headless mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Kees committed Oct 16, 2023
1 parent a4a8664 commit 283e770
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions ChromiumHtmlToPdfLib/Converter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,19 @@ private DocumentHelper GetDocumentHelper
/// <remarks>
/// https://developer.chrome.com/articles/new-headless/
/// </remarks>
public bool UseOldHeadlessMode { get; set; }
public bool UseOldHeadlessMode
{
get => !_defaultChromiumArgument.Contains("--headless=new");
set
{
for (var i = 0; i < _defaultChromiumArgument.Count; i++)
{
if (!_defaultChromiumArgument[i].StartsWith("--headless")) continue;
_defaultChromiumArgument[i] = value ? "--headless" : "--headless=new";
return;
}
}
}
#endregion

#region Constructor
Expand Down Expand Up @@ -854,11 +866,7 @@ public void ResetChromiumArguments()

_defaultChromiumArgument = new List<string>();

if (UseOldHeadlessMode)
AddChromiumArgument("--headless");
else
AddChromiumArgument("--headless", "new");

AddChromiumArgument("--headless=new");
AddChromiumArgument("--disable-gpu");
AddChromiumArgument("--hide-scrollbars");
AddChromiumArgument("--mute-audio");
Expand Down Expand Up @@ -896,11 +904,11 @@ public void RemoveChromiumArgument(string argument)
if (string.IsNullOrWhiteSpace(argument))
throw new ArgumentException("Argument is null, empty or white space");

if (argument.StartsWith("--headless"))
throw new ArgumentException("Can't remove '--headless' argument, this argument is always needed");

switch (argument)
{
case "--headless":
throw new ArgumentException("Can't remove '--headless' argument, this argument is always needed");

case "--no-first-run":
throw new ArgumentException("Can't remove '--no-first-run' argument, this argument is always needed");

Expand All @@ -909,11 +917,9 @@ public void RemoveChromiumArgument(string argument)
"Can't remove '---remote-debugging-port=\"0\"' argument, this argument is always needed");
}

if (_defaultChromiumArgument.Contains(argument))
{
_defaultChromiumArgument.Remove(argument);
WriteToLog($"Removed Chromium argument '{argument}'");
}
if (!_defaultChromiumArgument.Contains(argument)) return;
_defaultChromiumArgument.Remove(argument);
WriteToLog($"Removed Chromium argument '{argument}'");
}
#endregion

Expand Down Expand Up @@ -942,9 +948,7 @@ public void AddChromiumArgument(string argument)
_defaultChromiumArgument.Add(argument);
}
else
{
WriteToLog($"The Chromium argument '{argument}' has already been set, ignoring it");
}
}

/// <summary>
Expand All @@ -967,7 +971,7 @@ public void AddChromiumArgument(string argument, string value)
if (string.IsNullOrWhiteSpace(argument))
throw new ArgumentException("Argument is null, empty or white space");

for (var i = 0; i < DefaultChromiumArguments.Count; i++)
for (var i = 0; i < _defaultChromiumArgument.Count; i++)
{
if (!_defaultChromiumArgument[i].StartsWith(argument + "=")) continue;

Expand Down

0 comments on commit 283e770

Please sign in to comment.