32 Commits
Author SHA1 Message Date
Marshall Greenblatt 56b6e70504 Tag 15600 API version 2026-10-07 12:25:37 -04:00
Marshall Greenblatt a37d75cf39 Tag 15400 API version 2026-09-06 13:10:23 -04:00
Marshall Greenblatt 1b4ea04698 Tag 15200 API version 2026-08-19 13:37:28 -04:00
Marshall Greenblatt 3eeee9d063 Tag 15101 API version 2026-07-27 14:05:59 -04:00
Marshall Greenblatt b41c5c64fc Tag 15100 API version 2026-07-10 16:23:27 -04:00
Marshall Greenblatt db9edaddfe Revert "Tag 15100 API version"
This reverts commit 6b45d8c388.
2026-07-10 16:21:34 -04:00
Marshall Greenblatt 6b45d8c388 Tag 15100 API version 2026-07-09 14:17:20 -04:00
Marshall Greenblatt 74d031e4b7 Tag 15000 API version 2026-06-04 11:40:18 -04:00
Marshall Greenblatt 4c3243e89a Tag 14900 API version 2026-05-22 16:44:34 -04:00
Marshall Greenblatt d2ffc6150b Tag 14800 API version 2026-04-22 19:16:08 -04:00
Marshall Greenblatt 15d1440162 Tag 14700 API version 2026-03-24 14:11:45 -04:00
Marshall Greenblatt b5fd59cba4 Tag 14600 API version 2026-02-17 13:20:32 -05:00
Marshall Greenblatt 577972279a Tag 14500 API version 2026-01-20 11:44:20 -05:00
Marshall Greenblatt d771b259f4 Tag 14400 API version 2025-12-18 11:39:04 -05:00
Marshall Greenblatt 98682dcfd3 Tag 14300 API version 2025-11-10 13:16:05 -05:00
Marshall Greenblatt 60fb6da8e3 Tag 14200 API version 2025-10-15 15:32:03 -04:00
Marshall Greenblatt 80dd331be5 Tag 14100 API version 2025-10-07 11:59:07 -04:00
Marshall Greenblatt f60e2737fa Tag 14000 API version 2025-08-25 14:06:54 -04:00
Marshall Greenblatt 0417a34c22 Tag 13900 API version 2025-07-09 16:26:27 -04:00
Marshall Greenblatt 31d14c386f Tag 13800 API version 2025-06-03 14:20:59 -04:00
Marshall Greenblatt ad4fa9cf24 Tag 13700 API version 2025-05-07 13:25:44 -04:00
Marshall Greenblatt f59112d839 Tag 13601 API version 2025-04-22 10:23:52 -04:00
Marshall Greenblatt d746017d7c Tag 13600 API version 2025-04-07 17:42:26 -04:00
Marshall Greenblatt 8db54e92c2 Tag 13500 API version 2025-03-12 14:37:45 -04:00
Marshall Greenblatt cda47aaff4 Tag 13401 API version 2025-03-10 11:53:36 -04:00
Nik Pavlov fdd36e8461 Support API versioning in platform-specific headers (see #3836)
- Exclude platform-specific includes (anything in < >) from the
  clang preprocessor by using `!defined(GENERATING_CEF_API_HASH)`
  in CEF header files.
- Define "target platforms" by passing platform- and architecture-
  specific ifdefs to the clang preprocessor. Grep for `defined(OS_`
  to identify headers that require target platform processing, and
  then process for each target as the platform-specific API hash
  contribution.
- Delete the univeral hash which is no longer a useful concept.
2025-02-25 12:36:00 -05:00
Marshall Greenblatt 81d54830e9 Tag 13400 API version 2025-02-19 12:06:11 -05:00
Marshall Greenblatt c8be96d15c Minor types cleanup for API gen (see #3836) 2025-02-19 11:11:51 -05:00
Marshall Greenblatt 70c6a041eb Fix issues parsing clang output (see #3836) 2025-01-14 12:56:21 -05:00
Marshall Greenblatt 81a5005bc0 Add NUM_VALUES for enums and size for structs (see #3836)
API versioning requires that enumerations end with a count value
(`*_NUM_VALUES`) and structs begin with a size value (`size_t size`).
Wrapper templates are updated to support structs with different size
values indicating different versions.

To test:
Run `ceftests --gtest_filter=ApiVersionTest.StructVersion*`
2025-01-14 12:56:21 -05:00
Marshall Greenblatt 7be2558291 Update to Chromium version 133.0.6943.0 (#1402768) 2025-01-08 17:19:43 -05:00
Marshall Greenblatt dd81904a2f Add initial support for API versioning (see #3836)
- 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).
2025-01-08 17:19:43 -05:00