1818// </copyright>
1919
2020using System ;
21+ using System . Threading ;
2122using System . Threading . Tasks ;
2223using OpenQA . Selenium . BiDi . Communication ;
2324
@@ -38,7 +39,7 @@ public class BiDi : IAsyncDisposable
3839
3940 private readonly object _moduleLock = new ( ) ;
4041
41- internal BiDi ( string url )
42+ private BiDi ( string url )
4243 {
4344 var uri = new Uri ( url ) ;
4445
@@ -49,15 +50,10 @@ internal Session.SessionModule SessionModule
4950 {
5051 get
5152 {
52- if ( _sessionModule is null )
53+ if ( _sessionModule is not null ) return _sessionModule ;
54+ lock ( _moduleLock )
5355 {
54- lock ( _moduleLock )
55- {
56- if ( _sessionModule is null )
57- {
58- _sessionModule = new Session . SessionModule ( _broker ) ;
59- }
60- }
56+ _sessionModule ??= new Session . SessionModule ( _broker ) ;
6157 }
6258 return _sessionModule ;
6359 }
@@ -67,15 +63,10 @@ public BrowsingContext.BrowsingContextModule BrowsingContext
6763 {
6864 get
6965 {
70- if ( _browsingContextModule is null )
66+ if ( _browsingContextModule is not null ) return _browsingContextModule ;
67+ lock ( _moduleLock )
7168 {
72- lock ( _moduleLock )
73- {
74- if ( _browsingContextModule is null )
75- {
76- _browsingContextModule = new BrowsingContext . BrowsingContextModule ( _broker ) ;
77- }
78- }
69+ _browsingContextModule ??= new BrowsingContext . BrowsingContextModule ( _broker ) ;
7970 }
8071 return _browsingContextModule ;
8172 }
@@ -85,15 +76,10 @@ public Browser.BrowserModule Browser
8576 {
8677 get
8778 {
88- if ( _browserModule is null )
79+ if ( _browserModule is not null ) return _browserModule ;
80+ lock ( _moduleLock )
8981 {
90- lock ( _moduleLock )
91- {
92- if ( _browserModule is null )
93- {
94- _browserModule = new Browser . BrowserModule ( _broker ) ;
95- }
96- }
82+ _browserModule ??= new Browser . BrowserModule ( _broker ) ;
9783 }
9884 return _browserModule ;
9985 }
@@ -103,15 +89,10 @@ public Network.NetworkModule Network
10389 {
10490 get
10591 {
106- if ( _networkModule is null )
92+ if ( _networkModule is not null ) return _networkModule ;
93+ lock ( _moduleLock )
10794 {
108- lock ( _moduleLock )
109- {
110- if ( _networkModule is null )
111- {
112- _networkModule = new Network . NetworkModule ( _broker ) ;
113- }
114- }
95+ _networkModule ??= new Network . NetworkModule ( _broker ) ;
11596 }
11697 return _networkModule ;
11798 }
@@ -121,15 +102,10 @@ internal Input.InputModule InputModule
121102 {
122103 get
123104 {
124- if ( _inputModule is null )
105+ if ( _inputModule is not null ) return _inputModule ;
106+ lock ( _moduleLock )
125107 {
126- lock ( _moduleLock )
127- {
128- if ( _inputModule is null )
129- {
130- _inputModule = new Input . InputModule ( _broker ) ;
131- }
132- }
108+ _inputModule ??= new Input . InputModule ( _broker ) ;
133109 }
134110 return _inputModule ;
135111 }
@@ -139,15 +115,10 @@ public Script.ScriptModule Script
139115 {
140116 get
141117 {
142- if ( _scriptModule is null )
118+ if ( _scriptModule is not null ) return _scriptModule ;
119+ lock ( _moduleLock )
143120 {
144- lock ( _moduleLock )
145- {
146- if ( _scriptModule is null )
147- {
148- _scriptModule = new Script . ScriptModule ( _broker ) ;
149- }
150- }
121+ _scriptModule ??= new Script . ScriptModule ( _broker ) ;
151122 }
152123 return _scriptModule ;
153124 }
@@ -157,15 +128,10 @@ public Log.LogModule Log
157128 {
158129 get
159130 {
160- if ( _logModule is null )
131+ if ( _logModule is not null ) return _logModule ;
132+ lock ( _moduleLock )
161133 {
162- lock ( _moduleLock )
163- {
164- if ( _logModule is null )
165- {
166- _logModule = new Log . LogModule ( _broker ) ;
167- }
168- }
134+ _logModule ??= new Log . LogModule ( _broker ) ;
169135 }
170136 return _logModule ;
171137 }
@@ -175,15 +141,10 @@ public Storage.StorageModule Storage
175141 {
176142 get
177143 {
178- if ( _storageModule is null )
144+ if ( _storageModule is not null ) return _storageModule ;
145+ lock ( _moduleLock )
179146 {
180- lock ( _moduleLock )
181- {
182- if ( _storageModule is null )
183- {
184- _storageModule = new Storage . StorageModule ( _broker ) ;
185- }
186- }
147+ _storageModule ??= new Storage . StorageModule ( _broker ) ;
187148 }
188149 return _storageModule ;
189150 }
@@ -198,7 +159,7 @@ public static async Task<BiDi> ConnectAsync(string url)
198159 {
199160 var bidi = new BiDi ( url ) ;
200161
201- await bidi . _broker . ConnectAsync ( default ) . ConfigureAwait ( false ) ;
162+ await bidi . _broker . ConnectAsync ( CancellationToken . None ) . ConfigureAwait ( false ) ;
202163
203164 return bidi ;
204165 }
0 commit comments