forked from cztomczak/cefpython
-
Notifications
You must be signed in to change notification settings - Fork 0
ArchitectureFeatures
Dominique B edited this page Feb 2, 2016
·
2 revisions
Table of contents:
- supports html5 audio/video, good performance of webgl and other accelerated content
- uses multi process architecture and Chromium Content API, thus giving performance and features similar to Chrome
- V8 engine is runing in a separate process so javascript integration can be done only through asynchronous messaging between processes, in CEF 1 you can call javascript and python back synchronously
- single process is for debugging purposes only, it is unstable, it will likely be fixed in the future as Chromium for mobile devices needs a stable single-process mode
CEF 3 comes with the the latest version of Chrome.
For more information on CEF architecture see this wiki page on the Chromium Embedded project: http://code.google.com/p/chromiumembedded/wiki/Architecture
- Frame object
- Browser object
- ApplicationSettings
- BrowserSettings
- DownloadHandler
- JavascriptBindings
- JavascriptCallback
- Python callbacks
- JavascriptContextHandler (partially)
- JavascriptDialogHandler
- RequestHandler
- Request object
- WebPluginInfo
- Cookie
- CookieManager
- CookieVisitor
- LoadHandler
- RenderHandler
- ResourceHandler
- Response object
- WebRequest and WebRequestClient
- LifespanHandler (partially)
-
context menu handler & menu model - API is not provided, but context menu is configurable, see ApplicationSettings.
context_menu - dialog handler
- dom manipulation - won't be implemented as it was deprecated and has memory leaks. The recommended way is to manipulate DOM through javascript and report to python through javascript bindings.
- focus handler
- geolocation & geolocation handler
- origin whitelist
- proxy handler
- render process handler
- resource bundle handler
- custom scheme
- stream reader & writer for request response
- trace notifications & trace event
- web plugin (WebPluginInfo already implemented)
- xml reader
- zip reader
- single process architecture
- more feature complete API than in CEF 3 (as of the moment)
- html5 audio and video support was removed (see Issue 18)
- uses Webkit API
- reduced memory usage and closer integration with the client application
- reduced performance with certain types of accelerated content and crashes due to plugins like Flash running in the same process.
CEF 1 is currently in maintenance mode and the latest version available includes Chrome 27.
Flash plugin will crash on Linux, see Issue 553 in CEF Issue Tracker. However, Pepper Flash Player might work in CEF 3 on Linux (not yet tested).
- Frame object
- Browser object
- application settings
- browser settings
- javascript bindings
- javascript callbacks & python callbacks
- display handler
- keyboard handler
- lifespan handler (partially)
- load handler
- render handler
- request handler (partially)
- Response object
- javascript context handler (partially)
- ContentFilter for resource response
- Request object
- StreamReader for request response
- WebRequest
- Cookie class
- CookieManager class
- CookieVisitor callbacks
- DownloadHandler
- DragHandler
- DragData
- dom manipulation - won't be implemented as it was deprecated and has memory leaks. The recommended way is to manipulate DOM through javascript and report to python through javascript bindings.
- find handler
- focus handler
- geolocation & geolocation handler
- jsdialog handler
- menu handler
- plugin info
- origin whitelist
- javascript extensions
- permission handler for extensions
- print handler
- proxy handler
- resource bundle handler
- custom scheme
- web plugin
- xml reader
- zip reader
- zoom handler