diff --git a/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj b/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj index 965b76055..5c7974a66 100644 --- a/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj +++ b/lib/PuppeteerSharp.Tests/PuppeteerSharp.Tests.csproj @@ -18,7 +18,7 @@ - + diff --git a/lib/PuppeteerSharp/Binding.cs b/lib/PuppeteerSharp/Binding.cs index 56aa0e1e2..8ecfa1382 100644 --- a/lib/PuppeteerSharp/Binding.cs +++ b/lib/PuppeteerSharp/Binding.cs @@ -136,7 +136,7 @@ await context.EvaluateFunctionAsync( } finally { - await Task.WhenAll(garbage.ToArray()).ConfigureAwait(false); + await Task.WhenAll(garbage).ConfigureAwait(false); } } } diff --git a/lib/PuppeteerSharp/BrowserData/Firefox.cs b/lib/PuppeteerSharp/BrowserData/Firefox.cs index 956104fbe..8fd990d74 100644 --- a/lib/PuppeteerSharp/BrowserData/Firefox.cs +++ b/lib/PuppeteerSharp/BrowserData/Firefox.cs @@ -123,7 +123,7 @@ private static void SyncPreferences(Dictionary defaultPreference var userPath = Path.Combine(tempUserDataDirectory, "user.js"); var lines = string.Join( "\n", - defaultPreferences.Select(i => $"user_pref({JsonSerializer.Serialize(i.Key)}, {JsonSerializer.Serialize(i.Value)});").ToArray()); + defaultPreferences.Select(i => $"user_pref({JsonSerializer.Serialize(i.Key)}, {JsonSerializer.Serialize(i.Value)});")); BackupFile(userPath); BackupFile(prefsPath); diff --git a/lib/PuppeteerSharp/Cdp/CdpBrowser.cs b/lib/PuppeteerSharp/Cdp/CdpBrowser.cs index 32fe8165d..00f2d9cdd 100644 --- a/lib/PuppeteerSharp/Cdp/CdpBrowser.cs +++ b/lib/PuppeteerSharp/Cdp/CdpBrowser.cs @@ -143,15 +143,7 @@ public override async Task CreateBrowserContextAsync(BrowserCon } /// - public override IBrowserContext[] BrowserContexts() - { - var contexts = _contexts.Values.ToArray(); - - var allContexts = new IBrowserContext[contexts.Length + 1]; - allContexts[0] = DefaultContext; - contexts.CopyTo(allContexts, 1); - return allContexts; - } + public override IBrowserContext[] BrowserContexts() => [DefaultContext, .. _contexts.Values]; internal static async Task CreateAsync( SupportedBrowser browserToCreate, diff --git a/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs b/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs index 476b5b946..5a722d055 100644 --- a/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs +++ b/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs @@ -149,7 +149,7 @@ internal override void Close(string closeReason) CloseReason = closeReason; IsClosed = true; - foreach (var callback in _callbacks.Values.ToArray()) + foreach (var callback in _callbacks.Values) { callback.TaskWrapper.TrySetException(new TargetClosedException( $"Protocol error({callback.Method}): Target closed.", diff --git a/lib/PuppeteerSharp/Cdp/Connection.cs b/lib/PuppeteerSharp/Cdp/Connection.cs index a2f8d061b..c170113e8 100644 --- a/lib/PuppeteerSharp/Cdp/Connection.cs +++ b/lib/PuppeteerSharp/Cdp/Connection.cs @@ -208,14 +208,14 @@ internal void Close(string closeReason) Transport.StopReading(); Disconnected?.Invoke(this, EventArgs.Empty); - foreach (var session in _sessions.Values.ToArray()) + foreach (var session in _sessions.Values) { session.Close(closeReason); } _sessions.Clear(); - foreach (var response in _callbacks.Values.ToArray()) + foreach (var response in _callbacks.Values) { response.TaskWrapper.TrySetException(new TargetClosedException( $"Protocol error({response.Method}): Target closed.", diff --git a/lib/PuppeteerSharp/Cdp/FrameManager.cs b/lib/PuppeteerSharp/Cdp/FrameManager.cs index a3ac719c1..cce6708ab 100644 --- a/lib/PuppeteerSharp/Cdp/FrameManager.cs +++ b/lib/PuppeteerSharp/Cdp/FrameManager.cs @@ -283,7 +283,7 @@ private void OnLifeCycleEvent(LifecycleEventResponse e) private void OnExecutionContextsCleared(CDPSession session) { - foreach (var key in _contextIdToContext.Keys.ToArray()) + foreach (var key in _contextIdToContext.Keys) { var context = _contextIdToContext[key]; if (context.Client != session) diff --git a/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs b/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs index b2294edc9..9f82edfe9 100755 --- a/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs +++ b/lib/PuppeteerSharp/PageCoverage/CSSCoverage.cs @@ -93,7 +93,7 @@ await Task.WhenAll( var url = kv.Value.Url; var text = kv.Value.Source; styleSheetIdToCoverage.TryGetValue(styleSheetId, out var responseRanges); - var ranges = Coverage.ConvertToDisjointRanges(responseRanges ?? new List()); + var ranges = Coverage.ConvertToDisjointRanges(responseRanges ?? []); coverage.Add(new CoverageEntry { Url = url, diff --git a/lib/PuppeteerSharp/PageCoverage/Coverage.cs b/lib/PuppeteerSharp/PageCoverage/Coverage.cs index 7ad84296e..2a18d90bd 100644 --- a/lib/PuppeteerSharp/PageCoverage/Coverage.cs +++ b/lib/PuppeteerSharp/PageCoverage/Coverage.cs @@ -30,7 +30,7 @@ public Task StartCSSCoverageAsync(CoverageStartOptions options = null) /// public Task StopCSSCoverageAsync() => _cssCoverage.StopAsync(); - internal static CoverageEntryRange[] ConvertToDisjointRanges(List nestedRanges) + internal static CoverageEntryRange[] ConvertToDisjointRanges(IEnumerable nestedRanges) { var points = new List(); foreach (var range in nestedRanges) diff --git a/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs b/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs index e0983a833..3c2e099c2 100755 --- a/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs +++ b/lib/PuppeteerSharp/PageCoverage/JSCoverage.cs @@ -93,7 +93,7 @@ await Task.WhenAll( continue; } - var flattenRanges = entry.Functions.SelectMany(f => f.Ranges).ToList(); + var flattenRanges = entry.Functions.SelectMany(f => f.Ranges); var ranges = Coverage.ConvertToDisjointRanges(flattenRanges); coverage.Add(new JSCoverageEntry { diff --git a/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs b/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs index 0325b0f57..4773f7040 100644 --- a/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs +++ b/lib/PuppeteerSharp/QueryHandlers/CustomQuerySelectorRegistry.cs @@ -84,6 +84,6 @@ internal void ClearCustomQueryHandlers() } } - private IEnumerable CustomQueryHandlerNames() => _queryHandlers.Keys.ToArray(); + private IEnumerable CustomQueryHandlerNames() => _queryHandlers.Keys; } } diff --git a/lib/PuppeteerSharp/WaitTask.cs b/lib/PuppeteerSharp/WaitTask.cs index 303b0419e..3fb7b7812 100644 --- a/lib/PuppeteerSharp/WaitTask.cs +++ b/lib/PuppeteerSharp/WaitTask.cs @@ -111,11 +111,11 @@ internal async Task RerunAsync() return fun(...args); }); }", - new object[] - { + [ new LazyArg(async context => await context.GetPuppeteerUtilAsync().ConfigureAwait(false)), _fn, - }.Concat(_args).ToArray()).ConfigureAwait(false); + .._args + ]).ConfigureAwait(false); } else { @@ -127,12 +127,12 @@ internal async Task RerunAsync() return fun(...args); }, root || document); }", - new object[] - { + [ new LazyArg(async context => await context.GetPuppeteerUtilAsync().ConfigureAwait(false)), _root, _fn, - }.Concat(_args).ToArray()).ConfigureAwait(false); + .._args + ]).ConfigureAwait(false); } // Note that FrameWaitForFunctionTests listen for this particular message to orchestrate the test execution