danmontz wrote:The BeginFrame is the event that triggers the JavaScript/Paint cycle to the Render process. If the Render process is not receiving BeginFrames, it is mostly sitting idle (remember, I'm using external_begin_frame_enabled = true).
No, JavaScript execution and DOM updates are not necessarily tied to BeginFrame. Keep in mind that JavaScript code has its own events, timers, etc. You're likely correct that some amount of render work is delayed until BeginFrame, but I wouldn't want to speculate on how much (the scheduler(s), compositor(s) and GPU process makes this more complicated).
danmontz wrote:Do you have more details on exactly what the CEF message loop is doing?
The message loop is doing whatever work is required by Chromium. Event handling, timers, etc.
danmontz wrote:Would I expect a different behavior than what I'm seeing if I integrated the message loop into my own tick mechanism?
You would likely see worse results. The most efficient approach is to let Chromium run the message loop.