@@ -288,8 +288,8 @@ private void deployNatives(Path nativesPath, Runnable onComplete) {
288288 } else {
289289 Platform .runLater (() -> onComplete .run ());
290290 }
291- } catch (Exception ex ) {
292- logger .error ("Error getting native status" , ex );
291+ } catch (Throwable t ) {
292+ logger .error ("Error getting native status" , t );
293293 }
294294 }
295295
@@ -310,102 +310,106 @@ private double computeOverallProgress(Set<NativeDeployer.Operation> pendingOpera
310310 }
311311
312312 private void initCef (Path path ) {
313- CefApp .startup (new String []{"--framework-dir-path" , path .toAbsolutePath ().toString ()});
314- CefApp .addAppHandler (new CefAppHandlerAdapter (null ) {
315- @ Override
316- public void onBeforeCommandLineProcessing (String processType , CefCommandLine commandLine ) {
317- // commandLine.appendSwitchWithValue("force-dark-mode", "1");
318- commandLine .appendSwitchWithValue ("enable-features" , "WebUIDarkMode,ForceDarkMode" );
319- }
320- });
321- var cefApp = CefApp .getInstance (createCefSettings ());
322-
323- CefApp .runLater (() -> {
324- // one client for all tabs
325- client = CefApp .getInstance ().createClient ();
326-
327- client .addLifeSpanHandler (new CefLifeSpanHandlerAdapter () {
313+ try {
314+ CefApp .startup (new String []{"--framework-dir-path" , path .toAbsolutePath ().toString ()});
315+ CefApp .addAppHandler (new CefAppHandlerAdapter (null ) {
328316 @ Override
329- public void onBeforeClose (CefBrowser browser ) {
330- if (browserCount .decrementAndGet () == 0 && exiting ) {
331- CefApp .runLater (() -> CefApp .getInstance ().dispose ());
332- }
317+ public void onBeforeCommandLineProcessing (String processType , CefCommandLine commandLine ) {
318+ // commandLine.appendSwitchWithValue("force-dark-mode", "1");
319+ commandLine .appendSwitchWithValue ("enable-features" , "WebUIDarkMode,ForceDarkMode" );
333320 }
334321 });
335- client .addDisplayHandler (new CefDisplayHandlerAdapter () {
336- @ Override
337- public void onTitleChange (CefBrowser browser , String title ) {
338- super .onTitleChange (browser , title );
339- var tabPort = getTabPort (browser );
340- if (tabPort != null ) {
341- Platform .runLater (() -> tabPort .onTitleChanged (title ));
322+ var cefApp = CefApp .getInstance (createCefSettings ());
323+
324+ CefApp .runLater (() -> {
325+ // one client for all tabs
326+ client = CefApp .getInstance ().createClient ();
327+
328+ client .addLifeSpanHandler (new CefLifeSpanHandlerAdapter () {
329+ @ Override
330+ public void onBeforeClose (CefBrowser browser ) {
331+ if (browserCount .decrementAndGet () == 0 && exiting ) {
332+ CefApp .runLater (() -> CefApp .getInstance ().dispose ());
333+ }
334+ }
335+ });
336+ client .addDisplayHandler (new CefDisplayHandlerAdapter () {
337+ @ Override
338+ public void onTitleChange (CefBrowser browser , String title ) {
339+ super .onTitleChange (browser , title );
340+ var tabPort = getTabPort (browser );
341+ if (tabPort != null ) {
342+ Platform .runLater (() -> tabPort .onTitleChanged (title ));
343+ }
342344 }
343- }
344345
345- @ Override
346- public void onFaviconURLChange (CefBrowser browser , String [] iconUrls ) {
347- super .onFaviconURLChange (browser , iconUrls );
348- var tabPort = getTabPort (browser );
349- if (tabPort != null ) {
350- Platform .runLater (() -> tabPort .onFaviconUrlChanged (iconUrls ));
346+ @ Override
347+ public void onFaviconURLChange (CefBrowser browser , String [] iconUrls ) {
348+ super .onFaviconURLChange (browser , iconUrls );
349+ var tabPort = getTabPort (browser );
350+ if (tabPort != null ) {
351+ Platform .runLater (() -> tabPort .onFaviconUrlChanged (iconUrls ));
352+ }
351353 }
352- }
353354
354- @ Override
355- public void onAddressChange (CefBrowser browser , CefFrame frame , String url ) {
356- var tabPort = getTabPort (browser );
357- if (tabPort != null ) {
358- Platform .runLater (() -> tabPort .onAddressChanged (url , ChangeSource .BROWSER ));
355+ @ Override
356+ public void onAddressChange (CefBrowser browser , CefFrame frame , String url ) {
357+ var tabPort = getTabPort (browser );
358+ if (tabPort != null ) {
359+ Platform .runLater (() -> tabPort .onAddressChanged (url , ChangeSource .BROWSER ));
360+ }
359361 }
360- }
361362
362- @ Override
363- public boolean onCursorChange (CefBrowser browser , int cursorType ) {
364- var tabPort = getTabPort (browser );
365- if (tabPort != null ) {
366- Platform .runLater (() -> tabPort .onCursorChanged (CefCursorUtils .getCursor (cursorType )));
363+ @ Override
364+ public boolean onCursorChange (CefBrowser browser , int cursorType ) {
365+ var tabPort = getTabPort (browser );
366+ if (tabPort != null ) {
367+ Platform .runLater (() -> tabPort .onCursorChanged (CefCursorUtils .getCursor (cursorType )));
368+ }
369+ return true ;
367370 }
368- return true ;
369- }
370- });
371- client .addLoadHandler (new CefLoadHandlerAdapter () {
372- @ Override
373- public void onLoadStart (CefBrowser browser , CefFrame frame ,
374- CefRequest .TransitionType transitionType ) {
375- if (frame .isMain ()) {
376- CefApp .runLater (() -> {
377- var devToolsClient = browser .getDevToolsClient ();
378- if (devToolsClient != null ) {
379- devToolsClient .executeDevToolsMethod ("Emulation.setAutoDarkModeOverride" ,
380- "{ \" enabled\" : true }"
381- );
382- }
383- });
371+ });
372+ client .addLoadHandler (new CefLoadHandlerAdapter () {
373+ @ Override
374+ public void onLoadStart (CefBrowser browser , CefFrame frame ,
375+ CefRequest .TransitionType transitionType ) {
376+ if (frame .isMain ()) {
377+ CefApp .runLater (() -> {
378+ var devToolsClient = browser .getDevToolsClient ();
379+ if (devToolsClient != null ) {
380+ devToolsClient .executeDevToolsMethod ("Emulation.setAutoDarkModeOverride" ,
381+ "{ \" enabled\" : true }"
382+ );
383+ }
384+ });
385+ }
384386 }
385- }
386- });
387- client . addFocusHandler ( new CefFocusHandlerAdapter () {
388- @ Override
389- public void onTakeFocus (CefBrowser browser , boolean next ) {
390- super . onTakeFocus (browser , next );
391- var tabPort = getTabPort ( browser );
392- if ( tabPort != null ) {
393- Platform . runLater (() -> tabPort . onTakeFocusFromBrowser ());
387+ });
388+ client . addFocusHandler ( new CefFocusHandlerAdapter () {
389+ @ Override
390+ public void onTakeFocus ( CefBrowser browser , boolean next ) {
391+ super . onTakeFocus (browser , next );
392+ var tabPort = getTabPort (browser );
393+ if ( tabPort != null ) {
394+ Platform . runLater (() -> tabPort . onTakeFocusFromBrowser ());
395+ }
394396 }
395- }
396- });
397- client . addPrintHandler ( new CefPrintHandlerAdapter () {
398- @ Override
399- public void onPrintSettings ( CefBrowser browser , CefPrintSettings settings , boolean getDefaults ) {
400- // settings.setDeviceName(...);
401- settings . setPrinterPrintableArea (
402- new Dimension2D ( 300 , 300 ),
403- new BoundingBox ( 0 , 0 , 300 , 300 ),
404- false
405- );
406- }
397+ });
398+ client . addPrintHandler ( new CefPrintHandlerAdapter () {
399+ @ Override
400+ public void onPrintSettings ( CefBrowser browser , CefPrintSettings settings , boolean getDefaults ) {
401+ // settings.setDeviceName(...);
402+ settings .setPrinterPrintableArea (
403+ new Dimension2D ( 300 , 300 ),
404+ new BoundingBox ( 0 , 0 , 300 , 300 ),
405+ false
406+ );
407+ }
408+ });
407409 });
408- });
410+ } catch (Throwable t ) {
411+ logger .error ("Error initializing CEF" , t );
412+ }
409413 }
410414
411415 private void onNewTab (String url ) {
0 commit comments