mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Compare commits
218 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4bc6a5995a | ||
|
50eaaaacd6 | ||
|
618ea46b1b | ||
|
c12930456b | ||
|
7d89c0c5c2 | ||
|
61438a3253 | ||
|
2c23b20255 | ||
|
13c6ece633 | ||
|
f2ac5f7a0f | ||
|
3ce31844f8 | ||
|
39142413a0 | ||
|
e6b45b0c88 | ||
|
11b97c11bc | ||
|
f08b1fde43 | ||
|
f4af2dd6e6 | ||
|
85d06f2aa0 | ||
|
d43ddec07e | ||
|
b93879688d | ||
|
b024b7ddf2 | ||
|
26e06c4ddc | ||
|
e153def017 | ||
|
7edfbed283 | ||
|
d6af79e7a6 | ||
|
f781ea373f | ||
|
738192addf | ||
|
2b1922746f | ||
|
3b652a9966 | ||
|
cf934a20a7 | ||
|
a9f1ce090a | ||
|
1886f68490 | ||
|
53ef570f57 | ||
|
d3d465b32e | ||
|
2b38e2f793 | ||
|
3837f209e1 | ||
|
21e01d4889 | ||
|
44323082b1 | ||
|
1b74ac5124 | ||
|
b2274f534d | ||
|
3476199bc5 | ||
|
6651523d86 | ||
|
f594ca3785 | ||
|
15caa9858d | ||
|
e6a96e2bec | ||
|
90aea56de6 | ||
|
a2a1b66ea5 | ||
|
8d7001adc3 | ||
|
f3e92b45fc | ||
|
64c2dc13ca | ||
|
a8a96235a8 | ||
|
29938f9cb0 | ||
|
d8ea7363f5 | ||
|
f8dd0dbfb4 | ||
|
bdec92caf8 | ||
|
4ae030fec1 | ||
|
c7d4d9690c | ||
|
39e64d8cc9 | ||
|
262ed72348 | ||
|
27c6a4eabc | ||
|
4df2933516 | ||
|
57d7d89b53 | ||
|
cab404578d | ||
|
ef6ae3071d | ||
|
b064ba08f3 | ||
|
f808926fbd | ||
|
f4ecc23213 | ||
|
0a633e361b | ||
|
2133d8f5b3 | ||
|
445da33efe | ||
|
a4b27a7248 | ||
|
52cb08b973 | ||
|
52a9794659 | ||
|
605c2bac86 | ||
|
01e1a0f44d | ||
|
52b4d7ba5a | ||
|
94d51ffe20 | ||
|
4fc5fb8690 | ||
|
b07a9e1843 | ||
|
8b46735b79 | ||
|
1353677a98 | ||
|
a576150ab5 | ||
|
7a033d7585 | ||
|
1f11ce8700 | ||
|
59bfb32221 | ||
|
04c042d9d1 | ||
|
8603545aef | ||
|
650755a092 | ||
|
71c588c16a | ||
|
0b99f92e97 | ||
|
05930b7bc9 | ||
|
12d0bccbd4 | ||
|
b5386249bd | ||
|
36a645ffd8 | ||
|
3bd2cd78c7 | ||
|
cbdda6b03b | ||
|
6355aaf33b | ||
|
e53bff712a | ||
|
b854992ae6 | ||
|
5042d71408 | ||
|
695ee2a041 | ||
|
cf8b7db4b4 | ||
|
5d8c6799fc | ||
|
bd368f5d3a | ||
|
87a04aba03 | ||
|
df4dddee0b | ||
|
eb63f9e7ae | ||
|
29b5999fd7 | ||
|
5707889555 | ||
|
ecdfd467f8 | ||
|
e5334a5a18 | ||
|
e5c4b27366 | ||
|
c18545a7f5 | ||
|
dc9e64308a | ||
|
b8e1c6a59d | ||
|
cf14b2a972 | ||
|
5a22a5c8a3 | ||
|
5e80ea3371 | ||
|
d0b3042940 | ||
|
de4f9e8908 | ||
|
ab94a13522 | ||
|
09c4142dad | ||
|
e0063880ac | ||
|
7ade772e0b | ||
|
a39c2a0068 | ||
|
17cab6d955 | ||
|
cad2498d87 | ||
|
6569ef09c5 | ||
|
78ea5d8c61 | ||
|
c3648f42b2 | ||
|
f90d5bc49e | ||
|
55e158fe81 | ||
|
5d48f277f2 | ||
|
2094a8e221 | ||
|
4b3c3132cb | ||
|
c83b3cda24 | ||
|
0a2c7a1070 | ||
|
178a44bd18 | ||
|
45d771dfb0 | ||
|
1726176b9b | ||
|
c6872cec5f | ||
|
14dd0c0d06 | ||
|
06af9c85da | ||
|
d509d5833d | ||
|
2c67350605 | ||
|
9ae4da3b38 | ||
|
8b79f9cbe7 | ||
|
3e4f8d1b9c | ||
|
f3b570cf8e | ||
|
d33b67cb33 | ||
|
ae9ede9aa6 | ||
|
584b19967a | ||
|
3c85154faf | ||
|
276423dcfb | ||
|
42f351a40d | ||
|
13f2282754 | ||
|
80cfb3c97c | ||
|
73082fd2ce | ||
|
bc29774553 | ||
|
ff68c01543 | ||
|
400fbf7839 | ||
|
f34406c57d | ||
|
adfa59f690 | ||
|
baf98ee6e9 | ||
|
dc2231cdfb | ||
|
4c41f14360 | ||
|
36ee304ed4 | ||
|
c3c5d6ff37 | ||
|
47d2651ea4 | ||
|
5c4ac32bb9 | ||
|
8b447e3a6f | ||
|
b065ca8cf4 | ||
|
2b906c31b5 | ||
|
b65d59f27e | ||
|
606e5dddf3 | ||
|
4f336c110b | ||
|
aae420aa8b | ||
|
b1a530c76a | ||
|
f6d626d979 | ||
|
2b2c6aa143 | ||
|
b66c2d1bea | ||
|
e65da8fab8 | ||
|
aef474b909 | ||
|
8a07a836e1 | ||
|
9f8be5ea6c | ||
|
83cb82d50f | ||
|
a986b1c226 | ||
|
d04b5d4f87 | ||
|
e646827d92 | ||
|
7ba45a0451 | ||
|
3af3eab3e4 | ||
|
d84b07a5cb | ||
|
c7ffa3a122 | ||
|
ecc89d7d93 | ||
|
30a321b1ce | ||
|
d7d0c2fc6d | ||
|
216e5b31dd | ||
|
47d69a842a | ||
|
74fc5d5573 | ||
|
7611c4dba6 | ||
|
25954e872e | ||
|
e2a9236106 | ||
|
882bc19fdd | ||
|
09bb643ef6 | ||
|
767c4422ac | ||
|
07bf5dbacc | ||
|
dfd1917d9b | ||
|
a046794e68 | ||
|
1e4e18240d | ||
|
8b45f32b33 | ||
|
25c75c5fc4 | ||
|
485f0b9caf | ||
|
fa643b269e | ||
|
60ee4a34aa | ||
|
f33c062d78 | ||
|
fce5af14a8 | ||
|
497e0d2d98 | ||
|
e0c878df5f | ||
|
5433d9fe5c | ||
|
dc35b3a93e |
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
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.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
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.
|
137
BUILD.gn
137
BUILD.gn
@@ -106,6 +106,7 @@ import("//media/media_options.gni")
|
|||||||
import("//mojo/public/tools/bindings/mojom.gni")
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
import("//ppapi/buildflags/buildflags.gni")
|
import("//ppapi/buildflags/buildflags.gni")
|
||||||
import("//printing/buildflags/buildflags.gni")
|
import("//printing/buildflags/buildflags.gni")
|
||||||
|
import("//rlz/buildflags/buildflags.gni")
|
||||||
import("//testing/test.gni")
|
import("//testing/test.gni")
|
||||||
import("//third_party/icu/config.gni")
|
import("//third_party/icu/config.gni")
|
||||||
import("//third_party/widevine/cdm/widevine.gni")
|
import("//third_party/widevine/cdm/widevine.gni")
|
||||||
@@ -257,6 +258,14 @@ assert(enable_print_preview)
|
|||||||
# Enable support for Widevine CDM.
|
# Enable support for Widevine CDM.
|
||||||
assert(enable_widevine)
|
assert(enable_widevine)
|
||||||
|
|
||||||
|
if (is_mac || is_win) {
|
||||||
|
# Enable Widevine CDM host verification and storage ID.
|
||||||
|
assert(enable_cdm_host_verification)
|
||||||
|
assert(enable_cdm_storage_id)
|
||||||
|
assert(alternate_cdm_storage_id_key != "")
|
||||||
|
assert(enable_rlz)
|
||||||
|
}
|
||||||
|
|
||||||
# Enable Views UI framework.
|
# Enable Views UI framework.
|
||||||
assert(toolkit_views)
|
assert(toolkit_views)
|
||||||
|
|
||||||
@@ -376,12 +385,13 @@ 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/screen_util.h",
|
"libcef/browser/geometry_util.h",
|
||||||
"libcef/browser/screen_util.cc",
|
"libcef/browser/geometry_util.cc",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
"//base",
|
"//base",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
]
|
]
|
||||||
|
|
||||||
configs += [
|
configs += [
|
||||||
@@ -397,7 +407,7 @@ test("libcef_static_unittests") {
|
|||||||
|
|
||||||
sources = [
|
sources = [
|
||||||
"libcef/browser/devtools/devtools_util_unittest.cc",
|
"libcef/browser/devtools/devtools_util_unittest.cc",
|
||||||
"libcef/browser/screen_util_unittest.cc",
|
"libcef/browser/geometry_util_unittest.cc",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
@@ -514,6 +524,8 @@ 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",
|
||||||
@@ -602,6 +614,8 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/frame_host_impl.cc",
|
"libcef/browser/frame_host_impl.cc",
|
||||||
"libcef/browser/frame_host_impl.h",
|
"libcef/browser/frame_host_impl.h",
|
||||||
"libcef/browser/frame_service_base.h",
|
"libcef/browser/frame_service_base.h",
|
||||||
|
"libcef/browser/global_preference_manager_impl.cc",
|
||||||
|
"libcef/browser/global_preference_manager_impl.h",
|
||||||
"libcef/browser/image_impl.cc",
|
"libcef/browser/image_impl.cc",
|
||||||
"libcef/browser/image_impl.h",
|
"libcef/browser/image_impl.h",
|
||||||
"libcef/browser/iothread_state.cc",
|
"libcef/browser/iothread_state.cc",
|
||||||
@@ -700,14 +714,18 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/permission_prompt.h",
|
"libcef/browser/permission_prompt.h",
|
||||||
"libcef/browser/prefs/browser_prefs.cc",
|
"libcef/browser/prefs/browser_prefs.cc",
|
||||||
"libcef/browser/prefs/browser_prefs.h",
|
"libcef/browser/prefs/browser_prefs.h",
|
||||||
|
"libcef/browser/prefs/pref_helper.cc",
|
||||||
|
"libcef/browser/prefs/pref_helper.h",
|
||||||
|
"libcef/browser/prefs/pref_registrar.cc",
|
||||||
|
"libcef/browser/prefs/pref_registrar.h",
|
||||||
"libcef/browser/prefs/pref_store.cc",
|
"libcef/browser/prefs/pref_store.cc",
|
||||||
"libcef/browser/prefs/pref_store.h",
|
"libcef/browser/prefs/pref_store.h",
|
||||||
"libcef/browser/prefs/renderer_prefs.cc",
|
"libcef/browser/prefs/renderer_prefs.cc",
|
||||||
"libcef/browser/prefs/renderer_prefs.h",
|
"libcef/browser/prefs/renderer_prefs.h",
|
||||||
"libcef/browser/print_settings_impl.cc",
|
"libcef/browser/print_settings_impl.cc",
|
||||||
"libcef/browser/print_settings_impl.h",
|
"libcef/browser/print_settings_impl.h",
|
||||||
"libcef/browser/printing/print_view_manager.cc",
|
"libcef/browser/printing/print_util.cc",
|
||||||
"libcef/browser/printing/print_view_manager.h",
|
"libcef/browser/printing/print_util.h",
|
||||||
"libcef/browser/process_util_impl.cc",
|
"libcef/browser/process_util_impl.cc",
|
||||||
"libcef/browser/request_context_handler_map.cc",
|
"libcef/browser/request_context_handler_map.cc",
|
||||||
"libcef/browser/request_context_handler_map.h",
|
"libcef/browser/request_context_handler_map.h",
|
||||||
@@ -785,6 +803,7 @@ 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",
|
||||||
@@ -918,8 +937,6 @@ 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",
|
||||||
@@ -1015,7 +1032,6 @@ 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",
|
||||||
@@ -1065,7 +1081,6 @@ 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",
|
||||||
]
|
]
|
||||||
@@ -1094,7 +1109,6 @@ 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",
|
||||||
@@ -1126,12 +1140,17 @@ 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",
|
||||||
@@ -1154,6 +1173,7 @@ 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",
|
||||||
@@ -1165,6 +1185,13 @@ source_set("libcef_static") {
|
|||||||
"//ui/wm/public",
|
"//ui/wm/public",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enable_cdm_host_verification) {
|
||||||
|
sources += [
|
||||||
|
"libcef/common/cdm_host_file_path.cc",
|
||||||
|
"libcef/common/cdm_host_file_path.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1194,6 +1221,21 @@ config("libcef_dll_wrapper_config") {
|
|||||||
]
|
]
|
||||||
|
|
||||||
configs = [ ":libcef_autogen_config" ]
|
configs = [ ":libcef_autogen_config" ]
|
||||||
|
|
||||||
|
if (is_win) {
|
||||||
|
if (current_cpu == "x86") {
|
||||||
|
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB minimum
|
||||||
|
# needed by CEF's main thread. This saves significant memory on threads
|
||||||
|
# (like those in the Windows thread pool, and others) whose stack size we
|
||||||
|
# can only control through this setting. The main thread (in 32-bit builds
|
||||||
|
# only) uses fibers to switch to a 4MiB stack at runtime via
|
||||||
|
# CefRunWinMainWithPreferredStackSize().
|
||||||
|
ldflags = [ "/STACK:0x80000" ]
|
||||||
|
} else {
|
||||||
|
# Increase the initial stack size to 8MiB from the default 1MiB.
|
||||||
|
ldflags = [ "/STACK:0x800000" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# libcef_dll_wrapper target.
|
# libcef_dll_wrapper target.
|
||||||
@@ -1312,7 +1354,10 @@ 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/dev_ui_content_resources.h",
|
"$root_gen_dir/content/grit/gpu_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",
|
||||||
@@ -1320,7 +1365,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_generated_resources.h",
|
"$root_gen_dir/ui/resources/grit/webui_resources.h",
|
||||||
"$root_gen_dir/ui/views/resources/grit/views_resources.h",
|
"$root_gen_dir/ui/views/resources/grit/views_resources.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1336,10 +1381,13 @@ 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",
|
||||||
@@ -1347,7 +1395,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_generated_resources_grd",
|
"//ui/resources:webui_resources_grd",
|
||||||
"//ui/views/resources:resources_grd",
|
"//ui/views/resources:resources_grd",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1357,12 +1405,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/chromium_strings.h",
|
"$root_gen_dir/chrome/grit/branded_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_resources.h",
|
"$root_gen_dir/components/omnibox/resources/grit/omnibox_pedal_synonyms.h",
|
||||||
"$root_gen_dir/components/strings/grit/components_chromium_strings.h",
|
"$root_gen_dir/components/strings/grit/components_branded_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",
|
||||||
@@ -1373,12 +1421,12 @@ make_pack_header("strings") {
|
|||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":cef_strings",
|
":cef_strings",
|
||||||
"//chrome/app:chromium_strings",
|
"//chrome/app:branded_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_resources",
|
"//components/omnibox/resources:omnibox_pedal_synonyms",
|
||||||
"//components/strings:components_chromium_strings",
|
"//components/strings:components_branded_strings",
|
||||||
"//components/strings:components_locale_settings",
|
"//components/strings:components_locale_settings",
|
||||||
"//components/strings:components_strings",
|
"//components/strings:components_strings",
|
||||||
"//extensions/strings",
|
"//extensions/strings",
|
||||||
@@ -1465,6 +1513,8 @@ 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",
|
||||||
@@ -1623,9 +1673,13 @@ 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_allocator=="none") {
|
if (is_linux && !is_debug && !use_partition_alloc_as_malloc) {
|
||||||
# Only export necessary symbols from libcef.so.
|
# Only export necessary symbols from libcef.so.
|
||||||
# Don't do this in Debug builds because it causes the resulting
|
# Don't do this in Debug builds because it causes the resulting
|
||||||
# application to crash.
|
# application to crash.
|
||||||
@@ -1732,7 +1786,20 @@ if (is_mac) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(helper_params, content_mac_helpers) {
|
# From //chrome/BUILD.gn:
|
||||||
|
# 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]
|
||||||
@@ -1763,7 +1830,7 @@ if (is_mac) {
|
|||||||
":cef_framework",
|
":cef_framework",
|
||||||
]
|
]
|
||||||
|
|
||||||
foreach(helper_params, content_mac_helpers) {
|
foreach(helper_params, chrome_mac_helpers) {
|
||||||
sources += [
|
sources += [
|
||||||
"$root_out_dir/${app_helper_name}${helper_params[2]}.app",
|
"$root_out_dir/${app_helper_name}${helper_params[2]}.app",
|
||||||
]
|
]
|
||||||
@@ -2112,6 +2179,10 @@ 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",
|
||||||
]
|
]
|
||||||
@@ -2157,15 +2228,13 @@ 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) {
|
||||||
if (use_allocator=="tcmalloc") {
|
|
||||||
# Link to base to initialize tcmalloc allocator shims, otherwise
|
|
||||||
# base::allocator::IsAllocatorInitialized check fails
|
|
||||||
deps += [ "//base" ]
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
# Set rpath to find our own libfreetype even in a non-component build.
|
# Set rpath to find our own libfreetype even in a non-component build.
|
||||||
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
|
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
|
||||||
}
|
}
|
||||||
@@ -2202,6 +2271,10 @@ 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",
|
||||||
@@ -2269,6 +2342,10 @@ 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",
|
||||||
|
@@ -7,5 +7,6 @@
|
|||||||
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||||
|
|
||||||
{
|
{
|
||||||
'chromium_checkout': 'refs/tags/107.0.5304.0'
|
'chromium_checkout': 'refs/tags/120.0.6099.234',
|
||||||
|
'depot_tools_checkout': 'f01ca5848d'
|
||||||
}
|
}
|
||||||
|
@@ -33,13 +33,12 @@
|
|||||||
'chrome/browser/extensions/chrome_extension_web_contents_observer.*',
|
'chrome/browser/extensions/chrome_extension_web_contents_observer.*',
|
||||||
'chrome/browser/extensions/component_loader.*',
|
'chrome/browser/extensions/component_loader.*',
|
||||||
'chrome/browser/extensions/extension_service.*',
|
'chrome/browser/extensions/extension_service.*',
|
||||||
'chrome/browser/printing/print_view_manager*',
|
|
||||||
'chrome/browser/printing/printing_message_filter*',
|
|
||||||
'chrome/browser/profiles/profile.h',
|
'chrome/browser/profiles/profile.h',
|
||||||
'chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.*',
|
'chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.*',
|
||||||
'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',
|
||||||
|
@@ -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 13.0
|
# MacOS: Ninja, Xcode 12.2 to 15.0
|
||||||
# Windows: Ninja, Visual Studio 2019+
|
# Windows: Ninja, Visual Studio 2022
|
||||||
#
|
#
|
||||||
# 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.19 or newer.
|
# - CMake version 3.21 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 13.4 building on MacOS 10.15.4 (Catalina) or newer. Only
|
# Xcode 12.2 to 15.0 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 2019 or newer building on Windows 7 or newer. Windows 10
|
# Visual Studio 2022 building on Windows 10 or newer. Windows 10/11 64-bit is
|
||||||
# 64-bit is recommended. Newer versions will likely also work but may not have
|
# recommended. Newer versions will likely also work but may not have been
|
||||||
# been tested.
|
# 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 2019 IDE:
|
# Using the Visual Studio 2022 IDE:
|
||||||
# > cmake -G "Visual Studio 16" -A Win32 ..
|
# > cmake -G "Visual Studio 17" -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 2019 command-line tools:
|
# Using Ninja with Visual Studio 2022 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 (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"
|
# > "C:\Program Files\Microsoft Visual Studio\2022\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 2019 IDE:
|
# Using the Visual Studio 2022 IDE:
|
||||||
# > cmake -G "Visual Studio 16" -A x64 ..
|
# > cmake -G "Visual Studio 17" -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 2019 command-line tools:
|
# Using Ninja with Visual Studio 2022 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 (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
|
# > "C:\Program Files\Microsoft Visual Studio\2022\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 2019 IDE:
|
# Using the Visual Studio 2022 IDE:
|
||||||
# > cmake -G "Visual Studio 16" -A arm64 ..
|
# > cmake -G "Visual Studio 17" -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 2019 command-line tools:
|
# Using Ninja with Visual Studio 2022 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 (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
|
# > "C:\Program Files\Microsoft Visual Studio\2022\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 VS2019 and Xcode 12+ support.
|
# For VS2022 and Xcode 12+ support.
|
||||||
cmake_minimum_required(VERSION 3.19)
|
cmake_minimum_required(VERSION 3.21)
|
||||||
|
|
||||||
# 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)
|
||||||
|
3
Doxyfile
3
Doxyfile
@@ -2375,7 +2375,8 @@ PREDEFINED = USING_CEF_SHARED \
|
|||||||
OS_WIN \
|
OS_WIN \
|
||||||
OS_LINUX \
|
OS_LINUX \
|
||||||
CEF_X11 \
|
CEF_X11 \
|
||||||
OS_MAC
|
OS_MAC \
|
||||||
|
ARCH_CPU_32_BITS
|
||||||
|
|
||||||
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
|
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
|
||||||
# tag can be used to specify a list of macro names that should be expanded. The
|
# tag can be used to specify a list of macro names that should be expanded. The
|
||||||
|
@@ -9,6 +9,7 @@ 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
|
||||||
@@ -48,6 +49,7 @@ 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/
|
||||||
|
|
||||||
@@ -57,7 +59,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://bitbucket.org/chromiumembedded/cef/issues?status=new&status=open) that are important to you. This helps with development prioritization.
|
\- Vote for issues in the [CEF issue tracker](https://github.com/chromiumembedded/cef/issues) 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:
|
||||||
|
|
||||||
@@ -68,7 +70,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://bitbucket.org/chromiumembedded/cef/issues?status=new&status=open) 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://github.com/chromiumembedded/cef/issues) 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:
|
||||||
|
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
@echo off
|
@echo off
|
||||||
python.bat tools\gclient_hook.py
|
python3.bat tools\gclient_hook.py
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2022 The Chromium Embedded Framework Authors. All rights
|
# Copyright (c) 2024 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=ffc0502a0275b74228f1fd642566d3f020e538a0$
|
# $hash=25599539f43226aac01bfcb74f19ac74217aee9a$
|
||||||
#
|
#
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -56,6 +56,7 @@
|
|||||||
'include/cef_parser.h',
|
'include/cef_parser.h',
|
||||||
'include/cef_path_util.h',
|
'include/cef_path_util.h',
|
||||||
'include/cef_permission_handler.h',
|
'include/cef_permission_handler.h',
|
||||||
|
'include/cef_preference.h',
|
||||||
'include/cef_print_handler.h',
|
'include/cef_print_handler.h',
|
||||||
'include/cef_print_settings.h',
|
'include/cef_print_settings.h',
|
||||||
'include/cef_process_message.h',
|
'include/cef_process_message.h',
|
||||||
@@ -159,6 +160,7 @@
|
|||||||
'include/capi/cef_parser_capi.h',
|
'include/capi/cef_parser_capi.h',
|
||||||
'include/capi/cef_path_util_capi.h',
|
'include/capi/cef_path_util_capi.h',
|
||||||
'include/capi/cef_permission_handler_capi.h',
|
'include/capi/cef_permission_handler_capi.h',
|
||||||
|
'include/capi/cef_preference_capi.h',
|
||||||
'include/capi/cef_print_handler_capi.h',
|
'include/capi/cef_print_handler_capi.h',
|
||||||
'include/capi/cef_print_settings_capi.h',
|
'include/capi/cef_print_settings_capi.h',
|
||||||
'include/capi/cef_process_message_capi.h',
|
'include/capi/cef_process_message_capi.h',
|
||||||
@@ -382,6 +384,10 @@
|
|||||||
'libcef_dll/cpptoc/post_data_cpptoc.h',
|
'libcef_dll/cpptoc/post_data_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/post_data_element_cpptoc.cc',
|
'libcef_dll/cpptoc/post_data_element_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/post_data_element_cpptoc.h',
|
'libcef_dll/cpptoc/post_data_element_cpptoc.h',
|
||||||
|
'libcef_dll/cpptoc/preference_manager_cpptoc.cc',
|
||||||
|
'libcef_dll/cpptoc/preference_manager_cpptoc.h',
|
||||||
|
'libcef_dll/cpptoc/preference_registrar_cpptoc.cc',
|
||||||
|
'libcef_dll/cpptoc/preference_registrar_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/print_dialog_callback_cpptoc.cc',
|
'libcef_dll/cpptoc/print_dialog_callback_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/print_dialog_callback_cpptoc.h',
|
'libcef_dll/cpptoc/print_dialog_callback_cpptoc.h',
|
||||||
'libcef_dll/ctocpp/print_handler_ctocpp.cc',
|
'libcef_dll/ctocpp/print_handler_ctocpp.cc',
|
||||||
@@ -706,6 +712,10 @@
|
|||||||
'libcef_dll/ctocpp/post_data_ctocpp.h',
|
'libcef_dll/ctocpp/post_data_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/post_data_element_ctocpp.cc',
|
'libcef_dll/ctocpp/post_data_element_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/post_data_element_ctocpp.h',
|
'libcef_dll/ctocpp/post_data_element_ctocpp.h',
|
||||||
|
'libcef_dll/ctocpp/preference_manager_ctocpp.cc',
|
||||||
|
'libcef_dll/ctocpp/preference_manager_ctocpp.h',
|
||||||
|
'libcef_dll/ctocpp/preference_registrar_ctocpp.cc',
|
||||||
|
'libcef_dll/ctocpp/preference_registrar_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/print_dialog_callback_ctocpp.cc',
|
'libcef_dll/ctocpp/print_dialog_callback_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/print_dialog_callback_ctocpp.h',
|
'libcef_dll/ctocpp/print_dialog_callback_ctocpp.h',
|
||||||
'libcef_dll/cpptoc/print_handler_cpptoc.cc',
|
'libcef_dll/cpptoc/print_handler_cpptoc.cc',
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
'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',
|
||||||
@@ -24,7 +23,6 @@
|
|||||||
'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',
|
||||||
@@ -55,6 +53,7 @@
|
|||||||
'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': [
|
||||||
@@ -79,6 +78,7 @@
|
|||||||
'include/internal/cef_win.h',
|
'include/internal/cef_win.h',
|
||||||
],
|
],
|
||||||
'includes_win_capi': [
|
'includes_win_capi': [
|
||||||
|
'include/internal/cef_app_win.h',
|
||||||
'include/internal/cef_types_win.h',
|
'include/internal/cef_types_win.h',
|
||||||
],
|
],
|
||||||
'includes_mac': [
|
'includes_mac': [
|
||||||
@@ -147,6 +147,8 @@
|
|||||||
'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',
|
||||||
@@ -218,6 +220,8 @@
|
|||||||
'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',
|
||||||
@@ -233,7 +237,11 @@
|
|||||||
'tests/cefclient/browser/client_handler_osr.h',
|
'tests/cefclient/browser/client_handler_osr.h',
|
||||||
'tests/cefclient/browser/client_handler_std.cc',
|
'tests/cefclient/browser/client_handler_std.cc',
|
||||||
'tests/cefclient/browser/client_handler_std.h',
|
'tests/cefclient/browser/client_handler_std.h',
|
||||||
|
'tests/cefclient/browser/client_prefs.cc',
|
||||||
|
'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',
|
||||||
@@ -305,6 +313,7 @@
|
|||||||
'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',
|
||||||
@@ -388,6 +397,7 @@
|
|||||||
'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',
|
||||||
@@ -491,6 +501,7 @@
|
|||||||
'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',
|
||||||
@@ -598,6 +609,7 @@
|
|||||||
'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',
|
||||||
|
@@ -26,18 +26,14 @@ endif()
|
|||||||
|
|
||||||
# Determine the project architecture.
|
# Determine the project architecture.
|
||||||
if(NOT DEFINED PROJECT_ARCH)
|
if(NOT DEFINED PROJECT_ARCH)
|
||||||
if(OS_WINDOWS AND "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "arm64")
|
if(("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64") OR
|
||||||
|
("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM64"))
|
||||||
set(PROJECT_ARCH "arm64")
|
set(PROJECT_ARCH "arm64")
|
||||||
elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||||
set(PROJECT_ARCH "x86_64")
|
set(PROJECT_ARCH "x86_64")
|
||||||
else()
|
else()
|
||||||
set(PROJECT_ARCH "x86")
|
set(PROJECT_ARCH "x86")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(OS_MAC)
|
|
||||||
# PROJECT_ARCH should be specified on Mac OS X.
|
|
||||||
message(WARNING "No PROJECT_ARCH value specified, using ${PROJECT_ARCH}")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
@@ -350,6 +346,10 @@ 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,6 +359,7 @@ 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"
|
||||||
@@ -435,11 +436,66 @@ 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
|
||||||
WINVER=0x0601 _WIN32_WINNT=0x601 # Targeting Windows 7
|
# Targeting Windows 10. We can't say `=_WIN32_WINNT_WIN10` here because
|
||||||
|
# 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
|
||||||
@@ -448,6 +504,23 @@ if(OS_WINDOWS)
|
|||||||
NDEBUG _NDEBUG # Not a debug build
|
NDEBUG _NDEBUG # Not a debug build
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(PROJECT_ARCH STREQUAL "x86")
|
||||||
|
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB minimum
|
||||||
|
# needed by CEF's main thread. This saves significant memory on threads
|
||||||
|
# (like those in the Windows thread pool, and others) whose stack size we
|
||||||
|
# can only control through this setting. The main thread (in 32-bit builds
|
||||||
|
# only) uses fibers to switch to a 4MiB stack at runtime via
|
||||||
|
# CefRunWinMainWithPreferredStackSize().
|
||||||
|
list(APPEND CEF_EXE_LINKER_FLAGS
|
||||||
|
/STACK:0x80000
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
# Increase the initial stack size to 8MiB from the default 1MiB.
|
||||||
|
list(APPEND CEF_EXE_LINKER_FLAGS
|
||||||
|
/STACK:0x800000
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Standard libraries.
|
# Standard libraries.
|
||||||
set(CEF_STANDARD_LIBS
|
set(CEF_STANDARD_LIBS
|
||||||
comctl32.lib
|
comctl32.lib
|
||||||
@@ -470,6 +543,7 @@ 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
|
||||||
@@ -480,12 +554,6 @@ if(OS_WINDOWS)
|
|||||||
vulkan-1.dll
|
vulkan-1.dll
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT PROJECT_ARCH STREQUAL "arm64")
|
|
||||||
list(APPEND CEF_BINARY_FILES
|
|
||||||
d3dcompiler_47.dll
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# List of CEF resource files.
|
# List of CEF resource files.
|
||||||
set(CEF_RESOURCE_FILES
|
set(CEF_RESOURCE_FILES
|
||||||
chrome_100_percent.pak
|
chrome_100_percent.pak
|
||||||
@@ -509,14 +577,18 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -73,8 +73,9 @@ class AutoReset {
|
|||||||
}
|
}
|
||||||
|
|
||||||
~AutoReset() {
|
~AutoReset() {
|
||||||
if (scoped_variable_)
|
if (scoped_variable_) {
|
||||||
*scoped_variable_ = std::move(original_value_);
|
*scoped_variable_ = std::move(original_value_);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@@ -1,86 +0,0 @@
|
|||||||
// 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_
|
|
@@ -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/bind.h"
|
#include "base/functional/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,7 +84,6 @@
|
|||||||
|
|
||||||
#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)
|
||||||
@@ -97,35 +96,34 @@ namespace base {
|
|||||||
/// Bind as OnceCallback.
|
/// Bind as OnceCallback.
|
||||||
///
|
///
|
||||||
template <typename Functor, typename... Args>
|
template <typename Functor, typename... Args>
|
||||||
inline OnceCallback<internal::MakeUnboundRunType<Functor, Args...>> BindOnce(
|
inline OnceCallback<cef_internal::MakeUnboundRunType<Functor, Args...>>
|
||||||
Functor&& functor,
|
BindOnce(Functor&& functor, Args&&... args) {
|
||||||
Args&&... args) {
|
static_assert(!cef_internal::IsOnceCallback<std::decay_t<Functor>>() ||
|
||||||
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(
|
||||||
conjunction<
|
std::conjunction<cef_internal::AssertBindArgIsNotBasePassed<
|
||||||
internal::AssertBindArgIsNotBasePassed<std::decay_t<Args>>...>::value,
|
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 internal::BindImpl<OnceCallback>(std::forward<Functor>(functor),
|
return cef_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<internal::MakeUnboundRunType<Functor, Args...>>
|
inline RepeatingCallback<cef_internal::MakeUnboundRunType<Functor, Args...>>
|
||||||
BindRepeating(Functor&& functor, Args&&... args) {
|
BindRepeating(Functor&& functor, Args&&... args) {
|
||||||
static_assert(
|
static_assert(
|
||||||
!internal::IsOnceCallback<std::decay_t<Functor>>(),
|
!cef_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 internal::BindImpl<RepeatingCallback>(std::forward<Functor>(functor),
|
return cef_internal::BindImpl<RepeatingCallback>(
|
||||||
std::forward<Args>(args)...);
|
std::forward<Functor>(functor), std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -175,8 +173,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 internal::UnretainedWrapper<T> Unretained(T* o) {
|
inline cef_internal::UnretainedWrapper<T> Unretained(T* o) {
|
||||||
return internal::UnretainedWrapper<T>(o);
|
return cef_internal::UnretainedWrapper<T>(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -201,12 +199,12 @@ inline internal::UnretainedWrapper<T> Unretained(T* o) {
|
|||||||
/// </pre>
|
/// </pre>
|
||||||
///
|
///
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline internal::RetainedRefWrapper<T> RetainedRef(T* o) {
|
inline cef_internal::RetainedRefWrapper<T> RetainedRef(T* o) {
|
||||||
return internal::RetainedRefWrapper<T>(o);
|
return cef_internal::RetainedRefWrapper<T>(o);
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline internal::RetainedRefWrapper<T> RetainedRef(scoped_refptr<T> o) {
|
inline cef_internal::RetainedRefWrapper<T> RetainedRef(scoped_refptr<T> o) {
|
||||||
return internal::RetainedRefWrapper<T>(std::move(o));
|
return cef_internal::RetainedRefWrapper<T>(std::move(o));
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -234,14 +232,14 @@ inline 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 internal::OwnedWrapper<T> Owned(T* o) {
|
inline cef_internal::OwnedWrapper<T> Owned(T* o) {
|
||||||
return internal::OwnedWrapper<T>(o);
|
return cef_internal::OwnedWrapper<T>(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T, typename Deleter>
|
template <typename T, typename Deleter>
|
||||||
inline internal::OwnedWrapper<T, Deleter> Owned(
|
inline cef_internal::OwnedWrapper<T, Deleter> Owned(
|
||||||
std::unique_ptr<T, Deleter>&& ptr) {
|
std::unique_ptr<T, Deleter>&& ptr) {
|
||||||
return internal::OwnedWrapper<T, Deleter>(std::move(ptr));
|
return cef_internal::OwnedWrapper<T, Deleter>(std::move(ptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -277,8 +275,8 @@ inline internal::OwnedWrapper<T, Deleter> Owned(
|
|||||||
/// an object owned by the callback.
|
/// an object owned by the callback.
|
||||||
///
|
///
|
||||||
template <typename T>
|
template <typename T>
|
||||||
internal::OwnedRefWrapper<std::decay_t<T>> OwnedRef(T&& t) {
|
cef_internal::OwnedRefWrapper<std::decay_t<T>> OwnedRef(T&& t) {
|
||||||
return internal::OwnedRefWrapper<std::decay_t<T>>(std::forward<T>(t));
|
return cef_internal::OwnedRefWrapper<std::decay_t<T>>(std::forward<T>(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -329,12 +327,12 @@ 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 internal::PassedWrapper<T> Passed(T&& scoper) {
|
inline cef_internal::PassedWrapper<T> Passed(T&& scoper) {
|
||||||
return internal::PassedWrapper<T>(std::move(scoper));
|
return cef_internal::PassedWrapper<T>(std::move(scoper));
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline internal::PassedWrapper<T> Passed(T* scoper) {
|
inline cef_internal::PassedWrapper<T> Passed(T* scoper) {
|
||||||
return internal::PassedWrapper<T>(std::move(*scoper));
|
return cef_internal::PassedWrapper<T>(std::move(*scoper));
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -357,8 +355,8 @@ inline internal::PassedWrapper<T> Passed(T* scoper) {
|
|||||||
/// </pre>
|
/// </pre>
|
||||||
///
|
///
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline internal::IgnoreResultHelper<T> IgnoreResult(T data) {
|
inline cef_internal::IgnoreResultHelper<T> IgnoreResult(T data) {
|
||||||
return internal::IgnoreResultHelper<T>(std::move(data));
|
return cef_internal::IgnoreResultHelper<T>(std::move(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OS_APPLE) && !HAS_FEATURE(objc_arc)
|
#if defined(OS_APPLE) && !HAS_FEATURE(objc_arc)
|
||||||
|
@@ -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*" are
|
// The compiler thinks std::u16string::const_iterator and "char16_t*" are
|
||||||
// equivalent types.
|
// equivalent types.
|
||||||
#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
|
#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
|
||||||
#endif
|
#endif
|
||||||
|
@@ -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/callback.h"
|
#include "base/functional/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 internal::CallbackBase {
|
class OnceCallback<R(Args...)> : public cef_internal::CallbackBase {
|
||||||
public:
|
public:
|
||||||
using ResultType = R;
|
using ResultType = R;
|
||||||
using RunType = R(Args...);
|
using RunType = R(Args...);
|
||||||
using PolymorphicInvoke = R (*)(internal::BindStateBase*,
|
using PolymorphicInvoke = R (*)(cef_internal::BindStateBase*,
|
||||||
internal::PassingType<Args>...);
|
cef_internal::PassingType<Args>...);
|
||||||
|
|
||||||
constexpr OnceCallback() = default;
|
constexpr OnceCallback() = default;
|
||||||
OnceCallback(std::nullptr_t) = delete;
|
OnceCallback(std::nullptr_t) = delete;
|
||||||
|
|
||||||
explicit OnceCallback(internal::BindStateBase* bind_state)
|
explicit OnceCallback(cef_internal::BindStateBase* bind_state)
|
||||||
: internal::CallbackBase(bind_state) {}
|
: cef_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 internal::CallbackBase {
|
|||||||
OnceCallback& operator=(OnceCallback&&) noexcept = default;
|
OnceCallback& operator=(OnceCallback&&) noexcept = default;
|
||||||
|
|
||||||
OnceCallback(RepeatingCallback<RunType> other)
|
OnceCallback(RepeatingCallback<RunType> other)
|
||||||
: internal::CallbackBase(std::move(other)) {}
|
: cef_internal::CallbackBase(std::move(other)) {}
|
||||||
|
|
||||||
OnceCallback& operator=(RepeatingCallback<RunType> other) {
|
OnceCallback& operator=(RepeatingCallback<RunType> other) {
|
||||||
static_cast<internal::CallbackBase&>(*this) = std::move(other);
|
static_cast<cef_internal::CallbackBase&>(*this) = std::move(other);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ class OnceCallback<R(Args...)> : public 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(
|
||||||
internal::ThenHelper<
|
cef_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 internal::CallbackBase {
|
|||||||
RepeatingCallback<ThenR(ThenArgs...)> then) && {
|
RepeatingCallback<ThenR(ThenArgs...)> then) && {
|
||||||
CHECK(then);
|
CHECK(then);
|
||||||
return BindOnce(
|
return BindOnce(
|
||||||
internal::ThenHelper<
|
cef_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,18 +163,19 @@ class OnceCallback<R(Args...)> : public internal::CallbackBase {
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename R, typename... Args>
|
template <typename R, typename... Args>
|
||||||
class RepeatingCallback<R(Args...)> : public internal::CallbackBaseCopyable {
|
class RepeatingCallback<R(Args...)>
|
||||||
|
: public cef_internal::CallbackBaseCopyable {
|
||||||
public:
|
public:
|
||||||
using ResultType = R;
|
using ResultType = R;
|
||||||
using RunType = R(Args...);
|
using RunType = R(Args...);
|
||||||
using PolymorphicInvoke = R (*)(internal::BindStateBase*,
|
using PolymorphicInvoke = R (*)(cef_internal::BindStateBase*,
|
||||||
internal::PassingType<Args>...);
|
cef_internal::PassingType<Args>...);
|
||||||
|
|
||||||
constexpr RepeatingCallback() = default;
|
constexpr RepeatingCallback() = default;
|
||||||
RepeatingCallback(std::nullptr_t) = delete;
|
RepeatingCallback(std::nullptr_t) = delete;
|
||||||
|
|
||||||
explicit RepeatingCallback(internal::BindStateBase* bind_state)
|
explicit RepeatingCallback(cef_internal::BindStateBase* bind_state)
|
||||||
: internal::CallbackBaseCopyable(bind_state) {}
|
: cef_internal::CallbackBaseCopyable(bind_state) {}
|
||||||
|
|
||||||
// Copyable and movable.
|
// Copyable and movable.
|
||||||
RepeatingCallback(const RepeatingCallback&) = default;
|
RepeatingCallback(const RepeatingCallback&) = default;
|
||||||
@@ -224,7 +225,7 @@ class RepeatingCallback<R(Args...)> : public internal::CallbackBaseCopyable {
|
|||||||
RepeatingCallback<ThenR(ThenArgs...)> then) const& {
|
RepeatingCallback<ThenR(ThenArgs...)> then) const& {
|
||||||
CHECK(then);
|
CHECK(then);
|
||||||
return BindRepeating(
|
return BindRepeating(
|
||||||
internal::ThenHelper<
|
cef_internal::ThenHelper<
|
||||||
RepeatingCallback,
|
RepeatingCallback,
|
||||||
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
|
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
|
||||||
*this, std::move(then));
|
*this, std::move(then));
|
||||||
@@ -235,7 +236,7 @@ class RepeatingCallback<R(Args...)> : public internal::CallbackBaseCopyable {
|
|||||||
RepeatingCallback<ThenR(ThenArgs...)> then) && {
|
RepeatingCallback<ThenR(ThenArgs...)> then) && {
|
||||||
CHECK(then);
|
CHECK(then);
|
||||||
return BindRepeating(
|
return BindRepeating(
|
||||||
internal::ThenHelper<
|
cef_internal::ThenHelper<
|
||||||
RepeatingCallback,
|
RepeatingCallback,
|
||||||
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
|
RepeatingCallback<ThenR(ThenArgs...)>>::CreateTrampoline(),
|
||||||
std::move(*this), std::move(then));
|
std::move(*this), std::move(then));
|
||||||
|
@@ -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/callback_forward.h"
|
#include "base/functional/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
|
||||||
|
@@ -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/callback_helpers.h"
|
#include "base/functional/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
|
||||||
|
@@ -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/callback_list.h"
|
#include "base/functional/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,8 +242,9 @@ 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);
|
||||||
@@ -257,18 +258,20 @@ 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.
|
||||||
@@ -282,8 +285,9 @@ 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:
|
||||||
@@ -295,8 +299,9 @@ 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
|
||||||
@@ -306,8 +311,9 @@ 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|!
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -133,8 +133,9 @@ 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;
|
||||||
|
@@ -251,13 +251,6 @@
|
|||||||
#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)
|
||||||
|
@@ -723,6 +723,13 @@ 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_UTF32)
|
||||||
|
std::ostream& operator<<(std::ostream& out, const char16_t* wstr);
|
||||||
|
#elif defined(WCHAR_T_IS_UTF16)
|
||||||
|
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.
|
||||||
|
@@ -43,7 +43,6 @@
|
|||||||
// 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"
|
||||||
|
|
||||||
|
@@ -50,7 +50,6 @@
|
|||||||
#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 {
|
||||||
@@ -105,13 +104,16 @@ 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;
|
||||||
@@ -482,7 +484,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(in_place_t, Args&&... args)
|
explicit RefCountedData(std::in_place_t, Args&&... args)
|
||||||
: data(std::forward<Args>(args)...) {}
|
: data(std::forward<Args>(args)...) {}
|
||||||
|
|
||||||
T data;
|
T data;
|
||||||
|
@@ -229,8 +229,9 @@ 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
|
||||||
@@ -261,8 +262,9 @@ 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_; }
|
||||||
|
@@ -97,21 +97,24 @@ 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_) {
|
||||||
@@ -119,8 +122,9 @@ 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) {
|
||||||
@@ -143,10 +147,12 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,414 +0,0 @@
|
|||||||
// 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_
|
|
@@ -145,14 +145,6 @@
|
|||||||
/// 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.
|
||||||
@@ -179,15 +171,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, false); \
|
cef_trace_event_begin(category, name, NULL, 0, NULL, 0); \
|
||||||
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, false); \
|
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0); \
|
||||||
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, false); \
|
arg2_val); \
|
||||||
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.
|
||||||
@@ -211,21 +203,13 @@
|
|||||||
/// 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, false)
|
cef_trace_event_instant(category, name, NULL, 0, NULL, 0)
|
||||||
#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, false)
|
cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0)
|
||||||
#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, false)
|
arg2_val)
|
||||||
#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
|
||||||
@@ -235,21 +219,13 @@
|
|||||||
/// 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, false)
|
cef_trace_event_begin(category, name, NULL, 0, NULL, 0)
|
||||||
#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, false)
|
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0)
|
||||||
#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, false)
|
arg2_val)
|
||||||
#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
|
||||||
@@ -258,21 +234,12 @@
|
|||||||
/// 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, false)
|
cef_trace_event_end(category, name, NULL, 0, NULL, 0)
|
||||||
#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, false)
|
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0)
|
||||||
#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, \
|
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, arg2_val)
|
||||||
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
|
||||||
@@ -281,9 +248,7 @@
|
|||||||
/// 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, false)
|
cef_trace_counter(category, name, NULL, value, NULL, 0)
|
||||||
#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.
|
||||||
@@ -295,11 +260,7 @@
|
|||||||
#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, false)
|
value2_val)
|
||||||
#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
|
||||||
@@ -312,9 +273,7 @@
|
|||||||
/// 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, false)
|
cef_trace_counter_id(category, name, id, NULL, value, NULL, 0)
|
||||||
#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.
|
||||||
@@ -330,11 +289,7 @@
|
|||||||
#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, false)
|
value2_name, value2_val)
|
||||||
#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
|
||||||
@@ -355,23 +310,13 @@
|
|||||||
/// 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, false)
|
cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0)
|
||||||
#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, \
|
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, 0)
|
||||||
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, false)
|
arg2_name, arg2_val)
|
||||||
#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
|
||||||
@@ -382,17 +327,10 @@
|
|||||||
/// 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, false)
|
cef_trace_event_async_step_into(category, name, id, step, NULL, 0)
|
||||||
#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, \
|
cef_trace_event_async_step_into(category, name, id, step, arg1_name, arg1_val)
|
||||||
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
|
||||||
@@ -403,40 +341,23 @@
|
|||||||
/// 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, false)
|
cef_trace_event_async_step_past(category, name, id, step, NULL, 0)
|
||||||
#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, \
|
cef_trace_event_async_step_past(category, name, id, step, arg1_name, arg1_val)
|
||||||
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, false)
|
cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0)
|
||||||
#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, false)
|
arg2_name, arg2_val)
|
||||||
#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 {
|
||||||
|
|
||||||
@@ -448,7 +369,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, false);
|
cef_trace_event_end(category_, name_, NULL, 0, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@@ -123,7 +123,7 @@ class SupportsWeakPtr;
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
class WeakPtr;
|
class WeakPtr;
|
||||||
|
|
||||||
namespace internal {
|
namespace cef_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_ = internal::WeakReference();
|
ref_ = cef_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<internal::SupportsWeakPtrBase, Derived>::value,
|
std::is_base_of<cef_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 internal
|
} // namespace cef_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 internal::WeakPtrBase {
|
class WeakPtr : public cef_internal::WeakPtrBase {
|
||||||
public:
|
public:
|
||||||
WeakPtr() = default;
|
WeakPtr() = default;
|
||||||
WeakPtr(std::nullptr_t) {}
|
WeakPtr(std::nullptr_t) {}
|
||||||
@@ -325,13 +325,13 @@ class WeakPtr : public internal::WeakPtrBase {
|
|||||||
bool WasInvalidated() const { return ptr_ && !ref_.IsValid(); }
|
bool WasInvalidated() const { return ptr_ && !ref_.IsValid(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class internal::SupportsWeakPtrBase;
|
friend class cef_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 internal::WeakReference& ref, T* ptr)
|
WeakPtr(const cef_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 internal {
|
namespace cef_internal {
|
||||||
class WeakPtrFactoryBase {
|
class WeakPtrFactoryBase {
|
||||||
protected:
|
protected:
|
||||||
WeakPtrFactoryBase(uintptr_t ptr);
|
WeakPtrFactoryBase(uintptr_t ptr);
|
||||||
~WeakPtrFactoryBase();
|
~WeakPtrFactoryBase();
|
||||||
internal::WeakReferenceOwner weak_reference_owner_;
|
cef_internal::WeakReferenceOwner weak_reference_owner_;
|
||||||
uintptr_t ptr_;
|
uintptr_t ptr_;
|
||||||
};
|
};
|
||||||
} // namespace internal
|
} // namespace cef_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 internal::WeakPtrFactoryBase {
|
class WeakPtrFactory : public cef_internal::WeakPtrFactoryBase {
|
||||||
public:
|
public:
|
||||||
WeakPtrFactory() = delete;
|
WeakPtrFactory() = delete;
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ class WeakPtrFactory : public 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 internal::SupportsWeakPtrBase {
|
class SupportsWeakPtr : public cef_internal::SupportsWeakPtrBase {
|
||||||
public:
|
public:
|
||||||
SupportsWeakPtr() = default;
|
SupportsWeakPtr() = default;
|
||||||
|
|
||||||
@@ -431,7 +431,7 @@ class SupportsWeakPtr : public internal::SupportsWeakPtrBase {
|
|||||||
~SupportsWeakPtr() = default;
|
~SupportsWeakPtr() = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
internal::WeakReferenceOwner weak_reference_owner_;
|
cef_internal::WeakReferenceOwner weak_reference_owner_;
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -459,7 +459,7 @@ class SupportsWeakPtr : public internal::SupportsWeakPtrBase {
|
|||||||
///
|
///
|
||||||
template <typename Derived>
|
template <typename Derived>
|
||||||
WeakPtr<Derived> AsWeakPtr(Derived* t) {
|
WeakPtr<Derived> AsWeakPtr(Derived* t) {
|
||||||
return internal::SupportsWeakPtrBase::StaticAsWeakPtr<Derived>(t);
|
return cef_internal::SupportsWeakPtrBase::StaticAsWeakPtr<Derived>(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace base
|
} // namespace base
|
||||||
|
@@ -68,7 +68,6 @@
|
|||||||
#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"
|
||||||
@@ -97,7 +96,7 @@ struct BindUnwrapTraits;
|
|||||||
template <typename Functor, typename BoundArgsTuple, typename SFINAE = void>
|
template <typename Functor, typename BoundArgsTuple, typename SFINAE = void>
|
||||||
struct CallbackCancellationTraits;
|
struct CallbackCancellationTraits;
|
||||||
|
|
||||||
namespace internal {
|
namespace cef_internal {
|
||||||
|
|
||||||
template <typename Functor, typename SFINAE = void>
|
template <typename Functor, typename SFINAE = void>
|
||||||
struct FunctorTraits;
|
struct FunctorTraits;
|
||||||
@@ -356,14 +355,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, void_t<decltype(&Callable::operator())>>
|
struct IsCallableObject<Callable, std::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
|
||||||
: disjunction<NeedsScopedRefptrButGetsRawPtr<Ts>...> {};
|
: std::disjunction<NeedsScopedRefptrButGetsRawPtr<Ts>...> {};
|
||||||
|
|
||||||
// ForceVoidReturn<>
|
// ForceVoidReturn<>
|
||||||
//
|
//
|
||||||
@@ -687,8 +686,9 @@ 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 = bool_constant<
|
using IsCancellable = std::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>(bool_constant<kIsOnce>());
|
GetInvokeFunc<Invoker>(std::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 internal
|
} // namespace cef_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,30 +1303,36 @@ struct BindUnwrapTraits {
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct BindUnwrapTraits<internal::UnretainedWrapper<T>> {
|
struct BindUnwrapTraits<cef_internal::UnretainedWrapper<T>> {
|
||||||
static T* Unwrap(const internal::UnretainedWrapper<T>& o) { return o.get(); }
|
static T* Unwrap(const cef_internal::UnretainedWrapper<T>& o) {
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct BindUnwrapTraits<internal::RetainedRefWrapper<T>> {
|
|
||||||
static T* Unwrap(const internal::RetainedRefWrapper<T>& o) { return o.get(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, typename Deleter>
|
|
||||||
struct BindUnwrapTraits<internal::OwnedWrapper<T, Deleter>> {
|
|
||||||
static T* Unwrap(const internal::OwnedWrapper<T, Deleter>& o) {
|
|
||||||
return o.get();
|
return o.get();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct BindUnwrapTraits<internal::OwnedRefWrapper<T>> {
|
struct BindUnwrapTraits<cef_internal::RetainedRefWrapper<T>> {
|
||||||
static T& Unwrap(const internal::OwnedRefWrapper<T>& o) { return o.get(); }
|
static T* Unwrap(const cef_internal::RetainedRefWrapper<T>& o) {
|
||||||
|
return o.get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Deleter>
|
||||||
|
struct BindUnwrapTraits<cef_internal::OwnedWrapper<T, Deleter>> {
|
||||||
|
static T* Unwrap(const cef_internal::OwnedWrapper<T, Deleter>& o) {
|
||||||
|
return o.get();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct BindUnwrapTraits<internal::PassedWrapper<T>> {
|
struct BindUnwrapTraits<cef_internal::OwnedRefWrapper<T>> {
|
||||||
static T Unwrap(const internal::PassedWrapper<T>& o) { return o.Take(); }
|
static T& Unwrap(const cef_internal::OwnedRefWrapper<T>& o) {
|
||||||
|
return o.get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct BindUnwrapTraits<cef_internal::PassedWrapper<T>> {
|
||||||
|
static T Unwrap(const cef_internal::PassedWrapper<T>& o) { return o.Take(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
@@ -1350,9 +1356,9 @@ template <typename Functor, typename... BoundArgs>
|
|||||||
struct CallbackCancellationTraits<
|
struct CallbackCancellationTraits<
|
||||||
Functor,
|
Functor,
|
||||||
std::tuple<BoundArgs...>,
|
std::tuple<BoundArgs...>,
|
||||||
std::enable_if_t<
|
std::enable_if_t<cef_internal::IsWeakMethod<
|
||||||
internal::IsWeakMethod<internal::FunctorTraits<Functor>::is_method,
|
cef_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>
|
||||||
|
@@ -43,7 +43,7 @@ namespace base {
|
|||||||
|
|
||||||
struct FakeBindState;
|
struct FakeBindState;
|
||||||
|
|
||||||
namespace internal {
|
namespace cef_internal {
|
||||||
|
|
||||||
class BindStateBase;
|
class BindStateBase;
|
||||||
class FinallyExecutorCommon;
|
class FinallyExecutorCommon;
|
||||||
@@ -269,7 +269,7 @@ struct ThenHelper<OriginalCallback<OriginalR(OriginalArgs...)>,
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace cef_internal
|
||||||
} // namespace base
|
} // namespace base
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_CALLBACK_INTERNAL_H_
|
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_CALLBACK_INTERNAL_H_
|
||||||
|
@@ -34,8 +34,6 @@
|
|||||||
|
|
||||||
#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
|
||||||
@@ -47,28 +45,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 internal {
|
namespace cef_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,
|
||||||
void_t<decltype(std::declval<T*>()->AddRef()),
|
std::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
|
||||||
: conjunction<std::is_pointer<T>,
|
: std::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 internal
|
} // namespace cef_internal
|
||||||
|
|
||||||
} // namespace base
|
} // namespace base
|
||||||
|
|
||||||
|
@@ -38,13 +38,14 @@
|
|||||||
#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 "Cannot include include/base/internal/cef_scoped_block_mac.h in file built with ARC."
|
#error \
|
||||||
|
"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 internal {
|
namespace cef_internal {
|
||||||
|
|
||||||
template <typename B>
|
template <typename B>
|
||||||
struct ScopedBlockTraits {
|
struct ScopedBlockTraits {
|
||||||
@@ -53,12 +54,12 @@ struct ScopedBlockTraits {
|
|||||||
static void Release(B block) { Block_release(block); }
|
static void Release(B block) { Block_release(block); }
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace cef_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, internal::ScopedBlockTraits<B>>;
|
using ScopedBlock = ScopedTypeRef<B, cef_internal::ScopedBlockTraits<B>>;
|
||||||
|
|
||||||
} // namespace mac
|
} // namespace mac
|
||||||
} // namespace base
|
} // namespace base
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=6bdc0ce413420b45510fcc7f415c6a6fb05f0112$
|
// $hash=6ea5d772fb4961ae4a658b4b730aa608fa93309f$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=7c6894aae3e508aaa42a376532328316d9bd509c$
|
// $hash=b9a2bad4a30bcb99384197c9f7409116dc5b376e$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
||||||
@@ -133,10 +133,13 @@ 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. A return
|
/// the CEF browser process. The |application| parameter may be NULL. Returns
|
||||||
/// value of true (1) indicates that it succeeded and false (0) indicates that
|
/// true (1) if initialization succeeds. Returns false (0) if initialization
|
||||||
/// it failed. The |windows_sandbox_info| parameter is only used on Windows and
|
/// fails or if early exit is desired (for example, due to process singleton
|
||||||
/// may be NULL (see cef_sandbox_win.h for details).
|
/// relaunch behavior). If this function returns false (0) then the application
|
||||||
|
/// 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,
|
||||||
@@ -145,7 +148,8 @@ 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.
|
/// the CEF browser process before the application exits. Do not call any other
|
||||||
|
/// CEF functions after calling this function.
|
||||||
///
|
///
|
||||||
CEF_EXPORT void cef_shutdown(void);
|
CEF_EXPORT void cef_shutdown(void);
|
||||||
|
|
||||||
@@ -183,19 +187,6 @@ CEF_EXPORT void cef_run_message_loop(void);
|
|||||||
///
|
///
|
||||||
CEF_EXPORT void cef_quit_message_loop(void);
|
CEF_EXPORT void cef_quit_message_loop(void);
|
||||||
|
|
||||||
///
|
|
||||||
/// Set to true (1) before calling Windows APIs like TrackPopupMenu that enter a
|
|
||||||
/// modal message loop. Set to false (0) after exiting the modal message loop.
|
|
||||||
///
|
|
||||||
CEF_EXPORT void cef_set_osmodal_loop(int osModalLoop);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Call during process startup to enable High-DPI support on Windows 7 or
|
|
||||||
/// newer. Older versions of Windows should be left DPI-unaware because they do
|
|
||||||
/// not support DirectWrite and GDI fonts are kerned very badly.
|
|
||||||
///
|
|
||||||
CEF_EXPORT void cef_enable_highdpi_support(void);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=4e243df31e29bc6e473d56e371ed6328d948959c$
|
// $hash=d98482eba93dcd8b6a6f69b2732162733c73203d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 pts);
|
int64_t pts);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Called on the UI thread when the stream has stopped. OnAudioSteamStopped
|
/// Called on the UI thread when the stream has stopped. OnAudioSteamStopped
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=c0704c0a87e8b57b20887be75700a30e887fee4f$
|
// $hash=b63947918eca8c31790cae16b2e8a0be7e9464dd$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=f8a604f73a04bec535d72ec7d05906da8c953b6b$
|
// $hash=d23df6f606a96b432905c5c80f29ab72915b8e01$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 identifier);
|
int64_t 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* identifiers);
|
int64_t* identifiers);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the names of all existing frames.
|
/// Returns the names of all existing frames.
|
||||||
@@ -365,16 +365,39 @@ typedef struct _cef_browser_host_t {
|
|||||||
struct _cef_browser_host_t* self);
|
struct _cef_browser_host_t* self);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Get the current zoom level. The default zoom level is 0.0. This function
|
/// Returns true (1) if this browser can execute the specified zoom command.
|
||||||
/// can only be called on the UI thread.
|
/// This function 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. If called on the UI thread the change will be applied
|
/// zoom level to the default. If called on the UI thread the change will be
|
||||||
/// immediately. Otherwise, the change will be applied asynchronously on the
|
/// applied immediately. Otherwise, the change will be applied asynchronously
|
||||||
/// UI thread.
|
/// on the 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);
|
||||||
@@ -424,7 +447,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 max_image_size,
|
uint32_t max_image_size,
|
||||||
int bypass_cache,
|
int bypass_cache,
|
||||||
struct _cef_download_image_callback_t* callback);
|
struct _cef_download_image_callback_t* callback);
|
||||||
|
|
||||||
@@ -909,6 +932,48 @@ 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;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=c4ed4278e513daa2a1ccf42e50e242d61dfbb86f$
|
// $hash=f844d2a1e39d822129d0733f33c14d27481c36b7$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
||||||
@@ -43,6 +43,7 @@
|
|||||||
#include "include/capi/cef_base_capi.h"
|
#include "include/capi/cef_base_capi.h"
|
||||||
#include "include/capi/cef_client_capi.h"
|
#include "include/capi/cef_client_capi.h"
|
||||||
#include "include/capi/cef_command_line_capi.h"
|
#include "include/capi/cef_command_line_capi.h"
|
||||||
|
#include "include/capi/cef_preference_capi.h"
|
||||||
#include "include/capi/cef_values_capi.h"
|
#include "include/capi/cef_values_capi.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -60,6 +61,33 @@ typedef struct _cef_browser_process_handler_t {
|
|||||||
///
|
///
|
||||||
cef_base_ref_counted_t base;
|
cef_base_ref_counted_t base;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Provides an opportunity to register custom preferences prior to global and
|
||||||
|
/// request context initialization.
|
||||||
|
///
|
||||||
|
/// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be
|
||||||
|
/// accessed via cef_preference_manager_t::GetGlobalPreferences after
|
||||||
|
/// OnContextInitialized is called. Global preferences are registered a single
|
||||||
|
/// time at application startup. See related cef_settings_t.cache_path and
|
||||||
|
/// cef_settings_t.persist_user_preferences configuration.
|
||||||
|
///
|
||||||
|
/// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be
|
||||||
|
/// accessed via the cef_request_context_t after
|
||||||
|
/// cef_request_context_handler_t::OnRequestContextInitialized is called.
|
||||||
|
/// Request context preferences are registered each time a new
|
||||||
|
/// cef_request_context_t is created. It is intended but not required that all
|
||||||
|
/// request contexts have the same registered preferences. See related
|
||||||
|
/// cef_request_context_settings_t.cache_path and
|
||||||
|
/// cef_request_context_settings_t.persist_user_preferences configuration.
|
||||||
|
///
|
||||||
|
/// Do not keep a reference to the |registrar| object. This function is called
|
||||||
|
/// on the browser process UI thread.
|
||||||
|
///
|
||||||
|
void(CEF_CALLBACK* on_register_custom_preferences)(
|
||||||
|
struct _cef_browser_process_handler_t* self,
|
||||||
|
cef_preferences_type_t type,
|
||||||
|
struct _cef_preference_registrar_t* registrar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Called on the browser process UI thread immediately after the CEF context
|
/// Called on the browser process UI thread immediately after the CEF context
|
||||||
/// has been initialized.
|
/// has been initialized.
|
||||||
@@ -78,6 +106,29 @@ 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
|
||||||
@@ -93,7 +144,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 delay_ms);
|
int64_t 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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=1bb026d01d1d4bb38ceb4c54f6bcf70300bf5201$
|
// $hash=46bc048bec64590735298a95633167d66e445844$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=93f1c39c102dc97d6ad8d236a90a2e0e88f10fb7$
|
// $hash=09bd4140605645c9dfbd81e7e22d029d0bb50129$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=ec05ae57537091e3543c4b31d72d2d84d44df876$
|
// $hash=dd183a473b1e8c5ee8bdcf99949fc5274c4cc892$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_
|
||||||
@@ -71,6 +71,46 @@ 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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=f535e9560b9fde9b53fc4d8383905105ed029ea4$
|
// $hash=fce786b3f054d6581438e2906b77e573c797372a$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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. If the switch has no value
|
/// Add a switch to the end of the command line.
|
||||||
/// 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.
|
/// Add a switch with the specified value to the end of the command line. If
|
||||||
|
/// 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,
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=0ae549ed35e30afcbb01961fe55455beaadcd7f9$
|
// $hash=3ae7dbb24ec7a95a2f4d4e390c9b6622221c2f42$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=37b5e115ff7abd1df1b9913404b69505fb9fef29$
|
// $hash=50e59e2d7038a1be0d3a2451c9b7073aee5156ef$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=1ce19c3213f033ca9059da738102b9b4292d4a06$
|
// $hash=46a6432f66cce88d8597c3d070681b09a712dc54$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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.user_data_path value will be used.
|
/// platforms the cef_settings_t.root_cache_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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=076a01db2fc4241efeb46c5f247a9737fd828f9b$
|
// $hash=dd94c50619e92bf5bed4fe61479813ee559f779d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=3a1a3ac84690c6090d356ddec3ddb49b934fe28c$
|
// $hash=5644fdc2453dd083079bf9e3616b687eeb49f250$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=976a61df924efbcb0c53afeb75265e5e9e80c2de$
|
// $hash=5a99c5e88ea0e123087234b2795fa625fed183f2$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
||||||
@@ -84,8 +84,13 @@ 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. The client is
|
/// automatically return to its original size and position. With the Alloy
|
||||||
/// responsible for resizing the browser if desired.
|
/// runtime the client is responsible for triggering the fullscreen transition
|
||||||
|
/// (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,
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=47d8c186f687b65c8e7f394b97d72530e67593cd$
|
// $hash=a4d2f79163205ed4367916546240a6aedc2165f9$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
|
||||||
@@ -209,8 +209,7 @@ typedef struct _cef_domnode_t {
|
|||||||
///
|
///
|
||||||
/// Returns the type of this form control element node.
|
/// Returns the type of this form control element node.
|
||||||
///
|
///
|
||||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
cef_dom_form_control_type_t(CEF_CALLBACK* get_form_control_element_type)(
|
||||||
cef_string_userfree_t(CEF_CALLBACK* get_form_control_element_type)(
|
|
||||||
struct _cef_domnode_t* self);
|
struct _cef_domnode_t* self);
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=aff139899b4b8b769fd0e506d8a46e434f924eee$
|
// $hash=60a08a60be70e8fe5df17f18f8e5758e1830d5e1$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=a218058d7ceb842c9ea0cf0c252f9787de6562e7$
|
// $hash=9af8ade3addfd112db41792c4e80682a8143e8c4$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
|
||||||
@@ -72,14 +72,25 @@ 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 or interrupted.
|
/// Returns true (1) if the download has been canceled.
|
||||||
///
|
///
|
||||||
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(CEF_CALLBACK* get_current_speed)(struct _cef_download_item_t* self);
|
int64_t(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
|
||||||
@@ -90,12 +101,12 @@ typedef struct _cef_download_item_t {
|
|||||||
///
|
///
|
||||||
/// Returns the total number of bytes.
|
/// Returns the total number of bytes.
|
||||||
///
|
///
|
||||||
int64(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self);
|
int64_t(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the number of received bytes.
|
/// Returns the number of received bytes.
|
||||||
///
|
///
|
||||||
int64(CEF_CALLBACK* get_received_bytes)(struct _cef_download_item_t* self);
|
int64_t(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.
|
||||||
@@ -118,7 +129,7 @@ typedef struct _cef_download_item_t {
|
|||||||
///
|
///
|
||||||
/// Returns the unique identifier for this download.
|
/// Returns the unique identifier for this download.
|
||||||
///
|
///
|
||||||
uint32(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self);
|
uint32_t(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the URL.
|
/// Returns the URL.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=9e8375de3d30eb7e4f67488da3568d19848eb038$
|
// $hash=a096775255ddc4d7616095e48e7370bd87bf4bb5$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
|
||||||
@@ -149,6 +149,13 @@ 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.
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=ec450acb2c3cc4d0e69b7da725387d5c1049773b$
|
// $hash=0723a2a59d46e465ac94f198351dc871f0b35b96$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=b16b1c47d26e911d360159e5535743622a411c31$
|
// $hash=0ca2b788f70f8c9f5b2706d691d8e063be00ed19$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=ba961ade334c82e53213e7e8ac848adc2a7b533a$
|
// $hash=5cfff4465a586d2b2ea7b54a9549096faec415f6$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=3e2e068a2be0a3b12653eea65a4bbe1c9cdb8c7f$
|
// $hash=e10581d1f6aeb104646ae106aaa5fb36016643dd$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=30e86c9dd440616305f94747b313eb526c4323c7$
|
// $hash=da0a9242b309fbd70d19949fb1c5b4ec4475ef94$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=907b9628ac4b7ab4603dc6e20b7e8675a51987ba$
|
// $hash=6eefc2c650908461fb7536dd3314c77a3f89dceb$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=48bc345bb0971e3fcaaf839e9e4419b2aec0e33b$
|
// $hash=7294486141b2377198e994048a768db4a7cb9cd0$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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(CEF_CALLBACK* get_identifier)(struct _cef_frame_t* self);
|
int64_t(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,24 +216,16 @@ 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. This request may be intercepted by the
|
/// frame and the associated browser. Use cef_urlrequest_t::Create instead if
|
||||||
/// client via cef_resource_request_handler_t or cef_scheme_handler_factory_t.
|
/// you do not want the request to have this association, in which case it may
|
||||||
/// Use cef_urlrequest_t::Create instead if you do not want the request to
|
/// be handled differently (see documentation on that function). A request
|
||||||
/// have this association, in which case it may be handled differently (see
|
/// created with this function may only originate from the browser process,
|
||||||
/// documentation on that function). Requests may originate from both the
|
/// and will behave as follows:
|
||||||
/// browser process and the render process.
|
/// - It may be intercepted by the client via CefResourceRequestHandler or
|
||||||
///
|
/// 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.
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=3d97135fef535cc94aca6cf1afa4a9461c388b4f$
|
// $hash=5f808dd18e66966b62a3b8980075e87a5109e23f$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=14f7f979f668fdae0f080daa39f3c1b2e92162f9$
|
// $hash=990e80ab5ae04298e6b70cbc0a67115825563251$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_I18N_UTIL_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_I18N_UTIL_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=f679dc1ec87e99bed6843d4f4dbbe04585a827bd$
|
// $hash=7512ccf755017d5b1866b753890b498e8163006d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=523a692475e912e4ecad89842596c3d6eac6f4aa$
|
// $hash=c6810367ba3a17824247dcb17f87040cd021c295$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=01d7f86c1304efe8dc8758624b74bafccf159e96$
|
// $hash=0bfe161c51cc6378b2e8e2e2b2c017b750b46864$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=44555ceece9989dabfa57a520168fa874dcfe2df$
|
// $hash=5f2f1d43cf93b10ba58b2aa2716bc3638e58c97c$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
||||||
@@ -100,6 +100,34 @@ 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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=2713381c9969d7039e6c1a1ed2527e5aeb5425ce$
|
// $hash=eb842e65cd2e7c4a8a6baa2813b57ac0d3977261$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=77920892e7d9e8b98106e0bc8dfcf4b4c52a24e6$
|
// $hash=401b881a3bd1d0c36f9646804260f129eb5f70d9$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
|
||||||
@@ -257,13 +257,6 @@ 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.
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=4bf9250599e3ba26e7f74ec22338548492202625$
|
// $hash=2dcd17d131deb011094b741024aa11249e3fa306$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=8254165498a527d40517c1bc8ec413ad7a0ed259$
|
// $hash=01bdeaf96ea01591689b52b0955504644d6614b8$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=2822d96d72b7df816c0fefb4ce1cbba18add50ac$
|
// $hash=dbdac05f2ebd8e8a357eacfe5095676a5bd5b1ac$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=a40860835e6e693ed2f85eab5fa7990b7f2c7bbe$
|
// $hash=f146fd9172033e77e90994841df9fa55ff71aa4b$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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| if false (0) only exact domain matches will be
|
/// |allow_target_subdomains| is 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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=a6cb0abd77320cfd9ddfa3f16ca0a6ff3987521a$
|
// $hash=8accded29b97df1549e86e58d8976fe0f800359a$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
|
||||||
@@ -46,6 +46,14 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Combines specified |base_url| and |relative_url| into |resolved_url|.
|
||||||
|
/// Returns false (0) if one of the URLs is NULL or invalid.
|
||||||
|
///
|
||||||
|
CEF_EXPORT int cef_resolve_url(const cef_string_t* base_url,
|
||||||
|
const cef_string_t* relative_url,
|
||||||
|
cef_string_t* resolved_url);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Parse the specified |url| into its component parts. Returns false (0) if the
|
/// Parse the specified |url| into its component parts. Returns false (0) if the
|
||||||
/// URL is NULL or invalid.
|
/// URL is NULL or invalid.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=0b3af613a60e4c74ec83c0bb8f5280464cbe7f48$
|
// $hash=ee0c50b4e1f51fb2286da24bb9244ae74f3b0c6f$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=8f2ae563306d1e4ba5fa84a5f9a60712c6fc585f$
|
// $hash=c9b3913701581cd6a1077fa3a39d197f338a2507$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 allowed_permissions);
|
uint32_t 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 requested_permissions,
|
uint32_t 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 prompt_id,
|
uint64_t prompt_id,
|
||||||
const cef_string_t* requesting_origin,
|
const cef_string_t* requesting_origin,
|
||||||
uint32 requested_permissions,
|
uint32_t 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 prompt_id,
|
uint64_t prompt_id,
|
||||||
cef_permission_request_result_t result);
|
cef_permission_request_result_t result);
|
||||||
} cef_permission_handler_t;
|
} cef_permission_handler_t;
|
||||||
|
|
||||||
|
148
include/capi/cef_preference_capi.h
Normal file
148
include/capi/cef_preference_capi.h
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
// Copyright (c) 2024 Marshall A. Greenblatt. 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.
|
||||||
|
//
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// This file was generated by the CEF translator tool and should not edited
|
||||||
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
|
// more information.
|
||||||
|
//
|
||||||
|
// $hash=1c0e469a283538945834404bcd5934b9bb9a0756$
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_CAPI_CEF_PREFERENCE_CAPI_H_
|
||||||
|
#define CEF_INCLUDE_CAPI_CEF_PREFERENCE_CAPI_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "include/capi/cef_base_capi.h"
|
||||||
|
#include "include/capi/cef_values_capi.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Structure that manages custom preference registrations.
|
||||||
|
///
|
||||||
|
typedef struct _cef_preference_registrar_t {
|
||||||
|
///
|
||||||
|
/// Base structure.
|
||||||
|
///
|
||||||
|
cef_base_scoped_t base;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Register a preference with the specified |name| and |default_value|. To
|
||||||
|
/// avoid conflicts with built-in preferences the |name| value should contain
|
||||||
|
/// an application-specific prefix followed by a period (e.g. "myapp.value").
|
||||||
|
/// The contents of |default_value| will be copied. The data type for the
|
||||||
|
/// preference will be inferred from |default_value|'s type and cannot be
|
||||||
|
/// changed after registration. Returns true (1) on success. Returns false (0)
|
||||||
|
/// if |name| is already registered or if |default_value| has an invalid type.
|
||||||
|
/// This function must be called from within the scope of the
|
||||||
|
/// cef_browser_process_handler_t::OnRegisterCustomPreferences callback.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* add_preference)(struct _cef_preference_registrar_t* self,
|
||||||
|
const cef_string_t* name,
|
||||||
|
struct _cef_value_t* default_value);
|
||||||
|
} cef_preference_registrar_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Manage access to preferences. Many built-in preferences are registered by
|
||||||
|
/// Chromium. Custom preferences can be registered in
|
||||||
|
/// cef_browser_process_handler_t::OnRegisterCustomPreferences.
|
||||||
|
///
|
||||||
|
typedef struct _cef_preference_manager_t {
|
||||||
|
///
|
||||||
|
/// Base structure.
|
||||||
|
///
|
||||||
|
cef_base_ref_counted_t base;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true (1) if a preference with the specified |name| exists. This
|
||||||
|
/// function must be called on the browser process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* has_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the value for the preference with the specified |name|. Returns
|
||||||
|
/// NULL if the preference does not exist. The returned object contains a copy
|
||||||
|
/// of the underlying preference value and modifications to the returned
|
||||||
|
/// object will not modify the underlying preference value. This function must
|
||||||
|
/// be called on the browser process UI thread.
|
||||||
|
///
|
||||||
|
struct _cef_value_t*(CEF_CALLBACK* get_preference)(
|
||||||
|
struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns all preferences as a dictionary. If |include_defaults| is true (1)
|
||||||
|
/// then preferences currently at their default value will be included. The
|
||||||
|
/// returned object contains a copy of the underlying preference values and
|
||||||
|
/// modifications to the returned object will not modify the underlying
|
||||||
|
/// preference values. This function must be called on the browser process UI
|
||||||
|
/// thread.
|
||||||
|
///
|
||||||
|
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)(
|
||||||
|
struct _cef_preference_manager_t* self,
|
||||||
|
int include_defaults);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true (1) if the preference with the specified |name| can be
|
||||||
|
/// modified using SetPreference. As one example preferences set via the
|
||||||
|
/// command-line usually cannot be modified. This function must be called on
|
||||||
|
/// the browser process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* can_set_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Set the |value| associated with preference |name|. Returns true (1) if the
|
||||||
|
/// value is set successfully and false (0) otherwise. If |value| is NULL the
|
||||||
|
/// preference will be restored to its default value. If setting the
|
||||||
|
/// preference fails then |error| will be populated with a detailed
|
||||||
|
/// description of the problem. This function must be called on the browser
|
||||||
|
/// process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* set_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name,
|
||||||
|
struct _cef_value_t* value,
|
||||||
|
cef_string_t* error);
|
||||||
|
} cef_preference_manager_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the global preference manager object.
|
||||||
|
///
|
||||||
|
CEF_EXPORT cef_preference_manager_t* cef_preference_manager_get_global(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_CAPI_CEF_PREFERENCE_CAPI_H_
|
116
include/capi/cef_preference_manager_capi.h
Normal file
116
include/capi/cef_preference_manager_capi.h
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
// Copyright (c) 2022 Marshall A. Greenblatt. 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.
|
||||||
|
//
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// This file was generated by the CEF translator tool and should not edited
|
||||||
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
|
// more information.
|
||||||
|
//
|
||||||
|
// $hash=1f5dd49cfc5aeb4b673c10750de01768f5cd2694$
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_CAPI_CEF_PREFERENCE_MANAGER_CAPI_H_
|
||||||
|
#define CEF_INCLUDE_CAPI_CEF_PREFERENCE_MANAGER_CAPI_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "include/capi/cef_base_capi.h"
|
||||||
|
#include "include/capi/cef_values_capi.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Manage access to preferences.
|
||||||
|
///
|
||||||
|
typedef struct _cef_preference_manager_t {
|
||||||
|
///
|
||||||
|
/// Base structure.
|
||||||
|
///
|
||||||
|
cef_base_ref_counted_t base;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true (1) if a preference with the specified |name| exists. This
|
||||||
|
/// function must be called on the browser process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* has_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the value for the preference with the specified |name|. Returns
|
||||||
|
/// NULL if the preference does not exist. The returned object contains a copy
|
||||||
|
/// of the underlying preference value and modifications to the returned
|
||||||
|
/// object will not modify the underlying preference value. This function must
|
||||||
|
/// be called on the browser process UI thread.
|
||||||
|
///
|
||||||
|
struct _cef_value_t*(CEF_CALLBACK* get_preference)(
|
||||||
|
struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns all preferences as a dictionary. If |include_defaults| is true (1)
|
||||||
|
/// then preferences currently at their default value will be included. The
|
||||||
|
/// returned object contains a copy of the underlying preference values and
|
||||||
|
/// modifications to the returned object will not modify the underlying
|
||||||
|
/// preference values. This function must be called on the browser process UI
|
||||||
|
/// thread.
|
||||||
|
///
|
||||||
|
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)(
|
||||||
|
struct _cef_preference_manager_t* self,
|
||||||
|
int include_defaults);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true (1) if the preference with the specified |name| can be
|
||||||
|
/// modified using SetPreference. As one example preferences set via the
|
||||||
|
/// command-line usually cannot be modified. This function must be called on
|
||||||
|
/// the browser process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* can_set_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Set the |value| associated with preference |name|. Returns true (1) if the
|
||||||
|
/// value is set successfully and false (0) otherwise. If |value| is NULL the
|
||||||
|
/// preference will be restored to its default value. If setting the
|
||||||
|
/// preference fails then |error| will be populated with a detailed
|
||||||
|
/// description of the problem. This function must be called on the browser
|
||||||
|
/// process UI thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* set_preference)(struct _cef_preference_manager_t* self,
|
||||||
|
const cef_string_t* name,
|
||||||
|
struct _cef_value_t* value,
|
||||||
|
cef_string_t* error);
|
||||||
|
} cef_preference_manager_t;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_CAPI_CEF_PREFERENCE_MANAGER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=0621c349d0ef1e5befe0dc653a5b8ba49e51a54e$
|
// $hash=96d5b6c0dc8f2575e686fb79684c63787cdfe876$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=22959da4d5a2c94edc7647334507e38c44d40250$
|
// $hash=63977fcbe4567db202914f69539f49b254352053$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=7b8bbe145aa8d54d868b9d9e4ce6ff2e6a596e53$
|
// $hash=89c569df7e5e4a6035d4527218ce4dc1d68e20f0$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=f6b215445a54f565a26f1a62d2671156635d6d46$
|
// $hash=ddad43a2c40d34b50baab5c4542e17faec189ba6$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=28371116427e9457ea366c9f0546cd5eefd8f08a$
|
// $hash=c53a67bbf1497a51766bf03040714b5edb2117d5$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=931b329d62ea6461485b62b79f98165d7185b6e7$
|
// $hash=5309b2f6da62526ed92c928c0918bc27898cf03b$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=b74afb6f8003ed24256ce7359ea377596b4406d9$
|
// $hash=6e2fccb5a8e49918d723f6c5223062cf98b0f9de$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=041c1b4e6e57987ad547daff56f96c6ff7ab15c9$
|
// $hash=14ce483864835eca476d08d39ed4236fbd1a874c$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
|
uint64_t(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
|
||||||
} cef_request_t;
|
} cef_request_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=0c12192146d0ecf006c1f3f294a4c2fd4bec484b$
|
// $hash=23302ef6e4458aa3e7065aeaca3421a6f0b58361$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "include/capi/cef_extension_capi.h"
|
#include "include/capi/cef_extension_capi.h"
|
||||||
#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_values_capi.h"
|
#include "include/capi/cef_values_capi.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -93,7 +94,7 @@ typedef struct _cef_request_context_t {
|
|||||||
///
|
///
|
||||||
/// Base structure.
|
/// Base structure.
|
||||||
///
|
///
|
||||||
cef_base_ref_counted_t base;
|
cef_preference_manager_t base;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns true (1) if this object is pointing to the same context as |that|
|
/// Returns true (1) if this object is pointing to the same context as |that|
|
||||||
@@ -165,58 +166,6 @@ typedef struct _cef_request_context_t {
|
|||||||
int(CEF_CALLBACK* clear_scheme_handler_factories)(
|
int(CEF_CALLBACK* clear_scheme_handler_factories)(
|
||||||
struct _cef_request_context_t* self);
|
struct _cef_request_context_t* self);
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if a preference with the specified |name| exists. This
|
|
||||||
/// function must be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* has_preference)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* name);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the value for the preference with the specified |name|. Returns
|
|
||||||
/// NULL if the preference does not exist. The returned object contains a copy
|
|
||||||
/// of the underlying preference value and modifications to the returned
|
|
||||||
/// object will not modify the underlying preference value. This function must
|
|
||||||
/// be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
struct _cef_value_t*(CEF_CALLBACK* get_preference)(
|
|
||||||
struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* name);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns all preferences as a dictionary. If |include_defaults| is true (1)
|
|
||||||
/// then preferences currently at their default value will be included. The
|
|
||||||
/// returned object contains a copy of the underlying preference values and
|
|
||||||
/// modifications to the returned object will not modify the underlying
|
|
||||||
/// preference values. This function must be called on the browser process UI
|
|
||||||
/// thread.
|
|
||||||
///
|
|
||||||
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)(
|
|
||||||
struct _cef_request_context_t* self,
|
|
||||||
int include_defaults);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if the preference with the specified |name| can be
|
|
||||||
/// modified using SetPreference. As one example preferences set via the
|
|
||||||
/// command-line usually cannot be modified. This function must be called on
|
|
||||||
/// the browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* can_set_preference)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* name);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Set the |value| associated with preference |name|. Returns true (1) if the
|
|
||||||
/// value is set successfully and false (0) otherwise. If |value| is NULL the
|
|
||||||
/// preference will be restored to its default value. If setting the
|
|
||||||
/// preference fails then |error| will be populated with a detailed
|
|
||||||
/// description of the problem. This function must be called on the browser
|
|
||||||
/// process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* set_preference)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* name,
|
|
||||||
struct _cef_value_t* value,
|
|
||||||
cef_string_t* error);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Clears all certificate exceptions that were added as part of handling
|
/// Clears all certificate exceptions that were added as part of handling
|
||||||
/// cef_request_handler_t::on_certificate_error(). If you call this it is
|
/// cef_request_handler_t::on_certificate_error(). If you call this it is
|
||||||
@@ -353,6 +302,72 @@ 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;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=e2a1abf4d73bb90fb077cc5642d7b95ac5c11c14$
|
// $hash=d90d816565429ad304f43490b0619af5ffa70274$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
|
||||||
@@ -43,6 +43,7 @@
|
|||||||
#include "include/capi/cef_base_capi.h"
|
#include "include/capi/cef_base_capi.h"
|
||||||
#include "include/capi/cef_browser_capi.h"
|
#include "include/capi/cef_browser_capi.h"
|
||||||
#include "include/capi/cef_frame_capi.h"
|
#include "include/capi/cef_frame_capi.h"
|
||||||
|
#include "include/capi/cef_preference_capi.h"
|
||||||
#include "include/capi/cef_request_capi.h"
|
#include "include/capi/cef_request_capi.h"
|
||||||
#include "include/capi/cef_resource_request_handler_capi.h"
|
#include "include/capi/cef_resource_request_handler_capi.h"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=0524a218f8cb54cfde70f2ec475520b11923c2f7$
|
// $hash=3b59c0bc014d773dedc24649071141ee2dd2125c$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
|
||||||
@@ -176,21 +176,6 @@ typedef struct _cef_request_handler_t {
|
|||||||
const cef_string_t* scheme,
|
const cef_string_t* scheme,
|
||||||
struct _cef_auth_callback_t* callback);
|
struct _cef_auth_callback_t* callback);
|
||||||
|
|
||||||
///
|
|
||||||
/// Called on the IO thread when JavaScript requests a specific storage quota
|
|
||||||
/// size via the webkitStorageInfo.requestQuota function. |origin_url| is the
|
|
||||||
/// origin of the page making the request. |new_size| is the requested quota
|
|
||||||
/// size in bytes. Return true (1) to continue the request and call
|
|
||||||
/// cef_callback_t functions either in this function or at a later time to
|
|
||||||
/// grant or deny the request. Return false (0) to cancel the request
|
|
||||||
/// immediately.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* on_quota_request)(struct _cef_request_handler_t* self,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
const cef_string_t* origin_url,
|
|
||||||
int64 new_size,
|
|
||||||
struct _cef_callback_t* callback);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Called on the UI thread to handle requests for URLs with an invalid SSL
|
/// Called on the UI thread to handle requests for URLs with an invalid SSL
|
||||||
/// certificate. Return true (1) and call cef_callback_t functions either in
|
/// certificate. Return true (1) and call cef_callback_t functions either in
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=4350dcf46e2fcd18bea2c45446e448e588795afb$
|
// $hash=d97d3ca6c8d610627538c58f3b4ba3869f3d9ac7$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=5f8c2d1e11779072e83610190ed7215324028d07$
|
// $hash=b25f3131d67980e493da4d7e484676d000334995$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=3373cc29becf60303d1f01774c1ed8017c3f0da3$
|
// $hash=ad8218a8ac9e313884110e72bb2af32ec916907f$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 bytes_skipped);
|
int64_t 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* response_length,
|
int64_t* 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 bytes_to_skip,
|
int64_t bytes_to_skip,
|
||||||
int64* bytes_skipped,
|
int64_t* bytes_skipped,
|
||||||
struct _cef_resource_skip_callback_t* callback);
|
struct _cef_resource_skip_callback_t* callback);
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=64d090faf64e2ffb99da110840af383b757e113b$
|
// $hash=c4416644786e3c1999cdcd7e6bf78af94ff7f0da$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 received_content_length);
|
int64_t 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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=21354bc7b20a18eb0c25d2aa0abf1211fd9ebcaa$
|
// $hash=de559e5cd4b539ce129beab8f7627576c4249cd5$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=cbcb379f7ed86b58e271089a4117267a50f72814$
|
// $hash=1c83177e8030f7637d8ce0aa68831e417fbf37d3$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=1b6cd9a13f93867b1f20418bfa4c7db8b5e6725d$
|
// $hash=ba8011bd357e466a94acfd86597f44af00f096a3$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=4d76765604a96b026076f1c930a33d616f23b4ad$
|
// $hash=b85c5d4060c951571f122e519e7dc7e9a4c4e629$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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 content_length,
|
int64_t 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 port,
|
uint16_t port,
|
||||||
int backlog,
|
int backlog,
|
||||||
struct _cef_server_handler_t* handler);
|
struct _cef_server_handler_t* handler);
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=5f69190b21f9fa17e6fb4c2284968f8ec5b147ed$
|
// $hash=3d208a996f65f37012460edb1890773218580913$
|
||||||
//
|
//
|
||||||
|
|
||||||
#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.
|
||||||
///
|
///
|
||||||
const void*(CEF_CALLBACK* memory)(struct _cef_shared_memory_region_t* self);
|
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
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=66198e92ec123e753bb427a0b92d73672610136e$
|
// $hash=1ae66f6ec465fda2d62530f5871efd58c89e7568$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_SHARED_PROCESS_MESSAGE_BUILDER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_SHARED_PROCESS_MESSAGE_BUILDER_CAPI_H_
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved.
|
// Copyright (c) 2024 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=64d6affe3e8e45869403f829c2aa86026773a17b$
|
// $hash=d781f3791df17c6d6adc4414e8534a6b13a54ff2$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user