mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2024-12-13 18:16:20 +01:00
38d8acfa18
The Browser object represents the top-level Chrome browser window. One or more tabs (WebContents) are then owned by the Browser object via TabStripModel. A new Browser object can be created programmatically using "new Browser" or Browser::Create, or as a result of user action such as dragging a tab out of an existing window. New or existing tabs can also be added to an already existing Browser object. The Browser object acts as the WebContentsDelegate for all attached tabs. CEF integration requires WebContentsDelegate callbacks and notification of tab attach/detach. To support this integration we add a cef::BrowserDelegate (ChromeBrowserDelegate) member that is created in the Browser constructor and receives delegation for the Browser callbacks. ChromeBrowserDelegate creates a new ChromeBrowserHostImpl when a tab is added to a Browser for the first time, and that ChromeBrowserHostImpl continues to exist until the tab's WebContents is destroyed. The associated WebContents object does not change, but the Browser object will change when the tab is dragged between windows. CEF callback logic is shared between the chrome and alloy runtimes where possible. This shared logic has been extracted from CefBrowserHostImpl to create new CefBrowserHostBase and CefBrowserContentsDelegate classes. The CefBrowserHostImpl class is now only used with the alloy runtime and will be renamed to AlloyBrowserHostImpl in a future commit. |
||
---|---|---|
.. | ||
patches | ||
patch.cfg | ||
README.txt |
There may be instances where CEF requires changes to the source code for Chromium, Blink or third-party projects that are either not desired by those projects or that have not yet been merged into the source code versions of those projects used by CEF. To address this situation the CEF project adds a patch capability as part of cef_create_projects[.bat|sh] build step. This patch capability works as follows: 1. The CEF developer creates one or more patch files containing all required code changes and places those patch files in the "patches" subdirectory. 2. The CEF developer adds an entry for each patch file in the "patch.cfg" file. 3. When building CEF from source code the patch files are applied by the patcher.py tool via the cef_create_projects[.bat|sh] build step 4. When updating Chromium the patch_updater.py tool is used to update all patch files. See https://bitbucket.org/chromiumembedded/cef/wiki/ChromiumUpdate.md for more information about the update process.