Compare commits

..

24 Commits
6167 ... 5414

Author SHA1 Message Date
Marshall Greenblatt
f1c41e4b13 Use default cookie scheme settings for non-global request contexts
The CefSettings cookie scheme configuration will now only impact the global
request context. Custom behavior for other request contexts must now be
configured via CefRequestContextSettings.
2023-01-26 14:41:10 -05:00
Marshall Greenblatt
9fe3b50a51 Update to Chromium version 109.0.5414.120 2023-01-26 14:55:05 +00:00
Marshall Greenblatt
454cbc2563 Fix patched chrome build with enable_cef=false 2023-01-23 14:10:45 -05:00
Marshall Greenblatt
92b44cd7eb chrome: Allow WebUI handling of DevTools scheme (fixes issue #3421) 2023-01-23 13:42:05 -05:00
Marshall Greenblatt
83cbdcdce5 Fix patched chrome build with enable_cef=false 2023-01-23 12:59:09 -05:00
Marshall Greenblatt
18f6895b3b chrome: Don't show the profile picker on startup (fixes issue #3440) 2023-01-19 16:20:29 -05:00
Marshall Greenblatt
23deb6695e cmake: Set PROJECT_ARCH to the host architecture by default 2023-01-17 10:56:28 -05:00
e.jorge
6d4fdb2ef3 Fix edit command execution on pdf frames (fixes issue #3429) 2023-01-12 16:48:37 -05:00
Marshall Greenblatt
4aaeb3eb6c Fix crash calling GetUserData on a non-user V8 object (fixes issue #3438) 2023-01-12 16:15:16 -05:00
Vladimir Kharitonov
d0e1ac2d42 mac: Fix OSR scaling behavior when switching displays (fixes issue #3423) 2023-01-12 16:15:15 -05:00
Marshall Greenblatt
44ba3e7c7e Update to Chromium version 109.0.5414.87 2023-01-10 14:36:58 +00:00
Marshall Greenblatt
b7b1fdc749 win: osr: Fix context menu popup placement (fixes issue 3433) 2023-01-06 15:56:31 -05:00
Marshall Greenblatt
c81ef733d9 Revert "Fix dismissal of select popups on NotifyMoveOrResizeStarted (see issue #3294)"
This reverts commit 5f4bccd672.

Reason for revert: This change causes a native parented browser to lose focus
on move (fixes issue #3426).
2023-01-06 13:51:18 -05:00
Marshall Greenblatt
0e4df16c81 alloy: Avoid initialization of privacy sandbox and identity manager (fixes issue #3434, fixes issue #3401) 2023-01-06 12:30:11 -05:00
Marshall Greenblatt
abbf5d2c20 alloy: Fix crashes when extensions are disabled (fixes issue #3430) 2023-01-05 14:23:55 -05:00
Marshall Greenblatt
b5acaf4520 Update to Chromium version 109.0.5414.74 2023-01-05 14:37:33 +00:00
Marshall Greenblatt
2f7620cf4e cefclient: Remove console message alert and update google URLs 2023-01-04 17:50:30 -05:00
Marshall Greenblatt
dafd45ae17 Mac: Fix implicit type cast errors with Xcode 14.1 2023-01-04 17:45:47 -05:00
Marshall Greenblatt
3039063452 Update generated files for copyright year 2023-01-04 17:45:46 -05:00
Marshall Greenblatt
ab89ea2d96 Update to Chromium version 109.0.5414.61 2022-12-30 20:26:16 +00:00
Marshall Greenblatt
1d6e584b76 win: Fix ARM64 build generation (see https://crbug.com/1385454) 2022-12-16 13:29:08 -05:00
Marshall Greenblatt
f43c183b16 Update to Chromium version 109.0.5414.46 2022-12-15 15:09:59 +00:00
Marshall Greenblatt
75a32e3e82 Update to Chromium version 109.0.5414.36 2022-12-14 17:26:07 +00:00
Marshall Greenblatt
cd5e37ab62 Update to Chromium version 109.0.5414.8 2022-11-17 12:52:49 -05:00
1607 changed files with 23599 additions and 43945 deletions

View File

@@ -1,35 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen and what happened instead.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Versions (please complete the following information):**
- OS: [e.g. Windows 10, MacOS 13.2, Ubuntu 22.10]
- CEF Version: [e.g. 111.2.2]
**Additional context**
Does the problem reproduce with the cefclient or cefsimple sample application at the same version?
Does the problem reproduce with Google Chrome at the same version?
Add any other context about the problem here.

View File

@@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -385,16 +385,11 @@ source_set("libcef_static_unittested") {
sources = [ sources = [
"libcef/browser/devtools/devtools_util.cc", "libcef/browser/devtools/devtools_util.cc",
"libcef/browser/devtools/devtools_util.h", "libcef/browser/devtools/devtools_util.h",
"libcef/browser/geometry_util.h", "libcef/browser/screen_util.h",
"libcef/browser/geometry_util.cc", "libcef/browser/screen_util.cc",
] ]
deps = [ deps = [
"//ui/gfx/geometry",
]
public_deps = [
# Support relative include paths.
"//base", "//base",
] ]
@@ -411,7 +406,7 @@ test("libcef_static_unittests") {
sources = [ sources = [
"libcef/browser/devtools/devtools_util_unittest.cc", "libcef/browser/devtools/devtools_util_unittest.cc",
"libcef/browser/geometry_util_unittest.cc", "libcef/browser/screen_util_unittest.cc",
] ]
deps = [ deps = [
@@ -528,8 +523,6 @@ source_set("libcef_static") {
"libcef/browser/chrome/chrome_content_browser_client_cef.h", "libcef/browser/chrome/chrome_content_browser_client_cef.h",
"libcef/browser/chrome/chrome_context_menu_handler.cc", "libcef/browser/chrome/chrome_context_menu_handler.cc",
"libcef/browser/chrome/chrome_context_menu_handler.h", "libcef/browser/chrome/chrome_context_menu_handler.h",
"libcef/browser/chrome/chrome_startup_browser_creator.cc",
"libcef/browser/chrome/chrome_startup_browser_creator.h",
"libcef/browser/chrome_crash_reporter_client_stub.cc", "libcef/browser/chrome_crash_reporter_client_stub.cc",
"libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.cc", "libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.cc",
"libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.h", "libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.h",
@@ -807,7 +800,6 @@ source_set("libcef_static") {
"libcef/browser/views/view_util.cc", "libcef/browser/views/view_util.cc",
"libcef/browser/views/view_util.h", "libcef/browser/views/view_util.h",
"libcef/browser/views/view_view.h", "libcef/browser/views/view_view.h",
"libcef/browser/views/widget_destruction_observer.h",
"libcef/browser/views/window_impl.cc", "libcef/browser/views/window_impl.cc",
"libcef/browser/views/window_impl.h", "libcef/browser/views/window_impl.h",
"libcef/browser/views/window_view.cc", "libcef/browser/views/window_view.cc",
@@ -941,6 +933,8 @@ source_set("libcef_static") {
"libcef/renderer/render_frame_util.h", "libcef/renderer/render_frame_util.h",
"libcef/renderer/render_manager.cc", "libcef/renderer/render_manager.cc",
"libcef/renderer/render_manager.h", "libcef/renderer/render_manager.h",
"libcef/renderer/render_urlrequest_impl.cc",
"libcef/renderer/render_urlrequest_impl.h",
"libcef/renderer/thread_util.h", "libcef/renderer/thread_util.h",
"libcef/renderer/v8_impl.cc", "libcef/renderer/v8_impl.cc",
"libcef/renderer/v8_impl.h", "libcef/renderer/v8_impl.h",
@@ -968,7 +962,6 @@ source_set("libcef_static") {
# Bring in feature flag defines. # Bring in feature flag defines.
"//cef/libcef/features", "//cef/libcef/features",
# Support relative include paths. # Support relative include paths.
"//base",
"//third_party/abseil-cpp:absl", "//third_party/abseil-cpp:absl",
] ]
@@ -986,6 +979,7 @@ source_set("libcef_static") {
"libcef/common/extensions/api:extensions_features", "libcef/common/extensions/api:extensions_features",
# Normal build dependencies. Should be sorted alphabetically. # Normal build dependencies. Should be sorted alphabetically.
"//base",
"//base:base_static", "//base:base_static",
"//base/third_party/dynamic_annotations", "//base/third_party/dynamic_annotations",
"//cc", "//cc",
@@ -1036,6 +1030,7 @@ source_set("libcef_static") {
"//crypto", "//crypto",
"//device/base", "//device/base",
"//extensions/browser", "//extensions/browser",
"//extensions/browser:core_api_provider",
"//extensions/buildflags", "//extensions/buildflags",
"//extensions/common/api", "//extensions/common/api",
"//extensions/common:core_api_provider", "//extensions/common:core_api_provider",
@@ -1085,6 +1080,7 @@ source_set("libcef_static") {
"libcef/browser/alloy/alloy_browser_main_win.cc", "libcef/browser/alloy/alloy_browser_main_win.cc",
"libcef/browser/native/browser_platform_delegate_native_win.cc", "libcef/browser/native/browser_platform_delegate_native_win.cc",
"libcef/browser/native/browser_platform_delegate_native_win.h", "libcef/browser/native/browser_platform_delegate_native_win.h",
"libcef/browser/native/cursor_util_win.cc",
"libcef/browser/osr/browser_platform_delegate_osr_win.cc", "libcef/browser/osr/browser_platform_delegate_osr_win.cc",
"libcef/browser/osr/browser_platform_delegate_osr_win.h", "libcef/browser/osr/browser_platform_delegate_osr_win.h",
] ]
@@ -1113,6 +1109,7 @@ source_set("libcef_static") {
sources += includes_linux + [ sources += includes_linux + [
"libcef/browser/native/browser_platform_delegate_native_linux.cc", "libcef/browser/native/browser_platform_delegate_native_linux.cc",
"libcef/browser/native/browser_platform_delegate_native_linux.h", "libcef/browser/native/browser_platform_delegate_native_linux.h",
"libcef/browser/native/cursor_util_linux.cc",
"libcef/browser/osr/browser_platform_delegate_osr_linux.cc", "libcef/browser/osr/browser_platform_delegate_osr_linux.cc",
"libcef/browser/osr/browser_platform_delegate_osr_linux.h", "libcef/browser/osr/browser_platform_delegate_osr_linux.h",
"libcef/browser/printing/print_dialog_linux.cc", "libcef/browser/printing/print_dialog_linux.cc",
@@ -1144,17 +1141,12 @@ source_set("libcef_static") {
sources += includes_mac + [ sources += includes_mac + [
"libcef/browser/native/browser_platform_delegate_native_mac.h", "libcef/browser/native/browser_platform_delegate_native_mac.h",
"libcef/browser/native/browser_platform_delegate_native_mac.mm", "libcef/browser/native/browser_platform_delegate_native_mac.mm",
"libcef/browser/native/cursor_util_mac.mm",
"libcef/browser/native/javascript_dialog_runner_mac.h", "libcef/browser/native/javascript_dialog_runner_mac.h",
"libcef/browser/native/javascript_dialog_runner_mac.mm", "libcef/browser/native/javascript_dialog_runner_mac.mm",
"libcef/browser/native/menu_runner_mac.h", "libcef/browser/native/menu_runner_mac.h",
"libcef/browser/native/menu_runner_mac.mm", "libcef/browser/native/menu_runner_mac.mm",
"libcef/browser/osr/browser_platform_delegate_osr_mac.h", "libcef/browser/osr/browser_platform_delegate_osr_mac.h",
"libcef/browser/osr/browser_platform_delegate_osr_mac.mm", "libcef/browser/osr/browser_platform_delegate_osr_mac.mm",
"libcef/browser/views/native_widget_mac.h",
"libcef/browser/views/native_widget_mac.mm",
"libcef/browser/views/ns_window.h",
"libcef/browser/views/ns_window.mm",
"libcef/browser/views/view_util_mac.mm", "libcef/browser/views/view_util_mac.mm",
"libcef/common/util_mac.h", "libcef/common/util_mac.h",
"libcef/common/util_mac.mm", "libcef/common/util_mac.mm",
@@ -1177,7 +1169,6 @@ source_set("libcef_static") {
sources += [ sources += [
"libcef/browser/native/browser_platform_delegate_native_aura.cc", "libcef/browser/native/browser_platform_delegate_native_aura.cc",
"libcef/browser/native/browser_platform_delegate_native_aura.h", "libcef/browser/native/browser_platform_delegate_native_aura.h",
"libcef/browser/native/cursor_util_aura.cc",
"libcef/browser/native/menu_runner_views_aura.cc", "libcef/browser/native/menu_runner_views_aura.cc",
"libcef/browser/native/menu_runner_views_aura.h", "libcef/browser/native/menu_runner_views_aura.h",
"libcef/browser/views/view_util_aura.cc", "libcef/browser/views/view_util_aura.cc",
@@ -1358,10 +1349,7 @@ make_pack_header("resources") {
"$root_gen_dir/content/browser/tracing/grit/tracing_resources.h", "$root_gen_dir/content/browser/tracing/grit/tracing_resources.h",
"$root_gen_dir/content/browser/webrtc/resources/grit/webrtc_internals_resources.h", "$root_gen_dir/content/browser/webrtc/resources/grit/webrtc_internals_resources.h",
"$root_gen_dir/content/grit/content_resources.h", "$root_gen_dir/content/grit/content_resources.h",
"$root_gen_dir/content/grit/gpu_resources.h", "$root_gen_dir/content/grit/dev_ui_content_resources.h",
"$root_gen_dir/content/grit/histograms_resources.h",
"$root_gen_dir/content/grit/process_resources.h",
"$root_gen_dir/content/grit/service_worker_resources.h",
"$root_gen_dir/extensions/grit/extensions_browser_resources.h", "$root_gen_dir/extensions/grit/extensions_browser_resources.h",
"$root_gen_dir/extensions/grit/extensions_renderer_resources.h", "$root_gen_dir/extensions/grit/extensions_renderer_resources.h",
"$root_gen_dir/extensions/grit/extensions_resources.h", "$root_gen_dir/extensions/grit/extensions_resources.h",
@@ -1369,7 +1357,7 @@ make_pack_header("resources") {
"$root_gen_dir/net/grit/net_resources.h", "$root_gen_dir/net/grit/net_resources.h",
"$root_gen_dir/third_party/blink/public/resources/grit/blink_resources.h", "$root_gen_dir/third_party/blink/public/resources/grit/blink_resources.h",
"$root_gen_dir/ui/resources/grit/ui_resources.h", "$root_gen_dir/ui/resources/grit/ui_resources.h",
"$root_gen_dir/ui/resources/grit/webui_resources.h", "$root_gen_dir/ui/resources/grit/webui_generated_resources.h",
"$root_gen_dir/ui/views/resources/grit/views_resources.h", "$root_gen_dir/ui/views/resources/grit/views_resources.h",
] ]
@@ -1385,13 +1373,10 @@ make_pack_header("resources") {
"//components/resources:components_resources", "//components/resources:components_resources",
"//components/resources:dev_ui_components_resources", "//components/resources:dev_ui_components_resources",
"//content/browser/devtools:devtools_resources", "//content/browser/devtools:devtools_resources",
"//content/browser/resources/gpu:resources",
"//content/browser/resources/histograms:resources",
"//content/browser/resources/process:resources",
"//content/browser/resources/service_worker:resources",
"//content/browser/tracing:resources", "//content/browser/tracing:resources",
"//content/browser/webrtc/resources", "//content/browser/webrtc/resources",
"//content:content_resources", "//content:content_resources",
"//content:dev_ui_content_resources",
"//extensions:extensions_browser_resources", "//extensions:extensions_browser_resources",
"//extensions:extensions_renderer_resources", "//extensions:extensions_renderer_resources",
"//extensions:extensions_resources_grd", "//extensions:extensions_resources_grd",
@@ -1399,7 +1384,7 @@ make_pack_header("resources") {
"//net:net_resources", "//net:net_resources",
"//third_party/blink/public:resources", "//third_party/blink/public:resources",
"//ui/resources:ui_resources_grd", "//ui/resources:ui_resources_grd",
"//ui/resources:webui_resources_grd", "//ui/resources:webui_generated_resources_grd",
"//ui/views/resources:resources_grd", "//ui/views/resources:resources_grd",
] ]
} }
@@ -1409,12 +1394,12 @@ make_pack_header("strings") {
header = "$root_out_dir/includes/include/cef_pack_strings.h" header = "$root_out_dir/includes/include/cef_pack_strings.h"
inputs = [ inputs = [
"$root_gen_dir/cef/grit/cef_strings.h", "$root_gen_dir/cef/grit/cef_strings.h",
"$root_gen_dir/chrome/grit/branded_strings.h", "$root_gen_dir/chrome/grit/chromium_strings.h",
"$root_gen_dir/chrome/grit/generated_resources.h", "$root_gen_dir/chrome/grit/generated_resources.h",
"$root_gen_dir/chrome/grit/locale_settings.h", "$root_gen_dir/chrome/grit/locale_settings.h",
"$root_gen_dir/chrome/grit/platform_locale_settings.h", "$root_gen_dir/chrome/grit/platform_locale_settings.h",
"$root_gen_dir/components/omnibox/resources/grit/omnibox_pedal_synonyms.h", "$root_gen_dir/components/omnibox/resources/grit/omnibox_pedal_synonyms.h",
"$root_gen_dir/components/strings/grit/components_branded_strings.h", "$root_gen_dir/components/strings/grit/components_chromium_strings.h",
"$root_gen_dir/components/strings/grit/components_strings.h", "$root_gen_dir/components/strings/grit/components_strings.h",
"$root_gen_dir/extensions/strings/grit/extensions_strings.h", "$root_gen_dir/extensions/strings/grit/extensions_strings.h",
"$root_gen_dir/services/strings/grit/services_strings.h", "$root_gen_dir/services/strings/grit/services_strings.h",
@@ -1425,12 +1410,12 @@ make_pack_header("strings") {
deps = [ deps = [
":cef_strings", ":cef_strings",
"//chrome/app:branded_strings", "//chrome/app:chromium_strings",
"//chrome/app:generated_resources", "//chrome/app:generated_resources",
"//chrome/app/resources:locale_settings", "//chrome/app/resources:locale_settings",
"//chrome/app/resources:platform_locale_settings", "//chrome/app/resources:platform_locale_settings",
"//components/omnibox/resources:omnibox_pedal_synonyms", "//components/omnibox/resources:omnibox_pedal_synonyms",
"//components/strings:components_branded_strings", "//components/strings:components_chromium_strings",
"//components/strings:components_locale_settings", "//components/strings:components_locale_settings",
"//components/strings:components_strings", "//components/strings:components_strings",
"//extensions/strings", "//extensions/strings",
@@ -1517,8 +1502,6 @@ if (is_mac) {
public_deps += [ "//third_party/icu:icudata", ] public_deps += [ "//third_party/icu:icudata", ]
} }
sources += [ "//ui/gl/resources/angle-metal/gpu_shader_cache.bin" ]
if (v8_use_external_startup_data) { if (v8_use_external_startup_data) {
sources += [ sources += [
"$root_out_dir/snapshot_blob.bin", "$root_out_dir/snapshot_blob.bin",
@@ -1677,10 +1660,6 @@ if (is_mac) {
# ResourceBundle. See crbug.com/147663. # ResourceBundle. See crbug.com/147663.
"//ui/resources:ui_unscaled_resources_grd", "//ui/resources:ui_unscaled_resources_grd",
] ]
# Delay-load as many DLLs as possible for sandbox and startup perf
# improvements.
configs += [ "//build/config/win:delayloads" ]
} }
if (is_linux && !is_debug && !use_partition_alloc_as_malloc) { if (is_linux && !is_debug && !use_partition_alloc_as_malloc) {
@@ -1790,20 +1769,7 @@ if (is_mac) {
} }
} }
# From //chrome/BUILD.gn: foreach(helper_params, content_mac_helpers) {
# Helper app to display alert notifications. This is necessary as an app can
# only display either banner or alert style notifications and the main app
# will display banners.
alert_helper_params = [
"alerts",
".alerts",
" (Alerts)",
]
# Merge all helper apps needed by //content and //chrome.
chrome_mac_helpers = content_mac_helpers + [ alert_helper_params ]
foreach(helper_params, chrome_mac_helpers) {
_helper_target = helper_params[0] _helper_target = helper_params[0]
_helper_bundle_id = helper_params[1] _helper_bundle_id = helper_params[1]
_helper_suffix = helper_params[2] _helper_suffix = helper_params[2]
@@ -1834,7 +1800,7 @@ if (is_mac) {
":cef_framework", ":cef_framework",
] ]
foreach(helper_params, chrome_mac_helpers) { foreach(helper_params, content_mac_helpers) {
sources += [ sources += [
"$root_out_dir/${app_helper_name}${helper_params[2]}.app", "$root_out_dir/${app_helper_name}${helper_params[2]}.app",
] ]
@@ -2183,10 +2149,6 @@ if (is_mac) {
configs -= [ "//build/config/win:console" ] configs -= [ "//build/config/win:console" ]
configs += [ "//build/config/win:windowed" ] configs += [ "//build/config/win:windowed" ]
# Delay-load as many DLLs as possible for sandbox and startup perf
# improvements.
configs += [ "//build/config/win:delayloads" ]
defines += [ defines += [
"CEF_USE_ATL", "CEF_USE_ATL",
] ]
@@ -2232,10 +2194,6 @@ if (is_mac) {
configs += [ configs += [
":gtk", ":gtk",
] ]
cflags = [
# Don't warn about deprecated GDK/GTK functions.
"-Wno-deprecated-declarations",
]
} }
if (!is_component_build) { if (!is_component_build) {
@@ -2275,10 +2233,6 @@ if (is_mac) {
configs -= [ "//build/config/win:console" ] configs -= [ "//build/config/win:console" ]
configs += [ "//build/config/win:windowed" ] configs += [ "//build/config/win:windowed" ]
# Delay-load as many DLLs as possible for sandbox and startup perf
# improvements.
configs += [ "//build/config/win:delayloads" ]
deps += [ deps += [
":cef_sandbox", ":cef_sandbox",
"//build/win:default_exe_manifest", "//build/win:default_exe_manifest",
@@ -2346,10 +2300,6 @@ if (is_mac) {
sources += gypi_paths2.shared_sources_win + sources += gypi_paths2.shared_sources_win +
gypi_paths2.ceftests_sources_win gypi_paths2.ceftests_sources_win
# Delay-load as many DLLs as possible for sandbox and startup perf
# improvements.
configs += [ "//build/config/win:delayloads" ]
deps += [ deps += [
":cef_sandbox", ":cef_sandbox",
"//build/win:default_exe_manifest", "//build/win:default_exe_manifest",

View File

@@ -7,6 +7,6 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{ {
'chromium_checkout': 'refs/tags/121.0.6167.184', 'chromium_checkout': 'refs/tags/109.0.5414.120',
'depot_tools_checkout': '6444de14d1' 'depot_tools_checkout': 'ca3ebf119e'
} }

View File

@@ -38,7 +38,6 @@
'chrome/common/extensions/api/*_features.json', 'chrome/common/extensions/api/*_features.json',
'chrome/renderer/chrome_content_renderer_client.*', 'chrome/renderer/chrome_content_renderer_client.*',
'chrome/renderer/extensions/chrome_extensions_renderer_client.*', 'chrome/renderer/extensions/chrome_extensions_renderer_client.*',
'components/content_settings/core/common/content_settings_types.h',
'content/browser/renderer_host/render_widget_host_view_base.*', 'content/browser/renderer_host/render_widget_host_view_base.*',
'content/public/browser/content_browser_client.*', 'content/public/browser/content_browser_client.*',
'content/public/browser/render_widget_host_view.h', 'content/public/browser/render_widget_host_view.h',

View File

@@ -12,8 +12,8 @@
# distribution include: # distribution include:
# #
# Linux: Ninja, GCC 7.5.0+, Unix Makefiles # Linux: Ninja, GCC 7.5.0+, Unix Makefiles
# MacOS: Ninja, Xcode 12.2 to 15.0 # MacOS: Ninja, Xcode 12.2 to 13.0
# Windows: Ninja, Visual Studio 2022 # Windows: Ninja, Visual Studio 2019+
# #
# Ninja is a cross-platform open-source tool for running fast builds using # Ninja is a cross-platform open-source tool for running fast builds using
# pre-installed platform toolchains (GNU, clang, Xcode or MSVC). It can be # pre-installed platform toolchains (GNU, clang, Xcode or MSVC). It can be
@@ -36,7 +36,7 @@
# #
# The below requirements must be met to build this CEF binary distribution. # The below requirements must be met to build this CEF binary distribution.
# #
# - CMake version 3.21 or newer. # - CMake version 3.19 or newer.
# #
# - Linux requirements: # - Linux requirements:
# Currently supported distributions include Debian 10 (Buster), Ubuntu 18 # Currently supported distributions include Debian 10 (Buster), Ubuntu 18
@@ -48,15 +48,15 @@
# libgtk3.0-dev (required by the cefclient target only) # libgtk3.0-dev (required by the cefclient target only)
# #
# - MacOS requirements: # - MacOS requirements:
# Xcode 12.2 to 15.0 building on MacOS 10.15.4 (Catalina) or newer. Only # Xcode 12.2 to 13.4 building on MacOS 10.15.4 (Catalina) or newer. Only
# 64-bit builds are supported. The Xcode command-line tools must also be # 64-bit builds are supported. The Xcode command-line tools must also be
# installed. Newer Xcode versions may not have been been tested and are not # installed. Newer Xcode versions may not have been been tested and are not
# recommended. # recommended.
# #
# - Windows requirements: # - Windows requirements:
# Visual Studio 2022 building on Windows 10 or newer. Windows 10/11 64-bit is # Visual Studio 2019 or newer building on Windows 7 or newer. Windows 10
# recommended. Newer versions will likely also work but may not have been # 64-bit is recommended. Newer versions will likely also work but may not have
# tested. # been tested.
# #
# BUILD EXAMPLES # BUILD EXAMPLES
# #
@@ -96,35 +96,35 @@
# > ninja cefclient cefsimple # > ninja cefclient cefsimple
# #
# To perform a Windows build using a 32-bit CEF binary distribution: # To perform a Windows build using a 32-bit CEF binary distribution:
# Using the Visual Studio 2022 IDE: # Using the Visual Studio 2019 IDE:
# > cmake -G "Visual Studio 17" -A Win32 .. # > cmake -G "Visual Studio 16" -A Win32 ..
# Open build\cef.sln in Visual Studio and select Build > Build Solution. # Open build\cef.sln in Visual Studio and select Build > Build Solution.
# #
# Using Ninja with Visual Studio 2022 command-line tools: # Using Ninja with Visual Studio 2019 command-line tools:
# (this path may be different depending on your Visual Studio installation) # (this path may be different depending on your Visual Studio installation)
# > "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars32.bat" # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
# > ninja cefclient cefsimple # > ninja cefclient cefsimple
# #
# To perform a Windows build using a 64-bit CEF binary distribution: # To perform a Windows build using a 64-bit CEF binary distribution:
# Using the Visual Studio 2022 IDE: # Using the Visual Studio 2019 IDE:
# > cmake -G "Visual Studio 17" -A x64 .. # > cmake -G "Visual Studio 16" -A x64 ..
# Open build\cef.sln in Visual Studio and select Build > Build Solution. # Open build\cef.sln in Visual Studio and select Build > Build Solution.
# #
# Using Ninja with Visual Studio 2022 command-line tools: # Using Ninja with Visual Studio 2019 command-line tools:
# (this path may be different depending on your Visual Studio installation) # (this path may be different depending on your Visual Studio installation)
# > "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars64.bat" # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
# > ninja cefclient cefsimple # > ninja cefclient cefsimple
# #
# To perform a Windows build using an ARM64 CEF binary distribution: # To perform a Windows build using an ARM64 CEF binary distribution:
# Using the Visual Studio 2022 IDE: # Using the Visual Studio 2019 IDE:
# > cmake -G "Visual Studio 17" -A arm64 .. # > cmake -G "Visual Studio 16" -A arm64 ..
# Open build\cef.sln in Visual Studio and select Build > Build Solution. # Open build\cef.sln in Visual Studio and select Build > Build Solution.
# #
# Using Ninja with Visual Studio 2022 command-line tools: # Using Ninja with Visual Studio 2019 command-line tools:
# (this path may be different depending on your Visual Studio installation) # (this path may be different depending on your Visual Studio installation)
# > "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
# > ninja cefsimple # > ninja cefsimple
@@ -132,8 +132,8 @@
# Global setup. # Global setup.
# #
# For VS2022 and Xcode 12+ support. # For VS2019 and Xcode 12+ support.
cmake_minimum_required(VERSION 3.21) cmake_minimum_required(VERSION 3.19)
# Only generate Debug and Release configuration types. # Only generate Debug and Release configuration types.
set(CMAKE_CONFIGURATION_TYPES Debug Release) set(CMAKE_CONFIGURATION_TYPES Debug Release)

View File

@@ -9,7 +9,6 @@ The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromi
* Branches and Building - https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding * Branches and Building - https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
* Announcements - https://groups.google.com/forum/#!forum/cef-announce * Announcements - https://groups.google.com/forum/#!forum/cef-announce
* Support Forum - http://www.magpcss.org/ceforum/ * Support Forum - http://www.magpcss.org/ceforum/
* Issue Tracker - https://github.com/chromiumembedded/cef/issues
* C++ API Docs - [Stable release docs](https://cef-builds.spotifycdn.com/docs/stable.html) / [Beta release docs](https://cef-builds.spotifycdn.com/docs/beta.html) * C++ API Docs - [Stable release docs](https://cef-builds.spotifycdn.com/docs/stable.html) / [Beta release docs](https://cef-builds.spotifycdn.com/docs/beta.html)
* Downloads - https://cef-builds.spotifycdn.com/index.html * Downloads - https://cef-builds.spotifycdn.com/index.html
* Donations - http://www.magpcss.org/ceforum/donate.php * Donations - http://www.magpcss.org/ceforum/donate.php
@@ -49,7 +48,6 @@ The base CEF framework includes support for the C and C++ programming languages.
* Delphi - https://github.com/hgourvest/dcef3 * Delphi - https://github.com/hgourvest/dcef3
* Delphi - https://github.com/salvadordf/CEF4Delphi * Delphi - https://github.com/salvadordf/CEF4Delphi
* Go - https://github.com/CzarekTomczak/cef2go * Go - https://github.com/CzarekTomczak/cef2go
* Go - https://github.com/energye/energy
* Java - https://bitbucket.org/chromiumembedded/java-cef * Java - https://bitbucket.org/chromiumembedded/java-cef
* Python - http://code.google.com/p/cefpython/ * Python - http://code.google.com/p/cefpython/
@@ -59,7 +57,7 @@ If you're the maintainer of a project not listed above and would like your proje
CEF is still very much a work in progress. Some ways that you can help out: CEF is still very much a work in progress. Some ways that you can help out:
\- Vote for issues in the [CEF issue tracker](https://github.com/chromiumembedded/cef/issues) that are important to you. This helps with development prioritization. \- Vote for issues in the [CEF issue tracker](https://bitbucket.org/chromiumembedded/cef/issues?status=new&status=open) that are important to you. This helps with development prioritization.
\- Report any bugs that you find or feature requests that are important to you. Make sure to first search for existing issues before creating new ones. Please use the [CEF Forum](http://magpcss.org/ceforum) and not the issue tracker for usage questions. Each CEF issue should: \- Report any bugs that you find or feature requests that are important to you. Make sure to first search for existing issues before creating new ones. Please use the [CEF Forum](http://magpcss.org/ceforum) and not the issue tracker for usage questions. Each CEF issue should:
@@ -70,7 +68,7 @@ CEF is still very much a work in progress. Some ways that you can help out:
\- Write unit tests for new or existing functionality. \- Write unit tests for new or existing functionality.
\- Pull requests and patches are welcome. View open issues in the [CEF issue tracker](https://github.com/chromiumembedded/cef/issues) or search for TODO(cef) in the source code for ideas. \- Pull requests and patches are welcome. View open issues in the [CEF issue tracker](https://bitbucket.org/chromiumembedded/cef/issues?status=new&status=open) or search for TODO(cef) in the source code for ideas.
If you would like to contribute source code changes to CEF please follow the below guidelines: If you would like to contribute source code changes to CEF please follow the below guidelines:

View File

@@ -1,2 +1,2 @@
@echo off @echo off
python3.bat tools\gclient_hook.py python.bat tools\gclient_hook.py

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights # Copyright (c) 2023 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that # reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file. # can be found in the LICENSE file.
# #
@@ -8,7 +8,7 @@
# by hand. See the translator.README.txt file in the tools directory for # by hand. See the translator.README.txt file in the tools directory for
# more information. # more information.
# #
# $hash=25599539f43226aac01bfcb74f19ac74217aee9a$ # $hash=ab931540f6f4d80336123acea6cf51e701f5a63a$
# #
{ {

View File

@@ -8,6 +8,7 @@
'include/base/cef_atomic_flag.h', 'include/base/cef_atomic_flag.h',
'include/base/cef_atomic_ref_count.h', 'include/base/cef_atomic_ref_count.h',
'include/base/cef_auto_reset.h', 'include/base/cef_auto_reset.h',
'include/base/cef_basictypes.h',
'include/base/cef_bind.h', 'include/base/cef_bind.h',
'include/base/cef_build.h', 'include/base/cef_build.h',
'include/base/cef_callback.h', 'include/base/cef_callback.h',
@@ -23,6 +24,7 @@
'include/base/cef_ptr_util.h', 'include/base/cef_ptr_util.h',
'include/base/cef_ref_counted.h', 'include/base/cef_ref_counted.h',
'include/base/cef_scoped_refptr.h', 'include/base/cef_scoped_refptr.h',
'include/base/cef_template_util.h',
'include/base/cef_thread_checker.h', 'include/base/cef_thread_checker.h',
'include/base/cef_trace_event.h', 'include/base/cef_trace_event.h',
'include/base/cef_tuple.h', 'include/base/cef_tuple.h',
@@ -53,7 +55,6 @@
'include/internal/cef_time.h', 'include/internal/cef_time.h',
'include/internal/cef_trace_event_internal.h', 'include/internal/cef_trace_event_internal.h',
'include/internal/cef_types.h', 'include/internal/cef_types.h',
'include/internal/cef_types_content_settings.h',
'include/internal/cef_types_geometry.h', 'include/internal/cef_types_geometry.h',
], ],
'includes_capi': [ 'includes_capi': [
@@ -147,8 +148,6 @@
'libcef_dll/wrapper/cef_byte_read_handler.cc', 'libcef_dll/wrapper/cef_byte_read_handler.cc',
'libcef_dll/wrapper/cef_closure_task.cc', 'libcef_dll/wrapper/cef_closure_task.cc',
'libcef_dll/wrapper/cef_message_router.cc', 'libcef_dll/wrapper/cef_message_router.cc',
'libcef_dll/wrapper/cef_message_router_utils.cc',
'libcef_dll/wrapper/cef_message_router_utils.h',
'libcef_dll/wrapper/cef_resource_manager.cc', 'libcef_dll/wrapper/cef_resource_manager.cc',
'libcef_dll/wrapper/cef_scoped_temp_dir.cc', 'libcef_dll/wrapper/cef_scoped_temp_dir.cc',
'libcef_dll/wrapper/cef_stream_resource_handler.cc', 'libcef_dll/wrapper/cef_stream_resource_handler.cc',
@@ -220,8 +219,6 @@
'tests/shared/browser/util_win.h', 'tests/shared/browser/util_win.h',
], ],
'cefclient_sources_browser': [ 'cefclient_sources_browser': [
'tests/cefclient/browser/binary_transfer_test.cc',
'tests/cefclient/browser/binary_transfer_test.h',
'tests/cefclient/browser/binding_test.cc', 'tests/cefclient/browser/binding_test.cc',
'tests/cefclient/browser/binding_test.h', 'tests/cefclient/browser/binding_test.h',
'tests/cefclient/browser/browser_window.cc', 'tests/cefclient/browser/browser_window.cc',
@@ -240,8 +237,6 @@
'tests/cefclient/browser/client_prefs.cc', 'tests/cefclient/browser/client_prefs.cc',
'tests/cefclient/browser/client_prefs.h', 'tests/cefclient/browser/client_prefs.h',
'tests/cefclient/browser/client_types.h', 'tests/cefclient/browser/client_types.h',
'tests/cefclient/browser/default_client_handler.cc',
'tests/cefclient/browser/default_client_handler.h',
'tests/cefclient/browser/dialog_test.cc', 'tests/cefclient/browser/dialog_test.cc',
'tests/cefclient/browser/dialog_test.h', 'tests/cefclient/browser/dialog_test.h',
'tests/cefclient/browser/image_cache.cc', 'tests/cefclient/browser/image_cache.cc',
@@ -313,7 +308,6 @@
'tests/cefclient/resources/dialogs.html', 'tests/cefclient/resources/dialogs.html',
'tests/cefclient/resources/draggable.html', 'tests/cefclient/resources/draggable.html',
'tests/cefclient/resources/ipc_performance.html', 'tests/cefclient/resources/ipc_performance.html',
'tests/cefclient/resources/binary_transfer.html',
'tests/cefclient/resources/localstorage.html', 'tests/cefclient/resources/localstorage.html',
'tests/cefclient/resources/logo.png', 'tests/cefclient/resources/logo.png',
'tests/cefclient/resources/media_router.html', 'tests/cefclient/resources/media_router.html',
@@ -397,7 +391,6 @@
'tests/cefclient/browser/temp_window_mac.mm', 'tests/cefclient/browser/temp_window_mac.mm',
'tests/cefclient/browser/text_input_client_osr_mac.h', 'tests/cefclient/browser/text_input_client_osr_mac.h',
'tests/cefclient/browser/text_input_client_osr_mac.mm', 'tests/cefclient/browser/text_input_client_osr_mac.mm',
'tests/cefclient/browser/views_window_mac.mm',
'tests/cefclient/browser/window_test_runner_mac.h', 'tests/cefclient/browser/window_test_runner_mac.h',
'tests/cefclient/browser/window_test_runner_mac.mm', 'tests/cefclient/browser/window_test_runner_mac.mm',
'tests/cefclient/cefclient_mac.mm', 'tests/cefclient/cefclient_mac.mm',
@@ -501,7 +494,6 @@
'tests/ceftests/jsdialog_unittest.cc', 'tests/ceftests/jsdialog_unittest.cc',
'tests/ceftests/life_span_unittest.cc', 'tests/ceftests/life_span_unittest.cc',
'tests/ceftests/media_access_unittest.cc', 'tests/ceftests/media_access_unittest.cc',
'tests/ceftests/message_router_binary_unittest.cc',
'tests/ceftests/message_router_harness_unittest.cc', 'tests/ceftests/message_router_harness_unittest.cc',
'tests/ceftests/message_router_multi_query_unittest.cc', 'tests/ceftests/message_router_multi_query_unittest.cc',
'tests/ceftests/message_router_single_query_unittest.cc', 'tests/ceftests/message_router_single_query_unittest.cc',
@@ -609,7 +601,6 @@
'tests/ceftests/dom_unittest.cc', 'tests/ceftests/dom_unittest.cc',
'tests/ceftests/frame_unittest.cc', 'tests/ceftests/frame_unittest.cc',
'tests/ceftests/media_access_unittest.cc', 'tests/ceftests/media_access_unittest.cc',
'tests/ceftests/message_router_binary_unittest.cc',
'tests/ceftests/message_router_harness_unittest.cc', 'tests/ceftests/message_router_harness_unittest.cc',
'tests/ceftests/message_router_multi_query_unittest.cc', 'tests/ceftests/message_router_multi_query_unittest.cc',
'tests/ceftests/message_router_single_query_unittest.cc', 'tests/ceftests/message_router_single_query_unittest.cc',

View File

@@ -310,7 +310,7 @@ if(OS_MAC)
# Find the newest available base SDK. # Find the newest available base SDK.
execute_process(COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
foreach(OS_VERSION 14.2 14.0 10.15) foreach(OS_VERSION 10.15 10.14 10.13)
set(SDK "${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OS_VERSION}.sdk") set(SDK "${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OS_VERSION}.sdk")
if(NOT "${CMAKE_OSX_SYSROOT}" AND EXISTS "${SDK}" AND IS_DIRECTORY "${SDK}") if(NOT "${CMAKE_OSX_SYSROOT}" AND EXISTS "${SDK}" AND IS_DIRECTORY "${SDK}")
set(CMAKE_OSX_SYSROOT ${SDK}) set(CMAKE_OSX_SYSROOT ${SDK})
@@ -318,7 +318,7 @@ if(OS_MAC)
endforeach() endforeach()
# Target SDK. # Target SDK.
set(CEF_TARGET_SDK "10.15") set(CEF_TARGET_SDK "10.13")
list(APPEND CEF_COMPILER_FLAGS list(APPEND CEF_COMPILER_FLAGS
-mmacosx-version-min=${CEF_TARGET_SDK} -mmacosx-version-min=${CEF_TARGET_SDK}
) )
@@ -346,10 +346,6 @@ if(OS_MAC)
CEF_USE_SANDBOX # Used by apps to test if the sandbox is enabled CEF_USE_SANDBOX # Used by apps to test if the sandbox is enabled
) )
list(APPEND CEF_STANDARD_LIBS
-lsandbox
)
# CEF sandbox library paths. # CEF sandbox library paths.
set(CEF_SANDBOX_LIB_DEBUG "${CEF_BINARY_DIR_DEBUG}/cef_sandbox.a") set(CEF_SANDBOX_LIB_DEBUG "${CEF_BINARY_DIR_DEBUG}/cef_sandbox.a")
set(CEF_SANDBOX_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/cef_sandbox.a") set(CEF_SANDBOX_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/cef_sandbox.a")
@@ -359,7 +355,6 @@ if(OS_MAC)
# Format is "<name suffix>:<target suffix>:<plist suffix>". # Format is "<name suffix>:<target suffix>:<plist suffix>".
set(CEF_HELPER_APP_SUFFIXES set(CEF_HELPER_APP_SUFFIXES
"::" "::"
" (Alerts):_alerts:.alerts"
" (GPU):_gpu:.gpu" " (GPU):_gpu:.gpu"
" (Plugin):_plugin:.plugin" " (Plugin):_plugin:.plugin"
" (Renderer):_renderer:.renderer" " (Renderer):_renderer:.renderer"
@@ -436,66 +431,11 @@ if(OS_WINDOWS)
list(APPEND CEF_EXE_LINKER_FLAGS list(APPEND CEF_EXE_LINKER_FLAGS
/MANIFEST:NO # No default manifest (see ADD_WINDOWS_MANIFEST macro usage) /MANIFEST:NO # No default manifest (see ADD_WINDOWS_MANIFEST macro usage)
/LARGEADDRESSAWARE # Allow 32-bit processes to access 3GB of RAM /LARGEADDRESSAWARE # Allow 32-bit processes to access 3GB of RAM
# Delayload most libraries as the dlls are simply not required at startup (or
# at all, depending on the process type). Some dlls open handles when they are
# loaded, and we may not want them to be loaded in renderers or other sandboxed
# processes. Conversely, some dlls must be loaded before sandbox lockdown. In
# unsandboxed processes they will load when first needed. The linker will
# automatically ignore anything which is not linked to the binary at all (it is
# harmless to have an unmatched /delayload). This list should be kept in sync
# with Chromium's "delayloads" target from the //build/config/win/BUILD.gn file.
/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll
/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll
/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll
/DELAYLOAD:advapi32.dll
/DELAYLOAD:comctl32.dll
/DELAYLOAD:comdlg32.dll
/DELAYLOAD:credui.dll
/DELAYLOAD:cryptui.dll
/DELAYLOAD:d3d11.dll
/DELAYLOAD:d3d9.dll
/DELAYLOAD:dwmapi.dll
/DELAYLOAD:dxgi.dll
/DELAYLOAD:dxva2.dll
/DELAYLOAD:esent.dll
/DELAYLOAD:gdi32.dll
/DELAYLOAD:hid.dll
/DELAYLOAD:imagehlp.dll
/DELAYLOAD:imm32.dll
/DELAYLOAD:msi.dll
/DELAYLOAD:netapi32.dll
/DELAYLOAD:ncrypt.dll
/DELAYLOAD:ole32.dll
/DELAYLOAD:oleacc.dll
/DELAYLOAD:propsys.dll
/DELAYLOAD:psapi.dll
/DELAYLOAD:rpcrt4.dll
/DELAYLOAD:rstrtmgr.dll
/DELAYLOAD:setupapi.dll
/DELAYLOAD:shell32.dll
/DELAYLOAD:shlwapi.dll
/DELAYLOAD:uiautomationcore.dll
/DELAYLOAD:urlmon.dll
/DELAYLOAD:user32.dll
/DELAYLOAD:usp10.dll
/DELAYLOAD:uxtheme.dll
/DELAYLOAD:wer.dll
/DELAYLOAD:wevtapi.dll
/DELAYLOAD:wininet.dll
/DELAYLOAD:winusb.dll
/DELAYLOAD:wsock32.dll
/DELAYLOAD:wtsapi32.dll
) )
list(APPEND CEF_COMPILER_DEFINES list(APPEND CEF_COMPILER_DEFINES
WIN32 _WIN32 _WINDOWS # Windows platform WIN32 _WIN32 _WINDOWS # Windows platform
UNICODE _UNICODE # Unicode build UNICODE _UNICODE # Unicode build
# Targeting Windows 10. We can't say `=_WIN32_WINNT_WIN10` here because WINVER=0x0601 _WIN32_WINNT=0x601 # Targeting Windows 7
# some files do `#if WINVER < 0x0600` without including windows.h before,
# and then _WIN32_WINNT_WIN10 isn't yet known to be 0x0A00.
WINVER=0x0A00
_WIN32_WINNT=0x0A00
NTDDI_VERSION=NTDDI_WIN10_FE
NOMINMAX # Use the standard's templated min/max NOMINMAX # Use the standard's templated min/max
WIN32_LEAN_AND_MEAN # Exclude less common API declarations WIN32_LEAN_AND_MEAN # Exclude less common API declarations
_HAS_EXCEPTIONS=0 # Disable exceptions _HAS_EXCEPTIONS=0 # Disable exceptions
@@ -512,7 +452,7 @@ if(OS_WINDOWS)
# only) uses fibers to switch to a 4MiB stack at runtime via # only) uses fibers to switch to a 4MiB stack at runtime via
# CefRunWinMainWithPreferredStackSize(). # CefRunWinMainWithPreferredStackSize().
list(APPEND CEF_EXE_LINKER_FLAGS list(APPEND CEF_EXE_LINKER_FLAGS
/STACK:0x80000 /STACK:0x8000
) )
else() else()
# Increase the initial stack size to 8MiB from the default 1MiB. # Increase the initial stack size to 8MiB from the default 1MiB.
@@ -543,7 +483,6 @@ if(OS_WINDOWS)
# List of CEF binary files. # List of CEF binary files.
set(CEF_BINARY_FILES set(CEF_BINARY_FILES
chrome_elf.dll chrome_elf.dll
d3dcompiler_47.dll
libcef.dll libcef.dll
libEGL.dll libEGL.dll
libGLESv2.dll libGLESv2.dll
@@ -554,10 +493,9 @@ if(OS_WINDOWS)
vulkan-1.dll vulkan-1.dll
) )
if(PROJECT_ARCH STREQUAL "x86_64") if(NOT PROJECT_ARCH STREQUAL "arm64")
list(APPEND CEF_BINARY_FILES list(APPEND CEF_BINARY_FILES
dxil.dll d3dcompiler_47.dll
dxcompiler.dll
) )
endif() endif()
@@ -584,18 +522,14 @@ if(OS_WINDOWS)
Advapi32.lib Advapi32.lib
dbghelp.lib dbghelp.lib
Delayimp.lib Delayimp.lib
ntdll.lib
OleAut32.lib OleAut32.lib
PowrProf.lib PowrProf.lib
Propsys.lib Propsys.lib
psapi.lib psapi.lib
SetupAPI.lib SetupAPI.lib
Shell32.lib Shell32.lib
Shcore.lib
Userenv.lib
version.lib version.lib
wbemuuid.lib wbemuuid.lib
WindowsApp.lib
winmm.lib winmm.lib
) )

View File

@@ -73,9 +73,8 @@ class AutoReset {
} }
~AutoReset() { ~AutoReset() {
if (scoped_variable_) { if (scoped_variable_)
*scoped_variable_ = std::move(original_value_); *scoped_variable_ = std::move(original_value_);
}
} }
private: private:

View File

@@ -0,0 +1,86 @@
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_BASICTYPES_H_
#define CEF_INCLUDE_BASE_CEF_BASICTYPES_H_
#pragma once
#include <limits.h> // For UINT_MAX
#include <stddef.h> // For size_t
#include "include/base/cef_build.h"
// The NSPR system headers define 64-bit as |long| when possible, except on
// Mac OS X. In order to not have typedef mismatches, we do the same on LP64.
//
// On Mac OS X, |long long| is used for 64-bit types for compatibility with
// <inttypes.h> format macros even in the LP64 model.
#if defined(__LP64__) && !defined(OS_MAC) && !defined(OS_OPENBSD)
typedef long int64;
typedef unsigned long uint64;
#else
typedef long long int64;
typedef unsigned long long uint64;
#endif
// TODO: Remove these type guards. These are to avoid conflicts with
// obsolete/protypes.h in the Gecko SDK.
#ifndef _INT32
#define _INT32
typedef int int32;
#endif
// TODO: Remove these type guards. These are to avoid conflicts with
// obsolete/protypes.h in the Gecko SDK.
#ifndef _UINT32
#define _UINT32
typedef unsigned int uint32;
#endif
#ifndef _INT16
#define _INT16
typedef short int16;
#endif
#ifndef _UINT16
#define _UINT16
typedef unsigned short uint16;
#endif
// UTF-16 character type.
#ifndef char16
#if defined(WCHAR_T_IS_UTF16)
typedef wchar_t char16;
#elif defined(WCHAR_T_IS_UTF32)
typedef unsigned short char16;
#endif
#endif
#endif // CEF_INCLUDE_BASE_CEF_BASICTYPES_H_

View File

@@ -71,7 +71,7 @@
#if defined(USING_CHROMIUM_INCLUDES) #if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/functional/bind.h" #include "base/bind.h"
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
@@ -84,6 +84,7 @@
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/base/cef_compiler_specific.h" #include "include/base/cef_compiler_specific.h"
#include "include/base/cef_template_util.h"
#include "include/base/internal/cef_bind_internal.h" #include "include/base/internal/cef_bind_internal.h"
#if defined(OS_APPLE) && !HAS_FEATURE(objc_arc) #if defined(OS_APPLE) && !HAS_FEATURE(objc_arc)
@@ -96,34 +97,35 @@ namespace base {
/// Bind as OnceCallback. /// Bind as OnceCallback.
/// ///
template <typename Functor, typename... Args> template <typename Functor, typename... Args>
inline OnceCallback<cef_internal::MakeUnboundRunType<Functor, Args...>> inline OnceCallback<internal::MakeUnboundRunType<Functor, Args...>> BindOnce(
BindOnce(Functor&& functor, Args&&... args) { Functor&& functor,
static_assert(!cef_internal::IsOnceCallback<std::decay_t<Functor>>() || Args&&... args) {
static_assert(!internal::IsOnceCallback<std::decay_t<Functor>>() ||
(std::is_rvalue_reference<Functor&&>() && (std::is_rvalue_reference<Functor&&>() &&
!std::is_const<std::remove_reference_t<Functor>>()), !std::is_const<std::remove_reference_t<Functor>>()),
"BindOnce requires non-const rvalue for OnceCallback binding." "BindOnce requires non-const rvalue for OnceCallback binding."
" I.e.: base::BindOnce(std::move(callback))."); " I.e.: base::BindOnce(std::move(callback)).");
static_assert( static_assert(
std::conjunction<cef_internal::AssertBindArgIsNotBasePassed< conjunction<
std::decay_t<Args>>...>::value, internal::AssertBindArgIsNotBasePassed<std::decay_t<Args>>...>::value,
"Use std::move() instead of base::Passed() with base::BindOnce()"); "Use std::move() instead of base::Passed() with base::BindOnce()");
return cef_internal::BindImpl<OnceCallback>(std::forward<Functor>(functor), return internal::BindImpl<OnceCallback>(std::forward<Functor>(functor),
std::forward<Args>(args)...); std::forward<Args>(args)...);
} }
/// ///
/// Bind as RepeatingCallback. /// Bind as RepeatingCallback.
/// ///
template <typename Functor, typename... Args> template <typename Functor, typename... Args>
inline RepeatingCallback<cef_internal::MakeUnboundRunType<Functor, Args...>> inline RepeatingCallback<internal::MakeUnboundRunType<Functor, Args...>>
BindRepeating(Functor&& functor, Args&&... args) { BindRepeating(Functor&& functor, Args&&... args) {
static_assert( static_assert(
!cef_internal::IsOnceCallback<std::decay_t<Functor>>(), !internal::IsOnceCallback<std::decay_t<Functor>>(),
"BindRepeating cannot bind OnceCallback. Use BindOnce with std::move()."); "BindRepeating cannot bind OnceCallback. Use BindOnce with std::move().");
return cef_internal::BindImpl<RepeatingCallback>( return internal::BindImpl<RepeatingCallback>(std::forward<Functor>(functor),
std::forward<Functor>(functor), std::forward<Args>(args)...); std::forward<Args>(args)...);
} }
/// ///
@@ -173,8 +175,8 @@ RepeatingCallback<Signature> BindRepeating(
/// to compile because Foo does not support the AddRef() and Release() methods. /// to compile because Foo does not support the AddRef() and Release() methods.
/// ///
template <typename T> template <typename T>
inline cef_internal::UnretainedWrapper<T> Unretained(T* o) { inline internal::UnretainedWrapper<T> Unretained(T* o) {
return cef_internal::UnretainedWrapper<T>(o); return internal::UnretainedWrapper<T>(o);
} }
/// ///
@@ -199,12 +201,12 @@ inline cef_internal::UnretainedWrapper<T> Unretained(T* o) {
/// </pre> /// </pre>
/// ///
template <typename T> template <typename T>
inline cef_internal::RetainedRefWrapper<T> RetainedRef(T* o) { inline internal::RetainedRefWrapper<T> RetainedRef(T* o) {
return cef_internal::RetainedRefWrapper<T>(o); return internal::RetainedRefWrapper<T>(o);
} }
template <typename T> template <typename T>
inline cef_internal::RetainedRefWrapper<T> RetainedRef(scoped_refptr<T> o) { inline internal::RetainedRefWrapper<T> RetainedRef(scoped_refptr<T> o) {
return cef_internal::RetainedRefWrapper<T>(std::move(o)); return internal::RetainedRefWrapper<T>(std::move(o));
} }
/// ///
@@ -232,14 +234,14 @@ inline cef_internal::RetainedRefWrapper<T> RetainedRef(scoped_refptr<T> o) {
/// reference to the callback is deleted. /// reference to the callback is deleted.
/// ///
template <typename T> template <typename T>
inline cef_internal::OwnedWrapper<T> Owned(T* o) { inline internal::OwnedWrapper<T> Owned(T* o) {
return cef_internal::OwnedWrapper<T>(o); return internal::OwnedWrapper<T>(o);
} }
template <typename T, typename Deleter> template <typename T, typename Deleter>
inline cef_internal::OwnedWrapper<T, Deleter> Owned( inline internal::OwnedWrapper<T, Deleter> Owned(
std::unique_ptr<T, Deleter>&& ptr) { std::unique_ptr<T, Deleter>&& ptr) {
return cef_internal::OwnedWrapper<T, Deleter>(std::move(ptr)); return internal::OwnedWrapper<T, Deleter>(std::move(ptr));
} }
/// ///
@@ -275,8 +277,8 @@ inline cef_internal::OwnedWrapper<T, Deleter> Owned(
/// an object owned by the callback. /// an object owned by the callback.
/// ///
template <typename T> template <typename T>
cef_internal::OwnedRefWrapper<std::decay_t<T>> OwnedRef(T&& t) { internal::OwnedRefWrapper<std::decay_t<T>> OwnedRef(T&& t) {
return cef_internal::OwnedRefWrapper<std::decay_t<T>>(std::forward<T>(t)); return internal::OwnedRefWrapper<std::decay_t<T>>(std::forward<T>(t));
} }
/// ///
@@ -327,12 +329,12 @@ cef_internal::OwnedRefWrapper<std::decay_t<T>> OwnedRef(T&& t) {
/// ///
template <typename T, template <typename T,
std::enable_if_t<!std::is_lvalue_reference<T>::value>* = nullptr> std::enable_if_t<!std::is_lvalue_reference<T>::value>* = nullptr>
inline cef_internal::PassedWrapper<T> Passed(T&& scoper) { inline internal::PassedWrapper<T> Passed(T&& scoper) {
return cef_internal::PassedWrapper<T>(std::move(scoper)); return internal::PassedWrapper<T>(std::move(scoper));
} }
template <typename T> template <typename T>
inline cef_internal::PassedWrapper<T> Passed(T* scoper) { inline internal::PassedWrapper<T> Passed(T* scoper) {
return cef_internal::PassedWrapper<T>(std::move(*scoper)); return internal::PassedWrapper<T>(std::move(*scoper));
} }
/// ///
@@ -355,8 +357,8 @@ inline cef_internal::PassedWrapper<T> Passed(T* scoper) {
/// </pre> /// </pre>
/// ///
template <typename T> template <typename T>
inline cef_internal::IgnoreResultHelper<T> IgnoreResult(T data) { inline internal::IgnoreResultHelper<T> IgnoreResult(T data) {
return cef_internal::IgnoreResultHelper<T>(std::move(data)); return internal::IgnoreResultHelper<T>(std::move(data));
} }
#if defined(OS_APPLE) && !HAS_FEATURE(objc_arc) #if defined(OS_APPLE) && !HAS_FEATURE(objc_arc)

View File

@@ -232,19 +232,19 @@
// Type detection for wchar_t. // Type detection for wchar_t.
#if defined(OS_WIN) #if defined(OS_WIN)
#define WCHAR_T_IS_16_BIT #define WCHAR_T_IS_UTF16
#elif defined(OS_FUCHSIA) #elif defined(OS_FUCHSIA)
#define WCHAR_T_IS_32_BIT #define WCHAR_T_IS_UTF32
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \ #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff) (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
#define WCHAR_T_IS_32_BIT #define WCHAR_T_IS_UTF32
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \ #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff) (__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
// On Posix, we'll detect short wchar_t, but projects aren't guaranteed to // On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
// compile in this mode (in particular, Chrome doesn't). This is intended for // compile in this mode (in particular, Chrome doesn't). This is intended for
// other projects using base who manage their own dependencies and make sure // other projects using base who manage their own dependencies and make sure
// short wchar works for them. // short wchar works for them.
#define WCHAR_T_IS_16_BIT #define WCHAR_T_IS_UTF16
#else #else
#error Please add support for your compiler in include/base/cef_build.h #error Please add support for your compiler in include/base/cef_build.h
#endif #endif
@@ -253,7 +253,7 @@
// The compiler thinks std::string::const_iterator and "const char*" are // The compiler thinks std::string::const_iterator and "const char*" are
// equivalent types. // equivalent types.
#define STD_STRING_ITERATOR_IS_CHAR_POINTER #define STD_STRING_ITERATOR_IS_CHAR_POINTER
// The compiler thinks std::u16string::const_iterator and "char16_t*" are // The compiler thinks std::u16string::const_iterator and "char16*" are
// equivalent types. // equivalent types.
#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER #define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
#endif #endif

View File

@@ -67,7 +67,7 @@
#if defined(USING_CHROMIUM_INCLUDES) #if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/functional/callback.h" #include "base/callback.h"
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
@@ -83,18 +83,18 @@
namespace base { namespace base {
template <typename R, typename... Args> template <typename R, typename... Args>
class OnceCallback<R(Args...)> : public cef_internal::CallbackBase { class OnceCallback<R(Args...)> : public internal::CallbackBase {
public: public:
using ResultType = R; using ResultType = R;
using RunType = R(Args...); using RunType = R(Args...);
using PolymorphicInvoke = R (*)(cef_internal::BindStateBase*, using PolymorphicInvoke = R (*)(internal::BindStateBase*,
cef_internal::PassingType<Args>...); internal::PassingType<Args>...);
constexpr OnceCallback() = default; constexpr OnceCallback() = default;
OnceCallback(std::nullptr_t) = delete; OnceCallback(std::nullptr_t) = delete;
explicit OnceCallback(cef_internal::BindStateBase* bind_state) explicit OnceCallback(internal::BindStateBase* bind_state)
: cef_internal::CallbackBase(bind_state) {} : internal::CallbackBase(bind_state) {}
OnceCallback(const OnceCallback&) = delete; OnceCallback(const OnceCallback&) = delete;
OnceCallback& operator=(const OnceCallback&) = delete; OnceCallback& operator=(const OnceCallback&) = delete;
@@ -103,10 +103,10 @@ class OnceCallback<R(Args...)> : public cef_internal::CallbackBase {
OnceCallback& operator=(OnceCallback&&) noexcept = default; OnceCallback& operator=(OnceCallback&&) noexcept = default;
OnceCallback(RepeatingCallback<RunType> other) OnceCallback(RepeatingCallback<RunType> other)
: cef_internal::CallbackBase(std::move(other)) {} : internal::CallbackBase(std::move(other)) {}
OnceCallback& operator=(RepeatingCallback<RunType> other) { OnceCallback& operator=(RepeatingCallback<RunType> other) {
static_cast<cef_internal::CallbackBase&>(*this) = std::move(other); static_cast<internal::CallbackBase&>(*this) = std::move(other);
return *this; return *this;
} }
@@ -142,7 +142,7 @@ class OnceCallback<R(Args...)> : public cef_internal::CallbackBase {
OnceCallback<ThenR(Args...)> Then(OnceCallback<ThenR(ThenArgs...)> then) && { OnceCallback<ThenR(Args...)> Then(OnceCallback<ThenR(ThenArgs...)> then) && {
CHECK(then); CHECK(then);
return BindOnce( return BindOnce(
cef_internal::ThenHelper< internal::ThenHelper<
OnceCallback, OnceCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), OnceCallback, OnceCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
std::move(*this), std::move(then)); std::move(*this), std::move(then));
} }
@@ -155,7 +155,7 @@ class OnceCallback<R(Args...)> : public cef_internal::CallbackBase {
RepeatingCallback<ThenR(ThenArgs...)> then) && { RepeatingCallback<ThenR(ThenArgs...)> then) && {
CHECK(then); CHECK(then);
return BindOnce( return BindOnce(
cef_internal::ThenHelper< internal::ThenHelper<
OnceCallback, OnceCallback,
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
std::move(*this), std::move(then)); std::move(*this), std::move(then));
@@ -163,19 +163,18 @@ class OnceCallback<R(Args...)> : public cef_internal::CallbackBase {
}; };
template <typename R, typename... Args> template <typename R, typename... Args>
class RepeatingCallback<R(Args...)> class RepeatingCallback<R(Args...)> : public internal::CallbackBaseCopyable {
: public cef_internal::CallbackBaseCopyable {
public: public:
using ResultType = R; using ResultType = R;
using RunType = R(Args...); using RunType = R(Args...);
using PolymorphicInvoke = R (*)(cef_internal::BindStateBase*, using PolymorphicInvoke = R (*)(internal::BindStateBase*,
cef_internal::PassingType<Args>...); internal::PassingType<Args>...);
constexpr RepeatingCallback() = default; constexpr RepeatingCallback() = default;
RepeatingCallback(std::nullptr_t) = delete; RepeatingCallback(std::nullptr_t) = delete;
explicit RepeatingCallback(cef_internal::BindStateBase* bind_state) explicit RepeatingCallback(internal::BindStateBase* bind_state)
: cef_internal::CallbackBaseCopyable(bind_state) {} : internal::CallbackBaseCopyable(bind_state) {}
// Copyable and movable. // Copyable and movable.
RepeatingCallback(const RepeatingCallback&) = default; RepeatingCallback(const RepeatingCallback&) = default;
@@ -225,7 +224,7 @@ class RepeatingCallback<R(Args...)>
RepeatingCallback<ThenR(ThenArgs...)> then) const& { RepeatingCallback<ThenR(ThenArgs...)> then) const& {
CHECK(then); CHECK(then);
return BindRepeating( return BindRepeating(
cef_internal::ThenHelper< internal::ThenHelper<
RepeatingCallback, RepeatingCallback,
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
*this, std::move(then)); *this, std::move(then));
@@ -236,7 +235,7 @@ class RepeatingCallback<R(Args...)>
RepeatingCallback<ThenR(ThenArgs...)> then) && { RepeatingCallback<ThenR(ThenArgs...)> then) && {
CHECK(then); CHECK(then);
return BindRepeating( return BindRepeating(
cef_internal::ThenHelper< internal::ThenHelper<
RepeatingCallback, RepeatingCallback,
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(), RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
std::move(*this), std::move(then)); std::move(*this), std::move(then));

View File

@@ -34,7 +34,7 @@
#if defined(USING_CHROMIUM_INCLUDES) #if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/functional/callback_forward.h" #include "base/callback_forward.h"
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be

View File

@@ -39,7 +39,7 @@
#if defined(USING_CHROMIUM_INCLUDES) #if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/functional/callback_helpers.h" #include "base/callback_helpers.h"
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be

View File

@@ -86,7 +86,7 @@
#if defined(USING_CHROMIUM_INCLUDES) #if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/functional/callback_list.h" #include "base/callback_list.h"
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
@@ -242,9 +242,8 @@ class CallbackListBase {
// the reentrant Notify() call. // the reentrant Notify() call.
template <typename... RunArgs> template <typename... RunArgs>
void Notify(RunArgs&&... args) { void Notify(RunArgs&&... args) {
if (empty()) { if (empty())
return; // Nothing to do. return; // Nothing to do.
}
{ {
AutoReset<bool> iterating(&iterating_, true); AutoReset<bool> iterating(&iterating_, true);
@@ -258,20 +257,18 @@ class CallbackListBase {
}); });
}; };
for (auto it = next_valid(callbacks_.begin()); it != callbacks_.end(); for (auto it = next_valid(callbacks_.begin()); it != callbacks_.end();
it = next_valid(it)) { it = next_valid(it))
// NOTE: Intentionally does not call std::forward<RunArgs>(args)..., // NOTE: Intentionally does not call std::forward<RunArgs>(args)...,
// since that would allow move-only arguments. // since that would allow move-only arguments.
static_cast<CallbackListImpl*>(this)->RunCallback(it++, args...); static_cast<CallbackListImpl*>(this)->RunCallback(it++, args...);
}
} }
// Re-entrant invocations shouldn't prune anything from the list. This can // Re-entrant invocations shouldn't prune anything from the list. This can
// invalidate iterators from underneath higher call frames. It's safe to // invalidate iterators from underneath higher call frames. It's safe to
// simply do nothing, since the outermost frame will continue through here // simply do nothing, since the outermost frame will continue through here
// and prune all null callbacks below. // and prune all null callbacks below.
if (iterating_) { if (iterating_)
return; return;
}
// Any null callbacks remaining in the list were canceled due to // Any null callbacks remaining in the list were canceled due to
// Subscription destruction during iteration, and can safely be erased now. // Subscription destruction during iteration, and can safely be erased now.
@@ -285,9 +282,8 @@ class CallbackListBase {
// that were executed above have all been removed regardless of whether // that were executed above have all been removed regardless of whether
// they're counted in |erased_callbacks_|. // they're counted in |erased_callbacks_|.
if (removal_callback_ && if (removal_callback_ &&
(erased_callbacks || IsOnceCallback<CallbackType>::value)) { (erased_callbacks || IsOnceCallback<CallbackType>::value))
removal_callback_.Run(); // May delete |this|! removal_callback_.Run(); // May delete |this|!
}
} }
protected: protected:
@@ -299,9 +295,8 @@ class CallbackListBase {
private: private:
// Cancels the callback pointed to by |it|, which is guaranteed to be valid. // Cancels the callback pointed to by |it|, which is guaranteed to be valid.
void CancelCallback(const typename Callbacks::iterator& it) { void CancelCallback(const typename Callbacks::iterator& it) {
if (static_cast<CallbackListImpl*>(this)->CancelNullCallback(it)) { if (static_cast<CallbackListImpl*>(this)->CancelNullCallback(it))
return; return;
}
if (iterating_) { if (iterating_) {
// Calling erase() here is unsafe, since the loop in Notify() may be // Calling erase() here is unsafe, since the loop in Notify() may be
@@ -311,9 +306,8 @@ class CallbackListBase {
it->Reset(); it->Reset();
} else { } else {
callbacks_.erase(it); callbacks_.erase(it);
if (removal_callback_) { if (removal_callback_)
removal_callback_.Run(); // May delete |this|! removal_callback_.Run(); // May delete |this|!
}
} }
} }

View File

@@ -133,9 +133,8 @@ class CancelableCallbackImpl {
// Returns a callback that can be disabled by calling Cancel(). // Returns a callback that can be disabled by calling Cancel().
CallbackType callback() const { CallbackType callback() const {
if (!callback_) { if (!callback_)
return CallbackType(); return CallbackType();
}
CallbackType forwarder; CallbackType forwarder;
MakeForwarder(&forwarder); MakeForwarder(&forwarder);
return forwarder; return forwarder;

View File

@@ -251,6 +251,13 @@
#define HAS_FEATURE(FEATURE) 0 #define HAS_FEATURE(FEATURE) 0
#endif #endif
// Macro for telling -Wimplicit-fallthrough that a fallthrough is intentional.
#if defined(__clang__)
#define FALLTHROUGH [[clang::fallthrough]]
#else
#define FALLTHROUGH
#endif
#if defined(COMPILER_GCC) #if defined(COMPILER_GCC)
#define PRETTY_FUNCTION __PRETTY_FUNCTION__ #define PRETTY_FUNCTION __PRETTY_FUNCTION__
#elif defined(COMPILER_MSVC) #elif defined(COMPILER_MSVC)

View File

@@ -723,13 +723,6 @@ std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) { inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
return out << wstr.c_str(); return out << wstr.c_str();
} }
#if defined(WCHAR_T_IS_32_BIT)
std::ostream& operator<<(std::ostream& out, const char16_t* wstr);
#elif defined(WCHAR_T_IS_16_BIT)
inline std::ostream& operator<<(std::ostream& out, const char16_t* wstr) {
return operator<<(out, reinterpret_cast<const wchar_t*>(wstr));
}
#endif
// The NOTIMPLEMENTED() macro annotates codepaths which have // The NOTIMPLEMENTED() macro annotates codepaths which have
// not been implemented yet. // not been implemented yet.

View File

@@ -43,6 +43,7 @@
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
// updated to match. // updated to match.
#include "include/base/cef_basictypes.h"
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/internal/cef_thread_internal.h" #include "include/internal/cef_thread_internal.h"

View File

@@ -50,6 +50,7 @@
#include "include/base/cef_compiler_specific.h" #include "include/base/cef_compiler_specific.h"
#include "include/base/cef_logging.h" #include "include/base/cef_logging.h"
#include "include/base/cef_scoped_refptr.h" #include "include/base/cef_scoped_refptr.h"
#include "include/base/cef_template_util.h"
#include "include/base/cef_thread_checker.h" #include "include/base/cef_thread_checker.h"
namespace base { namespace base {
@@ -104,16 +105,13 @@ class RefCountedBase {
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
DCHECK(!in_dtor_); DCHECK(!in_dtor_);
if (ref_count_ == 0) { if (ref_count_ == 0)
in_dtor_ = true; in_dtor_ = true;
}
if (ref_count_ >= 1) { if (ref_count_ >= 1)
DCHECK(CalledOnValidThread()); DCHECK(CalledOnValidThread());
} if (ref_count_ == 1)
if (ref_count_ == 1) {
thread_checker_.DetachFromThread(); thread_checker_.DetachFromThread();
}
#endif #endif
return ref_count_ == 0; return ref_count_ == 0;
@@ -484,7 +482,7 @@ class RefCountedData
RefCountedData(const T& in_value) : data(in_value) {} RefCountedData(const T& in_value) : data(in_value) {}
RefCountedData(T&& in_value) : data(std::move(in_value)) {} RefCountedData(T&& in_value) : data(std::move(in_value)) {}
template <typename... Args> template <typename... Args>
explicit RefCountedData(std::in_place_t, Args&&... args) explicit RefCountedData(in_place_t, Args&&... args)
: data(std::forward<Args>(args)...) {} : data(std::forward<Args>(args)...) {}
T data; T data;

View File

@@ -229,9 +229,8 @@ class TRIVIAL_ABI scoped_refptr {
// should move or copy construct from an existing scoped_refptr<T> to the // should move or copy construct from an existing scoped_refptr<T> to the
// ref-counted object. // ref-counted object.
scoped_refptr(T* p) : ptr_(p) { scoped_refptr(T* p) : ptr_(p) {
if (ptr_) { if (ptr_)
AddRef(ptr_); AddRef(ptr_);
}
} }
// Copy constructor. This is required in addition to the copy conversion // Copy constructor. This is required in addition to the copy conversion
@@ -262,9 +261,8 @@ class TRIVIAL_ABI scoped_refptr {
"It's unsafe to override the ref count preference." "It's unsafe to override the ref count preference."
" Please remove REQUIRE_ADOPTION_FOR_REFCOUNTED_TYPE" " Please remove REQUIRE_ADOPTION_FOR_REFCOUNTED_TYPE"
" from subclasses."); " from subclasses.");
if (ptr_) { if (ptr_)
Release(ptr_); Release(ptr_);
}
} }
T* get() const { return ptr_; } T* get() const { return ptr_; }

View File

@@ -97,24 +97,21 @@ class ScopedTypeRef {
element_type object = Traits::InvalidValue(), element_type object = Traits::InvalidValue(),
base::scoped_policy::OwnershipPolicy policy = base::scoped_policy::ASSUME) base::scoped_policy::OwnershipPolicy policy = base::scoped_policy::ASSUME)
: object_(object) { : object_(object) {
if (object_ && policy == base::scoped_policy::RETAIN) { if (object_ && policy == base::scoped_policy::RETAIN)
object_ = Traits::Retain(object_); object_ = Traits::Retain(object_);
}
} }
ScopedTypeRef(const ScopedTypeRef<T, Traits>& that) : object_(that.object_) { ScopedTypeRef(const ScopedTypeRef<T, Traits>& that) : object_(that.object_) {
if (object_) { if (object_)
object_ = Traits::Retain(object_); object_ = Traits::Retain(object_);
}
} }
// This allows passing an object to a function that takes its superclass. // This allows passing an object to a function that takes its superclass.
template <typename R, typename RTraits> template <typename R, typename RTraits>
explicit ScopedTypeRef(const ScopedTypeRef<R, RTraits>& that_as_subclass) explicit ScopedTypeRef(const ScopedTypeRef<R, RTraits>& that_as_subclass)
: object_(that_as_subclass.get()) { : object_(that_as_subclass.get()) {
if (object_) { if (object_)
object_ = Traits::Retain(object_); object_ = Traits::Retain(object_);
}
} }
ScopedTypeRef(ScopedTypeRef<T, Traits>&& that) : object_(that.object_) { ScopedTypeRef(ScopedTypeRef<T, Traits>&& that) : object_(that.object_) {
@@ -122,9 +119,8 @@ class ScopedTypeRef {
} }
~ScopedTypeRef() { ~ScopedTypeRef() {
if (object_) { if (object_)
Traits::Release(object_); Traits::Release(object_);
}
} }
ScopedTypeRef& operator=(const ScopedTypeRef<T, Traits>& that) { ScopedTypeRef& operator=(const ScopedTypeRef<T, Traits>& that) {
@@ -147,12 +143,10 @@ class ScopedTypeRef {
void reset(element_type object = Traits::InvalidValue(), void reset(element_type object = Traits::InvalidValue(),
base::scoped_policy::OwnershipPolicy policy = base::scoped_policy::OwnershipPolicy policy =
base::scoped_policy::ASSUME) { base::scoped_policy::ASSUME) {
if (object && policy == base::scoped_policy::RETAIN) { if (object && policy == base::scoped_policy::RETAIN)
object = Traits::Retain(object); object = Traits::Retain(object);
} if (object_)
if (object_) {
Traits::Release(object_); Traits::Release(object_);
}
object_ = object; object_ = object;
} }

View File

@@ -0,0 +1,414 @@
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2011
// Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_TEMPLATE_UTIL_H_
#define CEF_INCLUDE_BASE_CEF_TEMPLATE_UTIL_H_
#pragma once
#if defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly.
#include "base/template_util.h"
#else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be
// updated to match.
#include <stddef.h>
#include <iosfwd>
#include <iterator>
#include <type_traits>
#include <utility>
#include <vector>
#include "include/base/cef_build.h"
// Some versions of libstdc++ have partial support for type_traits, but misses
// a smaller subset while removing some of the older non-standard stuff. Assume
// that all versions below 5.0 fall in this category, along with one 5.0
// experimental release. Test for this by consulting compiler major version,
// the only reliable option available, so theoretically this could fail should
// you attempt to mix an earlier version of libstdc++ with >= GCC5. But
// that's unlikely to work out, especially as GCC5 changed ABI.
#define CR_GLIBCXX_5_0_0 20150123
#if (defined(__GNUC__) && __GNUC__ < 5) || \
(defined(__GLIBCXX__) && __GLIBCXX__ == CR_GLIBCXX_5_0_0)
#define CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX
#endif
// This hacks around using gcc with libc++ which has some incompatibilies.
// - is_trivially_* doesn't work: https://llvm.org/bugs/show_bug.cgi?id=27538
// TODO(danakj): Remove this when android builders are all using a newer version
// of gcc, or the android ndk is updated to a newer libc++ that works with older
// gcc versions.
#if !defined(__clang__) && defined(_LIBCPP_VERSION)
#define CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
#endif
namespace base {
template <class T> struct is_non_const_reference : std::false_type {};
template <class T> struct is_non_const_reference<T&> : std::true_type {};
template <class T> struct is_non_const_reference<const T&> : std::false_type {};
namespace internal {
// Implementation detail of base::void_t below.
template <typename...>
struct make_void {
using type = void;
};
} // namespace internal
// base::void_t is an implementation of std::void_t from C++17.
//
// We use |base::internal::make_void| as a helper struct to avoid a C++14
// defect:
// http://en.cppreference.com/w/cpp/types/void_t
// http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1558
template <typename... Ts>
using void_t = typename ::base::internal::make_void<Ts...>::type;
namespace internal {
// Uses expression SFINAE to detect whether using operator<< would work.
template <typename T, typename = void>
struct SupportsOstreamOperator : std::false_type {};
template <typename T>
struct SupportsOstreamOperator<T,
decltype(void(std::declval<std::ostream&>()
<< std::declval<T>()))>
: std::true_type {};
template <typename T, typename = void>
struct SupportsToString : std::false_type {};
template <typename T>
struct SupportsToString<T, decltype(void(std::declval<T>().ToString()))>
: std::true_type {};
// Used to detect whether the given type is an iterator. This is normally used
// with std::enable_if to provide disambiguation for functions that take
// templatzed iterators as input.
template <typename T, typename = void>
struct is_iterator : std::false_type {};
template <typename T>
struct is_iterator<T,
void_t<typename std::iterator_traits<T>::iterator_category>>
: std::true_type {};
// Helper to express preferences in an overload set. If more than one overload
// are available for a given set of parameters the overload with the higher
// priority will be chosen.
template <size_t I>
struct priority_tag : priority_tag<I - 1> {};
template <>
struct priority_tag<0> {};
} // namespace internal
// is_trivially_copyable is especially hard to get right.
// - Older versions of libstdc++ will fail to have it like they do for other
// type traits. This has become a subset of the second point, but used to be
// handled independently.
// - An experimental release of gcc includes most of type_traits but misses
// is_trivially_copyable, so we still have to avoid using libstdc++ in this
// case, which is covered by CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX.
// - When compiling libc++ from before r239653, with a gcc compiler, the
// std::is_trivially_copyable can fail. So we need to work around that by not
// using the one in libc++ in this case. This is covered by the
// CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX define, and is discussed in
// https://llvm.org/bugs/show_bug.cgi?id=27538#c1 where they point out that
// in libc++'s commit r239653 this is fixed by libc++ checking for gcc 5.1.
// - In both of the above cases we are using the gcc compiler. When defining
// this ourselves on compiler intrinsics, the __is_trivially_copyable()
// intrinsic is not available on gcc before version 5.1 (see the discussion in
// https://llvm.org/bugs/show_bug.cgi?id=27538#c1 again), so we must check for
// that version.
// - When __is_trivially_copyable() is not available because we are on gcc older
// than 5.1, we need to fall back to something, so we use __has_trivial_copy()
// instead based on what was done one-off in bit_cast() previously.
// TODO(crbug.com/554293): Remove this when all platforms have this in the std
// namespace and it works with gcc as needed.
#if defined(CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX) || \
defined(CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX)
template <typename T>
struct is_trivially_copyable {
// TODO(danakj): Remove this when android builders are all using a newer version
// of gcc, or the android ndk is updated to a newer libc++ that does this for
// us.
#if _GNUC_VER >= 501
static constexpr bool value = __is_trivially_copyable(T);
#else
static constexpr bool value =
__has_trivial_copy(T) && __has_trivial_destructor(T);
#endif
};
#else
template <class T>
using is_trivially_copyable = std::is_trivially_copyable<T>;
#endif
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
// Workaround for g++7 and earlier family.
// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
// Optional<std::vector<T>> where T is non-copyable causes a compile error.
// As we know it is not trivially copy constructible, explicitly declare so.
template <typename T>
struct is_trivially_copy_constructible
: std::is_trivially_copy_constructible<T> {};
template <typename... T>
struct is_trivially_copy_constructible<std::vector<T...>> : std::false_type {};
#else
// Otherwise use std::is_trivially_copy_constructible as is.
template <typename T>
using is_trivially_copy_constructible = std::is_trivially_copy_constructible<T>;
#endif
// base::in_place_t is an implementation of std::in_place_t from
// C++17. A tag type used to request in-place construction in template vararg
// constructors.
// Specification:
// https://en.cppreference.com/w/cpp/utility/in_place
struct in_place_t {};
constexpr in_place_t in_place = {};
// base::in_place_type_t is an implementation of std::in_place_type_t from
// C++17. A tag type used for in-place construction when the type to construct
// needs to be specified, such as with base::unique_any, designed to be a
// drop-in replacement.
// Specification:
// http://en.cppreference.com/w/cpp/utility/in_place
template <typename T>
struct in_place_type_t {};
template <typename T>
struct is_in_place_type_t {
static constexpr bool value = false;
};
template <typename... Ts>
struct is_in_place_type_t<in_place_type_t<Ts...>> {
static constexpr bool value = true;
};
// C++14 implementation of C++17's std::bool_constant.
//
// Reference: https://en.cppreference.com/w/cpp/types/integral_constant
// Specification: https://wg21.link/meta.type.synop
template <bool B>
using bool_constant = std::integral_constant<bool, B>;
// C++14 implementation of C++17's std::conjunction.
//
// Reference: https://en.cppreference.com/w/cpp/types/conjunction
// Specification: https://wg21.link/meta.logical#1.itemdecl:1
template <typename...>
struct conjunction : std::true_type {};
template <typename B1>
struct conjunction<B1> : B1 {};
template <typename B1, typename... Bn>
struct conjunction<B1, Bn...>
: std::conditional_t<static_cast<bool>(B1::value), conjunction<Bn...>, B1> {
};
// C++14 implementation of C++17's std::disjunction.
//
// Reference: https://en.cppreference.com/w/cpp/types/disjunction
// Specification: https://wg21.link/meta.logical#itemdecl:2
template <typename...>
struct disjunction : std::false_type {};
template <typename B1>
struct disjunction<B1> : B1 {};
template <typename B1, typename... Bn>
struct disjunction<B1, Bn...>
: std::conditional_t<static_cast<bool>(B1::value), B1, disjunction<Bn...>> {
};
// C++14 implementation of C++17's std::negation.
//
// Reference: https://en.cppreference.com/w/cpp/types/negation
// Specification: https://wg21.link/meta.logical#itemdecl:3
template <typename B>
struct negation : bool_constant<!static_cast<bool>(B::value)> {};
// Implementation of C++17's invoke_result.
//
// This implementation adds references to `Functor` and `Args` to work around
// some quirks of std::result_of. See the #Notes section of [1] for details.
//
// References:
// [1] https://en.cppreference.com/w/cpp/types/result_of
// [2] https://wg21.link/meta.trans.other#lib:invoke_result
#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
template <typename Functor, typename... Args>
using invoke_result = std::invoke_result<Functor, Args...>;
#else
template <typename Functor, typename... Args>
using invoke_result = std::result_of<Functor && (Args && ...)>;
#endif
// Implementation of C++17's std::invoke_result_t.
//
// Reference: https://wg21.link/meta.type.synop#lib:invoke_result_t
template <typename Functor, typename... Args>
using invoke_result_t = typename invoke_result<Functor, Args...>::type;
namespace internal {
// Base case, `InvokeResult` does not have a nested type member. This means `F`
// could not be invoked with `Args...` and thus is not invocable.
template <typename InvokeResult, typename R, typename = void>
struct IsInvocableImpl : std::false_type {};
// Happy case, `InvokeResult` does have a nested type member. Now check whether
// `InvokeResult::type` is convertible to `R`. Short circuit in case
// `std::is_void<R>`.
template <typename InvokeResult, typename R>
struct IsInvocableImpl<InvokeResult, R, void_t<typename InvokeResult::type>>
: disjunction<std::is_void<R>,
std::is_convertible<typename InvokeResult::type, R>> {};
} // namespace internal
// Implementation of C++17's std::is_invocable_r.
//
// Returns whether `F` can be invoked with `Args...` and the result is
// convertible to `R`.
//
// Reference: https://wg21.link/meta.rel#lib:is_invocable_r
template <typename R, typename F, typename... Args>
struct is_invocable_r
: internal::IsInvocableImpl<invoke_result<F, Args...>, R> {};
// Implementation of C++17's std::is_invocable.
//
// Returns whether `F` can be invoked with `Args...`.
//
// Reference: https://wg21.link/meta.rel#lib:is_invocable
template <typename F, typename... Args>
struct is_invocable : is_invocable_r<void, F, Args...> {};
namespace internal {
// The indirection with std::is_enum<T> is required, because instantiating
// std::underlying_type_t<T> when T is not an enum is UB prior to C++20.
template <typename T, bool = std::is_enum<T>::value>
struct IsScopedEnumImpl : std::false_type {};
template <typename T>
struct IsScopedEnumImpl<T, /*std::is_enum<T>::value=*/true>
: negation<std::is_convertible<T, std::underlying_type_t<T>>> {};
} // namespace internal
// Implementation of C++23's std::is_scoped_enum
//
// Reference: https://en.cppreference.com/w/cpp/types/is_scoped_enum
template <typename T>
struct is_scoped_enum : internal::IsScopedEnumImpl<T> {};
// Implementation of C++20's std::remove_cvref.
//
// References:
// - https://en.cppreference.com/w/cpp/types/remove_cvref
// - https://wg21.link/meta.trans.other#lib:remove_cvref
template <typename T>
struct remove_cvref {
using type = std::remove_cv_t<std::remove_reference_t<T>>;
};
// Implementation of C++20's std::remove_cvref_t.
//
// References:
// - https://en.cppreference.com/w/cpp/types/remove_cvref
// - https://wg21.link/meta.type.synop#lib:remove_cvref_t
template <typename T>
using remove_cvref_t = typename remove_cvref<T>::type;
// Simplified implementation of C++20's std::iter_value_t.
// As opposed to std::iter_value_t, this implementation does not restrict
// the type of `Iter` and does not consider specializations of
// `indirectly_readable_traits`.
//
// Reference: https://wg21.link/readable.traits#2
template <typename Iter>
using iter_value_t =
typename std::iterator_traits<remove_cvref_t<Iter>>::value_type;
// Simplified implementation of C++20's std::iter_reference_t.
// As opposed to std::iter_reference_t, this implementation does not restrict
// the type of `Iter`.
//
// Reference: https://wg21.link/iterator.synopsis#:~:text=iter_reference_t
template <typename Iter>
using iter_reference_t = decltype(*std::declval<Iter&>());
// Simplified implementation of C++20's std::indirect_result_t. As opposed to
// std::indirect_result_t, this implementation does not restrict the type of
// `Func` and `Iters`.
//
// Reference: https://wg21.link/iterator.synopsis#:~:text=indirect_result_t
template <typename Func, typename... Iters>
using indirect_result_t = invoke_result_t<Func, iter_reference_t<Iters>...>;
// Simplified implementation of C++20's std::projected. As opposed to
// std::projected, this implementation does not explicitly restrict the type of
// `Iter` and `Proj`, but rather does so implicitly by requiring
// `indirect_result_t<Proj, Iter>` is a valid type. This is required for SFINAE
// friendliness.
//
// Reference: https://wg21.link/projected
template <typename Iter,
typename Proj,
typename IndirectResultT = indirect_result_t<Proj, Iter>>
struct projected {
using value_type = remove_cvref_t<IndirectResultT>;
IndirectResultT operator*() const; // not defined
};
} // namespace base
#undef CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
#undef CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX
#endif // !USING_CHROMIUM_INCLUDES
#endif // CEF_INCLUDE_BASE_CEF_TEMPLATE_UTIL_H_

View File

@@ -145,6 +145,14 @@
/// free(str); // Trace system now has dangling pointer /// free(str); // Trace system now has dangling pointer
/// </pre> /// </pre>
/// ///
/// To avoid this issue with the |name| and |arg_name| parameters, use the
/// TRACE_EVENT_COPY_XXX overloads of the macros at additional runtime
/// overhead.
///
/// Notes: The category must always be in a long-lived char* (i.e. static
/// const). The |arg_values|, when used, are always deep copied with
/// the _COPY macros.
///
/// ///
/// Thread Safety: /// Thread Safety:
/// All macros are thread safe and can be used from any process. /// All macros are thread safe and can be used from any process.
@@ -171,15 +179,15 @@
/// - category and name strings must have application lifetime (statics or /// - category and name strings must have application lifetime (statics or
/// literals). They may not include " chars. /// literals). They may not include " chars.
/// ///
#define TRACE_EVENT0(category, name) \ #define TRACE_EVENT0(category, name) \
cef_trace_event_begin(category, name, NULL, 0, NULL, 0); \ cef_trace_event_begin(category, name, NULL, 0, NULL, 0, false); \
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
#define TRACE_EVENT1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT1(category, name, arg1_name, arg1_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0); \ cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false); \
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
#define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \ #define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val); \ arg2_val, false); \
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
// Implementation detail: trace event macros create temporary variable names. // Implementation detail: trace event macros create temporary variable names.
@@ -203,13 +211,21 @@
/// literals). They may not include " chars. /// literals). They may not include " chars.
/// ///
#define TRACE_EVENT_INSTANT0(category, name) \ #define TRACE_EVENT_INSTANT0(category, name) \
cef_trace_event_instant(category, name, NULL, 0, NULL, 0) cef_trace_event_instant(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0) cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, arg2_name, \ #define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) \ arg2_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) arg2_val, false)
#define TRACE_EVENT_COPY_INSTANT0(category, name) \
cef_trace_event_instant(category, name, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_INSTANT1(category, name, arg1_name, arg1_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0, true)
#define TRACE_EVENT_COPY_INSTANT2(category, name, arg1_name, arg1_val, \
arg2_name, arg2_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, true)
/// ///
/// Records a single BEGIN event called "name" immediately, with 0, 1 or 2 /// Records a single BEGIN event called "name" immediately, with 0, 1 or 2
@@ -219,13 +235,21 @@
/// literals). They may not include " chars. /// literals). They may not include " chars.
/// ///
#define TRACE_EVENT_BEGIN0(category, name) \ #define TRACE_EVENT_BEGIN0(category, name) \
cef_trace_event_begin(category, name, NULL, 0, NULL, 0) cef_trace_event_begin(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_BEGIN1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_BEGIN1(category, name, arg1_name, arg1_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0) cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, arg2_name, \ #define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) \ arg2_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) arg2_val, false)
#define TRACE_EVENT_COPY_BEGIN0(category, name) \
cef_trace_event_begin(category, name, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_BEGIN1(category, name, arg1_name, arg1_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, true)
#define TRACE_EVENT_COPY_BEGIN2(category, name, arg1_name, arg1_val, \
arg2_name, arg2_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, true)
/// ///
/// Records a single END event for "name" immediately. If the category /// Records a single END event for "name" immediately. If the category
@@ -234,12 +258,21 @@
/// literals). They may not include " chars. /// literals). They may not include " chars.
/// ///
#define TRACE_EVENT_END0(category, name) \ #define TRACE_EVENT_END0(category, name) \
cef_trace_event_end(category, name, NULL, 0, NULL, 0) cef_trace_event_end(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_END1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_END1(category, name, arg1_name, arg1_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0) cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, arg2_name, \ #define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) \ arg2_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, arg2_val) cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, false)
#define TRACE_EVENT_COPY_END0(category, name) \
cef_trace_event_end(category, name, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_END1(category, name, arg1_name, arg1_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, true)
#define TRACE_EVENT_COPY_END2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, true)
/// ///
/// Records the value of a counter called "name" immediately. Value /// Records the value of a counter called "name" immediately. Value
@@ -248,7 +281,9 @@
/// literals). They may not include " chars. /// literals). They may not include " chars.
/// ///
#define TRACE_COUNTER1(category, name, value) \ #define TRACE_COUNTER1(category, name, value) \
cef_trace_counter(category, name, NULL, value, NULL, 0) cef_trace_counter(category, name, NULL, value, NULL, 0, false)
#define TRACE_COPY_COUNTER1(category, name, value) \
cef_trace_counter(category, name, NULL, value, NULL, 0, true)
/// ///
/// Records the values of a multi-parted counter called "name" immediately. /// Records the values of a multi-parted counter called "name" immediately.
@@ -260,7 +295,11 @@
#define TRACE_COUNTER2(category, name, value1_name, value1_val, value2_name, \ #define TRACE_COUNTER2(category, name, value1_name, value1_val, value2_name, \
value2_val) \ value2_val) \
cef_trace_counter(category, name, value1_name, value1_val, value2_name, \ cef_trace_counter(category, name, value1_name, value1_val, value2_name, \
value2_val) value2_val, false)
#define TRACE_COPY_COUNTER2(category, name, value1_name, value1_val, \
value2_name, value2_val) \
cef_trace_counter(category, name, value1_name, value1_val, value2_name, \
value2_val, true)
/// ///
/// Records the value of a counter called "name" immediately. Value /// Records the value of a counter called "name" immediately. Value
@@ -273,7 +312,9 @@
/// on two different processes will not collide. /// on two different processes will not collide.
/// ///
#define TRACE_COUNTER_ID1(category, name, id, value) \ #define TRACE_COUNTER_ID1(category, name, id, value) \
cef_trace_counter_id(category, name, id, NULL, value, NULL, 0) cef_trace_counter_id(category, name, id, NULL, value, NULL, 0, false)
#define TRACE_COPY_COUNTER_ID1(category, name, id, value) \
cef_trace_counter_id(category, name, id, NULL, value, NULL, 0, true)
/// ///
/// Records the values of a multi-parted counter called "name" immediately. /// Records the values of a multi-parted counter called "name" immediately.
@@ -289,7 +330,11 @@
#define TRACE_COUNTER_ID2(category, name, id, value1_name, value1_val, \ #define TRACE_COUNTER_ID2(category, name, id, value1_name, value1_val, \
value2_name, value2_val) \ value2_name, value2_val) \
cef_trace_counter_id(category, name, id, value1_name, value1_val, \ cef_trace_counter_id(category, name, id, value1_name, value1_val, \
value2_name, value2_val) value2_name, value2_val, false)
#define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, value1_val, \
value2_name, value2_val) \
cef_trace_counter_id(category, name, id, value1_name, value1_val, \
value2_name, value2_val, true)
/// ///
/// Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2 /// Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2
@@ -310,13 +355,23 @@
/// args. /// args.
/// ///
#define TRACE_EVENT_ASYNC_BEGIN0(category, name, id) \ #define TRACE_EVENT_ASYNC_BEGIN0(category, name, id) \
cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0) cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \ #define TRACE_EVENT_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, 0) cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, \
0, false)
#define TRACE_EVENT_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \ #define TRACE_EVENT_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) \ arg2_name, arg2_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \ cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) arg2_name, arg2_val, false)
#define TRACE_EVENT_COPY_ASYNC_BEGIN0(category, name, id) \
cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, \
0, true)
#define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val, true)
/// ///
/// Records a single ASYNC_STEP_INTO event for |step| immediately. If the /// Records a single ASYNC_STEP_INTO event for |step| immediately. If the
@@ -327,10 +382,17 @@
/// ASYNC_STEP_PAST events. /// ASYNC_STEP_PAST events.
/// ///
#define TRACE_EVENT_ASYNC_STEP_INTO0(category, name, id, step) \ #define TRACE_EVENT_ASYNC_STEP_INTO0(category, name, id, step) \
cef_trace_event_async_step_into(category, name, id, step, NULL, 0) cef_trace_event_async_step_into(category, name, id, step, NULL, 0, false)
#define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \ #define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
arg1_val) \ arg1_val) \
cef_trace_event_async_step_into(category, name, id, step, arg1_name, arg1_val) cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
arg1_val, false)
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO0(category, name, id, step) \
cef_trace_event_async_step_into(category, name, id, step, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
arg1_val) \
cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
arg1_val, true)
/// ///
/// Records a single ASYNC_STEP_PAST event for |step| immediately. If the /// Records a single ASYNC_STEP_PAST event for |step| immediately. If the
@@ -341,23 +403,40 @@
/// ASYNC_STEP_INTO events. /// ASYNC_STEP_INTO events.
/// ///
#define TRACE_EVENT_ASYNC_STEP_PAST0(category, name, id, step) \ #define TRACE_EVENT_ASYNC_STEP_PAST0(category, name, id, step) \
cef_trace_event_async_step_past(category, name, id, step, NULL, 0) cef_trace_event_async_step_past(category, name, id, step, NULL, 0, false)
#define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \ #define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
arg1_val) \ arg1_val) \
cef_trace_event_async_step_past(category, name, id, step, arg1_name, arg1_val) cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
arg1_val, false)
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST0(category, name, id, step) \
cef_trace_event_async_step_past(category, name, id, step, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
arg1_val) \
cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
arg1_val, true)
/// ///
/// Records a single ASYNC_END event for "name" immediately. If the category /// Records a single ASYNC_END event for "name" immediately. If the category
/// is not enabled, then this does nothing. /// is not enabled, then this does nothing.
/// ///
#define TRACE_EVENT_ASYNC_END0(category, name, id) \ #define TRACE_EVENT_ASYNC_END0(category, name, id) \
cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0) cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_ASYNC_END1(category, name, id, arg1_name, arg1_val) \ #define TRACE_EVENT_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0) cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0, \
false)
#define TRACE_EVENT_ASYNC_END2(category, name, id, arg1_name, arg1_val, \ #define TRACE_EVENT_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) \ arg2_name, arg2_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \ cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) arg2_name, arg2_val, false)
#define TRACE_EVENT_COPY_ASYNC_END0(category, name, id) \
cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0, \
true)
#define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val, true)
namespace cef_trace_event { namespace cef_trace_event {
@@ -369,7 +448,7 @@ class CefTraceEndOnScopeClose {
CefTraceEndOnScopeClose(const char* category, const char* name) CefTraceEndOnScopeClose(const char* category, const char* name)
: category_(category), name_(name) {} : category_(category), name_(name) {}
~CefTraceEndOnScopeClose() { ~CefTraceEndOnScopeClose() {
cef_trace_event_end(category_, name_, NULL, 0, NULL, 0); cef_trace_event_end(category_, name_, NULL, 0, NULL, 0, false);
} }
private: private:

View File

@@ -123,7 +123,7 @@ class SupportsWeakPtr;
template <typename T> template <typename T>
class WeakPtr; class WeakPtr;
namespace cef_internal { namespace internal {
// These classes are part of the WeakPtr implementation. // These classes are part of the WeakPtr implementation.
// DO NOT USE THESE CLASSES DIRECTLY YOURSELF. // DO NOT USE THESE CLASSES DIRECTLY YOURSELF.
@@ -197,7 +197,7 @@ class WeakPtrBase {
WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default; WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
void reset() { void reset() {
ref_ = cef_internal::WeakReference(); ref_ = internal::WeakReference();
ptr_ = 0; ptr_ = 0;
} }
@@ -225,7 +225,7 @@ class SupportsWeakPtrBase {
template <typename Derived> template <typename Derived>
static WeakPtr<Derived> StaticAsWeakPtr(Derived* t) { static WeakPtr<Derived> StaticAsWeakPtr(Derived* t) {
static_assert( static_assert(
std::is_base_of<cef_internal::SupportsWeakPtrBase, Derived>::value, std::is_base_of<internal::SupportsWeakPtrBase, Derived>::value,
"AsWeakPtr argument must inherit from SupportsWeakPtr"); "AsWeakPtr argument must inherit from SupportsWeakPtr");
return AsWeakPtrImpl<Derived>(t); return AsWeakPtrImpl<Derived>(t);
} }
@@ -242,7 +242,7 @@ class SupportsWeakPtrBase {
} }
}; };
} // namespace cef_internal } // namespace internal
template <typename T> template <typename T>
class WeakPtrFactory; class WeakPtrFactory;
@@ -264,7 +264,7 @@ class WeakPtrFactory;
/// </pre> /// </pre>
/// ///
template <typename T> template <typename T>
class WeakPtr : public cef_internal::WeakPtrBase { class WeakPtr : public internal::WeakPtrBase {
public: public:
WeakPtr() = default; WeakPtr() = default;
WeakPtr(std::nullptr_t) {} WeakPtr(std::nullptr_t) {}
@@ -325,13 +325,13 @@ class WeakPtr : public cef_internal::WeakPtrBase {
bool WasInvalidated() const { return ptr_ && !ref_.IsValid(); } bool WasInvalidated() const { return ptr_ && !ref_.IsValid(); }
private: private:
friend class cef_internal::SupportsWeakPtrBase; friend class internal::SupportsWeakPtrBase;
template <typename U> template <typename U>
friend class WeakPtr; friend class WeakPtr;
friend class SupportsWeakPtr<T>; friend class SupportsWeakPtr<T>;
friend class WeakPtrFactory<T>; friend class WeakPtrFactory<T>;
WeakPtr(const cef_internal::WeakReference& ref, T* ptr) WeakPtr(const internal::WeakReference& ref, T* ptr)
: WeakPtrBase(ref, reinterpret_cast<uintptr_t>(ptr)) {} : WeakPtrBase(ref, reinterpret_cast<uintptr_t>(ptr)) {}
}; };
@@ -355,15 +355,15 @@ bool operator==(std::nullptr_t, const WeakPtr<T>& weak_ptr) {
return weak_ptr == nullptr; return weak_ptr == nullptr;
} }
namespace cef_internal { namespace internal {
class WeakPtrFactoryBase { class WeakPtrFactoryBase {
protected: protected:
WeakPtrFactoryBase(uintptr_t ptr); WeakPtrFactoryBase(uintptr_t ptr);
~WeakPtrFactoryBase(); ~WeakPtrFactoryBase();
cef_internal::WeakReferenceOwner weak_reference_owner_; internal::WeakReferenceOwner weak_reference_owner_;
uintptr_t ptr_; uintptr_t ptr_;
}; };
} // namespace cef_internal } // namespace internal
/// ///
/// A class may be composed of a WeakPtrFactory and thereby control how it /// A class may be composed of a WeakPtrFactory and thereby control how it
@@ -374,7 +374,7 @@ class WeakPtrFactoryBase {
/// bool. /// bool.
/// ///
template <class T> template <class T>
class WeakPtrFactory : public cef_internal::WeakPtrFactoryBase { class WeakPtrFactory : public internal::WeakPtrFactoryBase {
public: public:
WeakPtrFactory() = delete; WeakPtrFactory() = delete;
@@ -416,7 +416,7 @@ class WeakPtrFactory : public cef_internal::WeakPtrFactoryBase {
/// destroyed, its use can lead to subtle use-after-destroy issues. /// destroyed, its use can lead to subtle use-after-destroy issues.
/// ///
template <class T> template <class T>
class SupportsWeakPtr : public cef_internal::SupportsWeakPtrBase { class SupportsWeakPtr : public internal::SupportsWeakPtrBase {
public: public:
SupportsWeakPtr() = default; SupportsWeakPtr() = default;
@@ -431,7 +431,7 @@ class SupportsWeakPtr : public cef_internal::SupportsWeakPtrBase {
~SupportsWeakPtr() = default; ~SupportsWeakPtr() = default;
private: private:
cef_internal::WeakReferenceOwner weak_reference_owner_; internal::WeakReferenceOwner weak_reference_owner_;
}; };
/// ///
@@ -459,7 +459,7 @@ class SupportsWeakPtr : public cef_internal::SupportsWeakPtrBase {
/// ///
template <typename Derived> template <typename Derived>
WeakPtr<Derived> AsWeakPtr(Derived* t) { WeakPtr<Derived> AsWeakPtr(Derived* t) {
return cef_internal::SupportsWeakPtrBase::StaticAsWeakPtr<Derived>(t); return internal::SupportsWeakPtrBase::StaticAsWeakPtr<Derived>(t);
} }
} // namespace base } // namespace base

View File

@@ -68,6 +68,7 @@
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/base/cef_compiler_specific.h" #include "include/base/cef_compiler_specific.h"
#include "include/base/cef_logging.h" #include "include/base/cef_logging.h"
#include "include/base/cef_template_util.h"
#include "include/base/cef_weak_ptr.h" #include "include/base/cef_weak_ptr.h"
#include "include/base/internal/cef_callback_internal.h" #include "include/base/internal/cef_callback_internal.h"
#include "include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h" #include "include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h"
@@ -96,7 +97,7 @@ struct BindUnwrapTraits;
template <typename Functor, typename BoundArgsTuple, typename SFINAE = void> template <typename Functor, typename BoundArgsTuple, typename SFINAE = void>
struct CallbackCancellationTraits; struct CallbackCancellationTraits;
namespace cef_internal { namespace internal {
template <typename Functor, typename SFINAE = void> template <typename Functor, typename SFINAE = void>
struct FunctorTraits; struct FunctorTraits;
@@ -355,14 +356,14 @@ template <typename Functor, typename SFINAE = void>
struct IsCallableObject : std::false_type {}; struct IsCallableObject : std::false_type {};
template <typename Callable> template <typename Callable>
struct IsCallableObject<Callable, std::void_t<decltype(&Callable::operator())>> struct IsCallableObject<Callable, void_t<decltype(&Callable::operator())>>
: std::true_type {}; : std::true_type {};
// HasRefCountedTypeAsRawPtr inherits from true_type when any of the |Args| is a // HasRefCountedTypeAsRawPtr inherits from true_type when any of the |Args| is a
// raw pointer to a RefCounted type. // raw pointer to a RefCounted type.
template <typename... Ts> template <typename... Ts>
struct HasRefCountedTypeAsRawPtr struct HasRefCountedTypeAsRawPtr
: std::disjunction<NeedsScopedRefptrButGetsRawPtr<Ts>...> {}; : disjunction<NeedsScopedRefptrButGetsRawPtr<Ts>...> {};
// ForceVoidReturn<> // ForceVoidReturn<>
// //
@@ -686,9 +687,8 @@ struct InvokeHelper<true, ReturnType> {
static inline void MakeItSo(Functor&& functor, static inline void MakeItSo(Functor&& functor,
BoundWeakPtr&& weak_ptr, BoundWeakPtr&& weak_ptr,
RunArgs&&... args) { RunArgs&&... args) {
if (!weak_ptr) { if (!weak_ptr)
return; return;
}
using Traits = MakeFunctorTraits<Functor>; using Traits = MakeFunctorTraits<Functor>;
Traits::Invoke(std::forward<Functor>(functor), Traits::Invoke(std::forward<Functor>(functor),
std::forward<BoundWeakPtr>(weak_ptr), std::forward<BoundWeakPtr>(weak_ptr),
@@ -877,7 +877,7 @@ BanUnconstructedRefCountedReceiver(const Receiver& receiver, Unused&&...) {
// This stores all the state passed into Bind(). // This stores all the state passed into Bind().
template <typename Functor, typename... BoundArgs> template <typename Functor, typename... BoundArgs>
struct BindState final : BindStateBase { struct BindState final : BindStateBase {
using IsCancellable = std::bool_constant< using IsCancellable = bool_constant<
CallbackCancellationTraits<Functor, CallbackCancellationTraits<Functor,
std::tuple<BoundArgs...>>::is_cancellable>; std::tuple<BoundArgs...>>::is_cancellable>;
template <typename ForwardFunctor, typename... ForwardBoundArgs> template <typename ForwardFunctor, typename... ForwardBoundArgs>
@@ -1251,7 +1251,7 @@ decltype(auto) BindImpl(Functor&& functor, Args&&... args) {
// PolymorphicInvoke, to which CallbackType will cast back. // PolymorphicInvoke, to which CallbackType will cast back.
using PolymorphicInvoke = typename CallbackType::PolymorphicInvoke; using PolymorphicInvoke = typename CallbackType::PolymorphicInvoke;
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
GetInvokeFunc<Invoker>(std::bool_constant<kIsOnce>()); GetInvokeFunc<Invoker>(bool_constant<kIsOnce>());
using InvokeFuncStorage = BindStateBase::InvokeFuncStorage; using InvokeFuncStorage = BindStateBase::InvokeFuncStorage;
return CallbackType(BindState::Create( return CallbackType(BindState::Create(
@@ -1259,7 +1259,7 @@ decltype(auto) BindImpl(Functor&& functor, Args&&... args) {
std::forward<Functor>(functor), std::forward<Args>(args)...)); std::forward<Functor>(functor), std::forward<Args>(args)...));
} }
} // namespace cef_internal } // namespace internal
// An injection point to control |this| pointer behavior on a method invocation. // An injection point to control |this| pointer behavior on a method invocation.
// If IsWeakReceiver<> is true_type for |T| and |T| is used for a receiver of a // If IsWeakReceiver<> is true_type for |T| and |T| is used for a receiver of a
@@ -1303,36 +1303,30 @@ struct BindUnwrapTraits {
}; };
template <typename T> template <typename T>
struct BindUnwrapTraits<cef_internal::UnretainedWrapper<T>> { struct BindUnwrapTraits<internal::UnretainedWrapper<T>> {
static T* Unwrap(const cef_internal::UnretainedWrapper<T>& o) { static T* Unwrap(const internal::UnretainedWrapper<T>& o) { return o.get(); }
return o.get();
}
}; };
template <typename T> template <typename T>
struct BindUnwrapTraits<cef_internal::RetainedRefWrapper<T>> { struct BindUnwrapTraits<internal::RetainedRefWrapper<T>> {
static T* Unwrap(const cef_internal::RetainedRefWrapper<T>& o) { static T* Unwrap(const internal::RetainedRefWrapper<T>& o) { return o.get(); }
return o.get();
}
}; };
template <typename T, typename Deleter> template <typename T, typename Deleter>
struct BindUnwrapTraits<cef_internal::OwnedWrapper<T, Deleter>> { struct BindUnwrapTraits<internal::OwnedWrapper<T, Deleter>> {
static T* Unwrap(const cef_internal::OwnedWrapper<T, Deleter>& o) { static T* Unwrap(const internal::OwnedWrapper<T, Deleter>& o) {
return o.get(); return o.get();
} }
}; };
template <typename T> template <typename T>
struct BindUnwrapTraits<cef_internal::OwnedRefWrapper<T>> { struct BindUnwrapTraits<internal::OwnedRefWrapper<T>> {
static T& Unwrap(const cef_internal::OwnedRefWrapper<T>& o) { static T& Unwrap(const internal::OwnedRefWrapper<T>& o) { return o.get(); }
return o.get();
}
}; };
template <typename T> template <typename T>
struct BindUnwrapTraits<cef_internal::PassedWrapper<T>> { struct BindUnwrapTraits<internal::PassedWrapper<T>> {
static T Unwrap(const cef_internal::PassedWrapper<T>& o) { return o.Take(); } static T Unwrap(const internal::PassedWrapper<T>& o) { return o.Take(); }
}; };
#if defined(OS_WIN) #if defined(OS_WIN)
@@ -1356,9 +1350,9 @@ template <typename Functor, typename... BoundArgs>
struct CallbackCancellationTraits< struct CallbackCancellationTraits<
Functor, Functor,
std::tuple<BoundArgs...>, std::tuple<BoundArgs...>,
std::enable_if_t<cef_internal::IsWeakMethod< std::enable_if_t<
cef_internal::FunctorTraits<Functor>::is_method, internal::IsWeakMethod<internal::FunctorTraits<Functor>::is_method,
BoundArgs...>::value>> { BoundArgs...>::value>> {
static constexpr bool is_cancellable = true; static constexpr bool is_cancellable = true;
template <typename Receiver, typename... Args> template <typename Receiver, typename... Args>

View File

@@ -43,7 +43,7 @@ namespace base {
struct FakeBindState; struct FakeBindState;
namespace cef_internal { namespace internal {
class BindStateBase; class BindStateBase;
class FinallyExecutorCommon; class FinallyExecutorCommon;
@@ -269,7 +269,7 @@ struct ThenHelper<OriginalCallback<OriginalR(OriginalArgs...)>,
} }
}; };
} // namespace cef_internal } // namespace internal
} // namespace base } // namespace base
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_CALLBACK_INTERNAL_H_ #endif // CEF_INCLUDE_BASE_INTERNAL_CEF_CALLBACK_INTERNAL_H_

View File

@@ -34,6 +34,8 @@
#include <type_traits> #include <type_traits>
#include "include/base/cef_template_util.h"
// It is dangerous to post a task with a T* argument where T is a subtype of // It is dangerous to post a task with a T* argument where T is a subtype of
// RefCounted(Base|ThreadSafeBase), since by the time the parameter is used, the // RefCounted(Base|ThreadSafeBase), since by the time the parameter is used, the
// object may already have been deleted since it was not held with a // object may already have been deleted since it was not held with a
@@ -45,28 +47,28 @@ namespace base {
// This is a base internal implementation file used by task.h and callback.h. // This is a base internal implementation file used by task.h and callback.h.
// Not for public consumption, so we wrap it in namespace internal. // Not for public consumption, so we wrap it in namespace internal.
namespace cef_internal { namespace internal {
template <typename T, typename = void> template <typename T, typename = void>
struct IsRefCountedType : std::false_type {}; struct IsRefCountedType : std::false_type {};
template <typename T> template <typename T>
struct IsRefCountedType<T, struct IsRefCountedType<T,
std::void_t<decltype(std::declval<T*>()->AddRef()), void_t<decltype(std::declval<T*>()->AddRef()),
decltype(std::declval<T*>()->Release())>> decltype(std::declval<T*>()->Release())>>
: std::true_type {}; : std::true_type {};
// Human readable translation: you needed to be a scoped_refptr if you are a raw // Human readable translation: you needed to be a scoped_refptr if you are a raw
// pointer type and are convertible to a RefCounted(Base|ThreadSafeBase) type. // pointer type and are convertible to a RefCounted(Base|ThreadSafeBase) type.
template <typename T> template <typename T>
struct NeedsScopedRefptrButGetsRawPtr struct NeedsScopedRefptrButGetsRawPtr
: std::conjunction<std::is_pointer<T>, : conjunction<std::is_pointer<T>,
IsRefCountedType<std::remove_pointer_t<T>>> { IsRefCountedType<std::remove_pointer_t<T>>> {
static_assert(!std::is_reference<T>::value, static_assert(!std::is_reference<T>::value,
"NeedsScopedRefptrButGetsRawPtr requires non-reference type."); "NeedsScopedRefptrButGetsRawPtr requires non-reference type.");
}; };
} // namespace cef_internal } // namespace internal
} // namespace base } // namespace base

View File

@@ -38,14 +38,13 @@
#include "include/base/cef_scoped_typeref_mac.h" #include "include/base/cef_scoped_typeref_mac.h"
#if defined(__has_feature) && __has_feature(objc_arc) #if defined(__has_feature) && __has_feature(objc_arc)
#error \ #error "Cannot include include/base/internal/cef_scoped_block_mac.h in file built with ARC."
"Cannot include include/base/internal/cef_scoped_block_mac.h in file built with ARC."
#endif #endif
namespace base { namespace base {
namespace mac { namespace mac {
namespace cef_internal { namespace internal {
template <typename B> template <typename B>
struct ScopedBlockTraits { struct ScopedBlockTraits {
@@ -54,12 +53,12 @@ struct ScopedBlockTraits {
static void Release(B block) { Block_release(block); } static void Release(B block) { Block_release(block); }
}; };
} // namespace cef_internal } // namespace internal
// ScopedBlock<> is patterned after ScopedCFTypeRef<>, but uses Block_copy() and // ScopedBlock<> is patterned after ScopedCFTypeRef<>, but uses Block_copy() and
// Block_release() instead of CFRetain() and CFRelease(). // Block_release() instead of CFRetain() and CFRelease().
template <typename B> template <typename B>
using ScopedBlock = ScopedTypeRef<B, cef_internal::ScopedBlockTraits<B>>; using ScopedBlock = ScopedTypeRef<B, internal::ScopedBlockTraits<B>>;
} // namespace mac } // namespace mac
} // namespace base } // namespace base

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=6ea5d772fb4961ae4a658b4b730aa608fa93309f$ // $hash=0ac3c8ca887778a840c65108d56038d4d776e073$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b9a2bad4a30bcb99384197c9f7409116dc5b376e$ // $hash=9b523fbf312a8a0cb1c743a3c8aca7bc9cc22bbc$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
@@ -133,13 +133,10 @@ CEF_EXPORT int cef_execute_process(const cef_main_args_t* args,
/// ///
/// This function should be called on the main application thread to initialize /// This function should be called on the main application thread to initialize
/// the CEF browser process. The |application| parameter may be NULL. Returns /// the CEF browser process. The |application| parameter may be NULL. A return
/// true (1) if initialization succeeds. Returns false (0) if initialization /// value of true (1) indicates that it succeeded and false (0) indicates that
/// fails or if early exit is desired (for example, due to process singleton /// it failed. The |windows_sandbox_info| parameter is only used on Windows and
/// relaunch behavior). If this function returns false (0) then the application /// may be NULL (see cef_sandbox_win.h for details).
/// should exit immediately without calling any other CEF functions. The
/// |windows_sandbox_info| parameter is only used on Windows and may be NULL
/// (see cef_sandbox_win.h for details).
/// ///
CEF_EXPORT int cef_initialize(const cef_main_args_t* args, CEF_EXPORT int cef_initialize(const cef_main_args_t* args,
const struct _cef_settings_t* settings, const struct _cef_settings_t* settings,
@@ -148,8 +145,7 @@ CEF_EXPORT int cef_initialize(const cef_main_args_t* args,
/// ///
/// This function should be called on the main application thread to shut down /// This function should be called on the main application thread to shut down
/// the CEF browser process before the application exits. Do not call any other /// the CEF browser process before the application exits.
/// CEF functions after calling this function.
/// ///
CEF_EXPORT void cef_shutdown(void); CEF_EXPORT void cef_shutdown(void);

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d98482eba93dcd8b6a6f69b2732162733c73203d$ // $hash=936274d5539f225ff7adb7e0acba517fd9a8e2f8$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_
@@ -93,7 +93,7 @@ typedef struct _cef_audio_handler_t {
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
const float** data, const float** data,
int frames, int frames,
int64_t pts); int64 pts);
/// ///
/// Called on the UI thread when the stream has stopped. OnAudioSteamStopped /// Called on the UI thread when the stream has stopped. OnAudioSteamStopped

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b63947918eca8c31790cae16b2e8a0be7e9464dd$ // $hash=4b9c31ef9a23f899c6d8cd3da49934a41f1bd231$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d23df6f606a96b432905c5c80f29ab72915b8e01$ // $hash=7254c050cd7db2ff7d40a1f54c99e941dc592692$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
@@ -167,7 +167,7 @@ typedef struct _cef_browser_t {
/// ///
struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)( struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)(
struct _cef_browser_t* self, struct _cef_browser_t* self,
int64_t identifier); int64 identifier);
/// ///
/// Returns the frame with the specified name, or NULL if not found. /// Returns the frame with the specified name, or NULL if not found.
@@ -185,7 +185,7 @@ typedef struct _cef_browser_t {
/// ///
void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self, void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self,
size_t* identifiersCount, size_t* identifiersCount,
int64_t* identifiers); int64* identifiers);
/// ///
/// Returns the names of all existing frames. /// Returns the names of all existing frames.
@@ -365,39 +365,16 @@ typedef struct _cef_browser_host_t {
struct _cef_browser_host_t* self); struct _cef_browser_host_t* self);
/// ///
/// Returns true (1) if this browser can execute the specified zoom command. /// Get the current zoom level. The default zoom level is 0.0. This function
/// This function can only be called on the UI thread. /// can only be called on the UI thread.
///
int(CEF_CALLBACK* can_zoom)(struct _cef_browser_host_t* self,
cef_zoom_command_t command);
///
/// Execute a zoom command in this browser. If called on the UI thread the
/// change will be applied immediately. Otherwise, the change will be applied
/// asynchronously on the UI thread.
///
void(CEF_CALLBACK* zoom)(struct _cef_browser_host_t* self,
cef_zoom_command_t command);
///
/// Get the default zoom level. This value will be 0.0 by default but can be
/// configured with the Chrome runtime. This function can only be called on
/// the UI thread.
///
double(CEF_CALLBACK* get_default_zoom_level)(
struct _cef_browser_host_t* self);
///
/// Get the current zoom level. This function can only be called on the UI
/// thread.
/// ///
double(CEF_CALLBACK* get_zoom_level)(struct _cef_browser_host_t* self); double(CEF_CALLBACK* get_zoom_level)(struct _cef_browser_host_t* self);
/// ///
/// Change the zoom level to the specified value. Specify 0.0 to reset the /// Change the zoom level to the specified value. Specify 0.0 to reset the
/// zoom level to the default. If called on the UI thread the change will be /// zoom level. If called on the UI thread the change will be applied
/// applied immediately. Otherwise, the change will be applied asynchronously /// immediately. Otherwise, the change will be applied asynchronously on the
/// on the UI thread. /// UI thread.
/// ///
void(CEF_CALLBACK* set_zoom_level)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* set_zoom_level)(struct _cef_browser_host_t* self,
double zoomLevel); double zoomLevel);
@@ -447,7 +424,7 @@ typedef struct _cef_browser_host_t {
struct _cef_browser_host_t* self, struct _cef_browser_host_t* self,
const cef_string_t* image_url, const cef_string_t* image_url,
int is_favicon, int is_favicon,
uint32_t max_image_size, uint32 max_image_size,
int bypass_cache, int bypass_cache,
struct _cef_download_image_callback_t* callback); struct _cef_download_image_callback_t* callback);
@@ -932,48 +909,6 @@ typedef struct _cef_browser_host_t {
/// be called on the UI thread. /// be called on the UI thread.
/// ///
int(CEF_CALLBACK* is_audio_muted)(struct _cef_browser_host_t* self); int(CEF_CALLBACK* is_audio_muted)(struct _cef_browser_host_t* self);
///
/// Returns true (1) if the renderer is currently in browser fullscreen. This
/// differs from window fullscreen in that browser fullscreen is entered using
/// the JavaScript Fullscreen API and modifies CSS attributes such as the
/// ::backdrop pseudo-element and :fullscreen pseudo-structure. This function
/// can only be called on the UI thread.
///
int(CEF_CALLBACK* is_fullscreen)(struct _cef_browser_host_t* self);
///
/// Requests the renderer to exit browser fullscreen. In most cases exiting
/// window fullscreen should also exit browser fullscreen. With the Alloy
/// runtime this function should be called in response to a user action such
/// as clicking the green traffic light button on MacOS
/// (cef_window_delegate_t::OnWindowFullscreenTransition callback) or pressing
/// the "ESC" key (cef_keyboard_handler_t::OnPreKeyEvent callback). With the
/// Chrome runtime these standard exit actions are handled internally but
/// new/additional user actions can use this function. Set |will_cause_resize|
/// to true (1) if exiting browser fullscreen will cause a view resize.
///
void(CEF_CALLBACK* exit_fullscreen)(struct _cef_browser_host_t* self,
int will_cause_resize);
///
/// Returns true (1) if a Chrome command is supported and enabled. Values for
/// |command_id| can be found in the cef_command_ids.h file. This function can
/// only be called on the UI thread. Only used with the Chrome runtime.
///
int(CEF_CALLBACK* can_execute_chrome_command)(
struct _cef_browser_host_t* self,
int command_id);
///
/// Execute a Chrome command. Values for |command_id| can be found in the
/// cef_command_ids.h file. |disposition| provides information about the
/// intended command target. Only used with the Chrome runtime.
///
void(CEF_CALLBACK* execute_chrome_command)(
struct _cef_browser_host_t* self,
int command_id,
cef_window_open_disposition_t disposition);
} cef_browser_host_t; } cef_browser_host_t;
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=f844d2a1e39d822129d0733f33c14d27481c36b7$ // $hash=4ef8b73a5218531b370fdd76c23153a1f83b7f7b$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
@@ -106,29 +106,6 @@ typedef struct _cef_browser_process_handler_t {
struct _cef_browser_process_handler_t* self, struct _cef_browser_process_handler_t* self,
struct _cef_command_line_t* command_line); struct _cef_command_line_t* command_line);
///
/// Implement this function to provide app-specific behavior when an already
/// running app is relaunched with the same CefSettings.root_cache_path value.
/// For example, activate an existing app window or create a new app window.
/// |command_line| will be read-only. Do not keep a reference to
/// |command_line| outside of this function. Return true (1) if the relaunch
/// is handled or false (0) for default relaunch behavior. Default behavior
/// will create a new default styled Chrome window.
///
/// To avoid cache corruption only a single app instance is allowed to run for
/// a given CefSettings.root_cache_path value. On relaunch the app checks a
/// process singleton lock and then forwards the new launch arguments to the
/// already running app process before exiting early. Client apps should
/// therefore check the cef_initialize() return value for early exit before
/// proceeding.
///
/// This function will be called on the browser process UI thread.
///
int(CEF_CALLBACK* on_already_running_app_relaunch)(
struct _cef_browser_process_handler_t* self,
struct _cef_command_line_t* command_line,
const cef_string_t* current_directory);
/// ///
/// Called from any thread when work has been scheduled for the browser /// Called from any thread when work has been scheduled for the browser
/// process main (UI) thread. This callback is used in combination with /// process main (UI) thread. This callback is used in combination with
@@ -144,7 +121,7 @@ typedef struct _cef_browser_process_handler_t {
/// ///
void(CEF_CALLBACK* on_schedule_message_pump_work)( void(CEF_CALLBACK* on_schedule_message_pump_work)(
struct _cef_browser_process_handler_t* self, struct _cef_browser_process_handler_t* self,
int64_t delay_ms); int64 delay_ms);
/// ///
/// Return the default client for use with a newly created browser window. If /// Return the default client for use with a newly created browser window. If

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=46bc048bec64590735298a95633167d66e445844$ // $hash=4fd98ff68ecb42677c3344b75e26d4787161b0d2$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=09bd4140605645c9dfbd81e7e22d029d0bb50129$ // $hash=eb9dcb574252483dfab12834af93ba14138d4089$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=dd183a473b1e8c5ee8bdcf99949fc5274c4cc892$ // $hash=46817ef557307a55a9b7138134c4f5c32562f2d7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_
@@ -71,46 +71,6 @@ typedef struct _cef_command_handler_t {
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
int command_id, int command_id,
cef_window_open_disposition_t disposition); cef_window_open_disposition_t disposition);
///
/// Called to check if a Chrome app menu item should be visible. Values for
/// |command_id| can be found in the cef_command_ids.h file. Only called for
/// menu items that would be visible by default. Only used with the Chrome
/// runtime.
///
int(CEF_CALLBACK* is_chrome_app_menu_item_visible)(
struct _cef_command_handler_t* self,
struct _cef_browser_t* browser,
int command_id);
///
/// Called to check if a Chrome app menu item should be enabled. Values for
/// |command_id| can be found in the cef_command_ids.h file. Only called for
/// menu items that would be enabled by default. Only used with the Chrome
/// runtime.
///
int(CEF_CALLBACK* is_chrome_app_menu_item_enabled)(
struct _cef_command_handler_t* self,
struct _cef_browser_t* browser,
int command_id);
///
/// Called during browser creation to check if a Chrome page action icon
/// should be visible. Only called for icons that would be visible by default.
/// Only used with the Chrome runtime.
///
int(CEF_CALLBACK* is_chrome_page_action_icon_visible)(
struct _cef_command_handler_t* self,
cef_chrome_page_action_icon_type_t icon_type);
///
/// Called during browser creation to check if a Chrome toolbar button should
/// be visible. Only called for buttons that would be visible by default. Only
/// used with the Chrome runtime.
///
int(CEF_CALLBACK* is_chrome_toolbar_button_visible)(
struct _cef_command_handler_t* self,
cef_chrome_toolbar_button_type_t button_type);
} cef_command_handler_t; } cef_command_handler_t;
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=fce786b3f054d6581438e2906b77e573c797372a$ // $hash=1d0a15624fec8ca8bd1a5cdf7195b9b553dde44f$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_
@@ -159,14 +159,14 @@ typedef struct _cef_command_line_t {
cef_string_map_t switches); cef_string_map_t switches);
/// ///
/// Add a switch to the end of the command line. /// Add a switch to the end of the command line. If the switch has no value
/// pass an NULL value string.
/// ///
void(CEF_CALLBACK* append_switch)(struct _cef_command_line_t* self, void(CEF_CALLBACK* append_switch)(struct _cef_command_line_t* self,
const cef_string_t* name); const cef_string_t* name);
/// ///
/// Add a switch with the specified value to the end of the command line. If /// Add a switch with the specified value to the end of the command line.
/// the switch has no value pass an NULL value string.
/// ///
void(CEF_CALLBACK* append_switch_with_value)(struct _cef_command_line_t* self, void(CEF_CALLBACK* append_switch_with_value)(struct _cef_command_line_t* self,
const cef_string_t* name, const cef_string_t* name,

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=3ae7dbb24ec7a95a2f4d4e390c9b6622221c2f42$ // $hash=c82f41d81f5afa5ed6995693e012c13d2a609f88$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=50e59e2d7038a1be0d3a2451c9b7073aee5156ef$ // $hash=598c6f530b2e2553197d8c6a72ad9e2bf72b5443$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=46a6432f66cce88d8597c3d070681b09a712dc54$ // $hash=5c6e0b9e37b8103a182f200fccdf5973104fcd70$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
@@ -90,7 +90,7 @@ extern "C" {
/// If "AppName" is set on Windows then crash report information (metrics, /// If "AppName" is set on Windows then crash report information (metrics,
/// database and dumps) will be stored locally on disk under the /// database and dumps) will be stored locally on disk under the
/// "C:\Users\[CurrentUser]\AppData\Local\[AppName]\User Data" folder. On other /// "C:\Users\[CurrentUser]\AppData\Local\[AppName]\User Data" folder. On other
/// platforms the cef_settings_t.root_cache_path value will be used. /// platforms the cef_settings_t.user_data_path value will be used.
/// ///
/// If "ExternalHandler" is set on Windows then the specified exe will be /// If "ExternalHandler" is set on Windows then the specified exe will be
/// launched as the crashpad-handler instead of re-launching the main process /// launched as the crashpad-handler instead of re-launching the main process

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=dd94c50619e92bf5bed4fe61479813ee559f779d$ // $hash=777485120b9a9df0f890579ee698d33f273819c5$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5644fdc2453dd083079bf9e3616b687eeb49f250$ // $hash=69545645f079f4593d9cbb6d8a36535c209245f7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5a99c5e88ea0e123087234b2795fa625fed183f2$ // $hash=1de3354bd0a042cc28199f1f56753b1df9e279a2$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
@@ -84,13 +84,8 @@ typedef struct _cef_display_handler_t {
/// Called when web content in the page has toggled fullscreen mode. If /// Called when web content in the page has toggled fullscreen mode. If
/// |fullscreen| is true (1) the content will automatically be sized to fill /// |fullscreen| is true (1) the content will automatically be sized to fill
/// the browser content area. If |fullscreen| is false (0) the content will /// the browser content area. If |fullscreen| is false (0) the content will
/// automatically return to its original size and position. With the Alloy /// automatically return to its original size and position. The client is
/// runtime the client is responsible for triggering the fullscreen transition /// responsible for resizing the browser if desired.
/// (for example, by calling cef_window_t::SetFullscreen when using Views).
/// With the Chrome runtime the fullscreen transition will be triggered
/// automatically. The cef_window_delegate_t::OnWindowFullscreenTransition
/// function will be called during the fullscreen transition for notification
/// purposes.
/// ///
void(CEF_CALLBACK* on_fullscreen_mode_change)( void(CEF_CALLBACK* on_fullscreen_mode_change)(
struct _cef_display_handler_t* self, struct _cef_display_handler_t* self,

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=a4d2f79163205ed4367916546240a6aedc2165f9$ // $hash=d703b8af664ed9dfac8ad935616ef43fafc062e2$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
@@ -209,7 +209,8 @@ typedef struct _cef_domnode_t {
/// ///
/// Returns the type of this form control element node. /// Returns the type of this form control element node.
/// ///
cef_dom_form_control_type_t(CEF_CALLBACK* get_form_control_element_type)( // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_form_control_element_type)(
struct _cef_domnode_t* self); struct _cef_domnode_t* self);
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=60a08a60be70e8fe5df17f18f8e5758e1830d5e1$ // $hash=f1f6a110a7ce15611a7062b3d7fe8b5c630f2980$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=9af8ade3addfd112db41792c4e80682a8143e8c4$ // $hash=332b9cb62b9c85573dc705aba4c9db3b34177e20$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
@@ -72,25 +72,14 @@ typedef struct _cef_download_item_t {
int(CEF_CALLBACK* is_complete)(struct _cef_download_item_t* self); int(CEF_CALLBACK* is_complete)(struct _cef_download_item_t* self);
/// ///
/// Returns true (1) if the download has been canceled. /// Returns true (1) if the download has been canceled or interrupted.
/// ///
int(CEF_CALLBACK* is_canceled)(struct _cef_download_item_t* self); int(CEF_CALLBACK* is_canceled)(struct _cef_download_item_t* self);
///
/// Returns true (1) if the download has been interrupted.
///
int(CEF_CALLBACK* is_interrupted)(struct _cef_download_item_t* self);
///
/// Returns the most recent interrupt reason.
///
cef_download_interrupt_reason_t(CEF_CALLBACK* get_interrupt_reason)(
struct _cef_download_item_t* self);
/// ///
/// Returns a simple speed estimate in bytes/s. /// Returns a simple speed estimate in bytes/s.
/// ///
int64_t(CEF_CALLBACK* get_current_speed)(struct _cef_download_item_t* self); int64(CEF_CALLBACK* get_current_speed)(struct _cef_download_item_t* self);
/// ///
/// Returns the rough percent complete or -1 if the receive total size is /// Returns the rough percent complete or -1 if the receive total size is
@@ -101,12 +90,12 @@ typedef struct _cef_download_item_t {
/// ///
/// Returns the total number of bytes. /// Returns the total number of bytes.
/// ///
int64_t(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self); int64(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self);
/// ///
/// Returns the number of received bytes. /// Returns the number of received bytes.
/// ///
int64_t(CEF_CALLBACK* get_received_bytes)(struct _cef_download_item_t* self); int64(CEF_CALLBACK* get_received_bytes)(struct _cef_download_item_t* self);
/// ///
/// Returns the time that the download started. /// Returns the time that the download started.
@@ -129,7 +118,7 @@ typedef struct _cef_download_item_t {
/// ///
/// Returns the unique identifier for this download. /// Returns the unique identifier for this download.
/// ///
uint32_t(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self); uint32(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self);
/// ///
/// Returns the URL. /// Returns the URL.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=a096775255ddc4d7616095e48e7370bd87bf4bb5$ // $hash=a1ce746f0dd97d21973d4c80d8ef46391c0fd463$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
@@ -149,13 +149,6 @@ typedef struct _cef_drag_data_t {
int(CEF_CALLBACK* get_file_names)(struct _cef_drag_data_t* self, int(CEF_CALLBACK* get_file_names)(struct _cef_drag_data_t* self,
cef_string_list_t names); cef_string_list_t names);
///
/// Retrieve the list of file paths that are being dragged into the browser
/// window.
///
int(CEF_CALLBACK* get_file_paths)(struct _cef_drag_data_t* self,
cef_string_list_t paths);
/// ///
/// Set the link URL that is being dragged. /// Set the link URL that is being dragged.
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=0723a2a59d46e465ac94f198351dc871f0b35b96$ // $hash=ad16b0f4320d7b363efb152a65e3ce142882b9d9$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=0ca2b788f70f8c9f5b2706d691d8e063be00ed19$ // $hash=c81a74622b987483e5fcd2c508aec5c13e12389b$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5cfff4465a586d2b2ea7b54a9549096faec415f6$ // $hash=ad6d3845b150f22b88a71dafa601ef01c9579824$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=e10581d1f6aeb104646ae106aaa5fb36016643dd$ // $hash=4e0e0abcb72327998df950e618b147b196e76b60$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=da0a9242b309fbd70d19949fb1c5b4ec4475ef94$ // $hash=8149c82dd6671d676ee62cb6749bf30b32a5832c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=6eefc2c650908461fb7536dd3314c77a3f89dceb$ // $hash=53ec33c8937c735f646f9e0a14a416218e32887c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=7294486141b2377198e994048a768db4a7cb9cd0$ // $hash=b9b1308311999efcfd2aa678472f934ca783492c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
@@ -181,7 +181,7 @@ typedef struct _cef_frame_t {
/// Returns the globally unique identifier for this frame or < 0 if the /// Returns the globally unique identifier for this frame or < 0 if the
/// underlying frame does not yet exist. /// underlying frame does not yet exist.
/// ///
int64_t(CEF_CALLBACK* get_identifier)(struct _cef_frame_t* self); int64(CEF_CALLBACK* get_identifier)(struct _cef_frame_t* self);
/// ///
/// Returns the parent of this frame or NULL if this is the main (top-level) /// Returns the parent of this frame or NULL if this is the main (top-level)
@@ -216,16 +216,24 @@ typedef struct _cef_frame_t {
/// ///
/// Create a new URL request that will be treated as originating from this /// Create a new URL request that will be treated as originating from this
/// frame and the associated browser. Use cef_urlrequest_t::Create instead if /// frame and the associated browser. This request may be intercepted by the
/// you do not want the request to have this association, in which case it may /// client via cef_resource_request_handler_t or cef_scheme_handler_factory_t.
/// be handled differently (see documentation on that function). A request /// Use cef_urlrequest_t::Create instead if you do not want the request to
/// created with this function may only originate from the browser process, /// have this association, in which case it may be handled differently (see
/// and will behave as follows: /// documentation on that function). Requests may originate from both the
/// - It may be intercepted by the client via CefResourceRequestHandler or /// browser process and the render process.
/// CefSchemeHandlerFactory. ///
/// For requests originating from the browser process:
/// - POST data may only contain a single element of type PDE_TYPE_FILE or /// - POST data may only contain a single element of type PDE_TYPE_FILE or
/// PDE_TYPE_BYTES. /// PDE_TYPE_BYTES.
/// ///
/// For requests originating from the render process:
/// - POST data may only contain a single element of type PDE_TYPE_BYTES.
/// - If the response contains Content-Disposition or Mime-Type header
/// values that would not normally be rendered then the response may
/// receive special handling inside the browser (for example, via the
/// file download code path instead of the URL request code path).
///
/// The |request| object will be marked as read-only after calling this /// The |request| object will be marked as read-only after calling this
/// function. /// function.
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=fc6fbee765ce2b649f5293c8c4b076d36014e4aa$ // $hash=4cdadeb6439415d60ec32249c3a0b6457dd586f7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FRAME_HANDLER_CAPI_H_
@@ -53,41 +53,48 @@ extern "C" {
/// The order of callbacks is: /// The order of callbacks is:
/// ///
/// (1) During initial cef_browser_host_t creation and navigation of the main /// (1) During initial cef_browser_host_t creation and navigation of the main
/// frame: /// frame: - cef_frame_handler_t::OnFrameCreated => The initial main frame
/// - cef_frame_handler_t::OnFrameCreated => The initial main frame object has /// object has been
/// been created. Any commands will be queued until the frame is attached. /// created. Any commands will be queued until the frame is attached.
/// - cef_frame_handler_t::OnMainFrameChanged => The initial main frame object /// - cef_frame_handler_t::OnMainFrameChanged => The initial main frame object
/// has been assigned to the browser. /// has
/// been assigned to the browser.
/// - cef_life_span_handler_t::OnAfterCreated => The browser is now valid and /// - cef_life_span_handler_t::OnAfterCreated => The browser is now valid and
/// can be used. /// can be
/// used.
/// - cef_frame_handler_t::OnFrameAttached => The initial main frame object is /// - cef_frame_handler_t::OnFrameAttached => The initial main frame object is
/// now connected to its peer in the renderer process. Commands can be routed. /// now
/// connected to its peer in the renderer process. Commands can be routed.
/// ///
/// (2) During further cef_browser_host_t navigation/loading of the main frame /// (2) During further cef_browser_host_t navigation/loading of the main frame
/// and/or sub-frames: /// and/or sub-frames:
/// - cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame /// - cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame
/// object has been created. Any commands will be queued until the frame is /// object
/// attached. /// has been created. Any commands will be queued until the frame is attached.
/// - cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame /// - cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame
/// object is now connected to its peer in the renderer process. Commands can /// object
/// be routed. /// is now connected to its peer in the renderer process. Commands can be
/// routed.
/// - cef_frame_handler_t::OnFrameDetached => An existing main frame or sub- /// - cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-
/// frame object has lost its connection to the renderer process. If multiple /// frame
/// object has lost its connection to the renderer process. If multiple
/// objects are detached at the same time then notifications will be sent for /// objects are detached at the same time then notifications will be sent for
/// any sub-frame objects before the main frame object. Commands can no longer /// any sub-frame objects before the main frame object. Commands can no longer
/// be routed and will be discarded. /// be routed and will be discarded.
/// - cef_frame_handler_t::OnMainFrameChanged => A new main frame object has /// - cef_frame_handler_t::OnMainFrameChanged => A new main frame object has
/// been assigned to the browser. This will only occur with cross-origin /// been
/// navigation or re-navigation after renderer process termination (due to /// assigned to the browser. This will only occur with cross-origin navigation
/// crashes, etc). /// or re-navigation after renderer process termination (due to crashes, etc).
/// ///
/// (3) During final cef_browser_host_t destruction of the main frame: /// (3) During final cef_browser_host_t destruction of the main frame: -
/// - cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost /// cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost
/// their connection to the renderer process. Commands can no longer be routed /// their
/// and will be discarded. /// connection to the renderer process. Commands can no longer be routed and
/// will be discarded.
/// - cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed. /// - cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.
/// - cef_frame_handler_t::OnFrameDetached => The main frame object have lost /// - cef_frame_handler_t::OnFrameDetached => The main frame object have lost
/// its connection to the renderer process. Notifications will be sent for any /// its
/// connection to the renderer process. Notifications will be sent for any
/// sub-frame objects before the main frame object. Commands can no longer be /// sub-frame objects before the main frame object. Commands can no longer be
/// routed and will be discarded. /// routed and will be discarded.
/// - cef_frame_handler_t::OnMainFrameChanged => The final main frame object has /// - cef_frame_handler_t::OnMainFrameChanged => The final main frame object has
@@ -104,7 +111,7 @@ extern "C" {
/// will then be discarded after the real cross-origin sub-frame is created in /// will then be discarded after the real cross-origin sub-frame is created in
/// the new/target renderer process. The client will receive cross-origin /// the new/target renderer process. The client will receive cross-origin
/// navigation callbacks (2) for the transition from the temporary sub-frame to /// navigation callbacks (2) for the transition from the temporary sub-frame to
/// the real sub-frame. The temporary sub-frame will not receive or execute /// the real sub-frame. The temporary sub-frame will not recieve or execute
/// commands during this transitional period (any sent commands will be /// commands during this transitional period (any sent commands will be
/// discarded). /// discarded).
/// ///
@@ -112,7 +119,7 @@ extern "C" {
/// browser, a temporary main frame object for the popup will first be created /// browser, a temporary main frame object for the popup will first be created
/// in the parent's renderer process. That temporary main frame will then be /// in the parent's renderer process. That temporary main frame will then be
/// discarded after the real cross-origin main frame is created in the /// discarded after the real cross-origin main frame is created in the
/// new/target renderer process. The client will receive creation and initial /// new/target renderer process. The client will recieve creation and initial
/// navigation callbacks (1) for the temporary main frame, followed by cross- /// navigation callbacks (1) for the temporary main frame, followed by cross-
/// origin navigation callbacks (2) for the transition from the temporary main /// origin navigation callbacks (2) for the transition from the temporary main
/// frame to the real main frame. The temporary main frame may receive and /// frame to the real main frame. The temporary main frame may receive and

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=990e80ab5ae04298e6b70cbc0a67115825563251$ // $hash=c564ee1f32a0ef05fe49fc779af5bc0b0e1b36d6$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_I18N_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_I18N_UTIL_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=7512ccf755017d5b1866b753890b498e8163006d$ // $hash=99c94b208f9b184985220493bba4ea08e6786046$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c6810367ba3a17824247dcb17f87040cd021c295$ // $hash=e9fb0354243611f3a4de508923a4e01dab42f82d$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=0bfe161c51cc6378b2e8e2e2b2c017b750b46864$ // $hash=10fb708c5f550403205a976924abf1886bf3dfa7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=54edf9e9c2a12acdc4cab55079a4a5cb8e2a1e43$ // $hash=1c807597b96889f44a1e5199e860e8db4948b473$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
@@ -100,34 +100,6 @@ typedef struct _cef_life_span_handler_t {
struct _cef_dictionary_value_t** extra_info, struct _cef_dictionary_value_t** extra_info,
int* no_javascript_access); int* no_javascript_access);
///
/// Called on the UI thread before a new DevTools popup browser is created.
/// The |browser| value represents the source of the popup request. Optionally
/// modify |windowInfo|, |client|, |settings| and |extra_info| values. The
/// |client|, |settings| and |extra_info| values will default to the source
/// browser's values. Any modifications to |windowInfo| will be ignored if the
/// parent browser is Views-hosted (wrapped in a cef_browser_view_t).
///
/// The |extra_info| parameter provides an opportunity to specify extra
/// information specific to the created popup browser that will be passed to
/// cef_render_process_handler_t::on_browser_created() in the render process.
/// The existing |extra_info| object, if any, will be read-only but may be
/// replaced with a new object.
///
/// Views-hosted source browsers will create Views-hosted DevTools popups
/// unless |use_default_window| is set to to true (1). DevTools popups can be
/// blocked by returning true (1) from cef_command_handler_t::OnChromeCommand
/// for IDC_DEV_TOOLS. Only used with the Chrome runtime.
///
void(CEF_CALLBACK* on_before_dev_tools_popup)(
struct _cef_life_span_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_window_info_t* windowInfo,
struct _cef_client_t** client,
struct _cef_browser_settings_t* settings,
struct _cef_dictionary_value_t** extra_info,
int* use_default_window);
/// ///
/// Called after a new browser is created. It is now safe to begin performing /// Called after a new browser is created. It is now safe to begin performing
/// actions with |browser|. cef_frame_handler_t callbacks related to initial /// actions with |browser|. cef_frame_handler_t callbacks related to initial
@@ -138,7 +110,7 @@ typedef struct _cef_life_span_handler_t {
struct _cef_browser_t* browser); struct _cef_browser_t* browser);
/// ///
/// Called when a browser has received a request to close. This may result /// Called when a browser has recieved a request to close. This may result
/// directly from a call to cef_browser_host_t::*close_browser() or indirectly /// directly from a call to cef_browser_host_t::*close_browser() or indirectly
/// if the browser is parented to a top-level window created by CEF and the /// if the browser is parented to a top-level window created by CEF and the
/// user attempts to close that window (by clicking the 'X', for example). The /// user attempts to close that window (by clicking the 'X', for example). The

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=eb842e65cd2e7c4a8a6baa2813b57ac0d3977261$ // $hash=1ee684174554f7d1cf8899992705d072c1c56ae7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=62e7e781f3fef0d332b6a921d48a192fd0115295$ // $hash=333350f8141cc925d16df2edc8c21a720a1008f0$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
@@ -156,7 +156,7 @@ typedef struct _cef_media_observer_t {
cef_media_route_connection_state_t state); cef_media_route_connection_state_t state);
/// ///
/// A message was received over |route|. |message| is only valid for the scope /// A message was recieved over |route|. |message| is only valid for the scope
/// of this callback and should be copied if necessary. /// of this callback and should be copied if necessary.
/// ///
void(CEF_CALLBACK* on_route_message_received)( void(CEF_CALLBACK* on_route_message_received)(
@@ -257,6 +257,13 @@ typedef struct _cef_media_sink_t {
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_name)(struct _cef_media_sink_t* self); cef_string_userfree_t(CEF_CALLBACK* get_name)(struct _cef_media_sink_t* self);
///
/// Returns the description of this sink.
///
// The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_description)(
struct _cef_media_sink_t* self);
/// ///
/// Returns the icon type for this sink. /// Returns the icon type for this sink.
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5dae0b1a1271e79a5fd9b2c6e71e7a719a450161$ // $hash=d70b78b8108bb08b4f53b2627ed4ebfdffece7c1$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
@@ -473,15 +473,14 @@ typedef struct _cef_menu_model_t {
/// ///
/// Sets the font list for the specified |command_id|. If |font_list| is NULL /// Sets the font list for the specified |command_id|. If |font_list| is NULL
/// the system font will be used. Returns true (1) on success. The format is /// the system font will be used. Returns true (1) on success. The format is
/// "<FONT_FAMILY_LIST>,[STYLES] <SIZE>", where: /// "<FONT_FAMILY_LIST>,[STYLES] <SIZE>", where: - FONT_FAMILY_LIST is a
/// - FONT_FAMILY_LIST is a comma-separated list of font family names, /// comma-separated list of font family names, - STYLES is an optional space-
/// - STYLES is an optional space-separated list of style names (case- /// separated list of style names
/// sensitive "Bold" and "Italic" are supported), and /// (case-sensitive "Bold" and "Italic" are supported), and
/// - SIZE is an integer font size in pixels with the suffix "px". /// - SIZE is an integer font size in pixels with the suffix "px".
/// ///
/// Here are examples of valid font description strings: /// Here are examples of valid font description strings: - "Arial, Helvetica,
/// - "Arial, Helvetica, Bold Italic 14px" /// Bold Italic 14px" - "Arial, 14px"
/// - "Arial, 14px"
/// ///
int(CEF_CALLBACK* set_font_list)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_font_list)(struct _cef_menu_model_t* self,
int command_id, int command_id,
@@ -489,15 +488,16 @@ typedef struct _cef_menu_model_t {
/// ///
/// Sets the font list for the specified |index|. Specify an |index| value of /// Sets the font list for the specified |index|. Specify an |index| value of
/// - 1 to set the default font. If |font_list| is NULL the system font will /// -1 to set the default font. If |font_list| is NULL the system font will be
/// - FONT_FAMILY_LIST is a comma-separated list of font family names, /// used. Returns true (1) on success. The format is
/// - STYLES is an optional space-separated list of style names (case- /// "<FONT_FAMILY_LIST>,[STYLES] <SIZE>", where: - FONT_FAMILY_LIST is a
/// sensitive "Bold" and "Italic" are supported), and /// comma-separated list of font family names, - STYLES is an optional space-
/// separated list of style names
/// (case-sensitive "Bold" and "Italic" are supported), and
/// - SIZE is an integer font size in pixels with the suffix "px". /// - SIZE is an integer font size in pixels with the suffix "px".
/// ///
/// Here are examples of valid font description strings: /// Here are examples of valid font description strings: - "Arial, Helvetica,
/// - "Arial, Helvetica, Bold Italic 14px" /// Bold Italic 14px" - "Arial, 14px"
/// - "Arial, 14px"
/// ///
int(CEF_CALLBACK* set_font_list_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_font_list_at)(struct _cef_menu_model_t* self,
int index, int index,

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=01bdeaf96ea01591689b52b0955504644d6614b8$ // $hash=933a90dfb7b94a3aba7f2944e4540662dc8c79d7$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=dbdac05f2ebd8e8a357eacfe5095676a5bd5b1ac$ // $hash=d33771c31b7b0964aa2ccf1c2bc2ca1226194977$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=f146fd9172033e77e90994841df9fa55ff71aa4b$ // $hash=b564dfe24017a0805e393854d12791a71c46c454$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_
@@ -70,7 +70,7 @@ extern "C" {
/// qualified |source_origin| URL (like http://www.example.com) will be allowed /// qualified |source_origin| URL (like http://www.example.com) will be allowed
/// access to all resources hosted on the specified |target_protocol| and /// access to all resources hosted on the specified |target_protocol| and
/// |target_domain|. If |target_domain| is non-NULL and /// |target_domain|. If |target_domain| is non-NULL and
/// |allow_target_subdomains| is false (0) only exact domain matches will be /// |allow_target_subdomains| if false (0) only exact domain matches will be
/// allowed. If |target_domain| contains a top- level domain component (like /// allowed. If |target_domain| contains a top- level domain component (like
/// "example.com") and |allow_target_subdomains| is true (1) sub-domain matches /// "example.com") and |allow_target_subdomains| is true (1) sub-domain matches
/// will be allowed. If |target_domain| is NULL and |allow_target_subdomains| if /// will be allowed. If |target_domain| is NULL and |allow_target_subdomains| if

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=8accded29b97df1549e86e58d8976fe0f800359a$ // $hash=5d6dad4bfaeef0117d068b6e67a8da7490fe7c2d$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ee0c50b4e1f51fb2286da24bb9244ae74f3b0c6f$ // $hash=70b306534b9cb8334c9ea260feacfd8f2f503292$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c9b3913701581cd6a1077fa3a39d197f338a2507$ // $hash=bc44eb70b7f0b48e0646825e919cb9996ac99781$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PERMISSION_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PERMISSION_HANDLER_CAPI_H_
@@ -66,7 +66,7 @@ typedef struct _cef_media_access_callback_t {
/// OnRequestMediaAccessPermission. /// OnRequestMediaAccessPermission.
/// ///
void(CEF_CALLBACK* cont)(struct _cef_media_access_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_media_access_callback_t* self,
uint32_t allowed_permissions); uint32 allowed_permissions);
/// ///
/// Cancel the media access request. /// Cancel the media access request.
@@ -119,7 +119,7 @@ typedef struct _cef_permission_handler_t {
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
struct _cef_frame_t* frame, struct _cef_frame_t* frame,
const cef_string_t* requesting_origin, const cef_string_t* requesting_origin,
uint32_t requested_permissions, uint32 requested_permissions,
struct _cef_media_access_callback_t* callback); struct _cef_media_access_callback_t* callback);
/// ///
@@ -136,9 +136,9 @@ typedef struct _cef_permission_handler_t {
int(CEF_CALLBACK* on_show_permission_prompt)( int(CEF_CALLBACK* on_show_permission_prompt)(
struct _cef_permission_handler_t* self, struct _cef_permission_handler_t* self,
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
uint64_t prompt_id, uint64 prompt_id,
const cef_string_t* requesting_origin, const cef_string_t* requesting_origin,
uint32_t requested_permissions, uint32 requested_permissions,
struct _cef_permission_prompt_callback_t* callback); struct _cef_permission_prompt_callback_t* callback);
/// ///
@@ -153,7 +153,7 @@ typedef struct _cef_permission_handler_t {
void(CEF_CALLBACK* on_dismiss_permission_prompt)( void(CEF_CALLBACK* on_dismiss_permission_prompt)(
struct _cef_permission_handler_t* self, struct _cef_permission_handler_t* self,
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
uint64_t prompt_id, uint64 prompt_id,
cef_permission_request_result_t result); cef_permission_request_result_t result);
} cef_permission_handler_t; } cef_permission_handler_t;

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=1c0e469a283538945834404bcd5934b9bb9a0756$ // $hash=922659242ea25c52d02884a7cc5918d086cbfaca$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PREFERENCE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PREFERENCE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=96d5b6c0dc8f2575e686fb79684c63787cdfe876$ // $hash=d09937fb047debd9da39c4072a434659b3c5682c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=63977fcbe4567db202914f69539f49b254352053$ // $hash=46508464579e797d4684f4a7facdb39f9bdb312b$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=89c569df7e5e4a6035d4527218ce4dc1d68e20f0$ // $hash=e20a8d6a5803dae5ba156adde40c8b964899b176$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=a61a639c7e53ecd9481eae363bac557055f0442e$ // $hash=88c42c5f216798304b07bfe985296014cf65996c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
@@ -50,11 +50,11 @@ extern "C" {
/// Launches the process specified via |command_line|. Returns true (1) upon /// Launches the process specified via |command_line|. Returns true (1) upon
/// success. Must be called on the browser process TID_PROCESS_LAUNCHER thread. /// success. Must be called on the browser process TID_PROCESS_LAUNCHER thread.
/// ///
/// Unix-specific notes: /// Unix-specific notes: - All file descriptors open in the parent process will
/// - All file descriptors open in the parent process will be closed in the /// be closed in the
/// child process except for stdin, stdout, and stderr. /// child process except for stdin, stdout, and stderr.
/// - If the first argument on the command line does not contain a slash, PATH /// - If the first argument on the command line does not contain a slash,
/// will be searched. (See man execvp.) /// PATH will be searched. (See man execvp.)
/// ///
CEF_EXPORT int cef_launch_process(struct _cef_command_line_t* command_line); CEF_EXPORT int cef_launch_process(struct _cef_command_line_t* command_line);

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c53a67bbf1497a51766bf03040714b5edb2117d5$ // $hash=b1b38a3171dd3626029e70e75b482dfa3531215b$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5309b2f6da62526ed92c928c0918bc27898cf03b$ // $hash=32d8176f39b05487bae048990b2dee3212ae3b78$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=6e2fccb5a8e49918d723f6c5223062cf98b0f9de$ // $hash=d807c7566ce3085243e9e7ea279fee7241acfc5f$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=14ce483864835eca476d08d39ed4236fbd1a874c$ // $hash=3339290cad3a77c8b0b07d422f0faf902a047838$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
@@ -214,7 +214,7 @@ typedef struct _cef_request_t {
/// in the browser process to track a single request across multiple /// in the browser process to track a single request across multiple
/// callbacks. /// callbacks.
/// ///
uint64_t(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self); uint64(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
} cef_request_t; } cef_request_t;
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=23302ef6e4458aa3e7065aeaca3421a6f0b58361$ // $hash=c2a6265e8e9acce475a8b5755a8c58b97b495207$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
@@ -46,7 +46,6 @@
#include "include/capi/cef_extension_handler_capi.h" #include "include/capi/cef_extension_handler_capi.h"
#include "include/capi/cef_media_router_capi.h" #include "include/capi/cef_media_router_capi.h"
#include "include/capi/cef_preference_capi.h" #include "include/capi/cef_preference_capi.h"
#include "include/capi/cef_values_capi.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@@ -302,72 +301,6 @@ typedef struct _cef_request_context_t {
struct _cef_media_router_t*(CEF_CALLBACK* get_media_router)( struct _cef_media_router_t*(CEF_CALLBACK* get_media_router)(
struct _cef_request_context_t* self, struct _cef_request_context_t* self,
struct _cef_completion_callback_t* callback); struct _cef_completion_callback_t* callback);
///
/// Returns the current value for |content_type| that applies for the
/// specified URLs. If both URLs are NULL the default value will be returned.
/// Returns nullptr if no value is configured. Must be called on the browser
/// process UI thread.
///
struct _cef_value_t*(CEF_CALLBACK* get_website_setting)(
struct _cef_request_context_t* self,
const cef_string_t* requesting_url,
const cef_string_t* top_level_url,
cef_content_setting_types_t content_type);
///
/// Sets the current value for |content_type| for the specified URLs in the
/// default scope. If both URLs are NULL, and the context is not incognito,
/// the default value will be set. Pass nullptr for |value| to remove the
/// default value for this content type.
///
/// WARNING: Incorrect usage of this function may cause instability or
/// security issues in Chromium. Make sure that you first understand the
/// potential impact of any changes to |content_type| by reviewing the related
/// source code in Chromium. For example, if you plan to modify
/// CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of
/// ContentSettingsType::POPUPS in Chromium:
/// https://source.chromium.org/search?q=ContentSettingsType::POPUPS
///
void(CEF_CALLBACK* set_website_setting)(
struct _cef_request_context_t* self,
const cef_string_t* requesting_url,
const cef_string_t* top_level_url,
cef_content_setting_types_t content_type,
struct _cef_value_t* value);
///
/// Returns the current value for |content_type| that applies for the
/// specified URLs. If both URLs are NULL the default value will be returned.
/// Returns CEF_CONTENT_SETTING_VALUE_DEFAULT if no value is configured. Must
/// be called on the browser process UI thread.
///
cef_content_setting_values_t(CEF_CALLBACK* get_content_setting)(
struct _cef_request_context_t* self,
const cef_string_t* requesting_url,
const cef_string_t* top_level_url,
cef_content_setting_types_t content_type);
///
/// Sets the current value for |content_type| for the specified URLs in the
/// default scope. If both URLs are NULL, and the context is not incognito,
/// the default value will be set. Pass CEF_CONTENT_SETTING_VALUE_DEFAULT for
/// |value| to use the default value for this content type.
///
/// WARNING: Incorrect usage of this function may cause instability or
/// security issues in Chromium. Make sure that you first understand the
/// potential impact of any changes to |content_type| by reviewing the related
/// source code in Chromium. For example, if you plan to modify
/// CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of
/// ContentSettingsType::POPUPS in Chromium:
/// https://source.chromium.org/search?q=ContentSettingsType::POPUPS
///
void(CEF_CALLBACK* set_content_setting)(
struct _cef_request_context_t* self,
const cef_string_t* requesting_url,
const cef_string_t* top_level_url,
cef_content_setting_types_t content_type,
cef_content_setting_values_t value);
} cef_request_context_t; } cef_request_context_t;
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d90d816565429ad304f43490b0619af5ffa70274$ // $hash=b0b532a12106d960adc446b980affeee12b93ae3$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=3b59c0bc014d773dedc24649071141ee2dd2125c$ // $hash=092d897e223273a940ed623547d82645f764519c$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d97d3ca6c8d610627538c58f3b4ba3869f3d9ac7$ // $hash=e8e8dd2730a47aad9414f7bfc2e6ad96aba2c875$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b25f3131d67980e493da4d7e484676d000334995$ // $hash=00023b2ec108ae6e4bd282d16e82032cdc99d548$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ad8218a8ac9e313884110e72bb2af32ec916907f$ // $hash=93e5c4f5e93f56b63b5944208300669dcecba972$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_
@@ -67,7 +67,7 @@ typedef struct _cef_resource_skip_callback_t {
/// 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE. /// 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE.
/// ///
void(CEF_CALLBACK* cont)(struct _cef_resource_skip_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_resource_skip_callback_t* self,
int64_t bytes_skipped); int64 bytes_skipped);
} cef_resource_skip_callback_t; } cef_resource_skip_callback_t;
/// ///
@@ -146,7 +146,7 @@ typedef struct _cef_resource_handler_t {
/// ///
void(CEF_CALLBACK* get_response_headers)(struct _cef_resource_handler_t* self, void(CEF_CALLBACK* get_response_headers)(struct _cef_resource_handler_t* self,
struct _cef_response_t* response, struct _cef_response_t* response,
int64_t* response_length, int64* response_length,
cef_string_t* redirectUrl); cef_string_t* redirectUrl);
/// ///
@@ -159,8 +159,8 @@ typedef struct _cef_resource_handler_t {
/// function will be called in sequence but not from a dedicated thread. /// function will be called in sequence but not from a dedicated thread.
/// ///
int(CEF_CALLBACK* skip)(struct _cef_resource_handler_t* self, int(CEF_CALLBACK* skip)(struct _cef_resource_handler_t* self,
int64_t bytes_to_skip, int64 bytes_to_skip,
int64_t* bytes_skipped, int64* bytes_skipped,
struct _cef_resource_skip_callback_t* callback); struct _cef_resource_skip_callback_t* callback);
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c4416644786e3c1999cdcd7e6bf78af94ff7f0da$ // $hash=70d6b393cbdc96a75864911d7ca3568cc8dcdebf$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_REQUEST_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_REQUEST_HANDLER_CAPI_H_
@@ -188,7 +188,7 @@ typedef struct _cef_resource_request_handler_t {
struct _cef_request_t* request, struct _cef_request_t* request,
struct _cef_response_t* response, struct _cef_response_t* response,
cef_urlrequest_status_t status, cef_urlrequest_status_t status,
int64_t received_content_length); int64 received_content_length);
/// ///
/// Called on the IO thread to handle requests for URLs with an unknown /// Called on the IO thread to handle requests for URLs with an unknown

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=de559e5cd4b539ce129beab8f7627576c4249cd5$ // $hash=7fbcd399c08dc39e33a7d0400a49f2e3a551bd02$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=1c83177e8030f7637d8ce0aa68831e417fbf37d3$ // $hash=2c9b14a86ee6777e4834eadcfc95802f2dedb11a$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ba8011bd357e466a94acfd86597f44af00f096a3$ // $hash=6b6a7f754abc9ee5d6f775ba9eee802d3244faf5$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b85c5d4060c951571f122e519e7dc7e9a4c4e629$ // $hash=64e9ebc0e01acca0333ca3419e379d4053892270$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_
@@ -153,7 +153,7 @@ typedef struct _cef_server_t {
int connection_id, int connection_id,
int response_code, int response_code,
const cef_string_t* content_type, const cef_string_t* content_type,
int64_t content_length, int64 content_length,
cef_string_multimap_t extra_headers); cef_string_multimap_t extra_headers);
/// ///
@@ -203,7 +203,7 @@ typedef struct _cef_server_t {
/// server lifespan. /// server lifespan.
/// ///
CEF_EXPORT void cef_server_create(const cef_string_t* address, CEF_EXPORT void cef_server_create(const cef_string_t* address,
uint16_t port, uint16 port,
int backlog, int backlog,
struct _cef_server_handler_t* handler); struct _cef_server_handler_t* handler);

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=3d208a996f65f37012460edb1890773218580913$ // $hash=08f64795d78bdad29a45222a7263e795ce77a52d$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SHARED_MEMORY_REGION_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SHARED_MEMORY_REGION_CAPI_H_
@@ -69,7 +69,7 @@ typedef struct _cef_shared_memory_region_t {
/// Returns the pointer to the memory. Returns nullptr for invalid instances. /// Returns the pointer to the memory. Returns nullptr for invalid instances.
/// The returned pointer is only valid for the life span of this object. /// The returned pointer is only valid for the life span of this object.
/// ///
void*(CEF_CALLBACK* memory)(struct _cef_shared_memory_region_t* self); const void*(CEF_CALLBACK* memory)(struct _cef_shared_memory_region_t* self);
} cef_shared_memory_region_t; } cef_shared_memory_region_t;
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=1ae66f6ec465fda2d62530f5871efd58c89e7568$ // $hash=1a2d8806256d04362f181350db2835850cb3e0ae$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SHARED_PROCESS_MESSAGE_BUILDER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SHARED_PROCESS_MESSAGE_BUILDER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d781f3791df17c6d6adc4414e8534a6b13a54ff2$ // $hash=99dff3042ea437ecf5771eff9b3cab4c22190534$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=1d224cc81c5a42ce8d7de172ff7341f1e0785f46$ // $hash=034a68aa4901cde95e12a7900cfc65753fbde345$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=f55fa17800b9a63d128fb78201372754f9250875$ // $hash=bbb4153d5d7325ac9a410d7f85a8d47eadcfaf6e$
// //
#ifndef CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_
@@ -70,13 +70,13 @@ typedef struct _cef_read_handler_t {
/// failure. /// failure.
/// ///
int(CEF_CALLBACK* seek)(struct _cef_read_handler_t* self, int(CEF_CALLBACK* seek)(struct _cef_read_handler_t* self,
int64_t offset, int64 offset,
int whence); int whence);
/// ///
/// Return the current offset position. /// Return the current offset position.
/// ///
int64_t(CEF_CALLBACK* tell)(struct _cef_read_handler_t* self); int64(CEF_CALLBACK* tell)(struct _cef_read_handler_t* self);
/// ///
/// Return non-zero if at end of file. /// Return non-zero if at end of file.
@@ -115,13 +115,13 @@ typedef struct _cef_stream_reader_t {
/// failure. /// failure.
/// ///
int(CEF_CALLBACK* seek)(struct _cef_stream_reader_t* self, int(CEF_CALLBACK* seek)(struct _cef_stream_reader_t* self,
int64_t offset, int64 offset,
int whence); int whence);
/// ///
/// Return the current offset position. /// Return the current offset position.
/// ///
int64_t(CEF_CALLBACK* tell)(struct _cef_stream_reader_t* self); int64(CEF_CALLBACK* tell)(struct _cef_stream_reader_t* self);
/// ///
/// Return non-zero if at end of file. /// Return non-zero if at end of file.
@@ -178,13 +178,13 @@ typedef struct _cef_write_handler_t {
/// failure. /// failure.
/// ///
int(CEF_CALLBACK* seek)(struct _cef_write_handler_t* self, int(CEF_CALLBACK* seek)(struct _cef_write_handler_t* self,
int64_t offset, int64 offset,
int whence); int whence);
/// ///
/// Return the current offset position. /// Return the current offset position.
/// ///
int64_t(CEF_CALLBACK* tell)(struct _cef_write_handler_t* self); int64(CEF_CALLBACK* tell)(struct _cef_write_handler_t* self);
/// ///
/// Flush the stream. /// Flush the stream.
@@ -223,13 +223,13 @@ typedef struct _cef_stream_writer_t {
/// failure. /// failure.
/// ///
int(CEF_CALLBACK* seek)(struct _cef_stream_writer_t* self, int(CEF_CALLBACK* seek)(struct _cef_stream_writer_t* self,
int64_t offset, int64 offset,
int whence); int whence);
/// ///
/// Return the current offset position. /// Return the current offset position.
/// ///
int64_t(CEF_CALLBACK* tell)(struct _cef_stream_writer_t* self); int64(CEF_CALLBACK* tell)(struct _cef_stream_writer_t* self);
/// ///
/// Flush the stream. /// Flush the stream.

Some files were not shown because too many files have changed in this diff Show More