Skip to content

Commit

Permalink
Initialize logging earlier (#2218)
Browse files Browse the repository at this point in the history
When an event handler is attached as part of the constructor and invoked
before `_logger` has been populated we might throw an NRE.
  • Loading branch information
jnyrup authored and leonardo-fernandes committed Jun 2, 2023
1 parent 5774379 commit 791f324
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 12 deletions.
1 change: 1 addition & 0 deletions lib/PuppeteerSharp/Browser.cs
Expand Up @@ -46,6 +46,7 @@ public class Browser : IBrowser
Connection = connection;
_closeCallback = closeCallback;
_targetFilterCallback = targetFilter ?? ((TargetInfo _) => true);
_logger = Connection.LoggerFactory.CreateLogger<Browser>();
_isPageTargetFunc =
isPageTargetFunc ??
new Func<TargetInfo, bool>((TargetInfo target) =>
Expand Down
4 changes: 2 additions & 2 deletions lib/PuppeteerSharp/ChromeTargetManager.cs
Expand Up @@ -36,9 +36,9 @@ internal class ChromeTargetManager : ITargetManager
_connection = connection;
_targetFilterFunc = targetFilterFunc;
_targetFactoryFunc = targetFactoryFunc;
_connection.MessageReceived += OnMessageReceived;
_connection.SessionDetached += Connection_SessionDetached;
_logger = _connection.LoggerFactory.CreateLogger<ChromeTargetManager>();
_connection.MessageReceived += OnMessageReceived;
_connection.SessionDetached += Connection_SessionDetached;
}

public event EventHandler<TargetChangedArgs> TargetAvailable;
Expand Down
6 changes: 3 additions & 3 deletions lib/PuppeteerSharp/FirefoxTargetManager.cs
@@ -1,4 +1,4 @@
#pragma warning disable CS0067 // Temporal, do not merge with this
#pragma warning disable CS0067 // Temporal, do not merge with this
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
Expand Down Expand Up @@ -31,9 +31,9 @@ internal class FirefoxTargetManager : ITargetManager
_connection = connection;
_targetFilterFunc = targetFilterFunc;
_targetFactoryFunc = targetFactoryFunc;
_logger = _connection.LoggerFactory.CreateLogger<FirefoxTargetManager>();
_connection.MessageReceived += OnMessageReceived;
_connection.SessionDetached += Connection_SessionDetached;
_logger = _connection.LoggerFactory.CreateLogger<FirefoxTargetManager>();
}

public event EventHandler<TargetChangedArgs> TargetAvailable;
Expand Down Expand Up @@ -191,4 +191,4 @@ private void FinishInitializationIfReady(string targetId = null)
}
}
}
#pragma warning restore CS0067
#pragma warning restore CS0067
9 changes: 3 additions & 6 deletions lib/PuppeteerSharp/IsolatedWorld.cs
Expand Up @@ -39,7 +39,7 @@ internal class IsolatedWorld
Frame frame,
TimeoutSettings timeoutSettings)
{
Logger = client.Connection.LoggerFactory.CreateLogger<IsolatedWorld>();
_logger = client.Connection.LoggerFactory.CreateLogger<IsolatedWorld>();
_client = client;
_frameManager = frameManager;
_customQueriesManager = ((Browser)frameManager.Page.Browser).CustomQueriesManager;
Expand All @@ -48,7 +48,6 @@ internal class IsolatedWorld

_detached = false;
_client.MessageReceived += Client_MessageReceived;
_logger = _client.Connection.LoggerFactory.CreateLogger<IsolatedWorld>();
}

internal TaskManager TaskManager { get; set; } = new();
Expand All @@ -57,8 +56,6 @@ internal class IsolatedWorld

internal bool HasContext => _contextResolveTaskWrapper?.Task.IsCompleted == true;

internal ILogger Logger { get; }

internal ConcurrentDictionary<string, Delegate> BoundFunctions { get; } = new();

internal TaskCompletionSource<IJSHandle> PuppeteerUtilTaskCompletionSource { get; private set; } = new(TaskCreationOptions.RunContinuationsAsynchronously);
Expand Down Expand Up @@ -500,7 +497,7 @@ private async Task InjectPuppeteerUtil(ExecutionContext context)
}
catch (Exception ex)
{
Logger.LogError(ex.ToString());
_logger.LogError(ex.ToString());
}
}

Expand All @@ -518,7 +515,7 @@ private async void Client_MessageReceived(object sender, MessageEventArgs e)
catch (Exception ex)
{
var message = $"IsolatedWorld failed to process {e.MessageID}. {ex.Message}. {ex.StackTrace}";
Logger.LogError(ex, message);
_logger.LogError(ex, message);
_client.Close(message);
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/PuppeteerSharp/NetworkManager.cs
Expand Up @@ -36,8 +36,8 @@ internal NetworkManager(CDPSession client, bool ignoreHTTPSErrors, FrameManager
FrameManager = frameManager;
_client = client;
_ignoreHTTPSErrors = ignoreHTTPSErrors;
_client.MessageReceived += Client_MessageReceived;
_logger = _client.Connection.LoggerFactory.CreateLogger<NetworkManager>();
_client.MessageReceived += Client_MessageReceived;
}

internal event EventHandler<ResponseCreatedEventArgs> Response;
Expand Down

0 comments on commit 791f324

Please sign in to comment.