@@ -287,149 +287,149 @@ static int callAndWait(String[] pstr, ToIntFunction<IUnknown> callable) {
287
287
return phr [0 ];
288
288
}
289
289
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
+ }
291
298
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 {
298
300
299
- private CompletableFuture <Void > lastWebViewTask = webViewFuture .thenRun (() -> {});
301
+ private CompletableFuture <WebViewWrapper > webViewWrapperFuture = new CompletableFuture <>();
302
+ private CompletableFuture <Void > lastWebViewTask = webViewWrapperFuture .thenRun (() -> {});;
300
303
301
304
ICoreWebView2 initializeWebView (ICoreWebView2Controller controller ) {
302
305
long [] ppv = new long [1 ];
303
306
controller .get_CoreWebView2 (ppv );
304
307
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 );
311
316
return webView ;
312
317
}
313
318
314
319
private void abortInitialization () {
315
- webViewFuture .cancel (true );
320
+ webViewWrapperFuture .cancel (true );
316
321
}
317
322
318
- private void initializeWebView_2 (ICoreWebView2 webView ) {
323
+ private ICoreWebView2_2 initializeWebView_2 (ICoreWebView2 webView ) {
319
324
long [] ppv = new long [1 ];
320
325
int hr = webView .QueryInterface (COM .IID_ICoreWebView2_2 , ppv );
321
326
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 ]);
325
328
}
329
+ return null ;
326
330
}
327
331
328
- private void initializeWebView_10 (ICoreWebView2 webView ) {
332
+ private ICoreWebView2_10 initializeWebView_10 (ICoreWebView2 webView ) {
329
333
long [] ppv = new long [1 ];
330
334
int hr = webView .QueryInterface (COM .IID_ICoreWebView2_10 , ppv );
331
335
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 ]);
335
337
}
338
+ return null ;
336
339
}
337
340
338
- private void initializeWebView_11 (ICoreWebView2 webView ) {
341
+ private ICoreWebView2_11 initializeWebView_11 (ICoreWebView2 webView ) {
339
342
long [] ppv = new long [1 ];
340
343
int hr = webView .QueryInterface (COM .IID_ICoreWebView2_11 , ppv );
341
344
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 ]);
345
346
}
347
+ return null ;
346
348
}
347
349
348
- private void initializeWebView_12 (ICoreWebView2 webView ) {
350
+ private ICoreWebView2_12 initializeWebView_12 (ICoreWebView2 webView ) {
349
351
long [] ppv = new long [1 ];
350
352
int hr = webView .QueryInterface (COM .IID_ICoreWebView2_12 , ppv );
351
353
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 ]);
355
355
}
356
+ return null ;
356
357
}
357
358
358
- private void initializeWebView_13 (ICoreWebView2 webView ) {
359
+ private ICoreWebView2_13 initializeWebView_13 (ICoreWebView2 webView ) {
359
360
long [] ppv = new long [1 ];
360
361
int hr = webView .QueryInterface (COM .IID_ICoreWebView2_13 , ppv );
361
362
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 ]);
365
364
}
365
+ return null ;
366
366
}
367
367
368
368
ICoreWebView2 getWebView (boolean waitForPendingWebviewTasksToFinish ) {
369
369
if (waitForPendingWebviewTasksToFinish ) {
370
370
waitForFutureToFinish (lastWebViewTask );
371
371
}
372
- return webViewFuture .join ();
372
+ return webViewWrapperFuture .join (). webView ;
373
373
}
374
374
375
375
ICoreWebView2_2 getWebView_2 (boolean waitForPendingWebviewTasksToFinish ) {
376
376
if (waitForPendingWebviewTasksToFinish ) {
377
377
waitForFutureToFinish (lastWebViewTask );
378
378
}
379
- return webView_2Future .join ();
379
+ return webViewWrapperFuture .join (). webView_2 ;
380
380
}
381
381
382
382
boolean isWebView_2Available () {
383
- waitForFutureToFinish (webView_2Future );
384
- return ! webView_2Future . isCancelled () ;
383
+ waitForFutureToFinish (webViewWrapperFuture );
384
+ return webViewWrapperFuture . join (). webView_2 != null ;
385
385
}
386
386
387
387
ICoreWebView2_10 getWebView_10 (boolean waitForPendingWebviewTasksToFinish ) {
388
388
if (waitForPendingWebviewTasksToFinish ) {
389
389
waitForFutureToFinish (lastWebViewTask );
390
390
}
391
- return webView_10Future .join ();
391
+ return webViewWrapperFuture .join (). webView_10 ;
392
392
}
393
393
394
394
boolean isWebView_10Available () {
395
- waitForFutureToFinish (webView_10Future );
396
- return ! webView_10Future . isCancelled () ;
395
+ waitForFutureToFinish (webViewWrapperFuture );
396
+ return webViewWrapperFuture . join (). webView_10 != null ;
397
397
}
398
398
399
399
ICoreWebView2_11 getWebView_11 (boolean waitForPendingWebviewTasksToFinish ) {
400
400
if (waitForPendingWebviewTasksToFinish ) {
401
401
waitForFutureToFinish (lastWebViewTask );
402
402
}
403
- return webView_11Future .join ();
403
+ return webViewWrapperFuture .join (). webView_11 ;
404
404
}
405
405
406
406
boolean isWebView_11Available () {
407
- waitForFutureToFinish (webView_11Future );
408
- return ! webView_11Future . isCancelled () ;
407
+ waitForFutureToFinish (webViewWrapperFuture );
408
+ return webViewWrapperFuture . join (). webView_11 != null ;
409
409
}
410
410
411
411
ICoreWebView2_12 getWebView_12 (boolean waitForPendingWebviewTasksToFinish ) {
412
412
if (waitForPendingWebviewTasksToFinish ) {
413
413
waitForFutureToFinish (lastWebViewTask );
414
414
}
415
- return webView_12Future .join ();
415
+ return webViewWrapperFuture .join (). webView_12 ;
416
416
}
417
417
418
418
boolean isWebView_12Available () {
419
- waitForFutureToFinish (webView_12Future );
420
- return ! webView_12Future . isCancelled () ;
419
+ waitForFutureToFinish (webViewWrapperFuture );
420
+ return webViewWrapperFuture . join (). webView_12 != null ;
421
421
}
422
422
423
423
ICoreWebView2_13 getWebView_13 (boolean waitForPendingWebviewTasksToFinish ) {
424
424
if (waitForPendingWebviewTasksToFinish ) {
425
425
waitForFutureToFinish (lastWebViewTask );
426
426
}
427
- return webView_13Future .join ();
427
+ return webViewWrapperFuture .join (). webView_13 ;
428
428
}
429
429
430
430
boolean isWebView_13Available () {
431
- waitForFutureToFinish (webView_13Future );
432
- return ! webView_13Future . isCancelled () ;
431
+ waitForFutureToFinish (webViewWrapperFuture );
432
+ return webViewWrapperFuture . join (). webView_13 != null ;
433
433
}
434
434
435
435
/*
0 commit comments