@@ -287,149 +287,149 @@ static int callAndWait(String[] pstr, ToIntFunction<IUnknown> callable) {
287287 return phr [0 ];
288288}
289289
290- class WebViewProvider {
290+ class WebViewWrapper {
291+ private ICoreWebView2 webView ;
292+ private ICoreWebView2_2 webView_2 ;
293+ private ICoreWebView2_10 webView_10 ;
294+ private ICoreWebView2_11 webView_11 ;
295+ private ICoreWebView2_12 webView_12 ;
296+ private ICoreWebView2_13 webView_13 ;
297+ }
291298
292- private CompletableFuture <ICoreWebView2 > webViewFuture = new CompletableFuture <>();
293- private CompletableFuture <ICoreWebView2_2 > webView_2Future = new CompletableFuture <>();
294- private CompletableFuture <ICoreWebView2_10 > webView_10Future = new CompletableFuture <>();
295- private CompletableFuture <ICoreWebView2_11 > webView_11Future = new CompletableFuture <>();
296- private CompletableFuture <ICoreWebView2_12 > webView_12Future = new CompletableFuture <>();
297- private CompletableFuture <ICoreWebView2_13 > webView_13Future = new CompletableFuture <>();
299+ class WebViewProvider {
298300
299- private CompletableFuture <Void > lastWebViewTask = webViewFuture .thenRun (() -> {});
301+ private CompletableFuture <WebViewWrapper > webViewWrapperFuture = new CompletableFuture <>();
302+ private CompletableFuture <Void > lastWebViewTask = webViewWrapperFuture .thenRun (() -> {});;
300303
301304 ICoreWebView2 initializeWebView (ICoreWebView2Controller controller ) {
302305 long [] ppv = new long [1 ];
303306 controller .get_CoreWebView2 (ppv );
304307 final ICoreWebView2 webView = new ICoreWebView2 (ppv [0 ]);
305- initializeWebView_2 (webView );
306- initializeWebView_10 (webView );
307- initializeWebView_11 (webView );
308- initializeWebView_12 (webView );
309- initializeWebView_13 (webView );
310- webViewFuture .complete (webView );
308+ final WebViewWrapper webViewWrapper = new WebViewWrapper ();
309+ webViewWrapper .webView = webView ;
310+ webViewWrapper .webView_2 = initializeWebView_2 (webView );
311+ webViewWrapper .webView_10 = initializeWebView_10 (webView );
312+ webViewWrapper .webView_11 = initializeWebView_11 (webView );
313+ webViewWrapper .webView_12 = initializeWebView_12 (webView );
314+ webViewWrapper .webView_13 = initializeWebView_13 (webView );
315+ webViewWrapperFuture .complete (webViewWrapper );
311316 return webView ;
312317 }
313318
314319 private void abortInitialization () {
315- webViewFuture .cancel (true );
320+ webViewWrapperFuture .cancel (true );
316321 }
317322
318- private void initializeWebView_2 (ICoreWebView2 webView ) {
323+ private ICoreWebView2_2 initializeWebView_2 (ICoreWebView2 webView ) {
319324 long [] ppv = new long [1 ];
320325 int hr = webView .QueryInterface (COM .IID_ICoreWebView2_2 , ppv );
321326 if (hr == COM .S_OK ) {
322- webView_2Future .complete (new ICoreWebView2_2 (ppv [0 ]));
323- } else {
324- webView_2Future .cancel (true );
327+ return new ICoreWebView2_2 (ppv [0 ]);
325328 }
329+ return null ;
326330 }
327331
328- private void initializeWebView_10 (ICoreWebView2 webView ) {
332+ private ICoreWebView2_10 initializeWebView_10 (ICoreWebView2 webView ) {
329333 long [] ppv = new long [1 ];
330334 int hr = webView .QueryInterface (COM .IID_ICoreWebView2_10 , ppv );
331335 if (hr == COM .S_OK ) {
332- webView_10Future .complete (new ICoreWebView2_10 (ppv [0 ]));
333- } else {
334- webView_10Future .cancel (true );
336+ return new ICoreWebView2_10 (ppv [0 ]);
335337 }
338+ return null ;
336339 }
337340
338- private void initializeWebView_11 (ICoreWebView2 webView ) {
341+ private ICoreWebView2_11 initializeWebView_11 (ICoreWebView2 webView ) {
339342 long [] ppv = new long [1 ];
340343 int hr = webView .QueryInterface (COM .IID_ICoreWebView2_11 , ppv );
341344 if (hr == COM .S_OK ) {
342- webView_11Future .complete (new ICoreWebView2_11 (ppv [0 ]));
343- } else {
344- webView_11Future .cancel (true );
345+ return new ICoreWebView2_11 (ppv [0 ]);
345346 }
347+ return null ;
346348 }
347349
348- private void initializeWebView_12 (ICoreWebView2 webView ) {
350+ private ICoreWebView2_12 initializeWebView_12 (ICoreWebView2 webView ) {
349351 long [] ppv = new long [1 ];
350352 int hr = webView .QueryInterface (COM .IID_ICoreWebView2_12 , ppv );
351353 if (hr == COM .S_OK ) {
352- webView_12Future .complete (new ICoreWebView2_12 (ppv [0 ]));
353- } else {
354- webView_12Future .cancel (true );
354+ return new ICoreWebView2_12 (ppv [0 ]);
355355 }
356+ return null ;
356357 }
357358
358- private void initializeWebView_13 (ICoreWebView2 webView ) {
359+ private ICoreWebView2_13 initializeWebView_13 (ICoreWebView2 webView ) {
359360 long [] ppv = new long [1 ];
360361 int hr = webView .QueryInterface (COM .IID_ICoreWebView2_13 , ppv );
361362 if (hr == COM .S_OK ) {
362- webView_13Future .complete (new ICoreWebView2_13 (ppv [0 ]));
363- } else {
364- webView_13Future .cancel (true );
363+ return new ICoreWebView2_13 (ppv [0 ]);
365364 }
365+ return null ;
366366 }
367367
368368 ICoreWebView2 getWebView (boolean waitForPendingWebviewTasksToFinish ) {
369369 if (waitForPendingWebviewTasksToFinish ) {
370370 waitForFutureToFinish (lastWebViewTask );
371371 }
372- return webViewFuture .join ();
372+ return webViewWrapperFuture .join (). webView ;
373373 }
374374
375375 ICoreWebView2_2 getWebView_2 (boolean waitForPendingWebviewTasksToFinish ) {
376376 if (waitForPendingWebviewTasksToFinish ) {
377377 waitForFutureToFinish (lastWebViewTask );
378378 }
379- return webView_2Future .join ();
379+ return webViewWrapperFuture .join (). webView_2 ;
380380 }
381381
382382 boolean isWebView_2Available () {
383- waitForFutureToFinish (webView_2Future );
384- return ! webView_2Future . isCancelled () ;
383+ waitForFutureToFinish (webViewWrapperFuture );
384+ return webViewWrapperFuture . join (). webView_2 != null ;
385385 }
386386
387387 ICoreWebView2_10 getWebView_10 (boolean waitForPendingWebviewTasksToFinish ) {
388388 if (waitForPendingWebviewTasksToFinish ) {
389389 waitForFutureToFinish (lastWebViewTask );
390390 }
391- return webView_10Future .join ();
391+ return webViewWrapperFuture .join (). webView_10 ;
392392 }
393393
394394 boolean isWebView_10Available () {
395- waitForFutureToFinish (webView_10Future );
396- return ! webView_10Future . isCancelled () ;
395+ waitForFutureToFinish (webViewWrapperFuture );
396+ return webViewWrapperFuture . join (). webView_10 != null ;
397397 }
398398
399399 ICoreWebView2_11 getWebView_11 (boolean waitForPendingWebviewTasksToFinish ) {
400400 if (waitForPendingWebviewTasksToFinish ) {
401401 waitForFutureToFinish (lastWebViewTask );
402402 }
403- return webView_11Future .join ();
403+ return webViewWrapperFuture .join (). webView_11 ;
404404 }
405405
406406 boolean isWebView_11Available () {
407- waitForFutureToFinish (webView_11Future );
408- return ! webView_11Future . isCancelled () ;
407+ waitForFutureToFinish (webViewWrapperFuture );
408+ return webViewWrapperFuture . join (). webView_11 != null ;
409409 }
410410
411411 ICoreWebView2_12 getWebView_12 (boolean waitForPendingWebviewTasksToFinish ) {
412412 if (waitForPendingWebviewTasksToFinish ) {
413413 waitForFutureToFinish (lastWebViewTask );
414414 }
415- return webView_12Future .join ();
415+ return webViewWrapperFuture .join (). webView_12 ;
416416 }
417417
418418 boolean isWebView_12Available () {
419- waitForFutureToFinish (webView_12Future );
420- return ! webView_12Future . isCancelled () ;
419+ waitForFutureToFinish (webViewWrapperFuture );
420+ return webViewWrapperFuture . join (). webView_12 != null ;
421421 }
422422
423423 ICoreWebView2_13 getWebView_13 (boolean waitForPendingWebviewTasksToFinish ) {
424424 if (waitForPendingWebviewTasksToFinish ) {
425425 waitForFutureToFinish (lastWebViewTask );
426426 }
427- return webView_13Future .join ();
427+ return webViewWrapperFuture .join (). webView_13 ;
428428 }
429429
430430 boolean isWebView_13Available () {
431- waitForFutureToFinish (webView_13Future );
432- return ! webView_13Future . isCancelled () ;
431+ waitForFutureToFinish (webViewWrapperFuture );
432+ return webViewWrapperFuture . join (). webView_13 != null ;
433433 }
434434
435435 /*
0 commit comments