[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cinnamon 4.2, salsa and master branch



Digging a bit more:

On Thu, 19 Sep 2019, Norbert Preining wrote:
> 	js/ui/main.js
> which does
> 	    Promise.all([
> 	        AppletManager.init(),
> 	        ExtensionSystem.init(),
> 	        DeskletManager.init(),
> 	        SearchProviderManager.init()
> 	    ]).then(function() {

main.js is called from	
	src/cinnamon-plugin.c: gnome_cinnamon_plugin_start
		  if (!gjs_context_eval (gjs_context,
                         "imports.ui.environment.init();"
                         "imports.ui.main.start();",
                         -1,
                         "<main>",
                         &status,
                         &error))

The interesting part here is that cinnamon exits after an error there:
  if (!gjs_context_eval (gjs_context,
                         "imports.ui.environment.init();"
                         "imports.ui.main.start();",
                         -1,
                         "<main>",
                         &status,
                         &error))
    {
      g_message ("Execution of main.js threw exception: %s", error->message);
      g_error_free (error);
      /* We just exit() here, since in a development environment you'll get the
       * error in your cinnamon output, and it's way better than a busted WM,
       * which typically manifests as a white screen.
       *
       * In production, we shouldn't crash =)  But if we do, we should get
       * restarted by the session infrastructure, which is likely going
       * to be better than some undefined state.
       *
       * If there was a generic "hook into bug-buddy for non-C crashes"
       * infrastructure, here would be the place to put it.
       */
      exit (1);
    }

Now, instead we **could** try to reload the main.start() but pass in
some arguments so that extensions etc are not loaded. I haven't tried
it, though. If that fails, we can still exit.

WDYT, is it worth looking into that?

Best

Norbert

--
PREINING Norbert                               http://www.preining.info
Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13


Reply to: