2323using System . Collections . ObjectModel ;
2424using System . Threading . Tasks ;
2525
26+ #nullable enable
27+
2628namespace OpenQA . Selenium . DevTools . V130
2729{
2830 /// <summary>
2931 /// Class providing functionality for manipulating targets for version 130 of the DevTools Protocol
3032 /// </summary>
3133 public class V130Target : DevTools . Target
3234 {
33- private TargetAdapter adapter ;
35+ private readonly TargetAdapter adapter ;
3436
3537 /// <summary>
3638 /// Initializes a new instance of the <see cref="V130Target"/> class.
3739 /// </summary>
3840 /// <param name="adapter">The adapter for the Target domain.</param>
41+ /// <exception cref="ArgumentNullException">If <paramref name="adapter"/> is <see langword="null"/>.</exception>
3942 public V130Target ( TargetAdapter adapter )
4043 {
41- this . adapter = adapter ;
44+ this . adapter = adapter ?? throw new ArgumentNullException ( nameof ( adapter ) ) ;
4245 adapter . DetachedFromTarget += OnDetachedFromTarget ;
4346 adapter . AttachedToTarget += OnAttachedToTarget ;
4447 }
@@ -51,28 +54,26 @@ public V130Target(TargetAdapter adapter)
5154 /// contains the list of <see cref="TargetInfo"/> objects describing the
5255 /// targets available for this session.
5356 /// </returns>
54- public override async Task < ReadOnlyCollection < TargetInfo > > GetTargets ( Object settings = null )
55-
57+ public override async Task < ReadOnlyCollection < TargetInfo > > GetTargets ( object ? settings = null )
5658 {
57- List < TargetInfo > targets = new List < TargetInfo > ( ) ;
58- if ( settings == null )
59- {
60- settings = new GetTargetsCommandSettings ( ) ;
61- }
59+ settings ??= new GetTargetsCommandSettings ( ) ;
60+
6261 var response = await adapter . GetTargets ( ( GetTargetsCommandSettings ) settings ) . ConfigureAwait ( false ) ;
62+
63+ List < TargetInfo > targets = new List < TargetInfo > ( response . TargetInfos . Length ) ;
6364 for ( int i = 0 ; i < response . TargetInfos . Length ; i ++ )
6465 {
6566 var targetInfo = response . TargetInfos [ i ] ;
66- var mapped = new TargetInfo ( )
67- {
68- TargetId = targetInfo . TargetId ,
69- Title = targetInfo . Title ,
70- Type = targetInfo . Type ,
71- Url = targetInfo . Url ,
72- OpenerId = targetInfo . OpenerId ,
73- BrowserContextId = targetInfo . BrowserContextId ,
74- IsAttached = targetInfo . Attached
75- } ;
67+ var mapped = new TargetInfo
68+ (
69+ targetId : targetInfo . TargetId ,
70+ title : targetInfo . Title ,
71+ type : targetInfo . Type ,
72+ url : targetInfo . Url ,
73+ openerId : targetInfo . OpenerId ,
74+ browserContextId : targetInfo . BrowserContextId ,
75+ isAttached : targetInfo . Attached
76+ ) ;
7677 targets . Add ( mapped ) ;
7778 }
7879
@@ -99,7 +100,7 @@ public override async Task<string> AttachToTarget(string targetId)
99100 /// <param name="sessionId">The ID of the session of the target from which to detach.</param>
100101 /// <param name="targetId">The ID of the target from which to detach.</param>
101102 /// <returns>A task representing the asynchronous detach operation.</returns>
102- public override async Task DetachFromTarget ( string sessionId = null , string targetId = null )
103+ public override async Task DetachFromTarget ( string ? sessionId = null , string ? targetId = null )
103104 {
104105 await adapter . DetachFromTarget ( new DetachFromTargetCommandSettings ( )
105106 {
@@ -117,23 +118,23 @@ public override async Task SetAutoAttach()
117118 await adapter . SetAutoAttach ( new SetAutoAttachCommandSettings ( ) { AutoAttach = true , WaitForDebuggerOnStart = false , Flatten = true } ) . ConfigureAwait ( false ) ;
118119 }
119120
120- private void OnDetachedFromTarget ( object sender , DetachedFromTargetEventArgs e )
121+ private void OnDetachedFromTarget ( object ? sender , DetachedFromTargetEventArgs e )
121122 {
122123 this . OnTargetDetached ( new TargetDetachedEventArgs ( e . SessionId , e . TargetId ) ) ;
123124 }
124125
125- private void OnAttachedToTarget ( object sender , AttachedToTargetEventArgs e )
126+ private void OnAttachedToTarget ( object ? sender , AttachedToTargetEventArgs e )
126127 {
127128 var targetInfo = e . TargetInfo == null ? null : new TargetInfo
128- {
129- BrowserContextId = e . TargetInfo . BrowserContextId ,
130- IsAttached = e . TargetInfo . Attached ,
131- OpenerId = e . TargetInfo . OpenerId ,
132- TargetId = e . TargetInfo . TargetId ,
133- Title = e . TargetInfo . Title ,
134- Type = e . TargetInfo . Type ,
135- Url = e . TargetInfo . Url
136- } ;
129+ (
130+ browserContextId : e . TargetInfo . BrowserContextId ,
131+ isAttached : e . TargetInfo . Attached ,
132+ openerId : e . TargetInfo . OpenerId ,
133+ targetId : e . TargetInfo . TargetId ,
134+ title : e . TargetInfo . Title ,
135+ type : e . TargetInfo . Type ,
136+ url : e . TargetInfo . Url
137+ ) ;
137138
138139 this . OnTargetAttached ( new TargetAttachedEventArgs
139140 (
0 commit comments