mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
- Generated files are now created when running cef_create_projects or the new version_manager.py tool. These files are still created in the cef/ source tree (same location as before) but Git ignores them due to the generated .gitignore file. - API hashes are committed to Git as a new cef_api_versions.json file. This file is used for both code generation and CEF version calculation (replacing the previous usage of cef_api_hash.h for this purpose). It will be updated by the CEF admin before merging breaking API changes upstream. - As an added benefit to the above, contributor PRs will no longer contain generated code that is susceptible to frequent merge conflicts. - From a code generation perspective, the main difference is that we now use versioned structs (e.g. cef_browser_0_t instead of cef_browser_t) on the libcef (dll/framework) side. Most of the make_*.py tool changes are related to supporting this. - From the client perspective, you can now define CEF_API_VERSION in the project configuration (or get CEF_EXPERIMENTAL by default). This define will change the API exposed in CEF’s include/ and include/capi header files. All client-side targets including libcef_dll_wrapper will need be recompiled when changing this define. - Examples of the new API-related define usage are provided in cef_api_version_test.h, api_version_test_impl.cc and api_version_unittest.cc. To test: - Run `ceftests --gtest_filter=ApiVersionTest.*` - Add `cef_api_version=13300` to GN_DEFINES. Re-run configure, build and ceftests steps. - Repeat with 13301, 13302, 13303 (all supported test versions).
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.