Dropping --single-process support (on Mac, or everywhere?)

571 views
Skip to first unread message

Elly Fong-Jones

unread,
Mar 17, 2021, 1:15:07 PM3/17/21
to Chromium-dev
Hi folks!

As you probably know if you work on macOS, --single-process fails a CHECK at startup on macOS and has not worked for quite a while (I think at least a year). Does anyone actually depend on this switch & behavior? Would anyone be sad if we removed it?

-- elly

Ken Rockot

unread,
Mar 17, 2021, 1:23:14 PM3/17/21
to Elly Fong-Jones, Chromium-dev
On Wed, Mar 17, 2021 at 10:15 AM Elly Fong-Jones <elly...@chromium.org> wrote:
Hi folks!

As you probably know if you work on macOS, --single-process fails a CHECK at startup on macOS and has not worked for quite a while (I think at least a year). Does anyone actually depend on this switch & behavior? Would anyone be sad if we removed it?


IIRC there are quite a few browser tests which depend on the switch. They would have to be rewritten or we'd lose test coverage.

Is the CHECK on macOS not possible to fix?
 
-- elly

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/29e94d02-a8d7-4e69-8c47-95390fb3f19cn%40chromium.org.

Xianzhu Wang

unread,
Mar 17, 2021, 1:25:04 PM3/17/21
to elly...@chromium.org, Chromium-dev
I would like to keep it for content_shell. I'm using it almost every day on Linux to debug content_shell in gdb. It has a DCHECK failure on Linux during shutdown, but I can live with it.

Might be fine to remove it for Chrome?


--

Elly Fong-Jones

unread,
Mar 17, 2021, 1:34:00 PM3/17/21
to Ken Rockot, Chromium-dev
On Wed, Mar 17, 2021 at 10:21 AM Ken Rockot <roc...@google.com> wrote:


On Wed, Mar 17, 2021 at 10:15 AM Elly Fong-Jones <elly...@chromium.org> wrote:
Hi folks!

As you probably know if you work on macOS, --single-process fails a CHECK at startup on macOS and has not worked for quite a while (I think at least a year). Does anyone actually depend on this switch & behavior? Would anyone be sad if we removed it?


IIRC there are quite a few browser tests which depend on the switch. They would have to be rewritten or we'd lose test coverage.

These must be not running on Mac, or somehow avoiding the CHECK in question, which happens at browser startup.
 
Is the CHECK on macOS not possible to fix?

It's very likely to be fixable, although I couldn't guess how much effort it would be. This question originally arose because it had been broken so thoroughly and for so long that we thought that nobody could possibly be relying on it.
  
-- elly

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/29e94d02-a8d7-4e69-8c47-95390fb3f19cn%40chromium.org.

-- elly 

Rik Cabanier

unread,
Mar 17, 2021, 1:38:06 PM3/17/21
to elly...@chromium.org, Chromium-dev
We often use it to simplify debugging on Android. It would be unfortunate if the flag was removed.

Dave Tapuska

unread,
Mar 17, 2021, 1:42:09 PM3/17/21
to caba...@gmail.com, elly...@chromium.org, Chromium-dev
Here is some test code that enforces it:

I personally find tests that do this frustrating to fix because they don't test the real world situations.

dave.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Olivier Li

unread,
Mar 17, 2021, 1:49:44 PM3/17/21
to Chromium-dev, Elly Fong-Jones
I also personally use it as part of my gdb debugging scripts. (Linux)

If the engineering effort to fix the CHECK is insurmountable  and the flag is removed it will not keep me from working completely but it would reduce my efficiency diagnosing some stability problems.

Are you aware if there are other ways to achieve easy debugging of browser tests for example?

Scott Violet

unread,
Mar 17, 2021, 2:06:39 PM3/17/21
to Xianzhu Wang, Elly Fong-Jones, Chromium-dev
+1 to what Xianzhu says. I'll say it slightly differently, removing --single-process for blink debugging via content_shell would impact productivity.

  -Scott

Ian Kilpatrick

unread,
Mar 17, 2021, 2:12:40 PM3/17/21
to Scott Violet, Xianzhu Wang, Elly Fong-Jones, Chromium-dev
Somewhat piling on at this point - but I use --single-process everyday on MacOS and this would affect productivity.

Ian

Michael Lippautz

unread,
Mar 17, 2021, 2:18:59 PM3/17/21
to ikilp...@chromium.org, Scott Violet, Xianzhu Wang, Elly Fong-Jones, Chromium-dev
+1 to the use case for Blink debugging with content_shell, where it boosts my productivity in debugging memory issues.

-Michael

Torne (Richard Coles)

unread,
Mar 17, 2021, 2:22:08 PM3/17/21
to ikilp...@chromium.org, Scott Violet, Xianzhu Wang, Elly Fong-Jones, Chromium-dev
The Android WebView uses single-process mode in production on older OS versions and internally sets the --single-process flag here: https://source.chromium.org/chromium/chromium/src/+/master:content/browser/android/content_startup_flags.cc

I don't have an opinion on whether it needs to be allowed on other platforms or not, but it cannot be removed/broken for OS_ANDROID.

Elly Fong-Jones

unread,
Mar 17, 2021, 2:24:13 PM3/17/21
to Torne (Richard Coles), ikilp...@chromium.org, Scott Violet, Xianzhu Wang, Chromium-dev
Alright, thanks folks - we will not go ahead with deleting the switch :P I'll try to make some time to dig into why it fails a CHECK.

-- elly

Ian Kilpatrick

unread,
Mar 17, 2021, 2:52:29 PM3/17/21
to Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
Angry racoons disperse! [*] :P 


(thanks elly).

Stefan Zager

unread,
Mar 17, 2021, 3:14:44 PM3/17/21
to Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
For the record: I'm a bit disappointed to hear from so many senior engineers who use --single-process for debugging. I used to do that, but I got burned one too many times. Now, I am very comfortable debugging multi-process chrome and content_shell, including on Android. I do not find it to be a productivity drag whatsoever -- on the contrary.

Daniel Cheng

unread,
Mar 17, 2021, 3:22:23 PM3/17/21
to Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
It's a matter of convenience. The last I checked, debugging child processes outside of Windows is still a bit painful.

FWIW, I often don't bother with --single-process or debuggers; I often resort to LOG(ERROR) :P

Daniel

Stefan Zager

unread,
Mar 17, 2021, 3:24:58 PM3/17/21
to Daniel Cheng, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
On Wed, Mar 17, 2021 at 12:21 PM Daniel Cheng <dch...@chromium.org> wrote:

It's a matter of convenience. The last I checked, debugging child processes outside of Windows is still a bit painful.

I debug primarily on Linux, and I don't find it to be painful at all.

Xianzhu Wang

unread,
Mar 17, 2021, 4:27:12 PM3/17/21
to Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
I think this depends on scenarios. There are scenarios (e.g. oopif) where --single-process has problems, but it is suitable for most of my scenarios and I have never encountered any problem. For scenarios where --single-process is not suitable, I will use LOG(ERROR) and base::debug::StackTrace().Print().

Daniel Cheng

unread,
Mar 17, 2021, 4:36:06 PM3/17/21
to Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
Is there a better / more automated way to do this than --renderer-startup-dialog + --no-sandbox? I particularly don't enjoy running with the second flag :)

Daniel

Stefan Zager

unread,
Mar 17, 2021, 4:37:59 PM3/17/21
to Xianzhu Wang, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
On Wed, Mar 17, 2021 at 1:25 PM Xianzhu Wang <wangx...@chromium.org> wrote:
I think this depends on scenarios. There are scenarios (e.g. oopif) where --single-process has problems, but it is suitable for most of my scenarios and I have never encountered any problem. For scenarios where --single-process is not suitable, I will use LOG(ERROR) and base::debug::StackTrace().Print().

Mentioning OOPIF in connection with --single-process is a sure way to get my hackles up :)

I have spent a *lot* of time debugging OOPIF issues which disappear when you use --single-process. How can you debug an IPC race condition in --single-process?

--single-process, much like csh, is outdated and considered harmful.

Stefan Zager

unread,
Mar 17, 2021, 4:39:24 PM3/17/21
to Daniel Cheng, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
On Wed, Mar 17, 2021 at 1:34 PM Daniel Cheng <dch...@chromium.org> wrote:
Is there a better / more automated way to do this than --renderer-startup-dialog + --no-sandbox? I particularly don't enjoy running with the second flag :)

"Enjoy" is maybe not so relevant. If it's the typing that offends you, I recommend an alias, bash function, or script. That's what I do.

Stefan Zager

unread,
Mar 17, 2021, 4:40:35 PM3/17/21
to Daniel Cheng, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
But to your point: if you need to debug something that happens during startup, then --renderer-startup-dialog works for me. Otherwise, I just attach to the running process.

Jeremy Roman

unread,
Mar 17, 2021, 4:55:18 PM3/17/21
to Stefan Zager, Daniel Cheng, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Xianzhu Wang, Chromium-dev
On Wed, Mar 17, 2021 at 4:40 PM 'Stefan Zager' via Chromium-dev <chromi...@chromium.org> wrote:
But to your point: if you need to debug something that happens during startup, then --renderer-startup-dialog works for me. Otherwise, I just attach to the running process.

On Wed, Mar 17, 2021 at 1:37 PM Stefan Zager <sza...@google.com> wrote:
On Wed, Mar 17, 2021 at 1:34 PM Daniel Cheng <dch...@chromium.org> wrote:
Is there a better / more automated way to do this than --renderer-startup-dialog + --no-sandbox? I particularly don't enjoy running with the second flag :)

"Enjoy" is maybe not so relevant. If it's the typing that offends you, I recommend an alias, bash function, or script. That's what I do.

I assumed he was worried about turning off the sandbox. But of course in single-process mode, there is also no sandbox. :)
 

Daniel

On Wed, Mar 17, 2021 at 12:23 PM Stefan Zager <sza...@google.com> wrote:
On Wed, Mar 17, 2021 at 12:21 PM Daniel Cheng <dch...@chromium.org> wrote:

It's a matter of convenience. The last I checked, debugging child processes outside of Windows is still a bit painful.

I debug primarily on Linux, and I don't find it to be painful at all.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Xianzhu Wang

unread,
Mar 17, 2021, 5:08:11 PM3/17/21
to Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
On Wed, Mar 17, 2021 at 1:36 PM Stefan Zager <sza...@google.com> wrote:
On Wed, Mar 17, 2021 at 1:25 PM Xianzhu Wang <wangx...@chromium.org> wrote:
I think this depends on scenarios. There are scenarios (e.g. oopif) where --single-process has problems, but it is suitable for most of my scenarios and I have never encountered any problem. For scenarios where --single-process is not suitable, I will use LOG(ERROR) and base::debug::StackTrace().Print().

Mentioning OOPIF in connection with --single-process is a sure way to get my hackles up :)

I have spent a *lot* of time debugging OOPIF issues which disappear when you use --single-process. How can you debug an IPC race condition in --single-process?

Definitely I can't and won't use --single-process to debug OOPIF issues or IPC race conditions. However, --single-process is simply more convenient for scenarios where it doesn't have problems. In most cases, it's easy to rule out OOPIF/IPC issues before starting debugging an issue.

Stefan Zager

unread,
Mar 17, 2021, 5:33:40 PM3/17/21
to Xianzhu Wang, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
On Wed, Mar 17, 2021 at 2:06 PM Xianzhu Wang <wangx...@chromium.org> wrote:

On Wed, Mar 17, 2021 at 1:36 PM Stefan Zager <sza...@google.com> wrote:
On Wed, Mar 17, 2021 at 1:25 PM Xianzhu Wang <wangx...@chromium.org> wrote:
I think this depends on scenarios. There are scenarios (e.g. oopif) where --single-process has problems, but it is suitable for most of my scenarios and I have never encountered any problem. For scenarios where --single-process is not suitable, I will use LOG(ERROR) and base::debug::StackTrace().Print().

Mentioning OOPIF in connection with --single-process is a sure way to get my hackles up :)

I have spent a *lot* of time debugging OOPIF issues which disappear when you use --single-process. How can you debug an IPC race condition in --single-process?

Definitely I can't and won't use --single-process to debug OOPIF issues or IPC race conditions. However, --single-process is simply more convenient for scenarios where it doesn't have problems. In most cases, it's easy to rule out OOPIF/IPC issues before starting debugging an issue.

Ah, but can you rule out font loading issues?

Xianzhu Wang

unread,
Mar 17, 2021, 5:52:53 PM3/17/21
to Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
I'm not sure because I don't have experience in this. I would try another debugging method (LOG, etc.) if the issue couldn't reproduce in gdb, which happens often due to flakiness related to timing.

I would prefer LOG (or rr) to gdb on a live process for multi-process issues because 1) such issues are often flaky 2) the pause in gdb may break the condition of the issue 3) I'm too lazy to issue the gdb attach command :)
 

K. Moon

unread,
Mar 17, 2021, 7:45:40 PM3/17/21
to Xianzhu Wang, Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Torne (Richard Coles), Scott Violet, Chromium-dev
My general thought on workflow (whether it comes to debugging or anything else): Developers should do whatever works for them.

If what works for them is bad in some way, maybe it'll eventually stop working and they'll have to pay the switching cost. Otherwise, the new way should be sufficiently better than the old way that you don't need to argue with people to do it the new way.

So marketing the new way is good, but arguing against the old way is often counter-productive. :-)

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Leszek Swirski

unread,
Mar 18, 2021, 5:42:15 AM3/18/21
to Chromium-dev, K. Moon, Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Chromium-dev, Xianzhu Wang
For people wanting to gdb in multiple processes, I've also had a lot of success with setting gdb to following forks without detaching on fork, and using its non-stop mode to allow other threads to run. I use this magic incantation (that I've saved in a gdb wrapper script):

set follow-fork-mode parent
set detach-on-fork off
set non-stop on
set target-async on
set schedule-multiple on

set print inferior-events off
set print thread-events off
set print symbol-loading off

set pagination off

handle SIGSYS nostop noprint


To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.

Christian Biesinger

unread,
Mar 18, 2021, 9:17:14 AM3/18/21
to Elly Fong-Jones, Chromium-dev
I use this switch a lot (mostly in content shell). It makes debugging
a lot easier. Please do not remove it on Linux.


Christian

On Wed, Mar 17, 2021 at 6:16 PM Elly Fong-Jones <elly...@chromium.org> wrote:
>
> Hi folks!
>
> As you probably know if you work on macOS, --single-process fails a CHECK at startup on macOS and has not worked for quite a while (I think at least a year). Does anyone actually depend on this switch & behavior? Would anyone be sad if we removed it?
>
> -- elly
>
> --
> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev
> ---
> You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
> To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/29e94d02-a8d7-4e69-8c47-95390fb3f19cn%40chromium.org.

Nico Weber

unread,
Mar 18, 2021, 9:29:06 AM3/18/21
to Leszek Swirski, Chromium-dev, K. Moon, Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
Please put recommendations like this in https://chromium.googlesource.com/chromium/src/+/0e94f26e8/docs/linux_debugging.md :)

I agree with everyone on this thread:
- --single-process is convenient but you have to be aware of the downsides
- debugging without it isn't so bad if you know how, and that way you debug the real config
- people should use what works for them, but we should make sure the recommended way is well-documented and as easy to use as possible
- multiprocess debugging _does_ need a bit more setup than single process debugging

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/7f7a637f-d72b-4ade-9a34-ed2e224bcfb4n%40chromium.org.

John Abd-El-Malek

unread,
Mar 18, 2021, 3:45:24 PM3/18/21
to Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Stefan Zager, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
+1.

There are cases where you wouldn't want to use it (anything where multiple renderers are involved, or sandboxing etc...). But for "common" cases it's a time saver. There are tests in content_browsertests and browser_tests to ensure it works. The latter didn't work on Mac (originally a crash in  cc::SingleThreadProxy::SetNeedsCommit, not sure if that's what you're seeing now Elly?) so the test was skipped there.

Stefan Zager

unread,
Mar 18, 2021, 4:29:10 PM3/18/21
to John Abd-El-Malek, Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
I'll just say a few final words and then slink back to my cave...

Maintaining --single-process is itself a tax on productivity and a pile of (IMO needless) complexity in the code base. The only justification for it is "developer convenience" in debugging, and I'm using scare quotes there advisedly because, as I have made clear, I think the "convenience" is largely illusory. I suspect that a lot of chromium developers use --single-process because, somewhere along the line, either they read about it in a doc, or someone advised them to do so. If, instead, developers were advised to debug multi-process chrome; and if the instructions for doing so were front and center in our documentation; then a lot more developers would use it, without any grumbling about convenience. It's just not that hard.

John Abd-El-Malek

unread,
Mar 18, 2021, 4:45:03 PM3/18/21
to Stefan Zager, Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
If anyone has data to share that this has been expensive to maintain it would be helpful in evaluating vs its helpfulness. Like Torne mentioned, we do need single process for webview versions so content and below already have to support this mode. The question is whether chrome/ and the components/ that aren't on webview are paying extra support cost that isn't warranted. My experience has been that this is transparent to most features, but happy to be shown otherwise.

Torne (Richard Coles)

unread,
Mar 18, 2021, 4:49:47 PM3/18/21
to John Abd-El-Malek, Stefan Zager, Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Ian Kilpatrick, Elly Fong-Jones, Scott Violet, Xianzhu Wang
At least for things that directly check the flag there are only a single-digit number of cases outside of base, content, android_webview, and tests, and one of those is for the infobar in chrome that tells you not to: https://source.chromium.org/search?q=kSingleProcess%20-f:content%20-f:android_webview%20-f:base%20-f:test&ss=chromium

dan...@chromium.org

unread,
Mar 18, 2021, 5:26:01 PM3/18/21
to Stefan Zager, John Abd-El-Malek, Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
On Thu, Mar 18, 2021 at 4:28 PM 'Stefan Zager' via Chromium-dev <chromi...@chromium.org> wrote:
I'll just say a few final words and then slink back to my cave...

Maintaining --single-process is itself a tax on productivity and a pile of (IMO needless) complexity in the code base. The only justification for it is "developer convenience" in debugging

I shall throw out there that CEF (Chromium Embedded Framework) exposes single process as an option, and the overhead and forced asynchronicity (the App can talk synchronously to the renderer on its thread) would break a lot of apps. Getting rid of this mode would pin a lot of CEF users at an old Chrome.

Not that we make product decisions around this, just to say I know this goes beyond debugging and tests (which are single process for the same reasons as these CEF apps really, plus the ability to inject C++ into the renderer process in tests).

Nothing is unsolvable everything is code but I think single-process is a pretty small burden to carry forward compared to alternatives.
 

Marshall Greenblatt

unread,
Mar 18, 2021, 5:44:37 PM3/18/21
to Dana Jansens, Stefan Zager, John Abd-El-Malek, Nico Weber, Leszek Swirski, Chromium-dev, K. Moon, Ian Kilpatrick, Elly Fong-Jones, Richard Coles, Scott Violet, Xianzhu Wang
On Thu, Mar 18, 2021 at 5:25 PM <dan...@chromium.org> wrote:
On Thu, Mar 18, 2021 at 4:28 PM 'Stefan Zager' via Chromium-dev <chromi...@chromium.org> wrote:
I'll just say a few final words and then slink back to my cave...

Maintaining --single-process is itself a tax on productivity and a pile of (IMO needless) complexity in the code base. The only justification for it is "developer convenience" in debugging

I shall throw out there that CEF (Chromium Embedded Framework) exposes single process as an option, and the overhead and forced asynchronicity (the App can talk synchronously to the renderer on its thread) would break a lot of apps. Getting rid of this mode would pin a lot of CEF users at an old Chrome.

Not that we make product decisions around this, just to say I know this goes beyond debugging and tests (which are single process for the same reasons as these CEF apps really, plus the ability to inject C++ into the renderer process in tests).

CEF dropped official support for single-process mode back in 2013. We've left the option for debugging purposes, but it's not recommended for many of the reasons discussed in this thread (flakyness, shutdown crashes, etc). Most companies have probably migrated to multi-process mode by now, or have stuck with an older Chromium version for other reasons (like Windows XP support).
 
Reply all
Reply to author
Forward
0 new messages