Mayhew wrote:I understand CEF wraps it in its own API but is there any glaring difference between the two?
Content Shell is intended for testing the Content API and is not optimized or supported for any other use. It provides the minimum implementation that is needed for this purpose. The Content API changes frequently and many features (geolocation, cookies, proxy settings, JS bindings, DOM access, etc) require "glue" code in the consumer. CEF is designed specifically for use in production environments, provides stable APIs, branches and binary releases, and isolates the user from the underlying Chromium and WebKit code complexity. Most features have default implementations that require little or no work by the user. So the choice really depends on how you want to spend your time -- learning the code base and merging Chromium/WebKit code changes, or developing your unique application. CEF is open source so you can always use it as a starting point and change it if necessary to better suit your needs.
Mayhew wrote:One thing I noticed is that sandboxing is implemented in the content shell.
This is possible because content_shell statically links a large chunk of the Chromium code. This goes back to our previous discussion about the sandbox implementation making assumptions about the executable.