Page 1 of 1

Learning the CEF internals

PostPosted: Fri Jun 14, 2019 9:00 pm
by RandomFloatInt
Hello!

I don't quite know how to structure this post so bear with me... This has been puzzling me for several years now and I don't know how to tackle this issue, but I am hoping to get some answers / start a discussion that hopefully others might benefit of as well.
I have been developing C++ program using CEF for the last years now and it has been my main source of income these last years of my life.

Relevant or not, I have a master degree in computer science and I consider myself, well, an above average programmer, not the best, not the worst, but I get stuff done one way or another..
I know pretty well how to use CEF, but it has always perplexed me that CEF is a framework that I use on an almost daily basis yet I know very little or nothing about the CEF internals (basically what/how CEF operates behind the scenes..).

During all these years I have made "attempts" to try to dig a bit deeper into the CEF internals because, for instance, I would like to give back something to the community, by say, making some of my "dirty hacks" into a PR.
But everytime I try to deep dive into the CEF internals I am baffled by the complexity because it seems to me that in order to truely understand CEF one must in some sense understand a large chunk of Chromium which for me seems to be a momentous task and I sort of give up...

I would be very happy if people here could share their "strategies" / discuss how one should approach learning the CEF internals? Where should one begin? What was your strategy, how did you tackle / approach the big codebase? Does learning the CEF internals imply having a very deep understanding of the Chromium codebase? What is the "expected" hours one must invest before one even has a clue of what is going on (yes, I am very aware that this is hard to generalize..).

Please share your experiences, I would love to get some input from others..

Re: Learning the CEF internals

PostPosted: Sat Jun 15, 2019 7:50 am
by salvadordf
I'm sure you already know these documents but other people reading this thread might find them useful.

Chromium design documents :
https://www.chromium.org/developers/design-documents

The Chromium Content API used by CEF :
https://www.chromium.org/developers/content-module
https://www.chromium.org/developers/con ... ontent-api

Re: Learning the CEF internals

PostPosted: Sat Jun 15, 2019 8:24 am
by magreenblatt
There’s a brief overview of the CEF architecture at https://bitbucket.org/chromiumembedded/ ... eader-cef3. Beyond that I would suggest starting with an area of Chromium that interests you (network, rendering, GPU, etc) and reading the associated design documents. The Chromium code base is large but most modules are pretty well documented and the code is easy to search/browse at https://cs.chromium.org.

Re: Learning the CEF internals

PostPosted: Sat Jun 15, 2019 8:29 am
by magreenblatt
The main Chromium developer page at https://www.chromium.org/developers also has a number of tutorials/videos for people who are new to Chromium development. They explain basic concepts like code structure, tools usage, etc.