Why multi-processes instead of letting a multi-core processor do the job? Isn't that similar??
No, not even close, they're separate concepts
A multi core processor (like every single one you can get since 15 years ago or more) need code to specifically target such multi core capability, otherwise newer CPU is just a faster single core one. Windows already includes lots of multithreading code in its kernel and will easily make programs share multiple cores without them even knowing about it.
But for a single specific program to make full use of multiple CPU cores, the program needs to use multiple
threa of execution. Threads are the most basic execution units of operating systems and basically each thread takes one CPU core to run. The OS then switches all existing threads to share the CPU among programs and among different parts of the same program. Each
process has at least one thread and it can have as many as it wants.
Any particular program can fully utilize multiple cores of the CPU by running multiple processes or multiple threads within a single process, it's pretty much the same from that aspect. But without using either, any program is constrained to a single core, the CPU doesn't magically knows how to split the load.
Now, back to the topic, the reason for the multiprocess architecture of browsers (started by Chrome, then copied by Internet Explorer, and lastly Firefox) is
NOT performance, that can be achieved by using threads, way more efficiently BTW.
The real reason for the multiprocess design flaw is
security. Threads within the same process have full access to the complete memory and other resources of the process. Chrome (and all others after it) run one process per tab, which means that the each tab has NO access to the internals of others. The same with plugins and other components.
What this achieves in practice is that a bug in the browser won't expose secrets accidentally, or an hostile plugin won't have an easy way tampering with the whole thing, because separate processes have OS-level isolation and needs dedicated communication chanels.
In terms of performance it's actually worse than the normal approach. Communications between processes is slower than within a process, and separate processes consume additional resources, including building their internal environment for each one. They do use the full CPU cores, very much in the same way you can achieve with threads, though, but that's a side effect.