mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Compare commits
131 Commits
6367
...
a231b7ead7
Author | SHA1 | Date | |
---|---|---|---|
|
a231b7ead7 | ||
|
e5bc3c9255 | ||
|
330534a2e7 | ||
|
467a0d6a85 | ||
|
2b6f461337 | ||
|
abfc029a01 | ||
|
ac71a0e9f2 | ||
|
cd052ec7c3 | ||
|
e44d33d5bf | ||
|
6459917c0a | ||
|
b90f0048da | ||
|
8c6f8dd404 | ||
|
af1f40a2d3 | ||
|
2cd405baac | ||
|
b98eac265a | ||
|
701c9470f2 | ||
|
889cfcf8d1 | ||
|
ebb3c962da | ||
|
64a2f681aa | ||
|
52888f346f | ||
|
9e9ba2c543 | ||
|
166eec85e0 | ||
|
f6f4ba8317 | ||
|
bed7f420aa | ||
|
be4085981c | ||
|
785713c4cc | ||
|
b61c106b6b | ||
|
295ea1f715 | ||
|
08ae3a44a6 | ||
|
5ddeef736a | ||
|
446b7d6535 | ||
|
a6c00b2ff6 | ||
|
69b884d39c | ||
|
3acdbac061 | ||
|
d470cf8204 | ||
|
cbbca050e0 | ||
|
69fbadd0bc | ||
|
4023fea237 | ||
|
5607a4d347 | ||
|
8f4a47479c | ||
|
02ea88f79f | ||
|
ddb0ab8187 | ||
|
ed4257c807 | ||
|
b7a172fefc | ||
|
68e1fcf3a4 | ||
|
1f35258023 | ||
|
60ce575e53 | ||
|
0d166c3c90 | ||
|
9b284ec8f7 | ||
|
b080705ec8 | ||
|
1cdf02815e | ||
|
cd3f617171 | ||
|
bd57a40256 | ||
|
c0a3c897cf | ||
|
231701d98b | ||
|
a461a89728 | ||
|
b95b3e6fd5 | ||
|
c4a6797059 | ||
|
ebb99fbd58 | ||
|
1d7e83336f | ||
|
2a19d3dc57 | ||
|
810c51026c | ||
|
5afde67593 | ||
|
3b98dbda79 | ||
|
c44aa35bfc | ||
|
4ed13d8c47 | ||
|
fe24ce3c71 | ||
|
cc40cbdd45 | ||
|
7c19cb90e1 | ||
|
47798d3dbf | ||
|
e4bb51f6f6 | ||
|
fd7444c7a4 | ||
|
c56ae7213e | ||
|
cb1830e16c | ||
|
39cafe3e6c | ||
|
15c7e80e3c | ||
|
8e79307a62 | ||
|
b0bceecba9 | ||
|
b6842f8b80 | ||
|
5fe6382906 | ||
|
bd1e188c77 | ||
|
701fc03f00 | ||
|
bc1b856b96 | ||
|
c7b30ee80f | ||
|
48137b9538 | ||
|
5a2cfb6907 | ||
|
6354d8daf1 | ||
|
aad216bf56 | ||
|
3f036edf2d | ||
|
32fc106ab0 | ||
|
0170f431a0 | ||
|
2156c9fd5d | ||
|
00118ddcdb | ||
|
e7626b2df6 | ||
|
8283317cb1 | ||
|
271c6f6446 | ||
|
311eaf827e | ||
|
002f4b5b4a | ||
|
17a1fd62ec | ||
|
ca636bb96e | ||
|
4e3668f93a | ||
|
6b13b1c627 | ||
|
29381355ef | ||
|
7328b9e40d | ||
|
b92749a58a | ||
|
49a34d9160 | ||
|
b5d84c254d | ||
|
d666ec5770 | ||
|
fe5b0dd668 | ||
|
c0e7854782 | ||
|
be6642df3f | ||
|
ed079792b6 | ||
|
0783b4c57d | ||
|
b537fc929b | ||
|
708d90a6ff | ||
|
5065aba1b4 | ||
|
65234a6830 | ||
|
b67cbc47e3 | ||
|
4fe529e2dc | ||
|
260dd0ca24 | ||
|
dca0435d2f | ||
|
62c93f01f4 | ||
|
81a0648ee1 | ||
|
744a194a6e | ||
|
96dc172980 | ||
|
f1effba336 | ||
|
d10cc16236 | ||
|
da1c3179a9 | ||
|
2e33954032 | ||
|
f60476b848 | ||
|
29c21f58e8 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -51,6 +51,5 @@ Thumbs.db
|
|||||||
/binary_distrib
|
/binary_distrib
|
||||||
/docs
|
/docs
|
||||||
# CEF generated files
|
# CEF generated files
|
||||||
/include/cef_config.h
|
|
||||||
/include/cef_version.h
|
/include/cef_version.h
|
||||||
.ccls-cache/
|
.ccls-cache/
|
||||||
|
376
BUILD.gn
376
BUILD.gn
@@ -99,6 +99,7 @@ import("//build/config/locales.gni")
|
|||||||
import("//build/config/ozone.gni")
|
import("//build/config/ozone.gni")
|
||||||
import("//build/config/sanitizers/sanitizers.gni")
|
import("//build/config/sanitizers/sanitizers.gni")
|
||||||
import("//build/config/ui.gni")
|
import("//build/config/ui.gni")
|
||||||
|
import("//cef/libcef/features/features.gni")
|
||||||
import("//chrome/common/features.gni")
|
import("//chrome/common/features.gni")
|
||||||
import("//content/public/app/mac_helpers.gni")
|
import("//content/public/app/mac_helpers.gni")
|
||||||
import("//extensions/buildflags/buildflags.gni")
|
import("//extensions/buildflags/buildflags.gni")
|
||||||
@@ -251,8 +252,7 @@ if (is_linux) {
|
|||||||
# Set by GetRequiredArgs() in //cef/tools/gn_args.py.
|
# Set by GetRequiredArgs() in //cef/tools/gn_args.py.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Set ENABLE_PRINTING=1 ENABLE_BASIC_PRINTING=1.
|
# Enable support for Print Preview.
|
||||||
assert(enable_basic_printing)
|
|
||||||
assert(enable_print_preview)
|
assert(enable_print_preview)
|
||||||
|
|
||||||
# Enable support for Widevine CDM.
|
# Enable support for Widevine CDM.
|
||||||
@@ -349,6 +349,10 @@ if (is_win) {
|
|||||||
"//build/config:precompiled_headers",
|
"//build/config:precompiled_headers",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
public_configs = [
|
||||||
|
"libcef/features:config",
|
||||||
|
]
|
||||||
|
|
||||||
if (is_component_build) {
|
if (is_component_build) {
|
||||||
# Avoid linker errors with content_switches.cc in component build by not
|
# Avoid linker errors with content_switches.cc in component build by not
|
||||||
# defining CONTENT_EXPORT.
|
# defining CONTENT_EXPORT.
|
||||||
@@ -457,32 +461,14 @@ source_set("libcef_test_support") {
|
|||||||
source_set("libcef_static") {
|
source_set("libcef_static") {
|
||||||
sources = includes_common +
|
sources = includes_common +
|
||||||
gypi_paths.autogen_cpp_includes + [
|
gypi_paths.autogen_cpp_includes + [
|
||||||
"libcef/browser/alloy/alloy_browser_context.cc",
|
|
||||||
"libcef/browser/alloy/alloy_browser_context.h",
|
|
||||||
"libcef/browser/alloy/alloy_browser_host_impl.cc",
|
"libcef/browser/alloy/alloy_browser_host_impl.cc",
|
||||||
"libcef/browser/alloy/alloy_browser_host_impl.h",
|
"libcef/browser/alloy/alloy_browser_host_impl.h",
|
||||||
"libcef/browser/alloy/alloy_browser_main.cc",
|
|
||||||
"libcef/browser/alloy/alloy_browser_main.h",
|
|
||||||
"libcef/browser/alloy/alloy_content_browser_client.cc",
|
|
||||||
"libcef/browser/alloy/alloy_content_browser_client.h",
|
|
||||||
"libcef/browser/alloy/alloy_download_util.cc",
|
|
||||||
"libcef/browser/alloy/alloy_download_util.h",
|
|
||||||
"libcef/browser/alloy/alloy_web_contents_view_delegate.cc",
|
|
||||||
"libcef/browser/alloy/alloy_web_contents_view_delegate.h",
|
|
||||||
"libcef/browser/alloy/browser_platform_delegate_alloy.cc",
|
"libcef/browser/alloy/browser_platform_delegate_alloy.cc",
|
||||||
"libcef/browser/alloy/browser_platform_delegate_alloy.h",
|
"libcef/browser/alloy/browser_platform_delegate_alloy.h",
|
||||||
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.cc",
|
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.cc",
|
||||||
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.h",
|
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.h",
|
||||||
"libcef/browser/alloy/dialogs/alloy_javascript_dialog_manager_delegate.cc",
|
|
||||||
"libcef/browser/alloy/dialogs/alloy_javascript_dialog_manager_delegate.h",
|
|
||||||
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.cc",
|
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.cc",
|
||||||
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.h",
|
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.h",
|
||||||
"libcef/browser/alloy/chrome_browser_process_alloy.cc",
|
|
||||||
"libcef/browser/alloy/chrome_browser_process_alloy.h",
|
|
||||||
"libcef/browser/alloy/chrome_profile_manager_alloy.cc",
|
|
||||||
"libcef/browser/alloy/chrome_profile_manager_alloy.h",
|
|
||||||
"libcef/browser/alloy/chrome_profile_alloy.cc",
|
|
||||||
"libcef/browser/alloy/chrome_profile_alloy.h",
|
|
||||||
"libcef/browser/audio_capturer.cc",
|
"libcef/browser/audio_capturer.cc",
|
||||||
"libcef/browser/audio_capturer.h",
|
"libcef/browser/audio_capturer.h",
|
||||||
"libcef/browser/audio_loopback_stream_creator.cc",
|
"libcef/browser/audio_loopback_stream_creator.cc",
|
||||||
@@ -491,10 +477,12 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/browser_contents_delegate.h",
|
"libcef/browser/browser_contents_delegate.h",
|
||||||
"libcef/browser/browser_context.cc",
|
"libcef/browser/browser_context.cc",
|
||||||
"libcef/browser/browser_context.h",
|
"libcef/browser/browser_context.h",
|
||||||
"libcef/browser/browser_context_keyed_service_factories.cc",
|
"libcef/browser/browser_event_util.cc",
|
||||||
"libcef/browser/browser_context_keyed_service_factories.h",
|
"libcef/browser/browser_event_util.h",
|
||||||
"libcef/browser/browser_frame.cc",
|
"libcef/browser/browser_frame.cc",
|
||||||
"libcef/browser/browser_frame.h",
|
"libcef/browser/browser_frame.h",
|
||||||
|
"libcef/browser/browser_guest_util.cc",
|
||||||
|
"libcef/browser/browser_guest_util.h",
|
||||||
"libcef/browser/browser_host_base.cc",
|
"libcef/browser/browser_host_base.cc",
|
||||||
"libcef/browser/browser_host_base.h",
|
"libcef/browser/browser_host_base.h",
|
||||||
"libcef/browser/browser_host_create.cc",
|
"libcef/browser/browser_host_create.cc",
|
||||||
@@ -509,8 +497,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/browser_platform_delegate.cc",
|
"libcef/browser/browser_platform_delegate.cc",
|
||||||
"libcef/browser/browser_platform_delegate.h",
|
"libcef/browser/browser_platform_delegate.h",
|
||||||
"libcef/browser/browser_platform_delegate_create.cc",
|
"libcef/browser/browser_platform_delegate_create.cc",
|
||||||
"libcef/browser/browser_util.cc",
|
|
||||||
"libcef/browser/browser_util.h",
|
|
||||||
"libcef/browser/certificate_query.cc",
|
"libcef/browser/certificate_query.cc",
|
||||||
"libcef/browser/certificate_query.h",
|
"libcef/browser/certificate_query.h",
|
||||||
"libcef/browser/chrome/browser_delegate.h",
|
"libcef/browser/chrome/browser_delegate.h",
|
||||||
@@ -530,7 +516,9 @@ source_set("libcef_static") {
|
|||||||
"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.cc",
|
||||||
"libcef/browser/chrome/chrome_startup_browser_creator.h",
|
"libcef/browser/chrome/chrome_startup_browser_creator.h",
|
||||||
"libcef/browser/chrome_crash_reporter_client_stub.cc",
|
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef.h",
|
||||||
|
"libcef/browser/chrome/extensions/chrome_extension_util.cc",
|
||||||
|
"libcef/browser/chrome/extensions/chrome_extension_util.h",
|
||||||
"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",
|
||||||
"libcef/browser/chrome/views/browser_platform_delegate_chrome_child_window.cc",
|
"libcef/browser/chrome/views/browser_platform_delegate_chrome_child_window.cc",
|
||||||
@@ -555,62 +543,16 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/context_menu_params_impl.h",
|
"libcef/browser/context_menu_params_impl.h",
|
||||||
"libcef/browser/devtools/devtools_controller.cc",
|
"libcef/browser/devtools/devtools_controller.cc",
|
||||||
"libcef/browser/devtools/devtools_controller.h",
|
"libcef/browser/devtools/devtools_controller.h",
|
||||||
"libcef/browser/devtools/devtools_file_manager.cc",
|
"libcef/browser/devtools/devtools_protocol_manager.cc",
|
||||||
"libcef/browser/devtools/devtools_file_manager.h",
|
"libcef/browser/devtools/devtools_protocol_manager.h",
|
||||||
"libcef/browser/devtools/devtools_frontend.cc",
|
"libcef/browser/devtools/devtools_window_runner.cc",
|
||||||
"libcef/browser/devtools/devtools_frontend.h",
|
"libcef/browser/devtools/devtools_window_runner.h",
|
||||||
"libcef/browser/devtools/devtools_manager.cc",
|
|
||||||
"libcef/browser/devtools/devtools_manager.h",
|
|
||||||
"libcef/browser/devtools/devtools_manager_delegate.cc",
|
|
||||||
"libcef/browser/devtools/devtools_manager_delegate.h",
|
|
||||||
"libcef/browser/download_item_impl.cc",
|
"libcef/browser/download_item_impl.cc",
|
||||||
"libcef/browser/download_item_impl.h",
|
"libcef/browser/download_item_impl.h",
|
||||||
"libcef/browser/download_manager_delegate.cc",
|
"libcef/browser/download_manager_delegate.cc",
|
||||||
"libcef/browser/download_manager_delegate.h",
|
"libcef/browser/download_manager_delegate.h",
|
||||||
"libcef/browser/extension_impl.cc",
|
"libcef/browser/download_manager_delegate_impl.cc",
|
||||||
"libcef/browser/extension_impl.h",
|
"libcef/browser/download_manager_delegate_impl.h",
|
||||||
"libcef/browser/extensions/api/file_system/cef_file_system_delegate.cc",
|
|
||||||
"libcef/browser/extensions/api/file_system/cef_file_system_delegate.h",
|
|
||||||
"libcef/browser/extensions/api/storage/sync_value_store_cache.cc",
|
|
||||||
"libcef/browser/extensions/api/storage/sync_value_store_cache.h",
|
|
||||||
"libcef/browser/extensions/api/tabs/tabs_api.cc",
|
|
||||||
"libcef/browser/extensions/api/tabs/tabs_api.h",
|
|
||||||
"libcef/browser/extensions/alloy_extensions_util.cc",
|
|
||||||
"libcef/browser/extensions/alloy_extensions_util.h",
|
|
||||||
"libcef/browser/extensions/browser_extensions_util.cc",
|
|
||||||
"libcef/browser/extensions/browser_extensions_util.h",
|
|
||||||
"libcef/browser/extensions/browser_platform_delegate_background.cc",
|
|
||||||
"libcef/browser/extensions/browser_platform_delegate_background.h",
|
|
||||||
"libcef/browser/extensions/chrome_api_registration.cc",
|
|
||||||
"libcef/browser/extensions/chrome_api_registration.h",
|
|
||||||
"libcef/browser/extensions/component_extension_resource_manager.cc",
|
|
||||||
"libcef/browser/extensions/component_extension_resource_manager.h",
|
|
||||||
"libcef/browser/extensions/extensions_api_client.cc",
|
|
||||||
"libcef/browser/extensions/extensions_api_client.h",
|
|
||||||
"libcef/browser/extensions/extensions_browser_api_provider.cc",
|
|
||||||
"libcef/browser/extensions/extensions_browser_api_provider.h",
|
|
||||||
"libcef/browser/extensions/extensions_browser_client.cc",
|
|
||||||
"libcef/browser/extensions/extensions_browser_client.h",
|
|
||||||
"libcef/browser/extensions/extension_background_host.cc",
|
|
||||||
"libcef/browser/extensions/extension_background_host.h",
|
|
||||||
"libcef/browser/extensions/extension_function_details.cc",
|
|
||||||
"libcef/browser/extensions/extension_function_details.h",
|
|
||||||
"libcef/browser/extensions/extension_host_delegate.cc",
|
|
||||||
"libcef/browser/extensions/extension_host_delegate.h",
|
|
||||||
"libcef/browser/extensions/extension_system.cc",
|
|
||||||
"libcef/browser/extensions/extension_system.h",
|
|
||||||
"libcef/browser/extensions/extension_system_factory.cc",
|
|
||||||
"libcef/browser/extensions/extension_system_factory.h",
|
|
||||||
"libcef/browser/extensions/extension_view_host.cc",
|
|
||||||
"libcef/browser/extensions/extension_view_host.h",
|
|
||||||
"libcef/browser/extensions/extension_web_contents_observer.cc",
|
|
||||||
"libcef/browser/extensions/extension_web_contents_observer.h",
|
|
||||||
"libcef/browser/extensions/mime_handler_view_guest_delegate.cc",
|
|
||||||
"libcef/browser/extensions/mime_handler_view_guest_delegate.h",
|
|
||||||
"libcef/browser/extensions/value_store/cef_value_store.cc",
|
|
||||||
"libcef/browser/extensions/value_store/cef_value_store.h",
|
|
||||||
"libcef/browser/extensions/value_store/cef_value_store_factory.cc",
|
|
||||||
"libcef/browser/extensions/value_store/cef_value_store_factory.h",
|
|
||||||
"libcef/browser/file_dialog_manager.cc",
|
"libcef/browser/file_dialog_manager.cc",
|
||||||
"libcef/browser/file_dialog_manager.h",
|
"libcef/browser/file_dialog_manager.h",
|
||||||
"libcef/browser/file_dialog_runner.cc",
|
"libcef/browser/file_dialog_runner.cc",
|
||||||
@@ -633,8 +575,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/main_runner.h",
|
"libcef/browser/main_runner.h",
|
||||||
"libcef/browser/media_access_query.cc",
|
"libcef/browser/media_access_query.cc",
|
||||||
"libcef/browser/media_access_query.h",
|
"libcef/browser/media_access_query.h",
|
||||||
"libcef/browser/media_capture_devices_dispatcher.cc",
|
|
||||||
"libcef/browser/media_capture_devices_dispatcher.h",
|
|
||||||
"libcef/browser/media_router/media_route_impl.cc",
|
"libcef/browser/media_router/media_route_impl.cc",
|
||||||
"libcef/browser/media_router/media_route_impl.h",
|
"libcef/browser/media_router/media_route_impl.h",
|
||||||
"libcef/browser/media_router/media_router_impl.cc",
|
"libcef/browser/media_router/media_router_impl.cc",
|
||||||
@@ -660,15 +600,7 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/native/window_delegate_view.h",
|
"libcef/browser/native/window_delegate_view.h",
|
||||||
"libcef/browser/navigation_entry_impl.cc",
|
"libcef/browser/navigation_entry_impl.cc",
|
||||||
"libcef/browser/navigation_entry_impl.h",
|
"libcef/browser/navigation_entry_impl.h",
|
||||||
"libcef/browser/net/chrome_scheme_handler.cc",
|
|
||||||
"libcef/browser/net/chrome_scheme_handler.h",
|
|
||||||
"libcef/browser/net/crlset_file_util_impl.cc",
|
"libcef/browser/net/crlset_file_util_impl.cc",
|
||||||
"libcef/browser/net/devtools_scheme_handler.cc",
|
|
||||||
"libcef/browser/net/devtools_scheme_handler.h",
|
|
||||||
"libcef/browser/net/internal_scheme_handler.cc",
|
|
||||||
"libcef/browser/net/internal_scheme_handler.h",
|
|
||||||
"libcef/browser/net/scheme_handler.cc",
|
|
||||||
"libcef/browser/net/scheme_handler.h",
|
|
||||||
"libcef/browser/net/throttle_handler.cc",
|
"libcef/browser/net/throttle_handler.cc",
|
||||||
"libcef/browser/net/throttle_handler.h",
|
"libcef/browser/net/throttle_handler.h",
|
||||||
"libcef/browser/net_service/browser_urlrequest_impl.cc",
|
"libcef/browser/net_service/browser_urlrequest_impl.cc",
|
||||||
@@ -724,8 +656,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/prefs/pref_helper.h",
|
"libcef/browser/prefs/pref_helper.h",
|
||||||
"libcef/browser/prefs/pref_registrar.cc",
|
"libcef/browser/prefs/pref_registrar.cc",
|
||||||
"libcef/browser/prefs/pref_registrar.h",
|
"libcef/browser/prefs/pref_registrar.h",
|
||||||
"libcef/browser/prefs/pref_store.cc",
|
|
||||||
"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",
|
||||||
@@ -742,20 +672,20 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/server_impl.h",
|
"libcef/browser/server_impl.h",
|
||||||
"libcef/browser/simple_menu_model_impl.cc",
|
"libcef/browser/simple_menu_model_impl.cc",
|
||||||
"libcef/browser/simple_menu_model_impl.h",
|
"libcef/browser/simple_menu_model_impl.h",
|
||||||
"libcef/browser/speech_recognition_manager_delegate.cc",
|
|
||||||
"libcef/browser/speech_recognition_manager_delegate.h",
|
|
||||||
"libcef/browser/ssl_host_state_delegate.cc",
|
|
||||||
"libcef/browser/ssl_host_state_delegate.h",
|
|
||||||
"libcef/browser/ssl_info_impl.cc",
|
"libcef/browser/ssl_info_impl.cc",
|
||||||
"libcef/browser/ssl_info_impl.h",
|
"libcef/browser/ssl_info_impl.h",
|
||||||
"libcef/browser/ssl_status_impl.cc",
|
"libcef/browser/ssl_status_impl.cc",
|
||||||
"libcef/browser/ssl_status_impl.h",
|
"libcef/browser/ssl_status_impl.h",
|
||||||
"libcef/browser/stream_impl.cc",
|
"libcef/browser/stream_impl.cc",
|
||||||
"libcef/browser/stream_impl.h",
|
"libcef/browser/stream_impl.h",
|
||||||
|
"libcef/browser/task_manager_impl.cc",
|
||||||
|
"libcef/browser/task_manager_impl.h",
|
||||||
"libcef/browser/trace_impl.cc",
|
"libcef/browser/trace_impl.cc",
|
||||||
"libcef/browser/trace_subscriber.cc",
|
"libcef/browser/trace_subscriber.cc",
|
||||||
"libcef/browser/trace_subscriber.h",
|
"libcef/browser/trace_subscriber.h",
|
||||||
"libcef/browser/thread_util.h",
|
"libcef/browser/thread_util.h",
|
||||||
|
"libcef/browser/ui_thread.cc",
|
||||||
|
"libcef/browser/ui_thread.h",
|
||||||
"libcef/browser/views/basic_label_button_impl.cc",
|
"libcef/browser/views/basic_label_button_impl.cc",
|
||||||
"libcef/browser/views/basic_label_button_impl.h",
|
"libcef/browser/views/basic_label_button_impl.h",
|
||||||
"libcef/browser/views/basic_label_button_view.cc",
|
"libcef/browser/views/basic_label_button_view.cc",
|
||||||
@@ -828,12 +758,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/browser/xml_reader_impl.h",
|
"libcef/browser/xml_reader_impl.h",
|
||||||
"libcef/browser/zip_reader_impl.cc",
|
"libcef/browser/zip_reader_impl.cc",
|
||||||
"libcef/browser/zip_reader_impl.h",
|
"libcef/browser/zip_reader_impl.h",
|
||||||
"libcef/common/alloy/alloy_content_client.cc",
|
|
||||||
"libcef/common/alloy/alloy_content_client.h",
|
|
||||||
"libcef/common/alloy/alloy_main_delegate.cc",
|
|
||||||
"libcef/common/alloy/alloy_main_delegate.h",
|
|
||||||
"libcef/common/alloy/alloy_main_runner_delegate.cc",
|
|
||||||
"libcef/common/alloy/alloy_main_runner_delegate.h",
|
|
||||||
"libcef/common/app_manager.cc",
|
"libcef/common/app_manager.cc",
|
||||||
"libcef/common/app_manager.h",
|
"libcef/common/app_manager.h",
|
||||||
"libcef/common/base_impl.cc",
|
"libcef/common/base_impl.cc",
|
||||||
@@ -843,8 +767,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/common/chrome/chrome_content_client_cef.h",
|
"libcef/common/chrome/chrome_content_client_cef.h",
|
||||||
"libcef/common/chrome/chrome_main_delegate_cef.cc",
|
"libcef/common/chrome/chrome_main_delegate_cef.cc",
|
||||||
"libcef/common/chrome/chrome_main_delegate_cef.h",
|
"libcef/common/chrome/chrome_main_delegate_cef.h",
|
||||||
"libcef/common/chrome/chrome_main_runner_delegate.cc",
|
|
||||||
"libcef/common/chrome/chrome_main_runner_delegate.h",
|
|
||||||
"libcef/common/command_line_impl.cc",
|
"libcef/common/command_line_impl.cc",
|
||||||
"libcef/common/command_line_impl.h",
|
"libcef/common/command_line_impl.h",
|
||||||
"libcef/common/crash_reporter_client.cc",
|
"libcef/common/crash_reporter_client.cc",
|
||||||
@@ -853,25 +775,13 @@ source_set("libcef_static") {
|
|||||||
"libcef/common/crash_reporting.h",
|
"libcef/common/crash_reporting.h",
|
||||||
"libcef/common/drag_data_impl.cc",
|
"libcef/common/drag_data_impl.cc",
|
||||||
"libcef/common/drag_data_impl.h",
|
"libcef/common/drag_data_impl.h",
|
||||||
"libcef/common/extensions/chrome_generated_schemas.cc",
|
|
||||||
"libcef/common/extensions/chrome_generated_schemas.h",
|
|
||||||
"libcef/common/extensions/extensions_api_provider.cc",
|
|
||||||
"libcef/common/extensions/extensions_api_provider.h",
|
|
||||||
"libcef/common/extensions/extensions_client.cc",
|
|
||||||
"libcef/common/extensions/extensions_client.h",
|
|
||||||
"libcef/common/extensions/extensions_util.cc",
|
|
||||||
"libcef/common/extensions/extensions_util.h",
|
|
||||||
"libcef/common/file_util_impl.cc",
|
"libcef/common/file_util_impl.cc",
|
||||||
"libcef/common/frame_util.cc",
|
"libcef/common/frame_util.cc",
|
||||||
"libcef/common/frame_util.h",
|
"libcef/common/frame_util.h",
|
||||||
"libcef/common/i18n_util_impl.cc",
|
"libcef/common/i18n_util_impl.cc",
|
||||||
"libcef/common/json_impl.cc",
|
"libcef/common/json_impl.cc",
|
||||||
"libcef/common/main_runner_delegate.h",
|
|
||||||
"libcef/common/main_runner_handler.h",
|
|
||||||
"libcef/common/net/http_header_utils.cc",
|
"libcef/common/net/http_header_utils.cc",
|
||||||
"libcef/common/net/http_header_utils.h",
|
"libcef/common/net/http_header_utils.h",
|
||||||
"libcef/common/net/net_resource_provider.cc",
|
|
||||||
"libcef/common/net/net_resource_provider.h",
|
|
||||||
"libcef/common/net/scheme_registration.cc",
|
"libcef/common/net/scheme_registration.cc",
|
||||||
"libcef/common/net/scheme_registration.h",
|
"libcef/common/net/scheme_registration.h",
|
||||||
"libcef/common/net/url_util.cc",
|
"libcef/common/net/url_util.cc",
|
||||||
@@ -919,14 +829,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/common/values_impl.h",
|
"libcef/common/values_impl.h",
|
||||||
"libcef/common/waitable_event_impl.cc",
|
"libcef/common/waitable_event_impl.cc",
|
||||||
"libcef/common/waitable_event_impl.h",
|
"libcef/common/waitable_event_impl.h",
|
||||||
"libcef/features/runtime.h",
|
|
||||||
"libcef/features/runtime_checks.h",
|
|
||||||
"libcef/renderer/alloy/alloy_content_renderer_client.cc",
|
|
||||||
"libcef/renderer/alloy/alloy_content_renderer_client.h",
|
|
||||||
"libcef/renderer/alloy/alloy_render_thread_observer.cc",
|
|
||||||
"libcef/renderer/alloy/alloy_render_thread_observer.h",
|
|
||||||
"libcef/renderer/alloy/url_loader_throttle_provider_impl.cc",
|
|
||||||
"libcef/renderer/alloy/url_loader_throttle_provider_impl.h",
|
|
||||||
"libcef/renderer/browser_impl.cc",
|
"libcef/renderer/browser_impl.cc",
|
||||||
"libcef/renderer/browser_impl.h",
|
"libcef/renderer/browser_impl.h",
|
||||||
"libcef/renderer/chrome/chrome_content_renderer_client_cef.cc",
|
"libcef/renderer/chrome/chrome_content_renderer_client_cef.cc",
|
||||||
@@ -935,12 +837,6 @@ source_set("libcef_static") {
|
|||||||
"libcef/renderer/dom_document_impl.h",
|
"libcef/renderer/dom_document_impl.h",
|
||||||
"libcef/renderer/dom_node_impl.cc",
|
"libcef/renderer/dom_node_impl.cc",
|
||||||
"libcef/renderer/dom_node_impl.h",
|
"libcef/renderer/dom_node_impl.h",
|
||||||
"libcef/renderer/extensions/extensions_renderer_api_provider.cc",
|
|
||||||
"libcef/renderer/extensions/extensions_renderer_api_provider.h",
|
|
||||||
"libcef/renderer/extensions/extensions_renderer_client.cc",
|
|
||||||
"libcef/renderer/extensions/extensions_renderer_client.h",
|
|
||||||
"libcef/renderer/extensions/print_render_frame_helper_delegate.cc",
|
|
||||||
"libcef/renderer/extensions/print_render_frame_helper_delegate.h",
|
|
||||||
"libcef/renderer/frame_impl.cc",
|
"libcef/renderer/frame_impl.cc",
|
||||||
"libcef/renderer/frame_impl.h",
|
"libcef/renderer/frame_impl.h",
|
||||||
"libcef/renderer/render_frame_observer.cc",
|
"libcef/renderer/render_frame_observer.cc",
|
||||||
@@ -986,16 +882,8 @@ source_set("libcef_static") {
|
|||||||
|
|
||||||
":libcef_static_unittested",
|
":libcef_static_unittested",
|
||||||
|
|
||||||
# Generate API bindings for extensions.
|
|
||||||
# TODO(cef): Enable if/when CEF exposes its own Mojo APIs. See
|
|
||||||
# libcef/common/extensions/api/README.txt for details.
|
|
||||||
#"libcef/common/extensions/api",
|
|
||||||
#"libcef/common/extensions/api:api_registration",
|
|
||||||
"libcef/common/extensions/api:extensions_features",
|
|
||||||
|
|
||||||
# Normal build dependencies. Should be sorted alphabetically.
|
# Normal build dependencies. Should be sorted alphabetically.
|
||||||
"//base:base_static",
|
"//base:base_static",
|
||||||
"//base/third_party/dynamic_annotations",
|
|
||||||
"//cc",
|
"//cc",
|
||||||
"//chrome:dependencies",
|
"//chrome:dependencies",
|
||||||
"//chrome:packed_resources",
|
"//chrome:packed_resources",
|
||||||
@@ -1090,7 +978,6 @@ source_set("libcef_static") {
|
|||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
sources += includes_win + [
|
sources += includes_win + [
|
||||||
"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/osr/browser_platform_delegate_osr_win.cc",
|
"libcef/browser/osr/browser_platform_delegate_osr_win.cc",
|
||||||
@@ -1106,12 +993,6 @@ source_set("libcef_static") {
|
|||||||
deps += [ "//content:sandbox_helper_win" ]
|
deps += [ "//content:sandbox_helper_win" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
libs = [
|
|
||||||
"comctl32.lib",
|
|
||||||
# For D3D11_DECODER_PROFILE_H264_VLD_NOFGT.
|
|
||||||
"dxguid.lib",
|
|
||||||
]
|
|
||||||
|
|
||||||
data_deps = [
|
data_deps = [
|
||||||
"//chrome/elevation_service",
|
"//chrome/elevation_service",
|
||||||
]
|
]
|
||||||
@@ -1151,6 +1032,8 @@ source_set("libcef_static") {
|
|||||||
|
|
||||||
if (is_mac) {
|
if (is_mac) {
|
||||||
sources += includes_mac + [
|
sources += includes_mac + [
|
||||||
|
"libcef/browser/chrome/chrome_content_browser_client_cef_mac.mm",
|
||||||
|
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef_mac.mm",
|
||||||
"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/cursor_util_mac.mm",
|
||||||
@@ -1172,6 +1055,10 @@ source_set("libcef_static") {
|
|||||||
"//chrome/app/chrome_main_mac.h",
|
"//chrome/app/chrome_main_mac.h",
|
||||||
"//chrome/app/chrome_main_mac.mm",
|
"//chrome/app/chrome_main_mac.mm",
|
||||||
]
|
]
|
||||||
|
} else {
|
||||||
|
sources += [
|
||||||
|
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef.cc",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ozone_platform_x11) {
|
if (ozone_platform_x11) {
|
||||||
@@ -1222,19 +1109,30 @@ config("libcef_autogen_config") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Configuration that supports #include paths relative to src/cef/ for CEF
|
||||||
|
# client-side code. CEF library-side code (Chromium code and cef/libcef/
|
||||||
|
# directory) uses #include paths relative to src/. See libcef/features:config
|
||||||
|
# for CEF library-side configuration.
|
||||||
|
config("libcef_includes_config") {
|
||||||
|
include_dirs = [
|
||||||
|
# cef/include/ directory and CEF client-side code use #includes relative to
|
||||||
|
# the cef/ directory.
|
||||||
|
".",
|
||||||
|
# CEF generated header files that also need to be discoverable.
|
||||||
|
# These #includes from client-side code will not be prefixed with cef/.
|
||||||
|
# They will be copied to the include/ directory in the binary distribution.
|
||||||
|
"$root_out_dir/includes/cef",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
# Configuration that will be applied to all targets that depend on
|
# Configuration that will be applied to all targets that depend on
|
||||||
# libcef_dll_wrapper.
|
# libcef_dll_wrapper.
|
||||||
config("libcef_dll_wrapper_config") {
|
config("libcef_dll_wrapper_config") {
|
||||||
include_dirs = [
|
configs = [
|
||||||
# CEF sources use include paths relative to the CEF root directory.
|
":libcef_autogen_config",
|
||||||
".",
|
":libcef_includes_config",
|
||||||
# CEF generates some header files that also need to be discoverable.
|
|
||||||
# They will be copied to the include/ directory in the binary distribution.
|
|
||||||
"$root_out_dir/includes",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
configs = [ ":libcef_autogen_config" ]
|
|
||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
if (current_cpu == "x86") {
|
if (current_cpu == "x86") {
|
||||||
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB minimum
|
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB minimum
|
||||||
@@ -1282,20 +1180,23 @@ static_library("libcef_dll_wrapper") {
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
static_library("cef_sandbox") {
|
static_library("cef_sandbox") {
|
||||||
sources = [ "libcef_dll/sandbox/sandbox_win.cc" ]
|
sources = [ "libcef_dll/sandbox/sandbox_win.cc" ]
|
||||||
# CEF sources use include paths relative to the CEF root directory.
|
configs += [ ":libcef_includes_config" ]
|
||||||
include_dirs = [ "." ]
|
deps = [
|
||||||
deps = [ "libcef/features", "//sandbox" ]
|
":make_config_header",
|
||||||
|
"libcef/features",
|
||||||
|
"//sandbox",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_mac) {
|
if (is_mac) {
|
||||||
static_library("cef_sandbox") {
|
static_library("cef_sandbox") {
|
||||||
sources = [ "libcef_dll/sandbox/sandbox_mac.mm" ]
|
sources = [ "libcef_dll/sandbox/sandbox_mac.mm" ]
|
||||||
# CEF sources use include paths relative to the CEF root directory.
|
configs += [ ":libcef_includes_config" ]
|
||||||
include_dirs = [ "." ]
|
|
||||||
deps = [
|
deps = [
|
||||||
|
":make_config_header",
|
||||||
"//build/config:executable_deps",
|
"//build/config:executable_deps",
|
||||||
"//sandbox/mac:seatbelt"
|
"//sandbox/mac:seatbelt",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1351,7 +1252,7 @@ template("make_pack_header") {
|
|||||||
|
|
||||||
# Generate cef_pack_resources.h.
|
# Generate cef_pack_resources.h.
|
||||||
make_pack_header("resources") {
|
make_pack_header("resources") {
|
||||||
header = "$root_out_dir/includes/include/cef_pack_resources.h"
|
header = "$root_out_dir/includes/cef/include/cef_pack_resources.h"
|
||||||
inputs = [
|
inputs = [
|
||||||
"$root_gen_dir/base/tracing/protos/grit/tracing_proto_resources.h",
|
"$root_gen_dir/base/tracing/protos/grit/tracing_proto_resources.h",
|
||||||
"$root_gen_dir/cef/grit/cef_resources.h",
|
"$root_gen_dir/cef/grit/cef_resources.h",
|
||||||
@@ -1415,7 +1316,7 @@ make_pack_header("resources") {
|
|||||||
|
|
||||||
# Generate cef_pack_strings.h.
|
# Generate cef_pack_strings.h.
|
||||||
make_pack_header("strings") {
|
make_pack_header("strings") {
|
||||||
header = "$root_out_dir/includes/include/cef_pack_strings.h"
|
header = "$root_out_dir/includes/cef/include/cef_pack_strings.h"
|
||||||
inputs = [
|
inputs = [
|
||||||
"$root_gen_dir/cef/grit/cef_strings.h",
|
"$root_gen_dir/cef/grit/cef_strings.h",
|
||||||
"$root_gen_dir/chrome/grit/branded_strings.h",
|
"$root_gen_dir/chrome/grit/branded_strings.h",
|
||||||
@@ -1427,8 +1328,9 @@ make_pack_header("strings") {
|
|||||||
"$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",
|
||||||
"$root_gen_dir/third_party/blink/public/strings/grit/blink_accessibility_strings.h",
|
|
||||||
"$root_gen_dir/third_party/blink/public/strings/grit/blink_strings.h",
|
"$root_gen_dir/third_party/blink/public/strings/grit/blink_strings.h",
|
||||||
|
"$root_gen_dir/ui/strings/grit/app_locale_settings.h",
|
||||||
|
"$root_gen_dir/ui/strings/grit/auto_image_annotation_strings.h",
|
||||||
"$root_gen_dir/ui/strings/grit/ui_strings.h",
|
"$root_gen_dir/ui/strings/grit/ui_strings.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1445,15 +1347,15 @@ make_pack_header("strings") {
|
|||||||
"//extensions/strings",
|
"//extensions/strings",
|
||||||
"//services/strings",
|
"//services/strings",
|
||||||
"//third_party/blink/public/strings",
|
"//third_party/blink/public/strings",
|
||||||
"//third_party/blink/public/strings:accessibility_strings",
|
|
||||||
"//ui/strings:app_locale_settings",
|
"//ui/strings:app_locale_settings",
|
||||||
|
"//ui/strings:auto_image_annotation_strings",
|
||||||
"//ui/strings:ui_strings",
|
"//ui/strings:ui_strings",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generate cef_command_ids.h.
|
# Generate cef_command_ids.h.
|
||||||
make_pack_header("command_ids") {
|
make_pack_header("command_ids") {
|
||||||
header = "$root_out_dir/includes/include/cef_command_ids.h"
|
header = "$root_out_dir/includes/cef/include/cef_command_ids.h"
|
||||||
inputs = [
|
inputs = [
|
||||||
"//chrome/app/chrome_command_ids.h",
|
"//chrome/app/chrome_command_ids.h",
|
||||||
]
|
]
|
||||||
@@ -1471,18 +1373,29 @@ action("make_api_hash_header") {
|
|||||||
gypi_paths2.includes_capi +
|
gypi_paths2.includes_capi +
|
||||||
gypi_paths.autogen_capi_includes
|
gypi_paths.autogen_capi_includes
|
||||||
include_dir = [ "include" ]
|
include_dir = [ "include" ]
|
||||||
outputs = [ "$root_out_dir/includes/include/cef_api_hash.h" ]
|
outputs = [ "$root_out_dir/includes/cef/include/cef_api_hash.h" ]
|
||||||
|
|
||||||
args = rebase_path(outputs + include_dir, root_build_dir)
|
args = rebase_path(outputs + include_dir, root_build_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This no-op action lists args.gn as an output, allowing it to be referenced as
|
||||||
|
# an input (trigger) for other actions. Otherwise, GN will complain that no
|
||||||
|
# target generates the args.gn file because it’s below the $root_out_dir.
|
||||||
|
action("args_gn_source") {
|
||||||
|
script = "//build/noop.py"
|
||||||
|
outputs = [ "$root_out_dir/args.gn" ]
|
||||||
|
}
|
||||||
|
|
||||||
# Generate cef_config.h.
|
# Generate cef_config.h.
|
||||||
action("make_config_header") {
|
action("make_config_header") {
|
||||||
script = "tools/make_config_header.py"
|
script = "tools/make_config_header.py"
|
||||||
|
|
||||||
outputs = [ "$root_out_dir/includes/include/cef_config.h" ]
|
deps = [ ":args_gn_source" ]
|
||||||
|
|
||||||
args = rebase_path(outputs + [ "$root_out_dir/args.gn" ], root_build_dir)
|
inputs = [ "$root_out_dir/args.gn" ]
|
||||||
|
outputs = [ "$root_out_dir/includes/cef/include/cef_config.h" ]
|
||||||
|
|
||||||
|
args = rebase_path(outputs + inputs, root_build_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generate cef_color_ids.h.
|
# Generate cef_color_ids.h.
|
||||||
@@ -1494,7 +1407,7 @@ action("make_colorids_header") {
|
|||||||
"//components/color/color_id.h",
|
"//components/color/color_id.h",
|
||||||
"//chrome/browser/ui/color/chrome_color_id.h",
|
"//chrome/browser/ui/color/chrome_color_id.h",
|
||||||
]
|
]
|
||||||
outputs = [ "$root_out_dir/includes/include/cef_color_ids.h" ]
|
outputs = [ "$root_out_dir/includes/cef/include/cef_color_ids.h" ]
|
||||||
|
|
||||||
args = rebase_path(outputs + inputs, root_build_dir)
|
args = rebase_path(outputs + inputs, root_build_dir)
|
||||||
}
|
}
|
||||||
@@ -1559,50 +1472,32 @@ if (is_mac) {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_egl) {
|
# Add the ANGLE .dylibs in the MODULE_DIR of the Framework app bundle.
|
||||||
# Add the ANGLE .dylibs in the MODULE_DIR of the Framework app bundle.
|
bundle_data("cef_framework_angle_binaries") {
|
||||||
bundle_data("cef_framework_angle_binaries") {
|
sources = [
|
||||||
sources = [
|
"$root_out_dir/egl_intermediates/libEGL.dylib",
|
||||||
"$root_out_dir/egl_intermediates/libEGL.dylib",
|
"$root_out_dir/egl_intermediates/libGLESv2.dylib",
|
||||||
"$root_out_dir/egl_intermediates/libGLESv2.dylib",
|
]
|
||||||
]
|
outputs = [
|
||||||
outputs = [
|
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
||||||
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
]
|
||||||
]
|
public_deps = [
|
||||||
public_deps = [
|
"//ui/gl:angle_library_copy",
|
||||||
"//ui/gl:angle_library_copy",
|
]
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add the SwiftShader .dylibs in the MODULE_DIR of the Framework app bundle.
|
|
||||||
bundle_data("cef_framework_swiftshader_binaries") {
|
|
||||||
sources = [
|
|
||||||
"$root_out_dir/vk_intermediates/libvk_swiftshader.dylib",
|
|
||||||
"$root_out_dir/vk_intermediates/vk_swiftshader_icd.json",
|
|
||||||
]
|
|
||||||
outputs = [
|
|
||||||
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
|
||||||
]
|
|
||||||
public_deps = [
|
|
||||||
"//ui/gl:swiftshader_vk_library_copy",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group("cef_framework_angle_library") {
|
# Add the SwiftShader .dylibs in the MODULE_DIR of the Framework app bundle.
|
||||||
if (use_egl) {
|
bundle_data("cef_framework_swiftshader_binaries") {
|
||||||
deps = [
|
sources = [
|
||||||
":cef_framework_angle_binaries",
|
"$root_out_dir/vk_intermediates/libvk_swiftshader.dylib",
|
||||||
]
|
"$root_out_dir/vk_intermediates/vk_swiftshader_icd.json",
|
||||||
}
|
]
|
||||||
}
|
outputs = [
|
||||||
|
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
||||||
group("cef_framework_swiftshader_library") {
|
]
|
||||||
if (use_egl) {
|
public_deps = [
|
||||||
deps = [
|
"//ui/gl:swiftshader_vk_library_copy",
|
||||||
":cef_framework_swiftshader_binaries",
|
]
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mac_framework_bundle("cef_framework") {
|
mac_framework_bundle("cef_framework") {
|
||||||
@@ -1626,9 +1521,9 @@ if (is_mac) {
|
|||||||
gypi_paths.autogen_library_side
|
gypi_paths.autogen_library_side
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":cef_framework_angle_library",
|
":cef_framework_angle_binaries",
|
||||||
":cef_framework_resources",
|
":cef_framework_resources",
|
||||||
":cef_framework_swiftshader_library",
|
":cef_framework_swiftshader_binaries",
|
||||||
":libcef_static",
|
":libcef_static",
|
||||||
":libcef_test_support",
|
":libcef_test_support",
|
||||||
]
|
]
|
||||||
@@ -1705,6 +1600,12 @@ if (is_mac) {
|
|||||||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||||||
# improvements.
|
# improvements.
|
||||||
configs += [ "//build/config/win:delayloads" ]
|
configs += [ "//build/config/win:delayloads" ]
|
||||||
|
|
||||||
|
libs = [
|
||||||
|
"comctl32.lib",
|
||||||
|
# For D3D11_DECODER_PROFILE_H264_VLD_NOFGT.
|
||||||
|
"dxguid.lib",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_linux && !is_debug && !use_partition_alloc_as_malloc) {
|
if (is_linux && !is_debug && !use_partition_alloc_as_malloc) {
|
||||||
@@ -1916,7 +1817,7 @@ if (is_mac) {
|
|||||||
bundle_data("cefclient_resources_bundle_data") {
|
bundle_data("cefclient_resources_bundle_data") {
|
||||||
sources = gypi_paths2.shared_sources_resources +
|
sources = gypi_paths2.shared_sources_resources +
|
||||||
gypi_paths2.cefclient_sources_resources + [
|
gypi_paths2.cefclient_sources_resources + [
|
||||||
"tests/cefclient/resources/mac/cefclient.icns",
|
"tests/cefclient/mac/cefclient.icns",
|
||||||
]
|
]
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
@@ -1924,16 +1825,9 @@ if (is_mac) {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
bundle_data("cefclient_resources_bundle_data_extensions_set_page_color") {
|
|
||||||
sources = gypi_paths2.cefclient_sources_resources_extensions_set_page_color
|
|
||||||
outputs = [
|
|
||||||
"{{bundle_resources_dir}}/extensions/set_page_color/{{source_file_part}}",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
bundle_data("cefclient_resources_bundle_data_english") {
|
bundle_data("cefclient_resources_bundle_data_english") {
|
||||||
sources = [
|
sources = [
|
||||||
"tests/cefclient/resources/mac/English.lproj/InfoPlist.strings",
|
"tests/cefclient/mac/English.lproj/InfoPlist.strings",
|
||||||
]
|
]
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
@@ -1943,7 +1837,7 @@ if (is_mac) {
|
|||||||
|
|
||||||
mac_xib_bundle_data("cefclient_xibs") {
|
mac_xib_bundle_data("cefclient_xibs") {
|
||||||
sources = [
|
sources = [
|
||||||
"tests/cefclient/resources/mac/English.lproj/MainMenu.xib",
|
"tests/cefclient/mac/English.lproj/MainMenu.xib",
|
||||||
]
|
]
|
||||||
|
|
||||||
output_path = "{{bundle_resources_dir}}/English.lproj"
|
output_path = "{{bundle_resources_dir}}/English.lproj"
|
||||||
@@ -1953,7 +1847,7 @@ if (is_mac) {
|
|||||||
# Necessary because the cef_framework target is testonly.
|
# Necessary because the cef_framework target is testonly.
|
||||||
testonly = true
|
testonly = true
|
||||||
|
|
||||||
helper_info_plist = "tests/cefclient/resources/mac/helper-Info.plist"
|
helper_info_plist = "tests/cefclient/mac/helper-Info.plist.in"
|
||||||
helper_sources = includes_common +
|
helper_sources = includes_common +
|
||||||
includes_mac +
|
includes_mac +
|
||||||
gypi_paths2.includes_wrapper +
|
gypi_paths2.includes_wrapper +
|
||||||
@@ -1967,7 +1861,7 @@ if (is_mac) {
|
|||||||
"CEF_USE_SANDBOX",
|
"CEF_USE_SANDBOX",
|
||||||
]
|
]
|
||||||
|
|
||||||
info_plist = "tests/cefclient/resources/mac/Info.plist"
|
info_plist = "tests/cefclient/mac/Info.plist.in"
|
||||||
sources = includes_common +
|
sources = includes_common +
|
||||||
includes_mac +
|
includes_mac +
|
||||||
gypi_paths2.includes_wrapper +
|
gypi_paths2.includes_wrapper +
|
||||||
@@ -1980,7 +1874,6 @@ if (is_mac) {
|
|||||||
gypi_paths2.cefclient_sources_mac
|
gypi_paths2.cefclient_sources_mac
|
||||||
deps = [
|
deps = [
|
||||||
":cefclient_resources_bundle_data",
|
":cefclient_resources_bundle_data",
|
||||||
":cefclient_resources_bundle_data_extensions_set_page_color",
|
|
||||||
":cefclient_resources_bundle_data_english",
|
":cefclient_resources_bundle_data_english",
|
||||||
":cefclient_xibs",
|
":cefclient_xibs",
|
||||||
]
|
]
|
||||||
@@ -2030,7 +1923,7 @@ if (is_mac) {
|
|||||||
# Necessary because the cef_framework target is testonly.
|
# Necessary because the cef_framework target is testonly.
|
||||||
testonly = true
|
testonly = true
|
||||||
|
|
||||||
helper_info_plist = "tests/cefsimple/mac/helper-Info.plist"
|
helper_info_plist = "tests/cefsimple/mac/helper-Info.plist.in"
|
||||||
helper_sources = includes_common +
|
helper_sources = includes_common +
|
||||||
includes_mac +
|
includes_mac +
|
||||||
gypi_paths2.includes_wrapper +
|
gypi_paths2.includes_wrapper +
|
||||||
@@ -2040,7 +1933,7 @@ if (is_mac) {
|
|||||||
"CEF_USE_SANDBOX",
|
"CEF_USE_SANDBOX",
|
||||||
]
|
]
|
||||||
|
|
||||||
info_plist = "tests/cefsimple/mac/Info.plist"
|
info_plist = "tests/cefsimple/mac/Info.plist.in"
|
||||||
sources = includes_common +
|
sources = includes_common +
|
||||||
includes_mac +
|
includes_mac +
|
||||||
gypi_paths2.includes_wrapper +
|
gypi_paths2.includes_wrapper +
|
||||||
@@ -2067,7 +1960,7 @@ if (is_mac) {
|
|||||||
|
|
||||||
bundle_data("ceftests_resources_bundle_data") {
|
bundle_data("ceftests_resources_bundle_data") {
|
||||||
sources = gypi_paths2.shared_sources_resources + [
|
sources = gypi_paths2.shared_sources_resources + [
|
||||||
"tests/ceftests/resources/mac/ceftests.icns",
|
"tests/ceftests/mac/ceftests.icns",
|
||||||
]
|
]
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
@@ -2077,7 +1970,7 @@ if (is_mac) {
|
|||||||
|
|
||||||
bundle_data("ceftests_resources_bundle_data_english") {
|
bundle_data("ceftests_resources_bundle_data_english") {
|
||||||
sources = [
|
sources = [
|
||||||
"tests/ceftests/resources/mac/English.lproj/InfoPlist.strings",
|
"tests/ceftests/mac/English.lproj/InfoPlist.strings",
|
||||||
]
|
]
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
@@ -2087,7 +1980,7 @@ if (is_mac) {
|
|||||||
|
|
||||||
mac_xib_bundle_data("ceftests_xibs") {
|
mac_xib_bundle_data("ceftests_xibs") {
|
||||||
sources = [
|
sources = [
|
||||||
"tests/ceftests/resources/mac/English.lproj/MainMenu.xib",
|
"tests/ceftests/mac/English.lproj/MainMenu.xib",
|
||||||
]
|
]
|
||||||
output_path = "{{bundle_resources_dir}}/English.lproj"
|
output_path = "{{bundle_resources_dir}}/English.lproj"
|
||||||
}
|
}
|
||||||
@@ -2095,11 +1988,12 @@ if (is_mac) {
|
|||||||
cef_app("ceftests") {
|
cef_app("ceftests") {
|
||||||
testonly = true
|
testonly = true
|
||||||
|
|
||||||
helper_info_plist = "tests/ceftests/resources/mac/helper-Info.plist"
|
helper_info_plist = "tests/ceftests/mac/helper-Info.plist.in"
|
||||||
helper_sources = gypi_paths2.shared_sources_common +
|
helper_sources = gypi_paths2.shared_sources_common +
|
||||||
gypi_paths2.shared_sources_renderer +
|
gypi_paths2.shared_sources_renderer +
|
||||||
gypi_paths2.shared_sources_mac_helper +
|
gypi_paths2.shared_sources_mac_helper +
|
||||||
gypi_paths2.ceftests_sources_mac_helper
|
gypi_paths2.ceftests_sources_mac_helper +
|
||||||
|
gypi_paths2.ceftests_sources_mac_helper_shared
|
||||||
helper_deps = [
|
helper_deps = [
|
||||||
":gtest_teamcity",
|
":gtest_teamcity",
|
||||||
"//testing/gtest",
|
"//testing/gtest",
|
||||||
@@ -2112,7 +2006,7 @@ if (is_mac) {
|
|||||||
"CEF_TESTS_IN_SRC_DIRECTORY",
|
"CEF_TESTS_IN_SRC_DIRECTORY",
|
||||||
]
|
]
|
||||||
|
|
||||||
info_plist = "tests/ceftests/resources/mac/Info.plist"
|
info_plist = "tests/ceftests/mac/Info.plist.in"
|
||||||
sources = includes_common +
|
sources = includes_common +
|
||||||
includes_mac +
|
includes_mac +
|
||||||
gypi_paths2.includes_wrapper +
|
gypi_paths2.includes_wrapper +
|
||||||
@@ -2170,11 +2064,6 @@ if (is_mac) {
|
|||||||
gypi_paths2.cefclient_sources_resources
|
gypi_paths2.cefclient_sources_resources
|
||||||
outputs = [ "${root_out_dir}/cefclient_files/{{source_file_part}}" ]
|
outputs = [ "${root_out_dir}/cefclient_files/{{source_file_part}}" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
copy("copy_cefclient_files_extensions_set_page_color") {
|
|
||||||
sources = gypi_paths2.cefclient_sources_resources_extensions_set_page_color
|
|
||||||
outputs = [ "${root_out_dir}/cefclient_files/extensions/set_page_color/{{source_file_part}}" ]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
executable("cefclient") {
|
executable("cefclient") {
|
||||||
@@ -2202,7 +2091,8 @@ if (is_mac) {
|
|||||||
if (is_win) {
|
if (is_win) {
|
||||||
sources += includes_win +
|
sources += includes_win +
|
||||||
gypi_paths2.shared_sources_win +
|
gypi_paths2.shared_sources_win +
|
||||||
gypi_paths2.cefclient_sources_win
|
gypi_paths2.cefclient_sources_win +
|
||||||
|
gypi_paths2.cefclient_sources_resources_win_rc
|
||||||
|
|
||||||
# Set /SUBSYSTEM:WINDOWS.
|
# Set /SUBSYSTEM:WINDOWS.
|
||||||
configs -= [ "//build/config/win:console" ]
|
configs -= [ "//build/config/win:console" ]
|
||||||
@@ -2232,8 +2122,13 @@ if (is_mac) {
|
|||||||
|
|
||||||
if (target_cpu != "arm64") {
|
if (target_cpu != "arm64") {
|
||||||
libs += [
|
libs += [
|
||||||
|
"glu32.lib",
|
||||||
"opengl32.lib",
|
"opengl32.lib",
|
||||||
"glu32.lib"
|
]
|
||||||
|
ldflags = [
|
||||||
|
"/DELAYLOAD:glu32.dll",
|
||||||
|
"/DELAYLOAD:oleaut32.dll",
|
||||||
|
"/DELAYLOAD:opengl32.dll",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2245,7 +2140,6 @@ if (is_mac) {
|
|||||||
|
|
||||||
deps += [
|
deps += [
|
||||||
":copy_cefclient_files",
|
":copy_cefclient_files",
|
||||||
":copy_cefclient_files_extensions_set_page_color",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
libs = [
|
libs = [
|
||||||
@@ -2294,7 +2188,8 @@ if (is_mac) {
|
|||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
sources += includes_win +
|
sources += includes_win +
|
||||||
gypi_paths2.cefsimple_sources_win
|
gypi_paths2.cefsimple_sources_win +
|
||||||
|
gypi_paths2.cefsimple_sources_resources_win_rc
|
||||||
|
|
||||||
# Set /SUBSYSTEM:WINDOWS.
|
# Set /SUBSYSTEM:WINDOWS.
|
||||||
configs -= [ "//build/config/win:console" ]
|
configs -= [ "//build/config/win:console" ]
|
||||||
@@ -2369,7 +2264,8 @@ if (is_mac) {
|
|||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
sources += gypi_paths2.shared_sources_win +
|
sources += gypi_paths2.shared_sources_win +
|
||||||
gypi_paths2.ceftests_sources_win
|
gypi_paths2.ceftests_sources_win +
|
||||||
|
gypi_paths2.ceftests_sources_resources_win_rc
|
||||||
|
|
||||||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||||||
# improvements.
|
# improvements.
|
||||||
|
@@ -7,6 +7,5 @@
|
|||||||
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||||
|
|
||||||
{
|
{
|
||||||
'chromium_checkout': 'refs/tags/124.0.6367.207',
|
'chromium_checkout': 'refs/tags/130.0.6723.0'
|
||||||
'depot_tools_checkout': '19199514e8'
|
|
||||||
}
|
}
|
||||||
|
@@ -27,17 +27,6 @@
|
|||||||
# Files in the chromium/src directory that should be evaluated for changes.
|
# Files in the chromium/src directory that should be evaluated for changes.
|
||||||
# Similar changes may need to be applied to the CEF source code.
|
# Similar changes may need to be applied to the CEF source code.
|
||||||
'files': [
|
'files': [
|
||||||
'chrome/browser/browser_process.h',
|
|
||||||
'chrome/browser/extensions/api/tabs/tabs_api.*',
|
|
||||||
'chrome/browser/extensions/chrome_component_extension_resource_manager.*',
|
|
||||||
'chrome/browser/extensions/chrome_extension_web_contents_observer.*',
|
|
||||||
'chrome/browser/extensions/component_loader.*',
|
|
||||||
'chrome/browser/extensions/extension_service.*',
|
|
||||||
'chrome/browser/profiles/profile.h',
|
|
||||||
'chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.*',
|
|
||||||
'chrome/common/extensions/api/*_features.json',
|
|
||||||
'chrome/renderer/chrome_content_renderer_client.*',
|
|
||||||
'chrome/renderer/extensions/chrome_extensions_renderer_client.*',
|
|
||||||
'components/content_settings/core/common/content_settings_types.mojom',
|
'components/content_settings/core/common/content_settings_types.mojom',
|
||||||
'components/permissions/request_type.h',
|
'components/permissions/request_type.h',
|
||||||
'content/browser/renderer_host/render_widget_host_view_base.*',
|
'content/browser/renderer_host/render_widget_host_view_base.*',
|
||||||
|
@@ -48,10 +48,9 @@
|
|||||||
# libgtk3.0-dev (required by the cefclient target only)
|
# libgtk3.0-dev (required by the cefclient target only)
|
||||||
#
|
#
|
||||||
# - MacOS requirements:
|
# - MacOS requirements:
|
||||||
# Xcode 12.2 to 15.0 building on MacOS 10.15.4 (Catalina) or newer. Only
|
# Xcode 12.2 to 15.4 building on MacOS 11.0 (Big Sur) or newer. The Xcode
|
||||||
# 64-bit builds are supported. The Xcode command-line tools must also be
|
# command-line tools must also be installed. Newer Xcode versions may not have
|
||||||
# installed. Newer Xcode versions may not have been been tested and are not
|
# been been tested and are not recommended.
|
||||||
# recommended.
|
|
||||||
#
|
#
|
||||||
# - Windows requirements:
|
# - Windows requirements:
|
||||||
# Visual Studio 2022 building on Windows 10 or newer. Windows 10/11 64-bit is
|
# Visual Studio 2022 building on Windows 10 or newer. Windows 10/11 64-bit is
|
||||||
@@ -143,7 +142,7 @@ set(CMAKE_CONFIGURATION_TYPES Debug Release)
|
|||||||
project(cef)
|
project(cef)
|
||||||
|
|
||||||
# Use folders in the resulting project files.
|
# Use folders in the resulting project files.
|
||||||
set_property(GLOBAL PROPERTY OS_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -240,16 +239,18 @@ PRINT_CEF_CONFIG()
|
|||||||
# Define the API documentation target.
|
# Define the API documentation target.
|
||||||
#
|
#
|
||||||
|
|
||||||
find_package(Doxygen)
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
|
||||||
if(DOXYGEN_FOUND)
|
find_package(Doxygen)
|
||||||
add_custom_target(apidocs ALL
|
if(DOXYGEN_FOUND)
|
||||||
# Generate documentation in the docs/html directory.
|
add_custom_target(apidocs ALL
|
||||||
COMMAND "${DOXYGEN_EXECUTABLE}" Doxyfile
|
# Generate documentation in the docs/html directory.
|
||||||
# Write a docs/index.html file.
|
COMMAND "${DOXYGEN_EXECUTABLE}" Doxyfile
|
||||||
COMMAND ${CMAKE_COMMAND} -E echo "<html><head><meta http-equiv=\"refresh\" content=\"0;URL='html/index.html'\"/></head></html>" > docs/index.html
|
# Write a docs/index.html file.
|
||||||
WORKING_DIRECTORY "${CEF_ROOT}"
|
COMMAND ${CMAKE_COMMAND} -E echo "<html><head><meta http-equiv=\"refresh\" content=\"0;URL='html/index.html'\"/></head></html>" > docs/index.html
|
||||||
COMMENT "Generating API documentation with Doxygen..."
|
WORKING_DIRECTORY "${CEF_ROOT}"
|
||||||
VERBATIM )
|
COMMENT "Generating API documentation with Doxygen..."
|
||||||
else()
|
VERBATIM )
|
||||||
message(WARNING "Doxygen must be installed to generate API documentation.")
|
else()
|
||||||
|
message(WARNING "Doxygen must be installed to generate API documentation.")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
8
bazel/BUILD.bazel
Normal file
8
bazel/BUILD.bazel
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
# Allow access from targets in other packages.
|
||||||
|
package(default_visibility = [
|
||||||
|
"//visibility:public",
|
||||||
|
])
|
65
bazel/copy_filegroups.bzl
Normal file
65
bazel/copy_filegroups.bzl
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
def _copy_filegroups_impl(ctx):
|
||||||
|
inputs = ctx.files.filegroups
|
||||||
|
remove_prefixes = ctx.attr.remove_prefixes
|
||||||
|
add_prefix = ctx.attr.add_prefix
|
||||||
|
|
||||||
|
outputs = []
|
||||||
|
for f in inputs:
|
||||||
|
relative_path = f.path
|
||||||
|
if relative_path.startswith("external/"):
|
||||||
|
# Remove the "external/<repo>" component, if any.
|
||||||
|
relative_path = "/".join(relative_path.split("/")[2:])
|
||||||
|
|
||||||
|
for prefix in remove_prefixes:
|
||||||
|
# Add trailing forward slash if necessary.
|
||||||
|
if prefix[-1] != "/":
|
||||||
|
prefix += "/"
|
||||||
|
if len(prefix) > 0 and relative_path.startswith(prefix):
|
||||||
|
relative_path = relative_path[len(prefix):]
|
||||||
|
break
|
||||||
|
|
||||||
|
if len(add_prefix) > 0:
|
||||||
|
# Add trailing forward slash if necessary.
|
||||||
|
if add_prefix[-1] != "/":
|
||||||
|
add_prefix += "/"
|
||||||
|
relative_path = add_prefix + relative_path
|
||||||
|
|
||||||
|
out = ctx.actions.declare_file(relative_path)
|
||||||
|
outputs.append(out)
|
||||||
|
|
||||||
|
if relative_path.find("/") > 0:
|
||||||
|
command="mkdir -p $(dirname {}) && cp {} {}".format(out.path, f.path, out.path)
|
||||||
|
else:
|
||||||
|
command="cp {} {}".format(f.path, out.path)
|
||||||
|
|
||||||
|
ctx.actions.run_shell(
|
||||||
|
outputs=[out],
|
||||||
|
inputs=depset([f]),
|
||||||
|
command=command
|
||||||
|
)
|
||||||
|
|
||||||
|
# Small sanity check
|
||||||
|
if len(inputs) != len(outputs):
|
||||||
|
fail("Output count should be 1-to-1 with input count.")
|
||||||
|
|
||||||
|
return DefaultInfo(
|
||||||
|
files=depset(outputs),
|
||||||
|
runfiles=ctx.runfiles(files=outputs)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Allows the file contents of |filegroups| to be copied next to a cc_binary
|
||||||
|
# target via the |data| attribute.
|
||||||
|
# Implementation based on https://stackoverflow.com/a/57983629
|
||||||
|
copy_filegroups = rule(
|
||||||
|
implementation=_copy_filegroups_impl,
|
||||||
|
attrs={
|
||||||
|
"filegroups": attr.label_list(),
|
||||||
|
"remove_prefixes": attr.string_list(default = []),
|
||||||
|
"add_prefix": attr.string(default = ""),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
90
bazel/library_helpers.bzl
Normal file
90
bazel/library_helpers.bzl
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("//bazel/win:variables.bzl",
|
||||||
|
WIN_COMMON_COPTS="COMMON_COPTS",
|
||||||
|
WIN_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||||
|
WIN_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG",
|
||||||
|
WIN_COMMON_DEFINES="COMMON_DEFINES",
|
||||||
|
WIN_COMMON_DEFINES_RELEASE="COMMON_DEFINES_RELEASE",
|
||||||
|
WIN_COMMON_DEFINES_DEBUG="COMMON_DEFINES_DEBUG")
|
||||||
|
load("//bazel/linux:variables.bzl",
|
||||||
|
LINUX_COMMON_COPTS="COMMON_COPTS",
|
||||||
|
LINUX_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||||
|
LINUX_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG",
|
||||||
|
LINUX_COMMON_DEFINES="COMMON_DEFINES",
|
||||||
|
LINUX_COMMON_DEFINES_RELEASE="COMMON_DEFINES_RELEASE",
|
||||||
|
LINUX_COMMON_DEFINES_DEBUG="COMMON_DEFINES_DEBUG")
|
||||||
|
load("//bazel/mac:variables.bzl",
|
||||||
|
MAC_COMMON_COPTS="COMMON_COPTS",
|
||||||
|
MAC_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||||
|
MAC_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG")
|
||||||
|
load("@rules_cc//cc:defs.bzl", "cc_library", "objc_library")
|
||||||
|
|
||||||
|
def declare_cc_library(copts=[], local_defines=[], **kwargs):
|
||||||
|
"""
|
||||||
|
cc_library wrapper that applies common copts and local_defines.
|
||||||
|
"""
|
||||||
|
# NOTE: objc_library does not support local_defines on MacOS, so on
|
||||||
|
# that platform we put the defines in copts instead.
|
||||||
|
cc_library(
|
||||||
|
copts = select({
|
||||||
|
"@platforms//os:windows": WIN_COMMON_COPTS,
|
||||||
|
"@platforms//os:linux": LINUX_COMMON_COPTS,
|
||||||
|
"@platforms//os:macos": MAC_COMMON_COPTS,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + select({
|
||||||
|
"@cef//:windows_opt": WIN_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:windows_dbg": WIN_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:windows_fastbuild": WIN_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:linux_opt": LINUX_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:linux_dbg": LINUX_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:linux_fastbuild": LINUX_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:macos_opt": MAC_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:macos_dbg": MAC_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:macos_fastbuild": MAC_COMMON_COPTS_RELEASE,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + copts,
|
||||||
|
local_defines = select({
|
||||||
|
"@platforms//os:windows": WIN_COMMON_DEFINES,
|
||||||
|
"@platforms//os:linux": LINUX_COMMON_DEFINES,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + select({
|
||||||
|
"@cef//:windows_opt": WIN_COMMON_DEFINES_RELEASE,
|
||||||
|
"@cef//:windows_dbg": WIN_COMMON_DEFINES_DEBUG,
|
||||||
|
"@cef//:windows_fastbuild": WIN_COMMON_DEFINES_RELEASE,
|
||||||
|
"@cef//:linux_opt": LINUX_COMMON_DEFINES_RELEASE,
|
||||||
|
"@cef//:linux_dbg": LINUX_COMMON_DEFINES_DEBUG,
|
||||||
|
"@cef//:linux_fastbuild": LINUX_COMMON_DEFINES_RELEASE,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + local_defines,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
def declare_objc_library(copts=[], **kwargs):
|
||||||
|
"""
|
||||||
|
objc_library wrapper that applies common copts.
|
||||||
|
"""
|
||||||
|
# NOTE: objc_library does not support local_defines on MacOS, so on
|
||||||
|
# that platform we put the defines in copts instead.
|
||||||
|
objc_library(
|
||||||
|
copts = select({
|
||||||
|
"@platforms//os:windows": WIN_COMMON_COPTS,
|
||||||
|
"@platforms//os:linux": LINUX_COMMON_COPTS,
|
||||||
|
"@platforms//os:macos": MAC_COMMON_COPTS,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + select({
|
||||||
|
"@cef//:windows_opt": WIN_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:windows_dbg": WIN_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:windows_fastbuild": WIN_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:linux_opt": LINUX_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:linux_dbg": LINUX_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:linux_fastbuild": LINUX_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:macos_opt": MAC_COMMON_COPTS_RELEASE,
|
||||||
|
"@cef//:macos_dbg": MAC_COMMON_COPTS_DEBUG,
|
||||||
|
"@cef//:macos_fastbuild": MAC_COMMON_COPTS_RELEASE,
|
||||||
|
"//conditions:default": None,
|
||||||
|
}) + copts,
|
||||||
|
**kwargs
|
||||||
|
)
|
8
bazel/linux/BUILD.bazel
Executable file
8
bazel/linux/BUILD.bazel
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
# Allow access from targets in other packages.
|
||||||
|
package(default_visibility = [
|
||||||
|
"//visibility:public",
|
||||||
|
])
|
63
bazel/linux/exe_helpers.bzl
Executable file
63
bazel/linux/exe_helpers.bzl
Executable file
@@ -0,0 +1,63 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("//bazel:copy_filegroups.bzl", "copy_filegroups")
|
||||||
|
load("//bazel/linux:fix_rpath.bzl", "fix_rpath")
|
||||||
|
load("//bazel/linux:variables.bzl",
|
||||||
|
"COMMON_LINKOPTS",
|
||||||
|
"COMMON_COPTS", "COMMON_COPTS_RELEASE", "COMMON_COPTS_DEBUG",
|
||||||
|
"COMMON_DEFINES", "COMMON_DEFINES_RELEASE", "COMMON_DEFINES_DEBUG")
|
||||||
|
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
||||||
|
|
||||||
|
def declare_exe(name, srcs=[], deps=[], linkopts=[], copts=[], local_defines=[], data=[], **kwargs):
|
||||||
|
# Copy SOs and resources into the current project.
|
||||||
|
copy_target = "{}_sos_and_resources".format(name)
|
||||||
|
copy_filegroups(
|
||||||
|
name = copy_target,
|
||||||
|
filegroups = [
|
||||||
|
"@cef//:sos",
|
||||||
|
"@cef//:resources",
|
||||||
|
],
|
||||||
|
remove_prefixes = [
|
||||||
|
"Debug",
|
||||||
|
"Release",
|
||||||
|
"Resources",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Executable target.
|
||||||
|
binary_target = "{}_incorrect_rpath".format(name)
|
||||||
|
cc_binary(
|
||||||
|
name = binary_target,
|
||||||
|
srcs = srcs,
|
||||||
|
deps = [
|
||||||
|
"@cef//:cef_wrapper",
|
||||||
|
"@cef//:cef",
|
||||||
|
"@cef//:cef_sandbox",
|
||||||
|
] + deps,
|
||||||
|
linkopts = COMMON_LINKOPTS + linkopts,
|
||||||
|
copts = COMMON_COPTS + select({
|
||||||
|
"@cef//:linux_dbg": COMMON_COPTS_DEBUG,
|
||||||
|
"//conditions:default": COMMON_COPTS_RELEASE,
|
||||||
|
}) + copts,
|
||||||
|
local_defines = COMMON_DEFINES + select({
|
||||||
|
"@cef//:linux_dbg": COMMON_DEFINES_DEBUG,
|
||||||
|
"//conditions:default": COMMON_DEFINES_RELEASE,
|
||||||
|
}) + local_defines,
|
||||||
|
data = [
|
||||||
|
":{}".format(copy_target),
|
||||||
|
] + data,
|
||||||
|
target_compatible_with = ["@platforms//os:linux"],
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set rpath to $ORIGIN so that libraries can be loaded from next to the
|
||||||
|
# executable.
|
||||||
|
fix_rpath(
|
||||||
|
name = "{}_fixed_rpath".format(name),
|
||||||
|
src = ":{}".format(binary_target),
|
||||||
|
out = name,
|
||||||
|
target_compatible_with = ["@platforms//os:linux"],
|
||||||
|
)
|
||||||
|
|
41
bazel/linux/fix_rpath.bzl
Normal file
41
bazel/linux/fix_rpath.bzl
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
def _fix_rpath_impl(ctx):
|
||||||
|
inputs = ctx.runfiles(files = [ctx.file.src])
|
||||||
|
# Bring over 'data' dependencies from the input.
|
||||||
|
inputs = inputs.merge_all([ctx.attr.src[DefaultInfo].default_runfiles])
|
||||||
|
|
||||||
|
src = ctx.file.src.path
|
||||||
|
out = ctx.outputs.out.path
|
||||||
|
|
||||||
|
ctx.actions.run_shell(
|
||||||
|
outputs = [ctx.outputs.out],
|
||||||
|
inputs = inputs.files,
|
||||||
|
arguments = [src, out],
|
||||||
|
command = "cp $1 $2 && " +
|
||||||
|
"chmod +w $2 && " +
|
||||||
|
"patchelf --remove-rpath $2 && " +
|
||||||
|
"patchelf --set-rpath '$ORIGIN' $2"
|
||||||
|
)
|
||||||
|
|
||||||
|
return [DefaultInfo(files = depset([ctx.outputs.out]))]
|
||||||
|
|
||||||
|
# Set rpath to $ORIGIN so that libraries can be loaded from next to the
|
||||||
|
# executable. The result can be confirmed with:
|
||||||
|
# $ objdump -x ./bazel-bin/path/to/binary | grep 'R.*PATH'
|
||||||
|
#
|
||||||
|
# Alternatively, define a custom CC toolchain that overrides
|
||||||
|
# 'runtime_library_search_directories'.
|
||||||
|
#
|
||||||
|
# This rule requires preinstallation of the patchelf package:
|
||||||
|
# $ sudo apt install patchelf
|
||||||
|
fix_rpath = rule(
|
||||||
|
implementation = _fix_rpath_impl,
|
||||||
|
attrs = {
|
||||||
|
"src": attr.label(allow_single_file = True),
|
||||||
|
"out": attr.output(mandatory = True),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
7
bazel/linux/pkg_config/BUILD.bazel
Normal file
7
bazel/linux/pkg_config/BUILD.bazel
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
exports_files([
|
||||||
|
"pkg_config.bzl",
|
||||||
|
"BUILD.tmpl",
|
||||||
|
])
|
||||||
|
|
32
bazel/linux/pkg_config/BUILD.tmpl
Normal file
32
bazel/linux/pkg_config/BUILD.tmpl
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# vi: ft=bzl
|
||||||
|
package(default_visibility = ["//visibility:private"])
|
||||||
|
|
||||||
|
_imports = [p[:len(p)-2] for p in glob(["{}/**/*.a".format(d) for d in [%{deps}]])]
|
||||||
|
[cc_import(
|
||||||
|
name = i.replace("/", "_"),
|
||||||
|
hdrs = glob([%{hdrs}]),
|
||||||
|
# TODO: library extension for platform.
|
||||||
|
static_library = "{}.a".format(i),
|
||||||
|
shared_library = "{}.dylib".format(i),
|
||||||
|
) for i in _imports]
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "internal_lib",
|
||||||
|
hdrs = glob([%{hdrs}]),
|
||||||
|
copts = [%{copts}],
|
||||||
|
includes = [%{includes}],
|
||||||
|
linkopts = [%{linkopts}],
|
||||||
|
deps = [(":" + i.replace("/", "_")) for i in _imports],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "lib",
|
||||||
|
hdrs = glob(["%{strip_include}/**/*.h"]),
|
||||||
|
copts = [%{extra_copts}],
|
||||||
|
linkopts = [%{extra_linkopts}],
|
||||||
|
deps = [":internal_lib"] + [%{extra_deps}],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
strip_include_prefix = "%{strip_include}",
|
||||||
|
include_prefix = "%{include_prefix}",
|
||||||
|
)
|
||||||
|
|
11
bazel/linux/pkg_config/README.cef
Normal file
11
bazel/linux/pkg_config/README.cef
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Name: pkg_config
|
||||||
|
URL: https://github.com/cherrry/bazel_pkg_config
|
||||||
|
Version: 284219a
|
||||||
|
|
||||||
|
Description:
|
||||||
|
Bazel rules for pkg-config tools.
|
||||||
|
|
||||||
|
CEF-specific changes:
|
||||||
|
- Fix failure with duplicate symlinks.
|
||||||
|
- Remove `--static` flag from pkg-config invocation.
|
||||||
|
|
2
bazel/linux/pkg_config/WORKSPACE
Normal file
2
bazel/linux/pkg_config/WORKSPACE
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
workspace(name = "pkg_config")
|
||||||
|
|
194
bazel/linux/pkg_config/pkg_config.bzl
Normal file
194
bazel/linux/pkg_config/pkg_config.bzl
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
def _success(value):
|
||||||
|
return struct(error = None, value = value)
|
||||||
|
|
||||||
|
def _error(message):
|
||||||
|
return struct(error = message, value = None)
|
||||||
|
|
||||||
|
def _split(result, delimeter = " "):
|
||||||
|
if result.error != None:
|
||||||
|
return result
|
||||||
|
return _success([arg for arg in result.value.strip().split(delimeter) if arg])
|
||||||
|
|
||||||
|
def _find_binary(ctx, binary_name):
|
||||||
|
binary = ctx.which(binary_name)
|
||||||
|
if binary == None:
|
||||||
|
return _error("Unable to find binary: {}".format(binary_name))
|
||||||
|
return _success(binary)
|
||||||
|
|
||||||
|
def _execute(ctx, binary, args):
|
||||||
|
result = ctx.execute([binary] + args)
|
||||||
|
if result.return_code != 0:
|
||||||
|
return _error("Failed execute {} {}".format(binary, args))
|
||||||
|
return _success(result.stdout)
|
||||||
|
|
||||||
|
def _pkg_config(ctx, pkg_config, pkg_name, args):
|
||||||
|
return _execute(ctx, pkg_config, [pkg_name] + args)
|
||||||
|
|
||||||
|
def _check(ctx, pkg_config, pkg_name):
|
||||||
|
exist = _pkg_config(ctx, pkg_config, pkg_name, ["--exists"])
|
||||||
|
if exist.error != None:
|
||||||
|
return _error("Package {} does not exist".format(pkg_name))
|
||||||
|
|
||||||
|
if ctx.attr.version != "":
|
||||||
|
version = _pkg_config(ctx, pkg_config, pkg_name, ["--exact-version", ctx.attr.version])
|
||||||
|
if version.error != None:
|
||||||
|
return _error("Require {} version = {}".format(pkg_name, ctx.attr.version))
|
||||||
|
|
||||||
|
if ctx.attr.min_version != "":
|
||||||
|
version = _pkg_config(ctx, pkg_config, pkg_name, ["--atleast-version", ctx.attr.min_version])
|
||||||
|
if version.error != None:
|
||||||
|
return _error("Require {} version >= {}".format(pkg_name, ctx.attr.min_version))
|
||||||
|
|
||||||
|
if ctx.attr.max_version != "":
|
||||||
|
version = _pkg_config(ctx, pkg_config, pkg_name, ["--max-version", ctx.attr.max_version])
|
||||||
|
if version.error != None:
|
||||||
|
return _error("Require {} version <= {}".format(pkg_name, ctx.attr.max_version))
|
||||||
|
|
||||||
|
return _success(None)
|
||||||
|
|
||||||
|
def _extract_prefix(flags, prefix, strip = True):
|
||||||
|
stripped, remain = [], []
|
||||||
|
for arg in flags:
|
||||||
|
if arg.startswith(prefix):
|
||||||
|
if strip:
|
||||||
|
stripped += [arg[len(prefix):]]
|
||||||
|
else:
|
||||||
|
stripped += [arg]
|
||||||
|
else:
|
||||||
|
remain += [arg]
|
||||||
|
return stripped, remain
|
||||||
|
|
||||||
|
def _includes(ctx, pkg_config, pkg_name):
|
||||||
|
includes = _split(_pkg_config(ctx, pkg_config, pkg_name, ["--cflags-only-I"]))
|
||||||
|
if includes.error != None:
|
||||||
|
return includes
|
||||||
|
includes, unused = _extract_prefix(includes.value, "-I", strip = True)
|
||||||
|
return _success(includes)
|
||||||
|
|
||||||
|
def _copts(ctx, pkg_config, pkg_name):
|
||||||
|
return _split(_pkg_config(ctx, pkg_config, pkg_name, [
|
||||||
|
"--cflags-only-other",
|
||||||
|
"--libs-only-L",
|
||||||
|
]))
|
||||||
|
|
||||||
|
def _linkopts(ctx, pkg_config, pkg_name):
|
||||||
|
return _split(_pkg_config(ctx, pkg_config, pkg_name, [
|
||||||
|
"--libs-only-other",
|
||||||
|
"--libs-only-l",
|
||||||
|
]))
|
||||||
|
|
||||||
|
def _ignore_opts(opts, ignore_opts):
|
||||||
|
remain = []
|
||||||
|
for opt in opts:
|
||||||
|
if opt not in ignore_opts:
|
||||||
|
remain += [opt]
|
||||||
|
return remain
|
||||||
|
|
||||||
|
def _symlinks(ctx, basename, srcpaths):
|
||||||
|
result = []
|
||||||
|
root = ctx.path("")
|
||||||
|
base = root.get_child(basename)
|
||||||
|
rootlen = len(str(base)) - len(basename)
|
||||||
|
for src in [ctx.path(p) for p in srcpaths]:
|
||||||
|
dest = base.get_child(src.basename)
|
||||||
|
if not dest.exists:
|
||||||
|
ctx.symlink(src, dest)
|
||||||
|
result += [str(dest)[rootlen:]]
|
||||||
|
return result
|
||||||
|
|
||||||
|
def _deps(ctx, pkg_config, pkg_name):
|
||||||
|
deps = _split(_pkg_config(ctx, pkg_config, pkg_name, [
|
||||||
|
"--libs-only-L",
|
||||||
|
"--static",
|
||||||
|
]))
|
||||||
|
if deps.error != None:
|
||||||
|
return deps
|
||||||
|
deps, unused = _extract_prefix(deps.value, "-L", strip = True)
|
||||||
|
result = []
|
||||||
|
for dep in {dep: True for dep in deps}.keys():
|
||||||
|
base = "deps_" + dep.replace("/", "_").replace(".", "_")
|
||||||
|
result += _symlinks(ctx, base, [dep])
|
||||||
|
return _success(result)
|
||||||
|
|
||||||
|
def _fmt_array(array):
|
||||||
|
return ",".join(['"{}"'.format(a) for a in array])
|
||||||
|
|
||||||
|
def _fmt_glob(array):
|
||||||
|
return _fmt_array(["{}/**/*.h".format(a) for a in array])
|
||||||
|
|
||||||
|
def _pkg_config_impl(ctx):
|
||||||
|
pkg_name = ctx.attr.pkg_name
|
||||||
|
if pkg_name == "":
|
||||||
|
pkg_name = ctx.attr.name
|
||||||
|
|
||||||
|
pkg_config = _find_binary(ctx, "pkg-config")
|
||||||
|
if pkg_config.error != None:
|
||||||
|
return pkg_config
|
||||||
|
pkg_config = pkg_config.value
|
||||||
|
|
||||||
|
check = _check(ctx, pkg_config, pkg_name)
|
||||||
|
if check.error != None:
|
||||||
|
return check
|
||||||
|
|
||||||
|
includes = _includes(ctx, pkg_config, pkg_name)
|
||||||
|
if includes.error != None:
|
||||||
|
return includes
|
||||||
|
includes = includes.value
|
||||||
|
includes = _symlinks(ctx, "includes", includes)
|
||||||
|
strip_include = "includes"
|
||||||
|
if len(includes) == 1:
|
||||||
|
strip_include = includes[0]
|
||||||
|
if ctx.attr.strip_include != "":
|
||||||
|
strip_include += "/" + ctx.attr.strip_include
|
||||||
|
|
||||||
|
ignore_opts = ctx.attr.ignore_opts
|
||||||
|
copts = _copts(ctx, pkg_config, pkg_name)
|
||||||
|
if copts.error != None:
|
||||||
|
return copts
|
||||||
|
copts = _ignore_opts(copts.value, ignore_opts)
|
||||||
|
|
||||||
|
linkopts = _linkopts(ctx, pkg_config, pkg_name)
|
||||||
|
if linkopts.error != None:
|
||||||
|
return linkopts
|
||||||
|
linkopts = _ignore_opts(linkopts.value, ignore_opts)
|
||||||
|
|
||||||
|
deps = _deps(ctx, pkg_config, pkg_name)
|
||||||
|
if deps.error != None:
|
||||||
|
return deps
|
||||||
|
deps = deps.value
|
||||||
|
|
||||||
|
include_prefix = ctx.attr.name
|
||||||
|
if ctx.attr.include_prefix != "":
|
||||||
|
include_prefix = ctx.attr.include_prefix + "/" + ctx.attr.name
|
||||||
|
|
||||||
|
build = ctx.template("BUILD", Label("//:BUILD.tmpl"), substitutions = {
|
||||||
|
"%{name}": ctx.attr.name,
|
||||||
|
"%{hdrs}": _fmt_glob(includes),
|
||||||
|
"%{includes}": _fmt_array(includes),
|
||||||
|
"%{copts}": _fmt_array(copts),
|
||||||
|
"%{extra_copts}": _fmt_array(ctx.attr.copts),
|
||||||
|
"%{deps}": _fmt_array(deps),
|
||||||
|
"%{extra_deps}": _fmt_array(ctx.attr.deps),
|
||||||
|
"%{linkopts}": _fmt_array(linkopts),
|
||||||
|
"%{extra_linkopts}": _fmt_array(ctx.attr.linkopts),
|
||||||
|
"%{strip_include}": strip_include,
|
||||||
|
"%{include_prefix}": include_prefix,
|
||||||
|
}, executable = False)
|
||||||
|
|
||||||
|
pkg_config = repository_rule(
|
||||||
|
attrs = {
|
||||||
|
"pkg_name": attr.string(doc = "Package name for pkg-config query, default to name."),
|
||||||
|
"include_prefix": attr.string(doc = "Additional prefix when including file, e.g. third_party. Compatible with strip_include option to produce desired include paths."),
|
||||||
|
"strip_include": attr.string(doc = "Strip prefix when including file, e.g. libs, files not included will be invisible. Compatible with include_prefix option to produce desired include paths."),
|
||||||
|
"version": attr.string(doc = "Exact package version."),
|
||||||
|
"min_version": attr.string(doc = "Minimum package version."),
|
||||||
|
"max_version": attr.string(doc = "Maximum package version."),
|
||||||
|
"deps": attr.string_list(doc = "Dependency targets."),
|
||||||
|
"linkopts": attr.string_list(doc = "Extra linkopts value."),
|
||||||
|
"copts": attr.string_list(doc = "Extra copts value."),
|
||||||
|
"ignore_opts": attr.string_list(doc = "Ignore listed opts in copts or linkopts."),
|
||||||
|
},
|
||||||
|
local = True,
|
||||||
|
implementation = _pkg_config_impl,
|
||||||
|
)
|
||||||
|
|
68
bazel/linux/variables.bzl
Executable file
68
bazel/linux/variables.bzl
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Distribution SOs.
|
||||||
|
#
|
||||||
|
|
||||||
|
SOS = [
|
||||||
|
"libcef.so",
|
||||||
|
"libEGL.so",
|
||||||
|
"libGLESv2.so",
|
||||||
|
"libvk_swiftshader.so",
|
||||||
|
"libvulkan.so.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'linkopts' for cc_binary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Standard link libraries.
|
||||||
|
STANDARD_LIBS = [
|
||||||
|
"X11",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_RELEASE = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS = [
|
||||||
|
"-l{}".format(lib) for lib in STANDARD_LIBS
|
||||||
|
] + select({
|
||||||
|
"@cef//:linux_dbg": COMMON_LINKOPTS_DEBUG,
|
||||||
|
"//conditions:default": COMMON_LINKOPTS_RELEASE,
|
||||||
|
})
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'copts' for cc_libary and cc_binary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_COPTS = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_RELEASE = [
|
||||||
|
]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'defines' for cc_libary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_DEFINES = [
|
||||||
|
# Used by apps to test if the sandbox is enabled
|
||||||
|
"CEF_USE_SANDBOX",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_DEFINES_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_DEFINES_RELEASE = [
|
||||||
|
# Not a debug build
|
||||||
|
"NDEBUG",
|
||||||
|
]
|
||||||
|
|
8
bazel/mac/BUILD.bazel
Normal file
8
bazel/mac/BUILD.bazel
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
# Allow access from targets in other packages.
|
||||||
|
package(default_visibility = [
|
||||||
|
"//visibility:public",
|
||||||
|
])
|
113
bazel/mac/app_helpers.bzl
Normal file
113
bazel/mac/app_helpers.bzl
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
|
||||||
|
load("@build_bazel_rules_apple//apple:macos.bzl", "macos_application")
|
||||||
|
load("//bazel:variables.bzl", "VERSION_PLIST")
|
||||||
|
load("//bazel/mac:variables.bzl",
|
||||||
|
"MACOS_DEPLOYMENT_TARGET",
|
||||||
|
"MACOS_BUNDLE_ID_BASE",
|
||||||
|
"CEF_FRAMEWORK_NAME",
|
||||||
|
"COMMON_LINKOPTS")
|
||||||
|
|
||||||
|
def _declare_helper_app(name, info_plist, deps, helper_base_name, helper_suffix, **kwargs):
|
||||||
|
"""
|
||||||
|
Creates a Helper .app target.
|
||||||
|
"""
|
||||||
|
helper_name = "{} Helper".format(name)
|
||||||
|
bundle_id_suffix = ""
|
||||||
|
|
||||||
|
if helper_suffix:
|
||||||
|
helper_name += " ({})".format(helper_suffix)
|
||||||
|
bundle_id_suffix += ".{}".format(helper_suffix.lower())
|
||||||
|
|
||||||
|
# Helper app bundle Info.plist.
|
||||||
|
expand_template(
|
||||||
|
name = "{}_InfoPList".format(helper_base_name),
|
||||||
|
template = info_plist,
|
||||||
|
out = "{}Info.plist".format(helper_base_name),
|
||||||
|
substitutions = {
|
||||||
|
"${EXECUTABLE_NAME}": helper_name,
|
||||||
|
"${PRODUCT_NAME}": name,
|
||||||
|
"${BUNDLE_ID_SUFFIX}": bundle_id_suffix,
|
||||||
|
"${VERSION_SHORT}": VERSION_PLIST,
|
||||||
|
"${VERSION_LONG}": VERSION_PLIST,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Helper app bundle.
|
||||||
|
macos_application(
|
||||||
|
name = helper_base_name,
|
||||||
|
bundle_name = helper_name,
|
||||||
|
bundle_id = "{}.{}.helper{}".format(MACOS_BUNDLE_ID_BASE, name.lower(), bundle_id_suffix),
|
||||||
|
infoplists = [":{}_InfoPList".format(helper_base_name)],
|
||||||
|
minimum_os_version = MACOS_DEPLOYMENT_TARGET,
|
||||||
|
deps = [
|
||||||
|
"@cef//:cef_sandbox",
|
||||||
|
] + deps,
|
||||||
|
**kwargs,
|
||||||
|
)
|
||||||
|
|
||||||
|
HELPERS = {
|
||||||
|
"HelperBase": "",
|
||||||
|
"HelperAlerts": "Alerts",
|
||||||
|
"HelperGPU": "GPU",
|
||||||
|
"HelperPlugin": "Plugin",
|
||||||
|
"HelperRenderer": "Renderer",
|
||||||
|
}
|
||||||
|
|
||||||
|
def declare_all_helper_apps(name, info_plist, deps, **kwargs):
|
||||||
|
"""
|
||||||
|
Creates all Helper .app targets.
|
||||||
|
"""
|
||||||
|
[_declare_helper_app(
|
||||||
|
name = name,
|
||||||
|
info_plist = info_plist,
|
||||||
|
deps = deps,
|
||||||
|
helper_base_name = h,
|
||||||
|
helper_suffix = v,
|
||||||
|
**kwargs,
|
||||||
|
) for h, v in HELPERS.items()]
|
||||||
|
|
||||||
|
def declare_main_app(name, info_plist, deps, resources, linkopts=[], **kwargs):
|
||||||
|
"""
|
||||||
|
Creates the main .app target.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Main app bundle Info.plist.
|
||||||
|
expand_template(
|
||||||
|
name = "InfoPList",
|
||||||
|
template = info_plist,
|
||||||
|
out = "Info.plist",
|
||||||
|
substitutions = {
|
||||||
|
"${EXECUTABLE_NAME}": name,
|
||||||
|
"${PRODUCT_NAME}": name,
|
||||||
|
"${VERSION_SHORT}": VERSION_PLIST,
|
||||||
|
"${VERSION_LONG}": VERSION_PLIST,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Main app bindle.
|
||||||
|
macos_application(
|
||||||
|
name = name,
|
||||||
|
additional_contents = {
|
||||||
|
":HelperBase": "Frameworks",
|
||||||
|
":HelperAlerts": "Frameworks",
|
||||||
|
":HelperGPU": "Frameworks",
|
||||||
|
":HelperPlugin": "Frameworks",
|
||||||
|
":HelperRenderer": "Frameworks",
|
||||||
|
"@cef//:cef_framework": "Frameworks/{}.framework".format(CEF_FRAMEWORK_NAME),
|
||||||
|
},
|
||||||
|
bundle_name = name,
|
||||||
|
bundle_id = "{}.{}".format(MACOS_BUNDLE_ID_BASE, name.lower()),
|
||||||
|
infoplists = [":InfoPList"],
|
||||||
|
linkopts = COMMON_LINKOPTS + linkopts,
|
||||||
|
minimum_os_version = MACOS_DEPLOYMENT_TARGET,
|
||||||
|
resources = resources,
|
||||||
|
target_compatible_with = [
|
||||||
|
"@platforms//os:macos",
|
||||||
|
],
|
||||||
|
deps = deps,
|
||||||
|
**kwargs,
|
||||||
|
)
|
52
bazel/mac/variables.bzl
Normal file
52
bazel/mac/variables.bzl
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
MACOS_DEPLOYMENT_TARGET="11.0"
|
||||||
|
MACOS_BUNDLE_ID_BASE="org.cef"
|
||||||
|
CEF_FRAMEWORK_NAME="Chromium Embedded Framework"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'linkopts' for macos_application targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Standard link frameworks.
|
||||||
|
STANDARD_FRAMEWORKS = [
|
||||||
|
"AppKit",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_RELEASE = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS = [
|
||||||
|
"-framework {}".format(lib) for lib in STANDARD_FRAMEWORKS
|
||||||
|
] + select({
|
||||||
|
"@cef//:macos_dbg": COMMON_LINKOPTS_DEBUG,
|
||||||
|
"//conditions:default": COMMON_LINKOPTS_RELEASE,
|
||||||
|
})
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'copts' for cc_libary, objc_library and macos_application targets.
|
||||||
|
# We include defines in 'copts' because objc_library does not support
|
||||||
|
# 'local_defines'. See https://github.com/bazelbuild/bazel/issues/17482.
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_COPTS = [
|
||||||
|
"-Wno-undefined-var-template",
|
||||||
|
"-Wno-missing-field-initializers",
|
||||||
|
"-Wno-deprecated-copy",
|
||||||
|
|
||||||
|
# Used by apps to test if the sandbox is enabled
|
||||||
|
"-DCEF_USE_SANDBOX",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_RELEASE = [
|
||||||
|
# Not a debug build
|
||||||
|
"-DNDEBUG",
|
||||||
|
]
|
8
bazel/win/BUILD.bazel
Normal file
8
bazel/win/BUILD.bazel
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
# Allow access from targets in other packages.
|
||||||
|
package(default_visibility = [
|
||||||
|
"//visibility:public",
|
||||||
|
])
|
33
bazel/win/cc_env.bzl
Normal file
33
bazel/win/cc_env.bzl
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain", _use_cpp_toolchain="use_cpp_toolchain")
|
||||||
|
load("@rules_cc//cc:action_names.bzl", "CPP_COMPILE_ACTION_NAME")
|
||||||
|
|
||||||
|
# Since we need windows.h and other headers, we should ensure we have the same
|
||||||
|
# development environment as a regular cl.exe call. So use the current toolchain
|
||||||
|
# to grab environment variables to feed into the actual rc.exe call
|
||||||
|
# Much of this is taken from:
|
||||||
|
# https://github.com/bazelbuild/rules_cc/blob/main/examples/my_c_archive/my_c_archive.bzl
|
||||||
|
def collect_compilation_env(ctx):
|
||||||
|
cc_toolchain = find_cpp_toolchain(ctx)
|
||||||
|
feature_configuration = cc_common.configure_features(
|
||||||
|
ctx = ctx,
|
||||||
|
cc_toolchain = cc_toolchain,
|
||||||
|
requested_features = ctx.features,
|
||||||
|
unsupported_features = ctx.disabled_features,
|
||||||
|
)
|
||||||
|
|
||||||
|
compiler_variables = cc_common.create_compile_variables(
|
||||||
|
feature_configuration = feature_configuration,
|
||||||
|
cc_toolchain = cc_toolchain,
|
||||||
|
)
|
||||||
|
|
||||||
|
return cc_common.get_environment_variables(
|
||||||
|
feature_configuration = feature_configuration,
|
||||||
|
action_name = CPP_COMPILE_ACTION_NAME,
|
||||||
|
variables = compiler_variables,
|
||||||
|
)
|
||||||
|
|
||||||
|
use_cpp_toolchain=_use_cpp_toolchain
|
82
bazel/win/exe_helpers.bzl
Normal file
82
bazel/win/exe_helpers.bzl
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("//bazel:copy_filegroups.bzl", "copy_filegroups")
|
||||||
|
load("//bazel/win:mt.bzl", "add_manifest")
|
||||||
|
load("//bazel/win:rc.bzl", "compile_rc")
|
||||||
|
load("//bazel/win:variables.bzl",
|
||||||
|
"COMMON_LINKOPTS",
|
||||||
|
"COMMON_COPTS", "COMMON_COPTS_RELEASE", "COMMON_COPTS_DEBUG",
|
||||||
|
"COMMON_DEFINES", "COMMON_DEFINES_RELEASE", "COMMON_DEFINES_DEBUG")
|
||||||
|
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
||||||
|
|
||||||
|
def declare_exe(name, srcs, manifest_srcs, rc_file, resources_srcs, resources_deps=[],
|
||||||
|
deps=[], linkopts=[], copts=[], local_defines=[], data=[],
|
||||||
|
additional_linker_inputs=[], features=[], **kwargs):
|
||||||
|
# Resource file.
|
||||||
|
res_target = "{}_res".format(name)
|
||||||
|
compile_rc(
|
||||||
|
name = res_target,
|
||||||
|
rc_file = rc_file,
|
||||||
|
srcs = resources_srcs,
|
||||||
|
deps = resources_deps,
|
||||||
|
out = "{}.res".format(name),
|
||||||
|
target_compatible_with = ["@platforms//os:windows"],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Copy DLLs and resources into the current project.
|
||||||
|
copy_target = "{}_dlls_and_resources".format(name)
|
||||||
|
copy_filegroups(
|
||||||
|
name = copy_target,
|
||||||
|
filegroups = [
|
||||||
|
"@cef//:dlls",
|
||||||
|
"@cef//:resources",
|
||||||
|
],
|
||||||
|
remove_prefixes = [
|
||||||
|
"Debug",
|
||||||
|
"Release",
|
||||||
|
"Resources",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Executable target.
|
||||||
|
binary_target = "{}_no_manifest".format(name)
|
||||||
|
cc_binary(
|
||||||
|
name = binary_target,
|
||||||
|
srcs = srcs,
|
||||||
|
deps = [
|
||||||
|
"@cef//:cef_wrapper",
|
||||||
|
"@cef//:cef",
|
||||||
|
"@cef//:cef_sandbox",
|
||||||
|
] + deps,
|
||||||
|
linkopts = [
|
||||||
|
"$(location :{})".format(res_target),
|
||||||
|
] + COMMON_LINKOPTS + linkopts,
|
||||||
|
copts = COMMON_COPTS + select({
|
||||||
|
"@cef//:windows_dbg": COMMON_COPTS_DEBUG,
|
||||||
|
"//conditions:default": COMMON_COPTS_RELEASE,
|
||||||
|
}) + copts,
|
||||||
|
local_defines = COMMON_DEFINES + select({
|
||||||
|
"@cef//:windows_dbg": COMMON_DEFINES_DEBUG,
|
||||||
|
"//conditions:default": COMMON_DEFINES_RELEASE,
|
||||||
|
}) + local_defines,
|
||||||
|
additional_linker_inputs = [
|
||||||
|
":{}".format(res_target),
|
||||||
|
] + additional_linker_inputs,
|
||||||
|
data = [
|
||||||
|
":{}".format(copy_target),
|
||||||
|
] + data,
|
||||||
|
features = ["generate_pdb_file"] + features,
|
||||||
|
target_compatible_with = ["@platforms//os:windows"],
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add manifest and rename to final executable.
|
||||||
|
add_manifest(
|
||||||
|
name = name,
|
||||||
|
mt_files = manifest_srcs,
|
||||||
|
in_binary = ":{}".format(binary_target),
|
||||||
|
out_binary = "{}.exe".format(name),
|
||||||
|
target_compatible_with = ["@platforms//os:windows"],
|
||||||
|
)
|
72
bazel/win/mt.bzl
Normal file
72
bazel/win/mt.bzl
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("//bazel/win:cc_env.bzl", "collect_compilation_env", "use_cpp_toolchain")
|
||||||
|
|
||||||
|
# Copy exe and pdb file without tracking the destination as an output.
|
||||||
|
# Based on https://github.com/bazelbuild/bazel-skylib/blob/main/rules/private/copy_file_private.bzl
|
||||||
|
def _write_copy_cmd(ctx, src, dst):
|
||||||
|
# Most Windows binaries built with MSVC use a certain argument quoting
|
||||||
|
# scheme. Bazel uses that scheme too to quote arguments. However,
|
||||||
|
# cmd.exe uses different semantics, so Bazel's quoting is wrong here.
|
||||||
|
# To fix that we write the command to a .bat file so no command line
|
||||||
|
# quoting or escaping is required.
|
||||||
|
bat = ctx.actions.declare_file(ctx.label.name + "-cmd.bat")
|
||||||
|
src_path = src.path.replace("/", "\\")
|
||||||
|
dst_path = dst.path.replace("/", "\\")
|
||||||
|
ctx.actions.write(
|
||||||
|
output = bat,
|
||||||
|
# Do not use lib/shell.bzl's shell.quote() method, because that uses
|
||||||
|
# Bash quoting syntax, which is different from cmd.exe's syntax.
|
||||||
|
content = "@copy /Y \"%s\" \"%s\" >NUL\n@copy /Y \"%s\" \"%s\" >NUL" % (
|
||||||
|
src_path,
|
||||||
|
dst_path,
|
||||||
|
src_path.replace(".exe", ".pdb"),
|
||||||
|
dst_path.replace(".exe", ".pdb"),
|
||||||
|
),
|
||||||
|
is_executable = True,
|
||||||
|
)
|
||||||
|
return bat
|
||||||
|
|
||||||
|
def _add_mt_impl(ctx):
|
||||||
|
mt_files = ctx.files.mt_files
|
||||||
|
input = ctx.attr.in_binary[DebugPackageInfo].unstripped_file
|
||||||
|
output = ctx.outputs.out_binary
|
||||||
|
bat = _write_copy_cmd(ctx, input, output)
|
||||||
|
|
||||||
|
inputs = mt_files + [input, bat]
|
||||||
|
|
||||||
|
# Bring over 'data' dependencies from the input.
|
||||||
|
deps_inputs = ctx.runfiles(files = inputs)
|
||||||
|
deps_inputs = deps_inputs.merge_all([ctx.attr.in_binary[DefaultInfo].default_runfiles])
|
||||||
|
|
||||||
|
ctx.actions.run(
|
||||||
|
executable = ctx.executable._tool,
|
||||||
|
inputs = deps_inputs.files,
|
||||||
|
outputs = [output],
|
||||||
|
env = collect_compilation_env(ctx),
|
||||||
|
# The bat file will be executed before the tool command.
|
||||||
|
arguments = [bat.path, "-nologo", "-manifest"] + [f.path for f in mt_files] +
|
||||||
|
["-outputresource:{}".format(output.path)],
|
||||||
|
mnemonic = "AddMT"
|
||||||
|
)
|
||||||
|
|
||||||
|
return DefaultInfo(files = depset([output]))
|
||||||
|
|
||||||
|
add_manifest = rule(
|
||||||
|
implementation = _add_mt_impl,
|
||||||
|
attrs = {
|
||||||
|
"mt_files": attr.label_list(allow_files = [".manifest"]),
|
||||||
|
"in_binary": attr.label(providers = [CcInfo], allow_single_file = True),
|
||||||
|
"out_binary": attr.output(),
|
||||||
|
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
||||||
|
"_tool": attr.label(
|
||||||
|
default = "@winsdk//:mt_pybin",
|
||||||
|
executable = True,
|
||||||
|
cfg = "exec"
|
||||||
|
)
|
||||||
|
},
|
||||||
|
fragments = ["cpp"],
|
||||||
|
toolchains = use_cpp_toolchain(),
|
||||||
|
)
|
50
bazel/win/rc.bzl
Normal file
50
bazel/win/rc.bzl
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("//bazel/win:cc_env.bzl", "collect_compilation_env", "use_cpp_toolchain")
|
||||||
|
|
||||||
|
def _compile_rc_impl(ctx):
|
||||||
|
rc_file = ctx.file.rc_file
|
||||||
|
output = ctx.outputs.out
|
||||||
|
|
||||||
|
inputs = [rc_file] + ctx.files.srcs
|
||||||
|
includes = ["/i{}/{}".format(ctx.label.package, i) for i in ctx.attr.includes]
|
||||||
|
|
||||||
|
# Grab all include paths/files required for the run
|
||||||
|
for dep in ctx.attr.deps:
|
||||||
|
comp_ctx = dep[CcInfo].compilation_context
|
||||||
|
|
||||||
|
includes += ["/i{}".format(i) for i in comp_ctx.quote_includes.to_list()]
|
||||||
|
includes += ["/i{}".format(i) for i in comp_ctx.system_includes.to_list()]
|
||||||
|
inputs += comp_ctx.headers.to_list()
|
||||||
|
|
||||||
|
ctx.actions.run(
|
||||||
|
executable = ctx.executable._tool,
|
||||||
|
inputs = inputs,
|
||||||
|
outputs = [output],
|
||||||
|
env = collect_compilation_env(ctx),
|
||||||
|
arguments = includes + ["/fo", output.path, rc_file.path],
|
||||||
|
mnemonic = "CompileRC"
|
||||||
|
)
|
||||||
|
|
||||||
|
return DefaultInfo(files = depset([output]))
|
||||||
|
|
||||||
|
compile_rc = rule(
|
||||||
|
implementation = _compile_rc_impl,
|
||||||
|
attrs = {
|
||||||
|
"rc_file": attr.label(allow_single_file = [".rc"]),
|
||||||
|
"srcs": attr.label_list(allow_files = True),
|
||||||
|
"deps": attr.label_list(providers = [CcInfo]),
|
||||||
|
"includes": attr.string_list(),
|
||||||
|
"out": attr.output(),
|
||||||
|
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
||||||
|
"_tool": attr.label(
|
||||||
|
default = "@winsdk//:rc_pybin",
|
||||||
|
executable = True,
|
||||||
|
cfg = "exec"
|
||||||
|
)
|
||||||
|
},
|
||||||
|
fragments = ["cpp"],
|
||||||
|
toolchains = use_cpp_toolchain(),
|
||||||
|
)
|
124
bazel/win/setup_sdk.bzl
Normal file
124
bazel/win/setup_sdk.bzl
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("@bazel_tools//tools/cpp:windows_cc_configure.bzl", "find_vc_path", "setup_vc_env_vars")
|
||||||
|
|
||||||
|
def _get_arch(rctx):
|
||||||
|
if rctx.os.arch == "amd64":
|
||||||
|
return "x64"
|
||||||
|
|
||||||
|
def _is_windows(rctx):
|
||||||
|
return rctx.os.name.find("windows") != -1
|
||||||
|
|
||||||
|
# Tools in the form <Target>: [<Tool>, <Other files needed for that target>]
|
||||||
|
TOOLS = {
|
||||||
|
"mt": {
|
||||||
|
"tool": "mt.exe",
|
||||||
|
"deps": [],
|
||||||
|
},
|
||||||
|
"rc": {
|
||||||
|
"tool": "rc.exe",
|
||||||
|
"deps": ["rcdll.dll"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
def _setup_tools(rctx, sdk_bin_path, sdk_metadata_path):
|
||||||
|
contents = ""
|
||||||
|
|
||||||
|
rctx.symlink(sdk_metadata_path, "VerUnionMetadata")
|
||||||
|
contents += """
|
||||||
|
exports_files(["VerUnionMetadata"])
|
||||||
|
"""
|
||||||
|
|
||||||
|
for toolname, toolcfg in TOOLS.items():
|
||||||
|
toolexec = toolcfg["tool"]
|
||||||
|
deps = toolcfg["deps"]
|
||||||
|
direct_deps = [toolexec] + deps
|
||||||
|
shared_deps = toolcfg.get("shared_deps", [])
|
||||||
|
|
||||||
|
# Symlink any tools into the right places
|
||||||
|
for dep in direct_deps:
|
||||||
|
rctx.symlink(
|
||||||
|
"{}/{}".format(sdk_bin_path, dep),
|
||||||
|
dep,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Setting up a filegroup for those dependents
|
||||||
|
contents += """
|
||||||
|
filegroup(
|
||||||
|
name = "{}_deps",
|
||||||
|
srcs = {},
|
||||||
|
)
|
||||||
|
""".format(toolname, direct_deps + shared_deps)
|
||||||
|
|
||||||
|
# Now create a wrapper for this tool that simply calls it
|
||||||
|
rctx.template(
|
||||||
|
"{}_wrapper.py".format(toolname),
|
||||||
|
Label("//bazel/win:wrapper.py.tpl"),
|
||||||
|
substitutions = {
|
||||||
|
"${binary}": toolexec,
|
||||||
|
},
|
||||||
|
executable = True,
|
||||||
|
)
|
||||||
|
|
||||||
|
# And add that newly created wrapper to the BUILD.bazel file
|
||||||
|
contents += """
|
||||||
|
py_binary(
|
||||||
|
name = "{0}_pybin",
|
||||||
|
srcs = ["{0}_wrapper.py"],
|
||||||
|
main = "{0}_wrapper.py",
|
||||||
|
data = [
|
||||||
|
"@rules_python//python/runfiles",
|
||||||
|
":{0}_deps"
|
||||||
|
],
|
||||||
|
python_version = "PY3",
|
||||||
|
)
|
||||||
|
""".format(toolname)
|
||||||
|
|
||||||
|
return contents
|
||||||
|
|
||||||
|
def _setup_vc_debug_runtime(rctx, sdk_bin_path):
|
||||||
|
ucrtbased_dll = "ucrtbased.dll"
|
||||||
|
rctx.symlink("{}/ucrt/{}".format(sdk_bin_path, ucrtbased_dll), ucrtbased_dll)
|
||||||
|
|
||||||
|
contents = """
|
||||||
|
filegroup(
|
||||||
|
name = "vc_debug_runtime",
|
||||||
|
srcs = ["{}"],
|
||||||
|
)
|
||||||
|
""".format(ucrtbased_dll)
|
||||||
|
|
||||||
|
return contents
|
||||||
|
|
||||||
|
def _windows_sdk_impl(rctx):
|
||||||
|
# We only support Windows
|
||||||
|
if not _is_windows(rctx):
|
||||||
|
fail("This rule only supports Windows")
|
||||||
|
|
||||||
|
# Figure out where the SDK is, which is based on a registry key.
|
||||||
|
vc_path = find_vc_path(rctx)
|
||||||
|
env = setup_vc_env_vars(rctx, vc_path, envvars = ["WINDOWSSDKVERBINPATH", "WindowsSdkDir", "WindowsSDKVersion"])
|
||||||
|
sdk_bin_path = "{}{}".format(env["WINDOWSSDKVERBINPATH"], _get_arch(rctx))
|
||||||
|
sdk_metadata_path = "{}UnionMetadata/{}".format(env["WindowsSdkDir"], env["WindowsSDKVersion"])
|
||||||
|
|
||||||
|
# Start with some pre-amble
|
||||||
|
contents = """# Autogenerated by //bazel/win:sdk.bzl
|
||||||
|
load("@rules_python//python:defs.bzl", "py_binary")
|
||||||
|
|
||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Handle setting up tools from our list
|
||||||
|
contents += _setup_tools(rctx, sdk_bin_path, sdk_metadata_path)
|
||||||
|
|
||||||
|
contents += _setup_vc_debug_runtime(rctx, sdk_bin_path)
|
||||||
|
|
||||||
|
rctx.file("BUILD.bazel", contents)
|
||||||
|
|
||||||
|
setup_sdk = repository_rule(
|
||||||
|
attrs = {},
|
||||||
|
local = True,
|
||||||
|
configure = True,
|
||||||
|
implementation = _windows_sdk_impl,
|
||||||
|
)
|
199
bazel/win/variables.bzl
Normal file
199
bazel/win/variables.bzl
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Distribution DLLs.
|
||||||
|
#
|
||||||
|
|
||||||
|
# NOTE: libcef.dll is included via the //:cef dependency.
|
||||||
|
DLLS = [
|
||||||
|
"chrome_elf.dll",
|
||||||
|
"d3dcompiler_47.dll",
|
||||||
|
"libEGL.dll",
|
||||||
|
"libGLESv2.dll",
|
||||||
|
"vk_swiftshader.dll",
|
||||||
|
"vulkan-1.dll",
|
||||||
|
]
|
||||||
|
|
||||||
|
DLLS_X64 = [
|
||||||
|
"dxil.dll",
|
||||||
|
"dxcompiler.dll",
|
||||||
|
]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'linkopts' for cc_binary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Windows delayload DLLs.
|
||||||
|
# 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_DLLS = [
|
||||||
|
"api-ms-win-core-winrt-error-l1-1-0.dll",
|
||||||
|
"api-ms-win-core-winrt-l1-1-0.dll",
|
||||||
|
"api-ms-win-core-winrt-string-l1-1-0.dll",
|
||||||
|
"advapi32.dll",
|
||||||
|
"comctl32.dll",
|
||||||
|
"comdlg32.dll",
|
||||||
|
"credui.dll",
|
||||||
|
"cryptui.dll",
|
||||||
|
"d3d11.dll",
|
||||||
|
"d3d9.dll",
|
||||||
|
"dwmapi.dll",
|
||||||
|
"dxgi.dll",
|
||||||
|
"dxva2.dll",
|
||||||
|
"esent.dll",
|
||||||
|
"gdi32.dll",
|
||||||
|
"hid.dll",
|
||||||
|
"imagehlp.dll",
|
||||||
|
"imm32.dll",
|
||||||
|
"msi.dll",
|
||||||
|
"netapi32.dll",
|
||||||
|
"ncrypt.dll",
|
||||||
|
"ole32.dll",
|
||||||
|
"oleacc.dll",
|
||||||
|
"propsys.dll",
|
||||||
|
"psapi.dll",
|
||||||
|
"rpcrt4.dll",
|
||||||
|
"rstrtmgr.dll",
|
||||||
|
"setupapi.dll",
|
||||||
|
"shell32.dll",
|
||||||
|
"shlwapi.dll",
|
||||||
|
"uiautomationcore.dll",
|
||||||
|
"urlmon.dll",
|
||||||
|
"user32.dll",
|
||||||
|
"usp10.dll",
|
||||||
|
"uxtheme.dll",
|
||||||
|
"wer.dll",
|
||||||
|
"wevtapi.dll",
|
||||||
|
"wininet.dll",
|
||||||
|
"winusb.dll",
|
||||||
|
"wsock32.dll",
|
||||||
|
"wtsapi32.dll",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Standard link libraries.
|
||||||
|
STANDARD_LIBS = [
|
||||||
|
"comctl32.lib",
|
||||||
|
"gdi32.lib",
|
||||||
|
"rpcrt4.lib",
|
||||||
|
"shlwapi.lib",
|
||||||
|
"user32.lib",
|
||||||
|
"ws2_32.lib",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Sandbox link libraries.
|
||||||
|
SANDBOX_LIBS = [
|
||||||
|
"Advapi32.lib",
|
||||||
|
"dbghelp.lib",
|
||||||
|
"Delayimp.lib",
|
||||||
|
"ntdll.lib",
|
||||||
|
"OleAut32.lib",
|
||||||
|
"PowrProf.lib",
|
||||||
|
"Propsys.lib",
|
||||||
|
"psapi.lib",
|
||||||
|
"SetupAPI.lib",
|
||||||
|
"Shcore.lib",
|
||||||
|
"Shell32.lib",
|
||||||
|
"Userenv.lib",
|
||||||
|
"version.lib",
|
||||||
|
"wbemuuid.lib",
|
||||||
|
"WindowsApp.lib",
|
||||||
|
"winmm.lib",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS_RELEASE = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_LINKOPTS = [
|
||||||
|
# No default manifest (see compile_rc target).
|
||||||
|
"/MANIFEST:NO",
|
||||||
|
# Allow 32-bit processes to access 3GB of RAM.
|
||||||
|
"/LARGEADDRESSAWARE",
|
||||||
|
# Generate Debug information.
|
||||||
|
# TODO: Remove after fixing opt builds to work without it.
|
||||||
|
"/DEBUG",
|
||||||
|
] + [
|
||||||
|
"/DELAYLOAD:{}".format(dll) for dll in DELAYLOAD_DLLS
|
||||||
|
] + [
|
||||||
|
"/DEFAULTLIB:{}".format(lib) for lib in STANDARD_LIBS
|
||||||
|
] + select({
|
||||||
|
# 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().
|
||||||
|
"@cef//:windows_32": ["/STACK:0x80000"],
|
||||||
|
# Increase the initial stack size to 8MiB from the default 1MiB.
|
||||||
|
"//conditions:default": ["/STACK:0x800000"],
|
||||||
|
}) + select({
|
||||||
|
"@cef//:windows_dbg": COMMON_LINKOPTS_DEBUG,
|
||||||
|
"//conditions:default": COMMON_LINKOPTS_RELEASE,
|
||||||
|
})
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'copts' for cc_libary and cc_binary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_COPTS = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_DEBUG = [
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_COPTS_RELEASE = [
|
||||||
|
]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common 'defines' for cc_libary targets.
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMON_DEFINES = [
|
||||||
|
# Windows platform
|
||||||
|
"WIN32",
|
||||||
|
"_WIN32",
|
||||||
|
"_WINDOWS",
|
||||||
|
# Unicode build
|
||||||
|
"UNICODE",
|
||||||
|
"_UNICODE",
|
||||||
|
# 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",
|
||||||
|
# Use the standard's templated min/max
|
||||||
|
"NOMINMAX",
|
||||||
|
# Exclude less common API declarations
|
||||||
|
"WIN32_LEAN_AND_MEAN",
|
||||||
|
# Disable exceptions
|
||||||
|
"_HAS_EXCEPTIONS=0",
|
||||||
|
|
||||||
|
# Required by cef_sandbox.lib
|
||||||
|
"PSAPI_VERSION=1",
|
||||||
|
# Used by apps to test if the sandbox is enabled
|
||||||
|
"CEF_USE_SANDBOX",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_DEFINES_DEBUG = [
|
||||||
|
# Required by cef_sandbox.lib
|
||||||
|
# Disable iterator debugging
|
||||||
|
"HAS_ITERATOR_DEBUGGING=0",
|
||||||
|
"_ITERATOR_DEBUG_LEVEL=0",
|
||||||
|
]
|
||||||
|
|
||||||
|
COMMON_DEFINES_RELEASE = [
|
||||||
|
# Not a debug build
|
||||||
|
"NDEBUG",
|
||||||
|
"_NDEBUG",
|
||||||
|
]
|
69
bazel/win/wrapper.py.tpl
Normal file
69
bazel/win/wrapper.py.tpl
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
from rules_python.python.runfiles import runfiles
|
||||||
|
|
||||||
|
REPLACEMENTS = {
|
||||||
|
"XXX_GETCWD_XXX": os.getcwd(),
|
||||||
|
}
|
||||||
|
|
||||||
|
def replace_in_str(input):
|
||||||
|
output = input
|
||||||
|
for placeholder, replacement in REPLACEMENTS.items():
|
||||||
|
if placeholder in output:
|
||||||
|
output = output.replace(placeholder, replacement)
|
||||||
|
return output
|
||||||
|
|
||||||
|
def print_error(str):
|
||||||
|
print(str, file=sys.stderr)
|
||||||
|
|
||||||
|
r = runfiles.Create()
|
||||||
|
wrapped_binary = r.Rlocation("winsdk/${binary}")
|
||||||
|
args = list(map(replace_in_str, sys.argv[1:]))
|
||||||
|
|
||||||
|
# Optionally execute a script before tool execution.
|
||||||
|
if args[0].endswith('.bat') or args[0].endswith('.cmd'):
|
||||||
|
if sys.platform != 'win32':
|
||||||
|
raise RuntimeError("Error running bat file; unsupported platform")
|
||||||
|
|
||||||
|
# Execute the .bat file first.
|
||||||
|
bat_file = args[0].replace('/', '\\')
|
||||||
|
p = subprocess.run(
|
||||||
|
bat_file, shell=True,
|
||||||
|
stdout = subprocess.PIPE,
|
||||||
|
stderr = subprocess.STDOUT,
|
||||||
|
text=True)
|
||||||
|
if p.returncode != 0:
|
||||||
|
print_error("[Generated python wrapper] Error running bat file:")
|
||||||
|
print_error(f"CWD: {os.getcwd()}")
|
||||||
|
print_error(f"EXEC: {bat_file}")
|
||||||
|
print_error(f"Exec output:")
|
||||||
|
print_error(p.stdout)
|
||||||
|
raise RuntimeError(f"Error running bat file; {bat_file}")
|
||||||
|
|
||||||
|
args = args[1:]
|
||||||
|
|
||||||
|
try:
|
||||||
|
p = subprocess.run(
|
||||||
|
[wrapped_binary] + args,
|
||||||
|
stdout = subprocess.PIPE,
|
||||||
|
stderr = subprocess.STDOUT,
|
||||||
|
text=True)
|
||||||
|
if p.returncode != 0:
|
||||||
|
print_error("[Generated python wrapper] Error running command:")
|
||||||
|
print_error(f"CWD: {os.getcwd()}")
|
||||||
|
print_error(f"EXEC: {wrapped_binary}")
|
||||||
|
print_error(f"ARGS: {args}")
|
||||||
|
print_error(f"Exec output:")
|
||||||
|
print_error(p.stdout)
|
||||||
|
raise RuntimeError(f"Error running wrapped command; {wrapped_binary}")
|
||||||
|
except OSError as e:
|
||||||
|
print_error("[Generated python wrapper] Error running command:")
|
||||||
|
print_error(f"CWD: {os.getcwd()}")
|
||||||
|
print_error(f"EXEC: {wrapped_binary}")
|
||||||
|
print_error(f"ARGS: {args}")
|
||||||
|
raise
|
@@ -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=3b28f3236c16d2b776a44674ae3bae0a070e9f27$
|
# $hash=e092ed49124ef5969b2052fd6ae5f6e6d89390ba$
|
||||||
#
|
#
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -35,8 +35,6 @@
|
|||||||
'include/cef_download_item.h',
|
'include/cef_download_item.h',
|
||||||
'include/cef_drag_data.h',
|
'include/cef_drag_data.h',
|
||||||
'include/cef_drag_handler.h',
|
'include/cef_drag_handler.h',
|
||||||
'include/cef_extension.h',
|
|
||||||
'include/cef_extension_handler.h',
|
|
||||||
'include/cef_file_util.h',
|
'include/cef_file_util.h',
|
||||||
'include/cef_find_handler.h',
|
'include/cef_find_handler.h',
|
||||||
'include/cef_focus_handler.h',
|
'include/cef_focus_handler.h',
|
||||||
@@ -83,6 +81,7 @@
|
|||||||
'include/cef_stream.h',
|
'include/cef_stream.h',
|
||||||
'include/cef_string_visitor.h',
|
'include/cef_string_visitor.h',
|
||||||
'include/cef_task.h',
|
'include/cef_task.h',
|
||||||
|
'include/cef_task_manager.h',
|
||||||
'include/cef_thread.h',
|
'include/cef_thread.h',
|
||||||
'include/cef_trace.h',
|
'include/cef_trace.h',
|
||||||
'include/cef_unresponsive_process_callback.h',
|
'include/cef_unresponsive_process_callback.h',
|
||||||
@@ -140,8 +139,6 @@
|
|||||||
'include/capi/cef_download_item_capi.h',
|
'include/capi/cef_download_item_capi.h',
|
||||||
'include/capi/cef_drag_data_capi.h',
|
'include/capi/cef_drag_data_capi.h',
|
||||||
'include/capi/cef_drag_handler_capi.h',
|
'include/capi/cef_drag_handler_capi.h',
|
||||||
'include/capi/cef_extension_capi.h',
|
|
||||||
'include/capi/cef_extension_handler_capi.h',
|
|
||||||
'include/capi/cef_file_util_capi.h',
|
'include/capi/cef_file_util_capi.h',
|
||||||
'include/capi/cef_find_handler_capi.h',
|
'include/capi/cef_find_handler_capi.h',
|
||||||
'include/capi/cef_focus_handler_capi.h',
|
'include/capi/cef_focus_handler_capi.h',
|
||||||
@@ -188,6 +185,7 @@
|
|||||||
'include/capi/cef_stream_capi.h',
|
'include/capi/cef_stream_capi.h',
|
||||||
'include/capi/cef_string_visitor_capi.h',
|
'include/capi/cef_string_visitor_capi.h',
|
||||||
'include/capi/cef_task_capi.h',
|
'include/capi/cef_task_capi.h',
|
||||||
|
'include/capi/cef_task_manager_capi.h',
|
||||||
'include/capi/cef_thread_capi.h',
|
'include/capi/cef_thread_capi.h',
|
||||||
'include/capi/cef_trace_capi.h',
|
'include/capi/cef_trace_capi.h',
|
||||||
'include/capi/cef_unresponsive_process_callback_capi.h',
|
'include/capi/cef_unresponsive_process_callback_capi.h',
|
||||||
@@ -304,10 +302,6 @@
|
|||||||
'libcef_dll/ctocpp/drag_handler_ctocpp.h',
|
'libcef_dll/ctocpp/drag_handler_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.cc',
|
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.h',
|
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.h',
|
||||||
'libcef_dll/cpptoc/extension_cpptoc.cc',
|
|
||||||
'libcef_dll/cpptoc/extension_cpptoc.h',
|
|
||||||
'libcef_dll/ctocpp/extension_handler_ctocpp.cc',
|
|
||||||
'libcef_dll/ctocpp/extension_handler_ctocpp.h',
|
|
||||||
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.cc',
|
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.h',
|
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/views/fill_layout_cpptoc.cc',
|
'libcef_dll/cpptoc/views/fill_layout_cpptoc.cc',
|
||||||
@@ -320,8 +314,6 @@
|
|||||||
'libcef_dll/cpptoc/frame_cpptoc.h',
|
'libcef_dll/cpptoc/frame_cpptoc.h',
|
||||||
'libcef_dll/ctocpp/frame_handler_ctocpp.cc',
|
'libcef_dll/ctocpp/frame_handler_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/frame_handler_ctocpp.h',
|
'libcef_dll/ctocpp/frame_handler_ctocpp.h',
|
||||||
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.cc',
|
|
||||||
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.h',
|
|
||||||
'libcef_dll/cpptoc/image_cpptoc.cc',
|
'libcef_dll/cpptoc/image_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/image_cpptoc.h',
|
'libcef_dll/cpptoc/image_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/jsdialog_callback_cpptoc.cc',
|
'libcef_dll/cpptoc/jsdialog_callback_cpptoc.cc',
|
||||||
@@ -470,6 +462,8 @@
|
|||||||
'libcef_dll/ctocpp/string_visitor_ctocpp.h',
|
'libcef_dll/ctocpp/string_visitor_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/task_ctocpp.cc',
|
'libcef_dll/ctocpp/task_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/task_ctocpp.h',
|
'libcef_dll/ctocpp/task_ctocpp.h',
|
||||||
|
'libcef_dll/cpptoc/task_manager_cpptoc.cc',
|
||||||
|
'libcef_dll/cpptoc/task_manager_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/task_runner_cpptoc.cc',
|
'libcef_dll/cpptoc/task_runner_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/task_runner_cpptoc.h',
|
'libcef_dll/cpptoc/task_runner_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/test/test_server_cpptoc.cc',
|
'libcef_dll/cpptoc/test/test_server_cpptoc.cc',
|
||||||
@@ -634,10 +628,6 @@
|
|||||||
'libcef_dll/cpptoc/drag_handler_cpptoc.h',
|
'libcef_dll/cpptoc/drag_handler_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.cc',
|
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.h',
|
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.h',
|
||||||
'libcef_dll/ctocpp/extension_ctocpp.cc',
|
|
||||||
'libcef_dll/ctocpp/extension_ctocpp.h',
|
|
||||||
'libcef_dll/cpptoc/extension_handler_cpptoc.cc',
|
|
||||||
'libcef_dll/cpptoc/extension_handler_cpptoc.h',
|
|
||||||
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.cc',
|
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.h',
|
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/views/fill_layout_ctocpp.cc',
|
'libcef_dll/ctocpp/views/fill_layout_ctocpp.cc',
|
||||||
@@ -650,8 +640,6 @@
|
|||||||
'libcef_dll/ctocpp/frame_ctocpp.h',
|
'libcef_dll/ctocpp/frame_ctocpp.h',
|
||||||
'libcef_dll/cpptoc/frame_handler_cpptoc.cc',
|
'libcef_dll/cpptoc/frame_handler_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/frame_handler_cpptoc.h',
|
'libcef_dll/cpptoc/frame_handler_cpptoc.h',
|
||||||
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.cc',
|
|
||||||
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.h',
|
|
||||||
'libcef_dll/ctocpp/image_ctocpp.cc',
|
'libcef_dll/ctocpp/image_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/image_ctocpp.h',
|
'libcef_dll/ctocpp/image_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/jsdialog_callback_ctocpp.cc',
|
'libcef_dll/ctocpp/jsdialog_callback_ctocpp.cc',
|
||||||
@@ -800,6 +788,8 @@
|
|||||||
'libcef_dll/cpptoc/string_visitor_cpptoc.h',
|
'libcef_dll/cpptoc/string_visitor_cpptoc.h',
|
||||||
'libcef_dll/cpptoc/task_cpptoc.cc',
|
'libcef_dll/cpptoc/task_cpptoc.cc',
|
||||||
'libcef_dll/cpptoc/task_cpptoc.h',
|
'libcef_dll/cpptoc/task_cpptoc.h',
|
||||||
|
'libcef_dll/ctocpp/task_manager_ctocpp.cc',
|
||||||
|
'libcef_dll/ctocpp/task_manager_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/task_runner_ctocpp.cc',
|
'libcef_dll/ctocpp/task_runner_ctocpp.cc',
|
||||||
'libcef_dll/ctocpp/task_runner_ctocpp.h',
|
'libcef_dll/ctocpp/task_runner_ctocpp.h',
|
||||||
'libcef_dll/ctocpp/test/test_server_ctocpp.cc',
|
'libcef_dll/ctocpp/test/test_server_ctocpp.cc',
|
||||||
|
@@ -16,11 +16,11 @@
|
|||||||
'include/base/cef_callback_list.h',
|
'include/base/cef_callback_list.h',
|
||||||
'include/base/cef_cancelable_callback.h',
|
'include/base/cef_cancelable_callback.h',
|
||||||
'include/base/cef_compiler_specific.h',
|
'include/base/cef_compiler_specific.h',
|
||||||
|
'include/base/cef_dump_without_crashing.h',
|
||||||
'include/base/cef_lock.h',
|
'include/base/cef_lock.h',
|
||||||
'include/base/cef_logging.h',
|
'include/base/cef_logging.h',
|
||||||
'include/base/cef_macros.h',
|
'include/base/cef_macros.h',
|
||||||
'include/base/cef_platform_thread.h',
|
'include/base/cef_platform_thread.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_thread_checker.h',
|
'include/base/cef_thread_checker.h',
|
||||||
@@ -44,6 +44,7 @@
|
|||||||
'include/internal/cef_types_wrappers.h',
|
'include/internal/cef_types_wrappers.h',
|
||||||
],
|
],
|
||||||
'includes_common_capi': [
|
'includes_common_capi': [
|
||||||
|
'include/internal/cef_dump_without_crashing_internal.h',
|
||||||
'include/internal/cef_logging_internal.h',
|
'include/internal/cef_logging_internal.h',
|
||||||
'include/internal/cef_string.h',
|
'include/internal/cef_string.h',
|
||||||
'include/internal/cef_string_list.h',
|
'include/internal/cef_string_list.h',
|
||||||
@@ -54,9 +55,10 @@
|
|||||||
'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_color.h',
|
|
||||||
'include/internal/cef_types_content_settings.h',
|
'include/internal/cef_types_content_settings.h',
|
||||||
'include/internal/cef_types_geometry.h',
|
'include/internal/cef_types_geometry.h',
|
||||||
|
'include/internal/cef_types_runtime.h',
|
||||||
|
'include/internal/cef_types_color.h',
|
||||||
],
|
],
|
||||||
'includes_capi': [
|
'includes_capi': [
|
||||||
'include/capi/cef_base_capi.h',
|
'include/capi/cef_base_capi.h',
|
||||||
@@ -123,6 +125,7 @@
|
|||||||
'libcef_dll/base/cef_atomic_flag.cc',
|
'libcef_dll/base/cef_atomic_flag.cc',
|
||||||
'libcef_dll/base/cef_callback_helpers.cc',
|
'libcef_dll/base/cef_callback_helpers.cc',
|
||||||
'libcef_dll/base/cef_callback_internal.cc',
|
'libcef_dll/base/cef_callback_internal.cc',
|
||||||
|
'libcef_dll/base/cef_dump_without_crashing.cc',
|
||||||
'libcef_dll/base/cef_lock.cc',
|
'libcef_dll/base/cef_lock.cc',
|
||||||
'libcef_dll/base/cef_lock_impl.cc',
|
'libcef_dll/base/cef_lock_impl.cc',
|
||||||
'libcef_dll/base/cef_logging.cc',
|
'libcef_dll/base/cef_logging.cc',
|
||||||
@@ -166,8 +169,6 @@
|
|||||||
'shared_sources_browser': [
|
'shared_sources_browser': [
|
||||||
'tests/shared/browser/client_app_browser.cc',
|
'tests/shared/browser/client_app_browser.cc',
|
||||||
'tests/shared/browser/client_app_browser.h',
|
'tests/shared/browser/client_app_browser.h',
|
||||||
'tests/shared/browser/extension_util.cc',
|
|
||||||
'tests/shared/browser/extension_util.h',
|
|
||||||
'tests/shared/browser/file_util.cc',
|
'tests/shared/browser/file_util.cc',
|
||||||
'tests/shared/browser/file_util.h',
|
'tests/shared/browser/file_util.h',
|
||||||
'tests/shared/browser/geometry_util.cc',
|
'tests/shared/browser/geometry_util.cc',
|
||||||
@@ -244,6 +245,7 @@
|
|||||||
'tests/cefclient/browser/client_prefs.cc',
|
'tests/cefclient/browser/client_prefs.cc',
|
||||||
'tests/cefclient/browser/client_prefs.h',
|
'tests/cefclient/browser/client_prefs.h',
|
||||||
'tests/cefclient/browser/client_types.h',
|
'tests/cefclient/browser/client_types.h',
|
||||||
|
'tests/cefclient/browser/default_client_handler.cc',
|
||||||
'tests/cefclient/browser/default_client_handler.h',
|
'tests/cefclient/browser/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',
|
||||||
@@ -277,6 +279,8 @@
|
|||||||
'tests/cefclient/browser/scheme_test.h',
|
'tests/cefclient/browser/scheme_test.h',
|
||||||
'tests/cefclient/browser/server_test.cc',
|
'tests/cefclient/browser/server_test.cc',
|
||||||
'tests/cefclient/browser/server_test.h',
|
'tests/cefclient/browser/server_test.h',
|
||||||
|
'tests/cefclient/browser/task_manager_test.cc',
|
||||||
|
'tests/cefclient/browser/task_manager_test.h',
|
||||||
'tests/cefclient/browser/temp_window.h',
|
'tests/cefclient/browser/temp_window.h',
|
||||||
'tests/cefclient/browser/test_runner.cc',
|
'tests/cefclient/browser/test_runner.cc',
|
||||||
'tests/cefclient/browser/test_runner.h',
|
'tests/cefclient/browser/test_runner.h',
|
||||||
@@ -331,19 +335,13 @@
|
|||||||
'tests/cefclient/resources/preferences.html',
|
'tests/cefclient/resources/preferences.html',
|
||||||
'tests/cefclient/resources/response_filter.html',
|
'tests/cefclient/resources/response_filter.html',
|
||||||
'tests/cefclient/resources/server.html',
|
'tests/cefclient/resources/server.html',
|
||||||
|
'tests/cefclient/resources/task_manager.html',
|
||||||
'tests/cefclient/resources/transparency.html',
|
'tests/cefclient/resources/transparency.html',
|
||||||
'tests/cefclient/resources/urlrequest.html',
|
'tests/cefclient/resources/urlrequest.html',
|
||||||
'tests/cefclient/resources/websocket.html',
|
'tests/cefclient/resources/websocket.html',
|
||||||
'tests/cefclient/resources/window.html',
|
'tests/cefclient/resources/window.html',
|
||||||
'tests/cefclient/resources/xmlhttprequest.html',
|
'tests/cefclient/resources/xmlhttprequest.html',
|
||||||
],
|
],
|
||||||
'cefclient_sources_resources_extensions_set_page_color': [
|
|
||||||
'tests/cefclient/resources/extensions/set_page_color/icon.png',
|
|
||||||
'tests/cefclient/resources/extensions/set_page_color/manifest.json',
|
|
||||||
'tests/cefclient/resources/extensions/set_page_color/popup.html',
|
|
||||||
'tests/cefclient/resources/extensions/set_page_color/popup.js',
|
|
||||||
'tests/cefclient/resources/extensions/set_page_color/README.md',
|
|
||||||
],
|
|
||||||
'cefclient_sources_win': [
|
'cefclient_sources_win': [
|
||||||
'tests/cefclient/browser/browser_window_osr_win.cc',
|
'tests/cefclient/browser/browser_window_osr_win.cc',
|
||||||
'tests/cefclient/browser/browser_window_osr_win.h',
|
'tests/cefclient/browser/browser_window_osr_win.h',
|
||||||
@@ -379,12 +377,14 @@
|
|||||||
'tests/cefclient/browser/window_test_runner_win.cc',
|
'tests/cefclient/browser/window_test_runner_win.cc',
|
||||||
'tests/cefclient/browser/window_test_runner_win.h',
|
'tests/cefclient/browser/window_test_runner_win.h',
|
||||||
'tests/cefclient/cefclient_win.cc',
|
'tests/cefclient/cefclient_win.cc',
|
||||||
'tests/cefclient/resources/win/cefclient.rc',
|
|
||||||
],
|
],
|
||||||
'cefclient_sources_resources_win': [
|
'cefclient_sources_resources_win': [
|
||||||
'tests/cefclient/resources/win/cefclient.exe.manifest',
|
'tests/cefclient/win/cefclient.exe.manifest',
|
||||||
'tests/cefclient/resources/win/cefclient.ico',
|
'tests/cefclient/win/cefclient.ico',
|
||||||
'tests/cefclient/resources/win/small.ico',
|
'tests/cefclient/win/small.ico',
|
||||||
|
],
|
||||||
|
'cefclient_sources_resources_win_rc': [
|
||||||
|
'tests/cefclient/win/cefclient.rc',
|
||||||
],
|
],
|
||||||
'cefclient_sources_mac': [
|
'cefclient_sources_mac': [
|
||||||
'tests/cefclient/browser/browser_window_osr_mac.h',
|
'tests/cefclient/browser/browser_window_osr_mac.h',
|
||||||
@@ -407,12 +407,12 @@
|
|||||||
'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',
|
||||||
],
|
],
|
||||||
'cefclient_bundle_resources_mac': [
|
'cefclient_bundle_resources_mac': [
|
||||||
'tests/cefclient/resources/mac/cefclient.icns',
|
'tests/cefclient/mac/cefclient.icns',
|
||||||
'tests/cefclient/resources/mac/English.lproj/InfoPlist.strings',
|
'tests/cefclient/mac/English.lproj/InfoPlist.strings',
|
||||||
'tests/cefclient/resources/mac/English.lproj/MainMenu.xib',
|
'tests/cefclient/mac/English.lproj/MainMenu.xib',
|
||||||
'tests/cefclient/resources/mac/Info.plist',
|
'tests/cefclient/mac/Info.plist.in',
|
||||||
],
|
],
|
||||||
'cefclient_sources_linux': [
|
'cefclient_sources_linux': [
|
||||||
'tests/cefclient/browser/browser_window_osr_gtk.cc',
|
'tests/cefclient/browser/browser_window_osr_gtk.cc',
|
||||||
@@ -444,15 +444,17 @@
|
|||||||
'tests/cefsimple/simple_handler.h',
|
'tests/cefsimple/simple_handler.h',
|
||||||
],
|
],
|
||||||
'cefsimple_sources_win': [
|
'cefsimple_sources_win': [
|
||||||
'tests/cefsimple/cefsimple.rc',
|
|
||||||
'tests/cefsimple/cefsimple_win.cc',
|
'tests/cefsimple/cefsimple_win.cc',
|
||||||
'tests/cefsimple/simple_handler_win.cc',
|
|
||||||
'tests/cefsimple/resource.h',
|
'tests/cefsimple/resource.h',
|
||||||
|
'tests/cefsimple/simple_handler_win.cc',
|
||||||
],
|
],
|
||||||
'cefsimple_sources_resources_win': [
|
'cefsimple_sources_resources_win': [
|
||||||
'tests/cefsimple/cefsimple.exe.manifest',
|
'tests/cefsimple/win/cefsimple.exe.manifest',
|
||||||
'tests/cefsimple/res/cefsimple.ico',
|
'tests/cefsimple/win/cefsimple.ico',
|
||||||
'tests/cefsimple/res/small.ico',
|
'tests/cefsimple/win/small.ico',
|
||||||
|
],
|
||||||
|
'cefsimple_sources_resources_win_rc': [
|
||||||
|
'tests/cefsimple/win/cefsimple.rc',
|
||||||
],
|
],
|
||||||
'cefsimple_sources_mac': [
|
'cefsimple_sources_mac': [
|
||||||
'tests/cefsimple/cefsimple_mac.mm',
|
'tests/cefsimple/cefsimple_mac.mm',
|
||||||
@@ -465,7 +467,7 @@
|
|||||||
'tests/cefsimple/mac/cefsimple.icns',
|
'tests/cefsimple/mac/cefsimple.icns',
|
||||||
'tests/cefsimple/mac/English.lproj/InfoPlist.strings',
|
'tests/cefsimple/mac/English.lproj/InfoPlist.strings',
|
||||||
'tests/cefsimple/mac/English.lproj/MainMenu.xib',
|
'tests/cefsimple/mac/English.lproj/MainMenu.xib',
|
||||||
'tests/cefsimple/mac/Info.plist',
|
'tests/cefsimple/mac/Info.plist.in',
|
||||||
],
|
],
|
||||||
'cefsimple_sources_linux': [
|
'cefsimple_sources_linux': [
|
||||||
'tests/cefsimple/cefsimple_linux.cc',
|
'tests/cefsimple/cefsimple_linux.cc',
|
||||||
@@ -490,13 +492,6 @@
|
|||||||
'tests/ceftests/dom_unittest.cc',
|
'tests/ceftests/dom_unittest.cc',
|
||||||
'tests/ceftests/download_unittest.cc',
|
'tests/ceftests/download_unittest.cc',
|
||||||
'tests/ceftests/draggable_regions_unittest.cc',
|
'tests/ceftests/draggable_regions_unittest.cc',
|
||||||
'tests/ceftests/extensions/background_unittest.cc',
|
|
||||||
'tests/ceftests/extensions/chrome_alarms_unittest.cc',
|
|
||||||
'tests/ceftests/extensions/chrome_storage_unittest.cc',
|
|
||||||
'tests/ceftests/extensions/chrome_tabs_unittest.cc',
|
|
||||||
'tests/ceftests/extensions/extension_test_handler.cc',
|
|
||||||
'tests/ceftests/extensions/extension_test_handler.h',
|
|
||||||
'tests/ceftests/extensions/view_unittest.cc',
|
|
||||||
'tests/ceftests/file_util_unittest.cc',
|
'tests/ceftests/file_util_unittest.cc',
|
||||||
'tests/ceftests/frame_handler_unittest.cc',
|
'tests/ceftests/frame_handler_unittest.cc',
|
||||||
'tests/ceftests/frame_unittest.cc',
|
'tests/ceftests/frame_unittest.cc',
|
||||||
@@ -590,24 +585,32 @@
|
|||||||
'ceftests_sources_win': [
|
'ceftests_sources_win': [
|
||||||
'tests/ceftests/resource_util_win_dir.cc',
|
'tests/ceftests/resource_util_win_dir.cc',
|
||||||
'tests/ceftests/resource_util_win_idmap.cc',
|
'tests/ceftests/resource_util_win_idmap.cc',
|
||||||
'tests/ceftests/resources/win/ceftests.rc',
|
|
||||||
],
|
],
|
||||||
'ceftests_sources_resources_win': [
|
'ceftests_sources_resources_win': [
|
||||||
'tests/ceftests/resources/win/ceftests.exe.manifest',
|
'tests/ceftests/win/ceftests.exe.manifest',
|
||||||
'tests/ceftests/resources/win/ceftests.ico',
|
'tests/ceftests/win/ceftests.ico',
|
||||||
'tests/ceftests/resources/win/small.ico',
|
'tests/ceftests/win/small.ico',
|
||||||
|
],
|
||||||
|
'ceftests_sources_resources_win_rc': [
|
||||||
|
'tests/ceftests/win/ceftests.rc',
|
||||||
],
|
],
|
||||||
'ceftests_sources_mac': [
|
'ceftests_sources_mac': [
|
||||||
'tests/ceftests/os_rendering_unittest_mac.h',
|
'tests/ceftests/os_rendering_unittest_mac.h',
|
||||||
'tests/ceftests/os_rendering_unittest_mac.mm',
|
'tests/ceftests/os_rendering_unittest_mac.mm',
|
||||||
'tests/ceftests/run_all_unittests_mac.mm',
|
'tests/ceftests/run_all_unittests_mac.mm',
|
||||||
],
|
],
|
||||||
'ceftests_sources_mac_helper': [
|
'ceftests_sources_mac_browser_shared': [
|
||||||
|
'tests/shared/renderer/client_app_renderer.h',
|
||||||
|
],
|
||||||
|
'ceftests_sources_mac_helper_shared': [
|
||||||
|
'tests/shared/browser/client_app_browser.h',
|
||||||
'tests/shared/browser/file_util.cc',
|
'tests/shared/browser/file_util.cc',
|
||||||
'tests/shared/browser/file_util.h',
|
'tests/shared/browser/file_util.h',
|
||||||
'tests/shared/browser/resource_util.h',
|
'tests/shared/browser/resource_util.h',
|
||||||
'tests/shared/browser/resource_util_mac.mm',
|
'tests/shared/browser/resource_util_mac.mm',
|
||||||
'tests/shared/browser/resource_util_posix.cc',
|
'tests/shared/browser/resource_util_posix.cc',
|
||||||
|
],
|
||||||
|
'ceftests_sources_mac_helper': [
|
||||||
'tests/ceftests/audio_output_unittest.cc',
|
'tests/ceftests/audio_output_unittest.cc',
|
||||||
'tests/ceftests/client_app_delegates.cc',
|
'tests/ceftests/client_app_delegates.cc',
|
||||||
'tests/ceftests/cookie_unittest.cc',
|
'tests/ceftests/cookie_unittest.cc',
|
||||||
@@ -663,10 +666,10 @@
|
|||||||
'tests/ceftests/v8_unittest.cc',
|
'tests/ceftests/v8_unittest.cc',
|
||||||
],
|
],
|
||||||
'ceftests_bundle_resources_mac': [
|
'ceftests_bundle_resources_mac': [
|
||||||
'tests/ceftests/resources/mac/ceftests.icns',
|
'tests/ceftests/mac/ceftests.icns',
|
||||||
'tests/ceftests/resources/mac/English.lproj/InfoPlist.strings',
|
'tests/ceftests/mac/English.lproj/InfoPlist.strings',
|
||||||
'tests/ceftests/resources/mac/English.lproj/MainMenu.xib',
|
'tests/ceftests/mac/English.lproj/MainMenu.xib',
|
||||||
'tests/ceftests/resources/mac/Info.plist',
|
'tests/ceftests/mac/Info.plist.in',
|
||||||
],
|
],
|
||||||
'ceftests_sources_linux': [
|
'ceftests_sources_linux': [
|
||||||
'tests/ceftests/resource_util_linux.cc',
|
'tests/ceftests/resource_util_linux.cc',
|
||||||
|
@@ -59,7 +59,7 @@ set(CEF_LIBCEF_DLL_WRAPPER_PATH "${_CEF_ROOT}/libcef_dll")
|
|||||||
|
|
||||||
# Shared compiler/linker flags.
|
# Shared compiler/linker flags.
|
||||||
list(APPEND CEF_COMPILER_DEFINES
|
list(APPEND CEF_COMPILER_DEFINES
|
||||||
# Allow C++ programs to use stdint.h macros specified in the C99 standard that aren't
|
# Allow C++ programs to use stdint.h macros specified in the C99 standard that aren't
|
||||||
# in the C++ standard (e.g. UINT8_MAX, INT64_MIN, etc)
|
# in the C++ standard (e.g. UINT8_MAX, INT64_MIN, etc)
|
||||||
__STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS
|
__STDC_CONSTANT_MACROS __STDC_FORMAT_MACROS
|
||||||
)
|
)
|
||||||
@@ -311,7 +311,7 @@ if(OS_MAC)
|
|||||||
|
|
||||||
# Find the newest available base SDK.
|
# Find the newest available base SDK.
|
||||||
execute_process(COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
foreach(OS_VERSION 14.2 14.0 10.15)
|
foreach(OS_VERSION 14.2 14.0 11.0)
|
||||||
set(SDK "${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OS_VERSION}.sdk")
|
set(SDK "${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OS_VERSION}.sdk")
|
||||||
if(NOT "${CMAKE_OSX_SYSROOT}" AND EXISTS "${SDK}" AND IS_DIRECTORY "${SDK}")
|
if(NOT "${CMAKE_OSX_SYSROOT}" AND EXISTS "${SDK}" AND IS_DIRECTORY "${SDK}")
|
||||||
set(CMAKE_OSX_SYSROOT ${SDK})
|
set(CMAKE_OSX_SYSROOT ${SDK})
|
||||||
@@ -319,7 +319,7 @@ if(OS_MAC)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Target SDK.
|
# Target SDK.
|
||||||
set(CEF_TARGET_SDK "10.15")
|
set(CEF_TARGET_SDK "11.0")
|
||||||
list(APPEND CEF_COMPILER_FLAGS
|
list(APPEND CEF_COMPILER_FLAGS
|
||||||
-mmacosx-version-min=${CEF_TARGET_SDK}
|
-mmacosx-version-min=${CEF_TARGET_SDK}
|
||||||
)
|
)
|
||||||
|
@@ -69,7 +69,24 @@
|
|||||||
#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 "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
|
#include "cef/libcef/features/features.h"
|
||||||
|
|
||||||
|
// The following #defines are used in cef/include/ headers and CEF client-side
|
||||||
|
// code. CEF library-side code should use BUILDFLAG checks directly instead of
|
||||||
|
// these #defines. CEF client-side code will get these #defines from
|
||||||
|
// cef_config.h so any changes must also be reflected in
|
||||||
|
// tools/make_config_header.py.
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_LINUX)
|
||||||
|
#include "ui/base/ozone_buildflags.h"
|
||||||
|
#if BUILDFLAG(IS_OZONE_X11)
|
||||||
|
#define CEF_X11 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#else // !USING_CHROMIUM_INCLUDES
|
#else // !USING_CHROMIUM_INCLUDES
|
||||||
|
#include "include/cef_config.h"
|
||||||
|
|
||||||
// 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
|
||||||
// updated to match.
|
// updated to match.
|
||||||
|
76
include/base/cef_dump_without_crashing.h
Normal file
76
include/base/cef_dump_without_crashing.h
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
// Copyright (c) 2024 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.
|
||||||
|
|
||||||
|
///
|
||||||
|
/// \file
|
||||||
|
/// Provides functions for generating crash dumps.
|
||||||
|
///
|
||||||
|
/// NOTE: The contents of this file are only available to applications that link
|
||||||
|
/// against the libcef_dll_wrapper target.
|
||||||
|
///
|
||||||
|
/// NOTE: Ensure crash reporting is configured before use. See
|
||||||
|
/// https://bitbucket.org/chromiumembedded/cef/wiki/CrashReporting.md for more
|
||||||
|
/// information
|
||||||
|
///
|
||||||
|
/// WARNING: Crash reporting should not be used in the main/browser process
|
||||||
|
/// before calling CefInitialize or in sub-processes before CefExecuteProcess.
|
||||||
|
///
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_BASE_CEF_DUMP_WITHOUT_CRASHING_H_
|
||||||
|
#define CEF_INCLUDE_BASE_CEF_DUMP_WITHOUT_CRASHING_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
constexpr long long kOneDayInMilliseconds = 86400000;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// CefDumpWithoutCrashing allows for generating crash dumps with a throttling
|
||||||
|
/// mechanism, preventing frequent dumps from being generated in a short period
|
||||||
|
/// of time from the same location. The |function_name|, |file_name|, and
|
||||||
|
/// |line_number| determine the location of the dump. The
|
||||||
|
/// |mseconds_between_dumps| is an interval between consecutive dumps in
|
||||||
|
/// milliseconds from the same location.
|
||||||
|
///
|
||||||
|
/// Returns true if the dump was successfully generated, false otherwise.
|
||||||
|
///
|
||||||
|
bool CefDumpWithoutCrashing(
|
||||||
|
long long mseconds_between_dumps = kOneDayInMilliseconds,
|
||||||
|
const char* function_name = __builtin_FUNCTION(),
|
||||||
|
const char* file_name = __builtin_FILE(),
|
||||||
|
int line_number = __builtin_LINE());
|
||||||
|
|
||||||
|
///
|
||||||
|
/// CefDumpWithoutCrashingUnthrottled allows for immediate crash dumping without
|
||||||
|
/// any throttling constraints.
|
||||||
|
///
|
||||||
|
/// Returns true if the dump was successfully generated, false otherwise.
|
||||||
|
///
|
||||||
|
bool CefDumpWithoutCrashingUnthrottled();
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_BASE_CEF_DUMP_WITHOUT_CRASHING_H_
|
@@ -66,6 +66,7 @@
|
|||||||
// updated to match.
|
// updated to match.
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
@@ -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=dfa0d4d2da319b2fd5e92324fd14301b500ceb5c$
|
// $hash=608f4520d7901b6e18bf9164c9460f1b75bad8f4$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
||||||
@@ -91,11 +91,9 @@ typedef struct _cef_app_t {
|
|||||||
struct _cef_scheme_registrar_t* registrar);
|
struct _cef_scheme_registrar_t* registrar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Return the handler for resource bundle events. If
|
/// Return the handler for resource bundle events. If no handler is returned
|
||||||
/// cef_settings_t.pack_loading_disabled is true (1) a handler must be
|
/// resources will be loaded from pack files. This function is called by the
|
||||||
/// returned. If no handler is returned resources will be loaded from pack
|
/// browser and render processes on multiple threads.
|
||||||
/// files. This function is called by the browser and render processes on
|
|
||||||
/// multiple threads.
|
|
||||||
///
|
///
|
||||||
struct _cef_resource_bundle_handler_t*(
|
struct _cef_resource_bundle_handler_t*(
|
||||||
CEF_CALLBACK* get_resource_bundle_handler)(struct _cef_app_t* self);
|
CEF_CALLBACK* get_resource_bundle_handler)(struct _cef_app_t* self);
|
||||||
|
@@ -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=abcb584dbf5965834f415a0f2daeda3e361696b2$
|
// $hash=7c786570b1c7af912a31c6f0c3d742e8aeb38fd8$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
||||||
@@ -381,8 +381,7 @@ typedef struct _cef_browser_host_t {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Get the default zoom level. This value will be 0.0 by default but can be
|
/// 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
|
/// configured. This function can only be called on the UI thread.
|
||||||
/// the UI thread.
|
|
||||||
///
|
///
|
||||||
double(CEF_CALLBACK* get_default_zoom_level)(
|
double(CEF_CALLBACK* get_default_zoom_level)(
|
||||||
struct _cef_browser_host_t* self);
|
struct _cef_browser_host_t* self);
|
||||||
@@ -907,20 +906,6 @@ typedef struct _cef_browser_host_t {
|
|||||||
const cef_size_t* min_size,
|
const cef_size_t* min_size,
|
||||||
const cef_size_t* max_size);
|
const cef_size_t* max_size);
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension hosted in this browser or NULL if no extension is
|
|
||||||
/// hosted. See cef_request_context_t::LoadExtension for details.
|
|
||||||
///
|
|
||||||
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
|
|
||||||
struct _cef_browser_host_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if this browser is hosting an extension background
|
|
||||||
/// script. Background hosts do not have a window and are not displayable. See
|
|
||||||
/// cef_request_context_t::LoadExtension for details.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* is_background_host)(struct _cef_browser_host_t* self);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Set whether the browser's audio is muted.
|
/// Set whether the browser's audio is muted.
|
||||||
///
|
///
|
||||||
@@ -944,12 +929,12 @@ typedef struct _cef_browser_host_t {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Requests the renderer to exit browser fullscreen. In most cases exiting
|
/// Requests the renderer to exit browser fullscreen. In most cases exiting
|
||||||
/// window fullscreen should also exit browser fullscreen. With the Alloy
|
/// window fullscreen should also exit browser fullscreen. With Alloy style
|
||||||
/// runtime this function should be called in response to a user action such
|
/// this function should be called in response to a user action such as
|
||||||
/// as clicking the green traffic light button on MacOS
|
/// clicking the green traffic light button on MacOS
|
||||||
/// (cef_window_delegate_t::OnWindowFullscreenTransition callback) or pressing
|
/// (cef_window_delegate_t::OnWindowFullscreenTransition callback) or pressing
|
||||||
/// the "ESC" key (cef_keyboard_handler_t::OnPreKeyEvent callback). With the
|
/// the "ESC" key (cef_keyboard_handler_t::OnPreKeyEvent callback). With
|
||||||
/// Chrome runtime these standard exit actions are handled internally but
|
/// Chrome style these standard exit actions are handled internally but
|
||||||
/// new/additional user actions can use this function. Set |will_cause_resize|
|
/// new/additional user actions can use this function. Set |will_cause_resize|
|
||||||
/// to true (1) if exiting browser fullscreen will cause a view resize.
|
/// to true (1) if exiting browser fullscreen will cause a view resize.
|
||||||
///
|
///
|
||||||
@@ -959,7 +944,7 @@ typedef struct _cef_browser_host_t {
|
|||||||
///
|
///
|
||||||
/// Returns true (1) if a Chrome command is supported and enabled. Values for
|
/// 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
|
/// |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.
|
/// only be called on the UI thread. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* can_execute_chrome_command)(
|
int(CEF_CALLBACK* can_execute_chrome_command)(
|
||||||
struct _cef_browser_host_t* self,
|
struct _cef_browser_host_t* self,
|
||||||
@@ -968,7 +953,7 @@ typedef struct _cef_browser_host_t {
|
|||||||
///
|
///
|
||||||
/// Execute a Chrome command. Values for |command_id| can be found in the
|
/// Execute a Chrome command. Values for |command_id| can be found in the
|
||||||
/// cef_command_ids.h file. |disposition| provides information about the
|
/// cef_command_ids.h file. |disposition| provides information about the
|
||||||
/// intended command target. Only used with the Chrome runtime.
|
/// intended command target. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
void(CEF_CALLBACK* execute_chrome_command)(
|
void(CEF_CALLBACK* execute_chrome_command)(
|
||||||
struct _cef_browser_host_t* self,
|
struct _cef_browser_host_t* self,
|
||||||
@@ -985,6 +970,13 @@ typedef struct _cef_browser_host_t {
|
|||||||
///
|
///
|
||||||
int(CEF_CALLBACK* is_render_process_unresponsive)(
|
int(CEF_CALLBACK* is_render_process_unresponsive)(
|
||||||
struct _cef_browser_host_t* self);
|
struct _cef_browser_host_t* self);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this browser (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t(CEF_CALLBACK* get_runtime_style)(
|
||||||
|
struct _cef_browser_host_t* self);
|
||||||
} cef_browser_host_t;
|
} cef_browser_host_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -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=d958d5bed7f909f6313facef3440fb8ba07a5c01$
|
// $hash=56ad161a75ca5083812e11959053abbcafbb9a5d$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
||||||
@@ -69,8 +69,8 @@ typedef struct _cef_browser_process_handler_t {
|
|||||||
/// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be
|
/// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be
|
||||||
/// accessed via cef_preference_manager_t::GetGlobalPreferences after
|
/// accessed via cef_preference_manager_t::GetGlobalPreferences after
|
||||||
/// OnContextInitialized is called. Global preferences are registered a single
|
/// OnContextInitialized is called. Global preferences are registered a single
|
||||||
/// time at application startup. See related cef_settings_t.cache_path and
|
/// time at application startup. See related cef_settings_t.cache_path
|
||||||
/// cef_settings_t.persist_user_preferences configuration.
|
/// configuration.
|
||||||
///
|
///
|
||||||
/// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be
|
/// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be
|
||||||
/// accessed via the cef_request_context_t after
|
/// accessed via the cef_request_context_t after
|
||||||
@@ -78,8 +78,7 @@ typedef struct _cef_browser_process_handler_t {
|
|||||||
/// Request context preferences are registered each time a new
|
/// Request context preferences are registered each time a new
|
||||||
/// cef_request_context_t is created. It is intended but not required that all
|
/// cef_request_context_t is created. It is intended but not required that all
|
||||||
/// request contexts have the same registered preferences. See related
|
/// request contexts have the same registered preferences. See related
|
||||||
/// cef_request_context_settings_t.cache_path and
|
/// cef_request_context_settings_t.cache_path configuration.
|
||||||
/// cef_request_context_settings_t.persist_user_preferences configuration.
|
|
||||||
///
|
///
|
||||||
/// Do not keep a reference to the |registrar| object. This function is called
|
/// Do not keep a reference to the |registrar| object. This function is called
|
||||||
/// on the browser process UI thread.
|
/// on the browser process UI thread.
|
||||||
@@ -152,8 +151,8 @@ typedef struct _cef_browser_process_handler_t {
|
|||||||
/// (cef_browser_t object). If null is returned the cef_browser_t will be
|
/// (cef_browser_t object). If null is returned the cef_browser_t will be
|
||||||
/// unmanaged (no callbacks will be executed for that cef_browser_t) and
|
/// unmanaged (no callbacks will be executed for that cef_browser_t) and
|
||||||
/// application shutdown will be blocked until the browser window is closed
|
/// application shutdown will be blocked until the browser window is closed
|
||||||
/// manually. This function is currently only used with the Chrome runtime
|
/// manually. This function is currently only used with Chrome style when
|
||||||
/// when creating new browser windows via Chrome UI.
|
/// creating new browser windows via Chrome UI.
|
||||||
///
|
///
|
||||||
struct _cef_client_t*(CEF_CALLBACK* get_default_client)(
|
struct _cef_client_t*(CEF_CALLBACK* get_default_client)(
|
||||||
struct _cef_browser_process_handler_t* self);
|
struct _cef_browser_process_handler_t* self);
|
||||||
@@ -162,8 +161,8 @@ typedef struct _cef_browser_process_handler_t {
|
|||||||
/// Return the default handler for use with a new user or incognito profile
|
/// Return the default handler for use with a new user or incognito profile
|
||||||
/// (cef_request_context_t object). If null is returned the
|
/// (cef_request_context_t object). If null is returned the
|
||||||
/// cef_request_context_t will be unmanaged (no callbacks will be executed for
|
/// cef_request_context_t will be unmanaged (no callbacks will be executed for
|
||||||
/// that cef_request_context_t). This function is currently only used with the
|
/// that cef_request_context_t). This function is currently only used with
|
||||||
/// Chrome runtime when creating new browser windows via Chrome UI.
|
/// Chrome style when creating new browser windows via Chrome UI.
|
||||||
///
|
///
|
||||||
struct _cef_request_context_handler_t*(
|
struct _cef_request_context_handler_t*(
|
||||||
CEF_CALLBACK* get_default_request_context_handler)(
|
CEF_CALLBACK* get_default_request_context_handler)(
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=dd183a473b1e8c5ee8bdcf99949fc5274c4cc892$
|
// $hash=9c7d613d1256bd6353f5102ece5a04e572f20627$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_HANDLER_CAPI_H_
|
||||||
@@ -64,7 +64,7 @@ typedef struct _cef_command_handler_t {
|
|||||||
/// intended command target. Return true (1) if the command was handled or
|
/// intended command target. Return true (1) if the command was handled or
|
||||||
/// false (0) for the default implementation. For context menu commands this
|
/// false (0) for the default implementation. For context menu commands this
|
||||||
/// will be called after cef_context_menu_handler_t::OnContextMenuCommand.
|
/// will be called after cef_context_menu_handler_t::OnContextMenuCommand.
|
||||||
/// Only used with the Chrome runtime.
|
/// Only used with Chrome style.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* on_chrome_command)(
|
int(CEF_CALLBACK* on_chrome_command)(
|
||||||
struct _cef_command_handler_t* self,
|
struct _cef_command_handler_t* self,
|
||||||
@@ -75,8 +75,7 @@ typedef struct _cef_command_handler_t {
|
|||||||
///
|
///
|
||||||
/// Called to check if a Chrome app menu item should be visible. Values for
|
/// 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
|
/// |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
|
/// menu items that would be visible by default. Only used with Chrome style.
|
||||||
/// runtime.
|
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* is_chrome_app_menu_item_visible)(
|
int(CEF_CALLBACK* is_chrome_app_menu_item_visible)(
|
||||||
struct _cef_command_handler_t* self,
|
struct _cef_command_handler_t* self,
|
||||||
@@ -86,8 +85,7 @@ typedef struct _cef_command_handler_t {
|
|||||||
///
|
///
|
||||||
/// Called to check if a Chrome app menu item should be enabled. Values for
|
/// 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
|
/// |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
|
/// menu items that would be enabled by default. Only used with Chrome style.
|
||||||
/// runtime.
|
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* is_chrome_app_menu_item_enabled)(
|
int(CEF_CALLBACK* is_chrome_app_menu_item_enabled)(
|
||||||
struct _cef_command_handler_t* self,
|
struct _cef_command_handler_t* self,
|
||||||
@@ -97,7 +95,7 @@ typedef struct _cef_command_handler_t {
|
|||||||
///
|
///
|
||||||
/// Called during browser creation to check if a Chrome page action icon
|
/// 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.
|
/// should be visible. Only called for icons that would be visible by default.
|
||||||
/// Only used with the Chrome runtime.
|
/// Only used with Chrome style.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* is_chrome_page_action_icon_visible)(
|
int(CEF_CALLBACK* is_chrome_page_action_icon_visible)(
|
||||||
struct _cef_command_handler_t* self,
|
struct _cef_command_handler_t* self,
|
||||||
@@ -106,7 +104,7 @@ typedef struct _cef_command_handler_t {
|
|||||||
///
|
///
|
||||||
/// Called during browser creation to check if a Chrome toolbar button should
|
/// 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
|
/// be visible. Only called for buttons that would be visible by default. Only
|
||||||
/// used with the Chrome runtime.
|
/// used with Chrome style.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* is_chrome_toolbar_button_visible)(
|
int(CEF_CALLBACK* is_chrome_toolbar_button_visible)(
|
||||||
struct _cef_command_handler_t* self,
|
struct _cef_command_handler_t* self,
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=5644fdc2453dd083079bf9e3616b687eeb49f250$
|
// $hash=bf7208a86ee17f63fd7163cef8c3a13373a1f1c8$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
||||||
@@ -86,13 +86,20 @@ typedef struct _cef_dialog_handler_t {
|
|||||||
/// to show the default title ("Open" or "Save" depending on the mode).
|
/// to show the default title ("Open" or "Save" depending on the mode).
|
||||||
/// |default_file_path| is the path with optional directory and/or file name
|
/// |default_file_path| is the path with optional directory and/or file name
|
||||||
/// component that should be initially selected in the dialog.
|
/// component that should be initially selected in the dialog.
|
||||||
/// |accept_filters| are used to restrict the selectable file types and may
|
/// |accept_filters| are used to restrict the selectable file types and may be
|
||||||
/// any combination of (a) valid lower-cased MIME types (e.g. "text/*" or
|
/// any combination of valid lower-cased MIME types (e.g. "text/*" or
|
||||||
/// "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c)
|
/// "image/*") and individual file extensions (e.g. ".txt" or ".png").
|
||||||
/// combined description and file extension delimited using "|" and ";" (e.g.
|
/// |accept_extensions| provides the semicolon-delimited expansion of MIME
|
||||||
/// "Image Types|.png;.gif;.jpg"). To display a custom dialog return true (1)
|
/// types to file extensions (if known, or NULL string otherwise).
|
||||||
/// and execute |callback| either inline or at a later time. To display the
|
/// |accept_descriptions| provides the descriptions for MIME types (if known,
|
||||||
/// default dialog return false (0).
|
/// or NULL string otherwise). For example, the "image/*" mime type might have
|
||||||
|
/// extensions ".png;.jpg;.bmp;..." and description "Image Files".
|
||||||
|
/// |accept_filters|, |accept_extensions| and |accept_descriptions| will all
|
||||||
|
/// be the same size. To display a custom dialog return true (1) and execute
|
||||||
|
/// |callback| either inline or at a later time. To display the default dialog
|
||||||
|
/// return false (0). If this function returns false (0) it may be called an
|
||||||
|
/// additional time for the same dialog (both before and after MIME type
|
||||||
|
/// expansion).
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* on_file_dialog)(
|
int(CEF_CALLBACK* on_file_dialog)(
|
||||||
struct _cef_dialog_handler_t* self,
|
struct _cef_dialog_handler_t* self,
|
||||||
@@ -101,6 +108,8 @@ typedef struct _cef_dialog_handler_t {
|
|||||||
const cef_string_t* title,
|
const cef_string_t* title,
|
||||||
const cef_string_t* default_file_path,
|
const cef_string_t* default_file_path,
|
||||||
cef_string_list_t accept_filters,
|
cef_string_list_t accept_filters,
|
||||||
|
cef_string_list_t accept_extensions,
|
||||||
|
cef_string_list_t accept_descriptions,
|
||||||
struct _cef_file_dialog_callback_t* callback);
|
struct _cef_file_dialog_callback_t* callback);
|
||||||
} cef_dialog_handler_t;
|
} cef_dialog_handler_t;
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=5a99c5e88ea0e123087234b2795fa625fed183f2$
|
// $hash=b42d9e5a03f6ef5444e8037b8dc4de08ee6b0834$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
||||||
@@ -84,13 +84,12 @@ typedef struct _cef_display_handler_t {
|
|||||||
/// Called when web content in the page has toggled fullscreen mode. If
|
/// Called when web content in the page has toggled fullscreen mode. If
|
||||||
/// |fullscreen| is true (1) the content will automatically be sized to fill
|
/// |fullscreen| is true (1) the content will automatically be sized to fill
|
||||||
/// the browser content area. If |fullscreen| is false (0) the content will
|
/// the browser content area. If |fullscreen| is false (0) the content will
|
||||||
/// automatically return to its original size and position. With the Alloy
|
/// automatically return to its original size and position. With Alloy style
|
||||||
/// runtime the client is responsible for triggering the fullscreen transition
|
/// the client is responsible for triggering the fullscreen transition (for
|
||||||
/// (for example, by calling cef_window_t::SetFullscreen when using Views).
|
/// example, by calling cef_window_t::SetFullscreen when using Views). With
|
||||||
/// With the Chrome runtime the fullscreen transition will be triggered
|
/// Chrome style the fullscreen transition will be triggered automatically.
|
||||||
/// automatically. The cef_window_delegate_t::OnWindowFullscreenTransition
|
/// The cef_window_delegate_t::OnWindowFullscreenTransition function will be
|
||||||
/// function will be called during the fullscreen transition for notification
|
/// called during the fullscreen transition for notification purposes.
|
||||||
/// 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,
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=60a08a60be70e8fe5df17f18f8e5758e1830d5e1$
|
// $hash=7ecfb07a95315ff81937e9f68d419122fc88f1b7$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
||||||
@@ -117,12 +117,13 @@ typedef struct _cef_download_handler_t {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Called before a download begins. |suggested_name| is the suggested name
|
/// Called before a download begins. |suggested_name| is the suggested name
|
||||||
/// for the download file. By default the download will be canceled. Execute
|
/// for the download file. Return true (1) and execute |callback| either
|
||||||
/// |callback| either asynchronously or in this function to continue the
|
/// asynchronously or in this function to continue or cancel the download.
|
||||||
/// download if desired. Do not keep a reference to |download_item| outside of
|
/// Return false (0) to proceed with default handling (cancel with Alloy
|
||||||
/// this function.
|
/// style, download shelf with Chrome style). Do not keep a reference to
|
||||||
|
/// |download_item| outside of this function.
|
||||||
///
|
///
|
||||||
void(CEF_CALLBACK* on_before_download)(
|
int(CEF_CALLBACK* on_before_download)(
|
||||||
struct _cef_download_handler_t* self,
|
struct _cef_download_handler_t* self,
|
||||||
struct _cef_browser_t* browser,
|
struct _cef_browser_t* browser,
|
||||||
struct _cef_download_item_t* download_item,
|
struct _cef_download_item_t* download_item,
|
||||||
|
@@ -1,130 +0,0 @@
|
|||||||
// 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=0ca2b788f70f8c9f5b2706d691d8e063be00ed19$
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
|
||||||
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "include/capi/cef_base_capi.h"
|
|
||||||
#include "include/capi/cef_values_capi.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct _cef_extension_handler_t;
|
|
||||||
struct _cef_request_context_t;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Object representing an extension. Methods may be called on any thread unless
|
|
||||||
/// otherwise indicated.
|
|
||||||
///
|
|
||||||
typedef struct _cef_extension_t {
|
|
||||||
///
|
|
||||||
/// Base structure.
|
|
||||||
///
|
|
||||||
cef_base_ref_counted_t base;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the unique extension identifier. This is calculated based on the
|
|
||||||
/// extension public key, if available, or on the extension path. See
|
|
||||||
/// https://developer.chrome.com/extensions/manifest/key for details.
|
|
||||||
///
|
|
||||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
|
||||||
cef_string_userfree_t(CEF_CALLBACK* get_identifier)(
|
|
||||||
struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the absolute path to the extension directory on disk. This value
|
|
||||||
/// will be prefixed with PK_DIR_RESOURCES if a relative path was passed to
|
|
||||||
/// cef_request_context_t::LoadExtension.
|
|
||||||
///
|
|
||||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
|
||||||
cef_string_userfree_t(CEF_CALLBACK* get_path)(struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension manifest contents as a cef_dictionary_value_t
|
|
||||||
/// object. See https://developer.chrome.com/extensions/manifest for details.
|
|
||||||
///
|
|
||||||
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_manifest)(
|
|
||||||
struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if this object is the same extension as |that| object.
|
|
||||||
/// Extensions are considered the same if identifier, path and loader context
|
|
||||||
/// match.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* is_same)(struct _cef_extension_t* self,
|
|
||||||
struct _cef_extension_t* that);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the handler for this extension. Will return NULL for internal
|
|
||||||
/// extensions or if no handler was passed to
|
|
||||||
/// cef_request_context_t::LoadExtension.
|
|
||||||
///
|
|
||||||
struct _cef_extension_handler_t*(CEF_CALLBACK* get_handler)(
|
|
||||||
struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the request context that loaded this extension. Will return NULL
|
|
||||||
/// for internal extensions or if the extension has been unloaded. See the
|
|
||||||
/// cef_request_context_t::LoadExtension documentation for more information
|
|
||||||
/// about loader contexts. Must be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
struct _cef_request_context_t*(CEF_CALLBACK* get_loader_context)(
|
|
||||||
struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if this extension is currently loaded. Must be called on
|
|
||||||
/// the browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* is_loaded)(struct _cef_extension_t* self);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unload this extension if it is not an internal extension and is currently
|
|
||||||
/// loaded. Will result in a call to
|
|
||||||
/// cef_extension_handler_t::OnExtensionUnloaded on success.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* unload)(struct _cef_extension_t* self);
|
|
||||||
} cef_extension_t;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
|
@@ -1,212 +0,0 @@
|
|||||||
// 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=5cfff4465a586d2b2ea7b54a9549096faec415f6$
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
|
||||||
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "include/capi/cef_base_capi.h"
|
|
||||||
#include "include/capi/cef_browser_capi.h"
|
|
||||||
#include "include/capi/cef_extension_capi.h"
|
|
||||||
#include "include/capi/cef_stream_capi.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct _cef_client_t;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Callback structure used for asynchronous continuation of
|
|
||||||
/// cef_extension_handler_t::GetExtensionResource.
|
|
||||||
///
|
|
||||||
typedef struct _cef_get_extension_resource_callback_t {
|
|
||||||
///
|
|
||||||
/// Base structure.
|
|
||||||
///
|
|
||||||
cef_base_ref_counted_t base;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Continue the request. Read the resource contents from |stream|.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* cont)(struct _cef_get_extension_resource_callback_t* self,
|
|
||||||
struct _cef_stream_reader_t* stream);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Cancel the request.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* cancel)(
|
|
||||||
struct _cef_get_extension_resource_callback_t* self);
|
|
||||||
} cef_get_extension_resource_callback_t;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Implement this structure to handle events related to browser extensions. The
|
|
||||||
/// functions of this structure will be called on the UI thread. See
|
|
||||||
/// cef_request_context_t::LoadExtension for information about extension
|
|
||||||
/// loading.
|
|
||||||
///
|
|
||||||
typedef struct _cef_extension_handler_t {
|
|
||||||
///
|
|
||||||
/// Base structure.
|
|
||||||
///
|
|
||||||
cef_base_ref_counted_t base;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called if the cef_request_context_t::LoadExtension request fails. |result|
|
|
||||||
/// will be the error code.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* on_extension_load_failed)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
cef_errorcode_t result);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called if the cef_request_context_t::LoadExtension request succeeds.
|
|
||||||
/// |extension| is the loaded extension.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* on_extension_loaded)(struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called after the cef_extension_t::Unload request has completed.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* on_extension_unloaded)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when an extension needs a browser to host a background script
|
|
||||||
/// specified via the "background" manifest key. The browser will have no
|
|
||||||
/// visible window and cannot be displayed. |extension| is the extension that
|
|
||||||
/// is loading the background script. |url| is an internally generated
|
|
||||||
/// reference to an HTML page that will be used to load the background script
|
|
||||||
/// via a "<script>" src attribute. To allow creation of the browser
|
|
||||||
/// optionally modify |client| and |settings| and return false (0). To cancel
|
|
||||||
/// creation of the browser (and consequently cancel load of the background
|
|
||||||
/// script) return true (1). Successful creation will be indicated by a call
|
|
||||||
/// to cef_life_span_handler_t::OnAfterCreated, and
|
|
||||||
/// cef_browser_host_t::IsBackgroundHost will return true (1) for the
|
|
||||||
/// resulting browser. See https://developer.chrome.com/extensions/event_pages
|
|
||||||
/// for more information about extension background script usage.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* on_before_background_browser)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension,
|
|
||||||
const cef_string_t* url,
|
|
||||||
struct _cef_client_t** client,
|
|
||||||
struct _cef_browser_settings_t* settings);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when an extension API (e.g. chrome.tabs.create) requests creation
|
|
||||||
/// of a new browser. |extension| and |browser| are the source of the API
|
|
||||||
/// call. |active_browser| may optionally be specified via the windowId
|
|
||||||
/// property or returned via the get_active_browser() callback and provides
|
|
||||||
/// the default |client| and |settings| values for the new browser. |index| is
|
|
||||||
/// the position value optionally specified via the index property. |url| is
|
|
||||||
/// the URL that will be loaded in the browser. |active| is true (1) if the
|
|
||||||
/// new browser should be active when opened. To allow creation of the
|
|
||||||
/// browser optionally modify |windowInfo|, |client| and |settings| and return
|
|
||||||
/// false (0). To cancel creation of the browser return true (1). Successful
|
|
||||||
/// creation will be indicated by a call to
|
|
||||||
/// cef_life_span_handler_t::OnAfterCreated. Any modifications to |windowInfo|
|
|
||||||
/// will be ignored if |active_browser| is wrapped in a cef_browser_view_t.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* on_before_browser)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
struct _cef_browser_t* active_browser,
|
|
||||||
int index,
|
|
||||||
const cef_string_t* url,
|
|
||||||
int active,
|
|
||||||
struct _cef_window_info_t* windowInfo,
|
|
||||||
struct _cef_client_t** client,
|
|
||||||
struct _cef_browser_settings_t* settings);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when no tabId is specified to an extension API call that accepts a
|
|
||||||
/// tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the
|
|
||||||
/// source of the API call. Return the browser that will be acted on by the
|
|
||||||
/// API call or return NULL to act on |browser|. The returned browser must
|
|
||||||
/// share the same cef_request_context_t as |browser|. Incognito browsers
|
|
||||||
/// should not be considered unless the source extension has incognito access
|
|
||||||
/// enabled, in which case |include_incognito| will be true (1).
|
|
||||||
///
|
|
||||||
struct _cef_browser_t*(CEF_CALLBACK* get_active_browser)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
int include_incognito);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when the tabId associated with |target_browser| is specified to an
|
|
||||||
/// extension API call that accepts a tabId parameter (e.g. chrome.tabs.*).
|
|
||||||
/// |extension| and |browser| are the source of the API call. Return true (1)
|
|
||||||
/// to allow access of false (0) to deny access. Access to incognito browsers
|
|
||||||
/// should not be allowed unless the source extension has incognito access
|
|
||||||
/// enabled, in which case |include_incognito| will be true (1).
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* can_access_browser)(struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
int include_incognito,
|
|
||||||
struct _cef_browser_t* target_browser);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called to retrieve an extension resource that would normally be loaded
|
|
||||||
/// from disk (e.g. if a file parameter is specified to
|
|
||||||
/// chrome.tabs.executeScript). |extension| and |browser| are the source of
|
|
||||||
/// the resource request. |file| is the requested relative file path. To
|
|
||||||
/// handle the resource request return true (1) and execute |callback| either
|
|
||||||
/// synchronously or asynchronously. For the default behavior which reads the
|
|
||||||
/// resource from the extension directory on disk return false (0).
|
|
||||||
/// Localization substitutions will not be applied to resources handled via
|
|
||||||
/// this function.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* get_extension_resource)(
|
|
||||||
struct _cef_extension_handler_t* self,
|
|
||||||
struct _cef_extension_t* extension,
|
|
||||||
struct _cef_browser_t* browser,
|
|
||||||
const cef_string_t* file,
|
|
||||||
struct _cef_get_extension_resource_callback_t* callback);
|
|
||||||
} cef_extension_handler_t;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=54edf9e9c2a12acdc4cab55079a4a5cb8e2a1e43$
|
// $hash=5232dd6bf16af9b6d195a47bb41de0dfb880a65e$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
||||||
@@ -117,7 +117,7 @@ typedef struct _cef_life_span_handler_t {
|
|||||||
/// Views-hosted source browsers will create Views-hosted DevTools popups
|
/// Views-hosted source browsers will create Views-hosted DevTools popups
|
||||||
/// unless |use_default_window| is set to to true (1). DevTools popups can be
|
/// 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
|
/// blocked by returning true (1) from cef_command_handler_t::OnChromeCommand
|
||||||
/// for IDC_DEV_TOOLS. Only used with the Chrome runtime.
|
/// for IDC_DEV_TOOLS. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
void(CEF_CALLBACK* on_before_dev_tools_popup)(
|
void(CEF_CALLBACK* on_before_dev_tools_popup)(
|
||||||
struct _cef_life_span_handler_t* self,
|
struct _cef_life_span_handler_t* self,
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
// by hand. See the translator.README.txt file in the tools directory for
|
// by hand. See the translator.README.txt file in the tools directory for
|
||||||
// more information.
|
// more information.
|
||||||
//
|
//
|
||||||
// $hash=c9b3913701581cd6a1077fa3a39d197f338a2507$
|
// $hash=66aebf0e910224fb8eaa7f847feeccac73378374$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_PERMISSION_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_PERMISSION_HANDLER_CAPI_H_
|
||||||
@@ -108,11 +108,11 @@ typedef struct _cef_permission_handler_t {
|
|||||||
/// cef_media_access_permission_types_t that represent the requested
|
/// cef_media_access_permission_types_t that represent the requested
|
||||||
/// permissions. Return true (1) and call cef_media_access_callback_t
|
/// permissions. Return true (1) and call cef_media_access_callback_t
|
||||||
/// functions either in this function or at a later time to continue or cancel
|
/// functions either in this function or at a later time to continue or cancel
|
||||||
/// the request. Return false (0) to proceed with default handling. With the
|
/// the request. Return false (0) to proceed with default handling. With
|
||||||
/// Chrome runtime, default handling will display the permission request UI.
|
/// Chrome style, default handling will display the permission request UI.
|
||||||
/// With the Alloy runtime, default handling will deny the request. This
|
/// With Alloy style, default handling will deny the request. This function
|
||||||
/// function will not be called if the "--enable-media-stream" command-line
|
/// will not be called if the "--enable-media-stream" command-line switch is
|
||||||
/// switch is used to grant all permissions.
|
/// used to grant all permissions.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* on_request_media_access_permission)(
|
int(CEF_CALLBACK* on_request_media_access_permission)(
|
||||||
struct _cef_permission_handler_t* self,
|
struct _cef_permission_handler_t* self,
|
||||||
@@ -129,9 +129,9 @@ typedef struct _cef_permission_handler_t {
|
|||||||
/// cef_permission_request_types_t that represent the requested permissions.
|
/// cef_permission_request_types_t that represent the requested permissions.
|
||||||
/// Return true (1) and call cef_permission_prompt_callback_t::Continue either
|
/// Return true (1) and call cef_permission_prompt_callback_t::Continue either
|
||||||
/// in this function or at a later time to continue or cancel the request.
|
/// in this function or at a later time to continue or cancel the request.
|
||||||
/// Return false (0) to proceed with default handling. With the Chrome
|
/// Return false (0) to proceed with default handling. With Chrome style,
|
||||||
/// runtime, default handling will display the permission prompt UI. With the
|
/// default handling will display the permission prompt UI. With Alloy style,
|
||||||
/// Alloy runtime, default handling is CEF_PERMISSION_RESULT_IGNORE.
|
/// default handling is CEF_PERMISSION_RESULT_IGNORE.
|
||||||
///
|
///
|
||||||
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,
|
||||||
|
@@ -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=7df03921b2ee743fb059f13e545ccf89904eb060$
|
// $hash=c63fac0c620ead3525405feb5cc9db561e1a508a$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
||||||
@@ -42,8 +42,6 @@
|
|||||||
|
|
||||||
#include "include/capi/cef_callback_capi.h"
|
#include "include/capi/cef_callback_capi.h"
|
||||||
#include "include/capi/cef_cookie_capi.h"
|
#include "include/capi/cef_cookie_capi.h"
|
||||||
#include "include/capi/cef_extension_capi.h"
|
|
||||||
#include "include/capi/cef_extension_handler_capi.h"
|
|
||||||
#include "include/capi/cef_media_router_capi.h"
|
#include "include/capi/cef_media_router_capi.h"
|
||||||
#include "include/capi/cef_preference_capi.h"
|
#include "include/capi/cef_preference_capi.h"
|
||||||
#include "include/capi/cef_values_capi.h"
|
#include "include/capi/cef_values_capi.h"
|
||||||
@@ -205,95 +203,6 @@ typedef struct _cef_request_context_t {
|
|||||||
const cef_string_t* origin,
|
const cef_string_t* origin,
|
||||||
struct _cef_resolve_callback_t* callback);
|
struct _cef_resolve_callback_t* callback);
|
||||||
|
|
||||||
///
|
|
||||||
/// Load an extension.
|
|
||||||
///
|
|
||||||
/// If extension resources will be read from disk using the default load
|
|
||||||
/// implementation then |root_directory| should be the absolute path to the
|
|
||||||
/// extension resources directory and |manifest| should be NULL. If extension
|
|
||||||
/// resources will be provided by the client (e.g. via cef_request_handler_t
|
|
||||||
/// and/or cef_extension_handler_t) then |root_directory| should be a path
|
|
||||||
/// component unique to the extension (if not absolute this will be internally
|
|
||||||
/// prefixed with the PK_DIR_RESOURCES path) and |manifest| should contain the
|
|
||||||
/// contents that would otherwise be read from the "manifest.json" file on
|
|
||||||
/// disk.
|
|
||||||
///
|
|
||||||
/// The loaded extension will be accessible in all contexts sharing the same
|
|
||||||
/// storage (HasExtension returns true (1)). However, only the context on
|
|
||||||
/// which this function was called is considered the loader (DidLoadExtension
|
|
||||||
/// returns true (1)) and only the loader will receive
|
|
||||||
/// cef_request_context_handler_t callbacks for the extension.
|
|
||||||
///
|
|
||||||
/// cef_extension_handler_t::OnExtensionLoaded will be called on load success
|
|
||||||
/// or cef_extension_handler_t::OnExtensionLoadFailed will be called on load
|
|
||||||
/// failure.
|
|
||||||
///
|
|
||||||
/// If the extension specifies a background script via the "background"
|
|
||||||
/// manifest key then cef_extension_handler_t::OnBeforeBackgroundBrowser will
|
|
||||||
/// be called to create the background browser. See that function for
|
|
||||||
/// additional information about background scripts.
|
|
||||||
///
|
|
||||||
/// For visible extension views the client application should evaluate the
|
|
||||||
/// manifest to determine the correct extension URL to load and then pass that
|
|
||||||
/// URL to the cef_browser_host_t::CreateBrowser* function after the extension
|
|
||||||
/// has loaded. For example, the client can look for the "browser_action"
|
|
||||||
/// manifest key as documented at
|
|
||||||
/// https://developer.chrome.com/extensions/browserAction. Extension URLs take
|
|
||||||
/// the form "chrome-extension://<extension_id>/<path>".
|
|
||||||
///
|
|
||||||
/// Browsers that host extensions differ from normal browsers as follows:
|
|
||||||
/// - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit
|
|
||||||
/// chrome://extensions-support for the list of extension APIs currently
|
|
||||||
/// supported by CEF.
|
|
||||||
/// - Main frame navigation to non-extension content is blocked.
|
|
||||||
/// - Pinch-zooming is disabled.
|
|
||||||
/// - CefBrowserHost::GetExtension returns the hosted extension.
|
|
||||||
/// - CefBrowserHost::IsBackgroundHost returns true for background hosts.
|
|
||||||
///
|
|
||||||
/// See https://developer.chrome.com/extensions for extension implementation
|
|
||||||
/// and usage documentation.
|
|
||||||
///
|
|
||||||
void(CEF_CALLBACK* load_extension)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* root_directory,
|
|
||||||
struct _cef_dictionary_value_t* manifest,
|
|
||||||
struct _cef_extension_handler_t* handler);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if this context was used to load the extension identified
|
|
||||||
/// by |extension_id|. Other contexts sharing the same storage will also have
|
|
||||||
/// access to the extension (see HasExtension). This function must be called
|
|
||||||
/// on the browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* did_load_extension)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* extension_id);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true (1) if this context has access to the extension identified by
|
|
||||||
/// |extension_id|. This may not be the context that was used to load the
|
|
||||||
/// extension (see DidLoadExtension). This function must be called on the
|
|
||||||
/// browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* has_extension)(struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* extension_id);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Retrieve the list of all extensions that this context has access to (see
|
|
||||||
/// HasExtension). |extension_ids| will be populated with the list of
|
|
||||||
/// extension ID values. Returns true (1) on success. This function must be
|
|
||||||
/// called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
int(CEF_CALLBACK* get_extensions)(struct _cef_request_context_t* self,
|
|
||||||
cef_string_list_t extension_ids);
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension matching |extension_id| or NULL if no matching
|
|
||||||
/// extension is accessible in this context (see HasExtension). This function
|
|
||||||
/// must be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
|
|
||||||
struct _cef_request_context_t* self,
|
|
||||||
const cef_string_t* extension_id);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the MediaRouter object associated with this context. If
|
/// Returns the MediaRouter object associated with this context. If
|
||||||
/// |callback| is non-NULL it will be executed asnychronously on the UI thread
|
/// |callback| is non-NULL it will be executed asnychronously on the UI thread
|
||||||
|
@@ -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=2e8b5c5107f61e3d4c333dc02c76a9f30cd0cf83$
|
// $hash=db7cfb76483d6ab73eba74deaefafa7700ad1988$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
|
||||||
@@ -227,20 +227,19 @@ typedef struct _cef_request_handler_t {
|
|||||||
/// Called on the browser process UI thread when the render process is
|
/// Called on the browser process UI thread when the render process is
|
||||||
/// unresponsive as indicated by a lack of input event processing for at least
|
/// unresponsive as indicated by a lack of input event processing for at least
|
||||||
/// 15 seconds. Return false (0) for the default behavior which is an
|
/// 15 seconds. Return false (0) for the default behavior which is an
|
||||||
/// indefinite wait with the Alloy runtime or display of the "Page
|
/// indefinite wait with Alloy style or display of the "Page unresponsive"
|
||||||
/// unresponsive" dialog with the Chrome runtime. Return true (1) and don't
|
/// dialog with Chrome style. Return true (1) and don't execute the callback
|
||||||
/// execute the callback for an indefinite wait without display of the Chrome
|
/// for an indefinite wait without display of the Chrome style dialog. Return
|
||||||
/// runtime dialog. Return true (1) and call
|
/// true (1) and call cef_unresponsive_process_callback_t::Wait either in this
|
||||||
/// cef_unresponsive_process_callback_t::Wait either in this function or at a
|
/// function or at a later time to reset the wait timer, potentially
|
||||||
/// later time to reset the wait timer, potentially triggering another call to
|
/// triggering another call to this function if the process remains
|
||||||
/// this function if the process remains unresponsive. Return true (1) and
|
/// unresponsive. Return true (1) and call
|
||||||
/// call cef_unresponsive_process_callback_t:: Terminate either in this
|
/// cef_unresponsive_process_callback_t:: Terminate either in this function or
|
||||||
/// function or at a later time to terminate the unresponsive process,
|
/// at a later time to terminate the unresponsive process, resulting in a call
|
||||||
/// resulting in a call to OnRenderProcessTerminated.
|
/// to OnRenderProcessTerminated. OnRenderProcessResponsive will be called if
|
||||||
/// OnRenderProcessResponsive will be called if the process becomes responsive
|
/// the process becomes responsive after this function is called. This
|
||||||
/// after this function is called. This functionality depends on the hang
|
/// functionality depends on the hang monitor which can be disabled by passing
|
||||||
/// monitor which can be disabled by passing the `--disable-hang-monitor`
|
/// the `--disable-hang-monitor` command-line flag.
|
||||||
/// command-line flag.
|
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* on_render_process_unresponsive)(
|
int(CEF_CALLBACK* on_render_process_unresponsive)(
|
||||||
struct _cef_request_handler_t* self,
|
struct _cef_request_handler_t* self,
|
||||||
|
117
include/capi/cef_task_manager_capi.h
Normal file
117
include/capi/cef_task_manager_capi.h
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
// 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=324b0399edef39e64fb54fce053e7f8e347e07de$
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_CAPI_CEF_TASK_MANAGER_CAPI_H_
|
||||||
|
#define CEF_INCLUDE_CAPI_CEF_TASK_MANAGER_CAPI_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "include/capi/cef_base_capi.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Structure that facilitates managing the browser-related tasks. The functions
|
||||||
|
/// of this structure may only be called on the UI thread.
|
||||||
|
///
|
||||||
|
typedef struct _cef_task_manager_t {
|
||||||
|
///
|
||||||
|
/// Base structure.
|
||||||
|
///
|
||||||
|
cef_base_ref_counted_t base;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the number of tasks currently tracked by the task manager. Returns
|
||||||
|
/// 0 if the function was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
size_t(CEF_CALLBACK* get_tasks_count)(struct _cef_task_manager_t* self);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Gets the list of task IDs currently tracked by the task manager. Tasks
|
||||||
|
/// that share the same process id will always be consecutive. The list will
|
||||||
|
/// be sorted in a way that reflects the process tree: the browser process
|
||||||
|
/// will be first, followed by the gpu process if it exists. Related processes
|
||||||
|
/// (e.g., a subframe process and its parent) will be kept together if
|
||||||
|
/// possible. Callers can expect this ordering to be stable when a process is
|
||||||
|
/// added or removed. The task IDs are unique within the application lifespan.
|
||||||
|
/// Returns false (0) if the function was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* get_task_ids_list)(struct _cef_task_manager_t* self,
|
||||||
|
size_t* task_idsCount,
|
||||||
|
int64_t* task_ids);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Gets information about the task with |task_id|. Returns true (1) if the
|
||||||
|
/// information about the task was successfully retrieved and false (0) if the
|
||||||
|
/// |task_id| is invalid or the function was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* get_task_info)(struct _cef_task_manager_t* self,
|
||||||
|
int64_t task_id,
|
||||||
|
struct _cef_task_info_t* info);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Attempts to terminate a task with |task_id|. Returns false (0) if the
|
||||||
|
/// |task_id| is invalid, the call is made from an incorrect thread, or if the
|
||||||
|
/// task cannot be terminated.
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* kill_task)(struct _cef_task_manager_t* self,
|
||||||
|
int64_t task_id);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the task ID associated with the main task for |browser_id| (value
|
||||||
|
/// from cef_browser_t::GetIdentifier). Returns -1 if |browser_id| is invalid,
|
||||||
|
/// does not currently have an associated task, or the function was called
|
||||||
|
/// from the incorrect thread.
|
||||||
|
///
|
||||||
|
int64_t(CEF_CALLBACK* get_task_id_for_browser_id)(
|
||||||
|
struct _cef_task_manager_t* self,
|
||||||
|
int browser_id);
|
||||||
|
} cef_task_manager_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the global task manager object. Returns nullptr if the function was
|
||||||
|
/// called from the incorrect thread.
|
||||||
|
///
|
||||||
|
CEF_EXPORT cef_task_manager_t* cef_task_manager_get(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_CAPI_CEF_TASK_MANAGER_CAPI_H_
|
@@ -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=3a188f380f8044060ea93fdca0b3d231df88979d$
|
// $hash=0b56c483bee6489e591c54c9dbb0940cd3098eaa$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_CEF_V8_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_CEF_V8_CAPI_H_
|
||||||
@@ -611,7 +611,6 @@ typedef struct _cef_v8value_t {
|
|||||||
///
|
///
|
||||||
int(CEF_CALLBACK* set_value_byaccessor)(struct _cef_v8value_t* self,
|
int(CEF_CALLBACK* set_value_byaccessor)(struct _cef_v8value_t* self,
|
||||||
const cef_string_t* key,
|
const cef_string_t* key,
|
||||||
cef_v8_accesscontrol_t settings,
|
|
||||||
cef_v8_propertyattribute_t attribute);
|
cef_v8_propertyattribute_t attribute);
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -833,11 +832,24 @@ CEF_EXPORT cef_v8value_t* cef_v8value_create_array(int length);
|
|||||||
/// cef_v8handler_t or cef_v8accessor_t callback, or in combination with calling
|
/// cef_v8handler_t or cef_v8accessor_t callback, or in combination with calling
|
||||||
/// enter() and exit() on a stored cef_v8context_t reference.
|
/// enter() and exit() on a stored cef_v8context_t reference.
|
||||||
///
|
///
|
||||||
|
/// NOTE: Always returns nullptr when V8 sandbox is enabled.
|
||||||
|
///
|
||||||
CEF_EXPORT cef_v8value_t* cef_v8value_create_array_buffer(
|
CEF_EXPORT cef_v8value_t* cef_v8value_create_array_buffer(
|
||||||
void* buffer,
|
void* buffer,
|
||||||
size_t length,
|
size_t length,
|
||||||
cef_v8array_buffer_release_callback_t* release_callback);
|
cef_v8array_buffer_release_callback_t* release_callback);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Create a new cef_v8value_t object of type ArrayBuffer which copies the
|
||||||
|
/// provided |buffer| of size |length| bytes. This function should only be
|
||||||
|
/// called from within the scope of a cef_render_process_handler_t,
|
||||||
|
/// cef_v8handler_t or cef_v8accessor_t callback, or in combination with calling
|
||||||
|
/// enter() and exit() on a stored cef_v8context_t reference.
|
||||||
|
///
|
||||||
|
CEF_EXPORT cef_v8value_t* cef_v8value_create_array_buffer_with_copy(
|
||||||
|
void* buffer,
|
||||||
|
size_t length);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Create a new cef_v8value_t object of type function. This function should
|
/// Create a new cef_v8value_t object of type function. This function should
|
||||||
/// only be called from within the scope of a cef_render_process_handler_t,
|
/// only be called from within the scope of a cef_render_process_handler_t,
|
||||||
|
@@ -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=db81a65aba3c2d1213744ad4251322acf97c608c$
|
// $hash=da2edf5e08eb45942b6a82109aa86682c202ccac$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_TEST_CEF_TEST_HELPERS_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_TEST_CEF_TEST_HELPERS_CAPI_H_
|
||||||
@@ -67,6 +67,14 @@ CEF_EXPORT void cef_execute_java_script_with_user_gesture_for_tests(
|
|||||||
///
|
///
|
||||||
CEF_EXPORT void cef_set_data_directory_for_tests(const cef_string_t* dir);
|
CEF_EXPORT void cef_set_data_directory_for_tests(const cef_string_t* dir);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true (1) if |feature_name| is enabled by default, command line or
|
||||||
|
/// field trial. This supports a short list of curated values that are queried
|
||||||
|
/// by unit tests.
|
||||||
|
///
|
||||||
|
CEF_EXPORT int cef_is_feature_enabled_for_tests(
|
||||||
|
const cef_string_t* feature_name);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -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=2e5a3b3b1f427a7eb1e6a447fe0d31c5ace49469$
|
// $hash=76897eedc7c858601fd7d98cb55b8808810f8493$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_BROWSER_VIEW_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_BROWSER_VIEW_CAPI_H_
|
||||||
@@ -67,7 +67,7 @@ typedef struct _cef_browser_view_t {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the Chrome toolbar associated with this BrowserView. Only
|
/// Returns the Chrome toolbar associated with this BrowserView. Only
|
||||||
/// supported when using the Chrome runtime. The cef_browser_view_delegate_t::
|
/// supported when using Chrome style. The cef_browser_view_delegate_t::
|
||||||
/// get_chrome_toolbar_type() function must return a value other than
|
/// get_chrome_toolbar_type() function must return a value other than
|
||||||
/// CEF_CTT_NONE and the toolbar will not be available until after this
|
/// CEF_CTT_NONE and the toolbar will not be available until after this
|
||||||
/// BrowserView is added to a cef_window_t and
|
/// BrowserView is added to a cef_window_t and
|
||||||
@@ -81,8 +81,8 @@ typedef struct _cef_browser_view_t {
|
|||||||
/// content (`keydown` event handler) or cef_keyboard_handler_t. Normal
|
/// content (`keydown` event handler) or cef_keyboard_handler_t. Normal
|
||||||
/// priority accelerators can be registered via cef_window_t::SetAccelerator
|
/// priority accelerators can be registered via cef_window_t::SetAccelerator
|
||||||
/// (with |high_priority|=false (0)) or internally for standard accelerators
|
/// (with |high_priority|=false (0)) or internally for standard accelerators
|
||||||
/// supported by the Chrome runtime. If |prefer_accelerators| is true (1) then
|
/// supported by Chrome style. If |prefer_accelerators| is true (1) then the
|
||||||
/// the matching accelerator will be triggered immediately (calling
|
/// matching accelerator will be triggered immediately (calling
|
||||||
/// cef_window_delegate_t::OnAccelerator or
|
/// cef_window_delegate_t::OnAccelerator or
|
||||||
/// cef_command_handler_t::OnChromeCommand respectively) and the event will
|
/// cef_command_handler_t::OnChromeCommand respectively) and the event will
|
||||||
/// not be forwarded to the web content or cef_keyboard_handler_t first. If
|
/// not be forwarded to the web content or cef_keyboard_handler_t first. If
|
||||||
@@ -93,6 +93,13 @@ typedef struct _cef_browser_view_t {
|
|||||||
///
|
///
|
||||||
void(CEF_CALLBACK* set_prefer_accelerators)(struct _cef_browser_view_t* self,
|
void(CEF_CALLBACK* set_prefer_accelerators)(struct _cef_browser_view_t* self,
|
||||||
int prefer_accelerators);
|
int prefer_accelerators);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this BrowserView (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t(CEF_CALLBACK* get_runtime_style)(
|
||||||
|
struct _cef_browser_view_t* self);
|
||||||
} cef_browser_view_t;
|
} cef_browser_view_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -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=1f2a6e206b86945386bef57167b80e2fb6067c59$
|
// $hash=f8e8992eedf254a60e2875715c3adfa23ca4ae20$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_BROWSER_VIEW_DELEGATE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_BROWSER_VIEW_DELEGATE_CAPI_H_
|
||||||
@@ -134,13 +134,20 @@ typedef struct _cef_browser_view_delegate_t {
|
|||||||
///
|
///
|
||||||
/// Called when |browser_view| receives a gesture command. Return true (1) to
|
/// Called when |browser_view| receives a gesture command. Return true (1) to
|
||||||
/// handle (or disable) a |gesture_command| or false (0) to propagate the
|
/// handle (or disable) a |gesture_command| or false (0) to propagate the
|
||||||
/// gesture to the browser for default handling. With the Chrome runtime these
|
/// gesture to the browser for default handling. With Chrome style these
|
||||||
/// commands can also be handled via cef_command_handler_t::OnChromeCommand.
|
/// commands can also be handled via cef_command_handler_t::OnChromeCommand.
|
||||||
///
|
///
|
||||||
int(CEF_CALLBACK* on_gesture_command)(
|
int(CEF_CALLBACK* on_gesture_command)(
|
||||||
struct _cef_browser_view_delegate_t* self,
|
struct _cef_browser_view_delegate_t* self,
|
||||||
struct _cef_browser_view_t* browser_view,
|
struct _cef_browser_view_t* browser_view,
|
||||||
cef_gesture_command_t gesture_command);
|
cef_gesture_command_t gesture_command);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style for this BrowserView. See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t(CEF_CALLBACK* get_browser_runtime_style)(
|
||||||
|
struct _cef_browser_view_delegate_t* self);
|
||||||
} cef_browser_view_delegate_t;
|
} cef_browser_view_delegate_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@@ -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=2abb3759a22a95ffc0207f0538c645a74a5030c6$
|
// $hash=dd32b58ec9aca0e04a1d30ccf94a741995fcc094$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_CAPI_H_
|
||||||
@@ -401,6 +401,13 @@ typedef struct _cef_window_t {
|
|||||||
/// or cef_view_delegate_t::OnThemeChanged.
|
/// or cef_view_delegate_t::OnThemeChanged.
|
||||||
///
|
///
|
||||||
void(CEF_CALLBACK* theme_changed)(struct _cef_window_t* self);
|
void(CEF_CALLBACK* theme_changed)(struct _cef_window_t* self);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this Window (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t(CEF_CALLBACK* get_runtime_style)(
|
||||||
|
struct _cef_window_t* self);
|
||||||
} cef_window_t;
|
} cef_window_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -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=e6bbc33db1b5ed3832982f8799e14557204f4028$
|
// $hash=bafa7ddf3dfbc3fa82b1fb8a064b51f0791b29b6$
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_DELEGATE_CAPI_H_
|
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_DELEGATE_CAPI_H_
|
||||||
@@ -101,9 +101,9 @@ typedef struct _cef_window_delegate_t {
|
|||||||
/// the transition occurs asynchronously with |is_competed| set to false (0)
|
/// the transition occurs asynchronously with |is_competed| set to false (0)
|
||||||
/// when the transition starts and true (1) after the transition completes. On
|
/// when the transition starts and true (1) after the transition completes. On
|
||||||
/// other platforms the transition occurs synchronously with |is_completed|
|
/// other platforms the transition occurs synchronously with |is_completed|
|
||||||
/// set to true (1) after the transition completes. With the Alloy runtime you
|
/// set to true (1) after the transition completes. With Alloy style you must
|
||||||
/// must also implement cef_display_handler_t::OnFullscreenModeChange to
|
/// also implement cef_display_handler_t::OnFullscreenModeChange to handle
|
||||||
/// handle fullscreen transitions initiated by browser content.
|
/// fullscreen transitions initiated by browser content.
|
||||||
///
|
///
|
||||||
void(CEF_CALLBACK* on_window_fullscreen_transition)(
|
void(CEF_CALLBACK* on_window_fullscreen_transition)(
|
||||||
struct _cef_window_delegate_t* self,
|
struct _cef_window_delegate_t* self,
|
||||||
@@ -253,12 +253,10 @@ typedef struct _cef_window_delegate_t {
|
|||||||
/// Chrome theme colors will be applied and this callback will be triggered
|
/// Chrome theme colors will be applied and this callback will be triggered
|
||||||
/// if/when a BrowserView is added to the Window's component hierarchy. Chrome
|
/// if/when a BrowserView is added to the Window's component hierarchy. Chrome
|
||||||
/// theme colors can be configured on a per-RequestContext basis using
|
/// theme colors can be configured on a per-RequestContext basis using
|
||||||
/// cef_request_context_t::SetChromeColorScheme or (Chrome runtime only) by
|
/// cef_request_context_t::SetChromeColorScheme or (Chrome style only) by
|
||||||
/// visiting chrome://settings/manageProfile. Any theme changes using those
|
/// visiting chrome://settings/manageProfile. Any theme changes using those
|
||||||
/// mechanisms will also trigger this callback. Chrome theme colors will be
|
/// mechanisms will also trigger this callback. Chrome theme colors will be
|
||||||
/// persisted and restored from disk cache with the Chrome runtime, and with
|
/// persisted and restored from disk cache.
|
||||||
/// the Alloy runtime if persist_user_preferences is set to true (1) via
|
|
||||||
/// CefSettings or cef_request_context_tSettings.
|
|
||||||
///
|
///
|
||||||
/// This callback is not triggered on Window creation so clients that wish to
|
/// This callback is not triggered on Window creation so clients that wish to
|
||||||
/// customize the initial native/OS theme must call
|
/// customize the initial native/OS theme must call
|
||||||
@@ -275,6 +273,22 @@ typedef struct _cef_window_delegate_t {
|
|||||||
struct _cef_window_delegate_t* self,
|
struct _cef_window_delegate_t* self,
|
||||||
struct _cef_window_t* window,
|
struct _cef_window_t* window,
|
||||||
int chrome_theme);
|
int chrome_theme);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style for this Window. See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t(CEF_CALLBACK* get_window_runtime_style)(
|
||||||
|
struct _cef_window_delegate_t* self);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Return Linux-specific window properties for correctly handling by window
|
||||||
|
/// managers
|
||||||
|
///
|
||||||
|
int(CEF_CALLBACK* get_linux_window_properties)(
|
||||||
|
struct _cef_window_delegate_t* self,
|
||||||
|
struct _cef_window_t* window,
|
||||||
|
struct _cef_linux_window_properties_t* properties);
|
||||||
} cef_window_delegate_t;
|
} cef_window_delegate_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@@ -42,13 +42,13 @@
|
|||||||
// way that may cause binary incompatibility with other builds. The universal
|
// way that may cause binary incompatibility with other builds. The universal
|
||||||
// hash value will change if any platform is affected whereas the platform hash
|
// hash value will change if any platform is affected whereas the platform hash
|
||||||
// values will change only if that particular platform is affected.
|
// values will change only if that particular platform is affected.
|
||||||
#define CEF_API_HASH_UNIVERSAL "35035b76d79ba0c7144aedb63d72b7988d372706"
|
#define CEF_API_HASH_UNIVERSAL "9717d7221d63adfd79ee52e2a31c9ac7acdd6d50"
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
#define CEF_API_HASH_PLATFORM "9227cf2e0abf4f378e31e6095d503a91b2da59af"
|
#define CEF_API_HASH_PLATFORM "072a4fe61a512f21fd0d664495902fca6ec2193b"
|
||||||
#elif defined(OS_MAC)
|
#elif defined(OS_MAC)
|
||||||
#define CEF_API_HASH_PLATFORM "fe0bdc49d209ee3cf108bdb72faec21316f9d0e0"
|
#define CEF_API_HASH_PLATFORM "ee7f0e9247add8df0827d02da32559e38e8079d0"
|
||||||
#elif defined(OS_LINUX)
|
#elif defined(OS_LINUX)
|
||||||
#define CEF_API_HASH_PLATFORM "df471096e6600c025ac0655b5eaa9818f075b8ba"
|
#define CEF_API_HASH_PLATFORM "88996e58ee062016efd054bfbafd03dd3daa99ed"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@@ -174,10 +174,9 @@ class CefApp : public virtual CefBaseRefCounted {
|
|||||||
CefRawPtr<CefSchemeRegistrar> registrar) {}
|
CefRawPtr<CefSchemeRegistrar> registrar) {}
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Return the handler for resource bundle events. If
|
/// Return the handler for resource bundle events. If no handler is returned
|
||||||
/// cef_settings_t.pack_loading_disabled is true a handler must be returned.
|
/// resources will be loaded from pack files. This method is called by the
|
||||||
/// If no handler is returned resources will be loaded from pack files. This
|
/// browser and render processes on multiple threads.
|
||||||
/// method is called by the browser and render processes on multiple threads.
|
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual CefRefPtr<CefResourceBundleHandler> GetResourceBundleHandler() {
|
virtual CefRefPtr<CefResourceBundleHandler> GetResourceBundleHandler() {
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_devtools_message_observer.h"
|
#include "include/cef_devtools_message_observer.h"
|
||||||
#include "include/cef_drag_data.h"
|
#include "include/cef_drag_data.h"
|
||||||
@@ -413,8 +414,7 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Get the default zoom level. This value will be 0.0 by default but can be
|
/// Get the default zoom level. This value will be 0.0 by default but can be
|
||||||
/// configured with the Chrome runtime. This method can only be called on the
|
/// configured. This method can only be called on the UI thread.
|
||||||
/// UI thread.
|
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual double GetDefaultZoomLevel() = 0;
|
virtual double GetDefaultZoomLevel() = 0;
|
||||||
@@ -938,21 +938,6 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
const CefSize& min_size,
|
const CefSize& min_size,
|
||||||
const CefSize& max_size) = 0;
|
const CefSize& max_size) = 0;
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension hosted in this browser or NULL if no extension is
|
|
||||||
/// hosted. See CefRequestContext::LoadExtension for details.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefExtension> GetExtension() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true if this browser is hosting an extension background script.
|
|
||||||
/// Background hosts do not have a window and are not displayable. See
|
|
||||||
/// CefRequestContext::LoadExtension for details.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool IsBackgroundHost() = 0;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Set whether the browser's audio is muted.
|
/// Set whether the browser's audio is muted.
|
||||||
///
|
///
|
||||||
@@ -978,12 +963,12 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Requests the renderer to exit browser fullscreen. In most cases exiting
|
/// Requests the renderer to exit browser fullscreen. In most cases exiting
|
||||||
/// window fullscreen should also exit browser fullscreen. With the Alloy
|
/// window fullscreen should also exit browser fullscreen. With Alloy
|
||||||
/// runtime this method should be called in response to a user action such as
|
/// style this method should be called in response to a user action such as
|
||||||
/// clicking the green traffic light button on MacOS
|
/// clicking the green traffic light button on MacOS
|
||||||
/// (CefWindowDelegate::OnWindowFullscreenTransition callback) or pressing the
|
/// (CefWindowDelegate::OnWindowFullscreenTransition callback) or pressing the
|
||||||
/// "ESC" key (CefKeyboardHandler::OnPreKeyEvent callback). With the Chrome
|
/// "ESC" key (CefKeyboardHandler::OnPreKeyEvent callback). With Chrome
|
||||||
/// runtime these standard exit actions are handled internally but
|
/// style these standard exit actions are handled internally but
|
||||||
/// new/additional user actions can use this method. Set |will_cause_resize|
|
/// new/additional user actions can use this method. Set |will_cause_resize|
|
||||||
/// to true if exiting browser fullscreen will cause a view resize.
|
/// to true if exiting browser fullscreen will cause a view resize.
|
||||||
///
|
///
|
||||||
@@ -993,7 +978,7 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Returns true if a Chrome command is supported and enabled. Values for
|
/// Returns true if a Chrome command is supported and enabled. Values for
|
||||||
/// |command_id| can be found in the cef_command_ids.h file. This method can
|
/// |command_id| can be found in the cef_command_ids.h file. This method can
|
||||||
/// only be called on the UI thread. Only used with the Chrome runtime.
|
/// only be called on the UI thread. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool CanExecuteChromeCommand(int command_id) = 0;
|
virtual bool CanExecuteChromeCommand(int command_id) = 0;
|
||||||
@@ -1001,7 +986,7 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Execute a Chrome command. Values for |command_id| can be found in the
|
/// Execute a Chrome command. Values for |command_id| can be found in the
|
||||||
/// cef_command_ids.h file. |disposition| provides information about the
|
/// cef_command_ids.h file. |disposition| provides information about the
|
||||||
/// intended command target. Only used with the Chrome runtime.
|
/// intended command target. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void ExecuteChromeCommand(
|
virtual void ExecuteChromeCommand(
|
||||||
@@ -1018,6 +1003,13 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool IsRenderProcessUnresponsive() = 0;
|
virtual bool IsRenderProcessUnresponsive() = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this browser (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
/*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/
|
||||||
|
virtual cef_runtime_style_t GetRuntimeStyle() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CEF_BROWSER_H_
|
#endif // CEF_INCLUDE_CEF_BROWSER_H_
|
||||||
|
@@ -60,8 +60,8 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
|
|||||||
/// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be
|
/// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be
|
||||||
/// accessed via CefPreferenceManager::GetGlobalPreferences after
|
/// accessed via CefPreferenceManager::GetGlobalPreferences after
|
||||||
/// OnContextInitialized is called. Global preferences are registered a single
|
/// OnContextInitialized is called. Global preferences are registered a single
|
||||||
/// time at application startup. See related cef_settings_t.cache_path and
|
/// time at application startup. See related cef_settings_t.cache_path
|
||||||
/// cef_settings_t.persist_user_preferences configuration.
|
/// configuration.
|
||||||
///
|
///
|
||||||
/// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be
|
/// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be
|
||||||
/// accessed via the CefRequestContext after
|
/// accessed via the CefRequestContext after
|
||||||
@@ -69,8 +69,7 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
|
|||||||
/// context preferences are registered each time a new CefRequestContext is
|
/// context preferences are registered each time a new CefRequestContext is
|
||||||
/// created. It is intended but not required that all request contexts have
|
/// created. It is intended but not required that all request contexts have
|
||||||
/// the same registered preferences. See related
|
/// the same registered preferences. See related
|
||||||
/// cef_request_context_settings_t.cache_path and
|
/// cef_request_context_settings_t.cache_path configuration.
|
||||||
/// cef_request_context_settings_t.persist_user_preferences configuration.
|
|
||||||
///
|
///
|
||||||
/// Do not keep a reference to the |registrar| object. This method is called
|
/// Do not keep a reference to the |registrar| object. This method is called
|
||||||
/// on the browser process UI thread.
|
/// on the browser process UI thread.
|
||||||
@@ -144,8 +143,8 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
|
|||||||
/// (CefBrowser object). If null is returned the CefBrowser will be unmanaged
|
/// (CefBrowser object). If null is returned the CefBrowser will be unmanaged
|
||||||
/// (no callbacks will be executed for that CefBrowser) and application
|
/// (no callbacks will be executed for that CefBrowser) and application
|
||||||
/// shutdown will be blocked until the browser window is closed manually. This
|
/// shutdown will be blocked until the browser window is closed manually. This
|
||||||
/// method is currently only used with the Chrome runtime when creating new
|
/// method is currently only used with Chrome style when creating new browser
|
||||||
/// browser windows via Chrome UI.
|
/// windows via Chrome UI.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual CefRefPtr<CefClient> GetDefaultClient() { return nullptr; }
|
virtual CefRefPtr<CefClient> GetDefaultClient() { return nullptr; }
|
||||||
@@ -154,8 +153,8 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
|
|||||||
/// Return the default handler for use with a new user or incognito profile
|
/// Return the default handler for use with a new user or incognito profile
|
||||||
/// (CefRequestContext object). If null is returned the CefRequestContext will
|
/// (CefRequestContext object). If null is returned the CefRequestContext will
|
||||||
/// be unmanaged (no callbacks will be executed for that CefRequestContext).
|
/// be unmanaged (no callbacks will be executed for that CefRequestContext).
|
||||||
/// This method is currently only used with the Chrome runtime when creating
|
/// This method is currently only used with Chrome style when creating new
|
||||||
/// new browser windows via Chrome UI.
|
/// browser windows via Chrome UI.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual CefRefPtr<CefRequestContextHandler>
|
virtual CefRefPtr<CefRequestContextHandler>
|
||||||
|
@@ -55,7 +55,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted {
|
|||||||
/// intended command target. Return true if the command was handled or false
|
/// intended command target. Return true if the command was handled or false
|
||||||
/// for the default implementation. For context menu commands this will be
|
/// for the default implementation. For context menu commands this will be
|
||||||
/// called after CefContextMenuHandler::OnContextMenuCommand. Only used with
|
/// called after CefContextMenuHandler::OnContextMenuCommand. Only used with
|
||||||
/// the Chrome runtime.
|
/// Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool OnChromeCommand(CefRefPtr<CefBrowser> browser,
|
virtual bool OnChromeCommand(CefRefPtr<CefBrowser> browser,
|
||||||
@@ -67,8 +67,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Called to check if a Chrome app menu item should be visible. Values for
|
/// 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
|
/// |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
|
/// menu items that would be visible by default. Only used with Chrome style.
|
||||||
/// runtime.
|
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool IsChromeAppMenuItemVisible(CefRefPtr<CefBrowser> browser,
|
virtual bool IsChromeAppMenuItemVisible(CefRefPtr<CefBrowser> browser,
|
||||||
@@ -79,8 +78,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Called to check if a Chrome app menu item should be enabled. Values for
|
/// 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
|
/// |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
|
/// menu items that would be enabled by default. Only used with Chrome style.
|
||||||
/// runtime.
|
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool IsChromeAppMenuItemEnabled(CefRefPtr<CefBrowser> browser,
|
virtual bool IsChromeAppMenuItemEnabled(CefRefPtr<CefBrowser> browser,
|
||||||
@@ -91,7 +89,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Called during browser creation to check if a Chrome page action icon
|
/// 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.
|
/// should be visible. Only called for icons that would be visible by default.
|
||||||
/// Only used with the Chrome runtime.
|
/// Only used with Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef(optional_param=browser)--*/
|
/*--cef(optional_param=browser)--*/
|
||||||
virtual bool IsChromePageActionIconVisible(
|
virtual bool IsChromePageActionIconVisible(
|
||||||
@@ -102,7 +100,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted {
|
|||||||
///
|
///
|
||||||
/// Called during browser creation to check if a Chrome toolbar button
|
/// Called during browser creation to check if a Chrome toolbar button
|
||||||
/// should be visible. Only called for buttons that would be visible by
|
/// should be visible. Only called for buttons that would be visible by
|
||||||
/// default. Only used with the Chrome runtime.
|
/// default. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef(optional_param=browser)--*/
|
/*--cef(optional_param=browser)--*/
|
||||||
virtual bool IsChromeToolbarButtonVisible(
|
virtual bool IsChromeToolbarButtonVisible(
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_callback.h"
|
#include "include/cef_callback.h"
|
||||||
|
|
||||||
|
@@ -77,21 +77,30 @@ class CefDialogHandler : public virtual CefBaseRefCounted {
|
|||||||
/// empty to show the default title ("Open" or "Save" depending on the mode).
|
/// empty to show the default title ("Open" or "Save" depending on the mode).
|
||||||
/// |default_file_path| is the path with optional directory and/or file name
|
/// |default_file_path| is the path with optional directory and/or file name
|
||||||
/// component that should be initially selected in the dialog.
|
/// component that should be initially selected in the dialog.
|
||||||
/// |accept_filters| are used to restrict the selectable file types and may
|
/// |accept_filters| are used to restrict the selectable file types and may be
|
||||||
/// any combination of (a) valid lower-cased MIME types (e.g. "text/*" or
|
/// any combination of valid lower-cased MIME types (e.g. "text/*" or
|
||||||
/// "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c)
|
/// "image/*") and individual file extensions (e.g. ".txt" or ".png").
|
||||||
/// combined description and file extension delimited using "|" and ";" (e.g.
|
/// |accept_extensions| provides the semicolon-delimited expansion of MIME
|
||||||
/// "Image Types|.png;.gif;.jpg"). To display a custom dialog return true and
|
/// types to file extensions (if known, or empty string otherwise).
|
||||||
/// execute |callback| either inline or at a later time. To display the
|
/// |accept_descriptions| provides the descriptions for MIME types (if known,
|
||||||
/// default dialog return false.
|
/// or empty string otherwise). For example, the "image/*" mime type might
|
||||||
|
/// have extensions ".png;.jpg;.bmp;..." and description "Image Files".
|
||||||
|
/// |accept_filters|, |accept_extensions| and |accept_descriptions| will all
|
||||||
|
/// be the same size. To display a custom dialog return true and execute
|
||||||
|
/// |callback| either inline or at a later time. To display the default dialog
|
||||||
|
/// return false. If this method returns false it may be called an additional
|
||||||
|
/// time for the same dialog (both before and after MIME type expansion).
|
||||||
///
|
///
|
||||||
/*--cef(optional_param=title,optional_param=default_file_path,
|
/*--cef(optional_param=title,optional_param=default_file_path,
|
||||||
optional_param=accept_filters)--*/
|
optional_param=accept_filters,optional_param=accept_extensions,
|
||||||
|
optional_param=accept_descriptions)--*/
|
||||||
virtual bool OnFileDialog(CefRefPtr<CefBrowser> browser,
|
virtual bool OnFileDialog(CefRefPtr<CefBrowser> browser,
|
||||||
FileDialogMode mode,
|
FileDialogMode mode,
|
||||||
const CefString& title,
|
const CefString& title,
|
||||||
const CefString& default_file_path,
|
const CefString& default_file_path,
|
||||||
const std::vector<CefString>& accept_filters,
|
const std::vector<CefString>& accept_filters,
|
||||||
|
const std::vector<CefString>& accept_extensions,
|
||||||
|
const std::vector<CefString>& accept_descriptions,
|
||||||
CefRefPtr<CefFileDialogCallback> callback) {
|
CefRefPtr<CefFileDialogCallback> callback) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -75,12 +75,12 @@ class CefDisplayHandler : public virtual CefBaseRefCounted {
|
|||||||
/// 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 the content will automatically be sized to fill the
|
/// |fullscreen| is true the content will automatically be sized to fill the
|
||||||
/// browser content area. If |fullscreen| is false the content will
|
/// browser content area. If |fullscreen| is false the content will
|
||||||
/// automatically return to its original size and position. With the Alloy
|
/// automatically return to its original size and position. With Alloy style
|
||||||
/// runtime the client is responsible for triggering the fullscreen transition
|
/// the client is responsible for triggering the fullscreen transition (for
|
||||||
/// (for example, by calling CefWindow::SetFullscreen when using Views). With
|
/// example, by calling CefWindow::SetFullscreen when using Views). With
|
||||||
/// the Chrome runtime the fullscreen transition will be triggered
|
/// Chrome style the fullscreen transition will be triggered automatically.
|
||||||
/// automatically. The CefWindowDelegate::OnWindowFullscreenTransition method
|
/// The CefWindowDelegate::OnWindowFullscreenTransition method will be called
|
||||||
/// will be called during the fullscreen transition for notification purposes.
|
/// during the fullscreen transition for notification purposes.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void OnFullscreenModeChange(CefRefPtr<CefBrowser> browser,
|
virtual void OnFullscreenModeChange(CefRefPtr<CefBrowser> browser,
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
class CefDOMDocument;
|
class CefDOMDocument;
|
||||||
|
@@ -106,17 +106,19 @@ class CefDownloadHandler : public virtual CefBaseRefCounted {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Called before a download begins. |suggested_name| is the suggested name
|
/// Called before a download begins. |suggested_name| is the suggested name
|
||||||
/// for the download file. By default the download will be canceled. Execute
|
/// for the download file. Return true and execute |callback| either
|
||||||
/// |callback| either asynchronously or in this method to continue the
|
/// asynchronously or in this method to continue or cancel the download.
|
||||||
/// download if desired. Do not keep a reference to |download_item| outside of
|
/// Return false to proceed with default handling (cancel with Alloy style,
|
||||||
/// this method.
|
/// download shelf with Chrome style). Do not keep a reference to
|
||||||
|
/// |download_item| outside of this method.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void OnBeforeDownload(
|
virtual bool OnBeforeDownload(CefRefPtr<CefBrowser> browser,
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefDownloadItem> download_item,
|
||||||
CefRefPtr<CefDownloadItem> download_item,
|
const CefString& suggested_name,
|
||||||
const CefString& suggested_name,
|
CefRefPtr<CefBeforeDownloadCallback> callback) {
|
||||||
CefRefPtr<CefBeforeDownloadCallback> callback) = 0;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Called when a download's status or progress information has been updated.
|
/// Called when a download's status or progress information has been updated.
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_image.h"
|
#include "include/cef_image.h"
|
||||||
#include "include/cef_stream.h"
|
#include "include/cef_stream.h"
|
||||||
|
@@ -1,118 +0,0 @@
|
|||||||
// Copyright (c) 2017 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.
|
|
||||||
//
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// The contents of this file must follow a specific format in order to
|
|
||||||
// support the CEF translator tool. See the translator.README.txt file in the
|
|
||||||
// tools directory for more information.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CEF_EXTENSION_H_
|
|
||||||
#define CEF_INCLUDE_CEF_EXTENSION_H_
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
|
||||||
#include "include/cef_values.h"
|
|
||||||
|
|
||||||
class CefExtensionHandler;
|
|
||||||
class CefRequestContext;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Object representing an extension. Methods may be called on any thread unless
|
|
||||||
/// otherwise indicated.
|
|
||||||
///
|
|
||||||
/*--cef(source=library)--*/
|
|
||||||
class CefExtension : public CefBaseRefCounted {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
/// Returns the unique extension identifier. This is calculated based on the
|
|
||||||
/// extension public key, if available, or on the extension path. See
|
|
||||||
/// https://developer.chrome.com/extensions/manifest/key for details.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefString GetIdentifier() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the absolute path to the extension directory on disk. This value
|
|
||||||
/// will be prefixed with PK_DIR_RESOURCES if a relative path was passed to
|
|
||||||
/// CefRequestContext::LoadExtension.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefString GetPath() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension manifest contents as a CefDictionaryValue object.
|
|
||||||
/// See https://developer.chrome.com/extensions/manifest for details.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefDictionaryValue> GetManifest() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true if this object is the same extension as |that| object.
|
|
||||||
/// Extensions are considered the same if identifier, path and loader context
|
|
||||||
/// match.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool IsSame(CefRefPtr<CefExtension> that) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the handler for this extension. Will return NULL for internal
|
|
||||||
/// extensions or if no handler was passed to
|
|
||||||
/// CefRequestContext::LoadExtension.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefExtensionHandler> GetHandler() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the request context that loaded this extension. Will return NULL
|
|
||||||
/// for internal extensions or if the extension has been unloaded. See the
|
|
||||||
/// CefRequestContext::LoadExtension documentation for more information about
|
|
||||||
/// loader contexts. Must be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefRequestContext> GetLoaderContext() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true if this extension is currently loaded. Must be called on the
|
|
||||||
/// browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool IsLoaded() = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Unload this extension if it is not an internal extension and is currently
|
|
||||||
/// loaded. Will result in a call to CefExtensionHandler::OnExtensionUnloaded
|
|
||||||
/// on success.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void Unload() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CEF_EXTENSION_H_
|
|
@@ -1,200 +0,0 @@
|
|||||||
// Copyright (c) 2017 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.
|
|
||||||
//
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// The contents of this file must follow a specific format in order to
|
|
||||||
// support the CEF translator tool. See the translator.README.txt file in the
|
|
||||||
// tools directory for more information.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef CEF_INCLUDE_CEF_EXTENSION_HANDLER_H_
|
|
||||||
#define CEF_INCLUDE_CEF_EXTENSION_HANDLER_H_
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
|
||||||
#include "include/cef_browser.h"
|
|
||||||
#include "include/cef_extension.h"
|
|
||||||
#include "include/cef_stream.h"
|
|
||||||
|
|
||||||
class CefClient;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Callback interface used for asynchronous continuation of
|
|
||||||
/// CefExtensionHandler::GetExtensionResource.
|
|
||||||
///
|
|
||||||
/*--cef(source=library)--*/
|
|
||||||
class CefGetExtensionResourceCallback : public CefBaseRefCounted {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
/// Continue the request. Read the resource contents from |stream|.
|
|
||||||
///
|
|
||||||
/*--cef(capi_name=cont,optional_param=stream)--*/
|
|
||||||
virtual void Continue(CefRefPtr<CefStreamReader> stream) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Cancel the request.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void Cancel() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Implement this interface to handle events related to browser extensions.
|
|
||||||
/// The methods of this class will be called on the UI thread. See
|
|
||||||
/// CefRequestContext::LoadExtension for information about extension loading.
|
|
||||||
///
|
|
||||||
/*--cef(source=client)--*/
|
|
||||||
class CefExtensionHandler : public virtual CefBaseRefCounted {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
/// Called if the CefRequestContext::LoadExtension request fails. |result|
|
|
||||||
/// will be the error code.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void OnExtensionLoadFailed(cef_errorcode_t result) {}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called if the CefRequestContext::LoadExtension request succeeds.
|
|
||||||
/// |extension| is the loaded extension.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void OnExtensionLoaded(CefRefPtr<CefExtension> extension) {}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called after the CefExtension::Unload request has completed.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual void OnExtensionUnloaded(CefRefPtr<CefExtension> extension) {}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when an extension needs a browser to host a background script
|
|
||||||
/// specified via the "background" manifest key. The browser will have no
|
|
||||||
/// visible window and cannot be displayed. |extension| is the extension that
|
|
||||||
/// is loading the background script. |url| is an internally generated
|
|
||||||
/// reference to an HTML page that will be used to load the background script
|
|
||||||
/// via a "<script>" src attribute. To allow creation of the browser
|
|
||||||
/// optionally modify |client| and |settings| and return false. To cancel
|
|
||||||
/// creation of the browser (and consequently cancel load of the background
|
|
||||||
/// script) return true. Successful creation will be indicated by a call to
|
|
||||||
/// CefLifeSpanHandler::OnAfterCreated, and CefBrowserHost::IsBackgroundHost
|
|
||||||
/// will return true for the resulting browser. See
|
|
||||||
/// https://developer.chrome.com/extensions/event_pages for more information
|
|
||||||
/// about extension background script usage.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool OnBeforeBackgroundBrowser(CefRefPtr<CefExtension> extension,
|
|
||||||
const CefString& url,
|
|
||||||
CefRefPtr<CefClient>& client,
|
|
||||||
CefBrowserSettings& settings) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when an extension API (e.g. chrome.tabs.create) requests creation
|
|
||||||
/// of a new browser. |extension| and |browser| are the source of the API
|
|
||||||
/// call. |active_browser| may optionally be specified via the windowId
|
|
||||||
/// property or returned via the GetActiveBrowser() callback and provides the
|
|
||||||
/// default |client| and |settings| values for the new browser. |index| is the
|
|
||||||
/// position value optionally specified via the index property. |url| is the
|
|
||||||
/// URL that will be loaded in the browser. |active| is true if the new
|
|
||||||
/// browser should be active when opened. To allow creation of the browser
|
|
||||||
/// optionally modify |windowInfo|, |client| and |settings| and return false.
|
|
||||||
/// To cancel creation of the browser return true. Successful creation will be
|
|
||||||
/// indicated by a call to CefLifeSpanHandler::OnAfterCreated. Any
|
|
||||||
/// modifications to |windowInfo| will be ignored if |active_browser| is
|
|
||||||
/// wrapped in a CefBrowserView.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool OnBeforeBrowser(CefRefPtr<CefExtension> extension,
|
|
||||||
CefRefPtr<CefBrowser> browser,
|
|
||||||
CefRefPtr<CefBrowser> active_browser,
|
|
||||||
int index,
|
|
||||||
const CefString& url,
|
|
||||||
bool active,
|
|
||||||
CefWindowInfo& windowInfo,
|
|
||||||
CefRefPtr<CefClient>& client,
|
|
||||||
CefBrowserSettings& settings) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when no tabId is specified to an extension API call that accepts a
|
|
||||||
/// tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the
|
|
||||||
/// source of the API call. Return the browser that will be acted on by the
|
|
||||||
/// API call or return NULL to act on |browser|. The returned browser must
|
|
||||||
/// share the same CefRequestContext as |browser|. Incognito browsers should
|
|
||||||
/// not be considered unless the source extension has incognito access
|
|
||||||
/// enabled, in which case |include_incognito| will be true.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefBrowser> GetActiveBrowser(
|
|
||||||
CefRefPtr<CefExtension> extension,
|
|
||||||
CefRefPtr<CefBrowser> browser,
|
|
||||||
bool include_incognito) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called when the tabId associated with |target_browser| is specified to an
|
|
||||||
/// extension API call that accepts a tabId parameter (e.g. chrome.tabs.*).
|
|
||||||
/// |extension| and |browser| are the source of the API call. Return true
|
|
||||||
/// to allow access of false to deny access. Access to incognito browsers
|
|
||||||
/// should not be allowed unless the source extension has incognito access
|
|
||||||
/// enabled, in which case |include_incognito| will be true.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool CanAccessBrowser(CefRefPtr<CefExtension> extension,
|
|
||||||
CefRefPtr<CefBrowser> browser,
|
|
||||||
bool include_incognito,
|
|
||||||
CefRefPtr<CefBrowser> target_browser) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Called to retrieve an extension resource that would normally be loaded
|
|
||||||
/// from disk (e.g. if a file parameter is specified to
|
|
||||||
/// chrome.tabs.executeScript). |extension| and |browser| are the source of
|
|
||||||
/// the resource request. |file| is the requested relative file path. To
|
|
||||||
/// handle the resource request return true and execute |callback| either
|
|
||||||
/// synchronously or asynchronously. For the default behavior which reads the
|
|
||||||
/// resource from the extension directory on disk return false. Localization
|
|
||||||
/// substitutions will not be applied to resources handled via this method.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool GetExtensionResource(
|
|
||||||
CefRefPtr<CefExtension> extension,
|
|
||||||
CefRefPtr<CefBrowser> browser,
|
|
||||||
const CefString& file,
|
|
||||||
CefRefPtr<CefGetExtensionResourceCallback> callback) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_CEF_EXTENSION_HANDLER_H_
|
|
@@ -111,7 +111,7 @@ class CefLifeSpanHandler : public virtual CefBaseRefCounted {
|
|||||||
/// Views-hosted source browsers will create Views-hosted DevTools popups
|
/// Views-hosted source browsers will create Views-hosted DevTools popups
|
||||||
/// unless |use_default_window| is set to to true. DevTools popups can be
|
/// unless |use_default_window| is set to to true. DevTools popups can be
|
||||||
/// blocked by returning true from CefCommandHandler::OnChromeCommand for
|
/// blocked by returning true from CefCommandHandler::OnChromeCommand for
|
||||||
/// IDC_DEV_TOOLS. Only used with the Chrome runtime.
|
/// IDC_DEV_TOOLS. Only used with Chrome style.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void OnBeforeDevToolsPopup(CefRefPtr<CefBrowser> browser,
|
virtual void OnBeforeDevToolsPopup(CefRefPtr<CefBrowser> browser,
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_callback.h"
|
#include "include/cef_callback.h"
|
||||||
#include "include/cef_registration.h"
|
#include "include/cef_registration.h"
|
||||||
|
@@ -93,8 +93,8 @@ class CefPermissionHandler : public virtual CefBaseRefCounted {
|
|||||||
/// cef_media_access_permission_types_t that represent the requested
|
/// cef_media_access_permission_types_t that represent the requested
|
||||||
/// permissions. Return true and call CefMediaAccessCallback methods either in
|
/// permissions. Return true and call CefMediaAccessCallback methods either in
|
||||||
/// this method or at a later time to continue or cancel the request. Return
|
/// this method or at a later time to continue or cancel the request. Return
|
||||||
/// false to proceed with default handling. With the Chrome runtime, default
|
/// false to proceed with default handling. With Chrome style, default
|
||||||
/// handling will display the permission request UI. With the Alloy runtime,
|
/// handling will display the permission request UI. With Alloy style,
|
||||||
/// default handling will deny the request. This method will not be called if
|
/// default handling will deny the request. This method will not be called if
|
||||||
/// the "--enable-media-stream" command-line switch is used to grant all
|
/// the "--enable-media-stream" command-line switch is used to grant all
|
||||||
/// permissions.
|
/// permissions.
|
||||||
@@ -116,9 +116,9 @@ class CefPermissionHandler : public virtual CefBaseRefCounted {
|
|||||||
/// cef_permission_request_types_t that represent the requested permissions.
|
/// cef_permission_request_types_t that represent the requested permissions.
|
||||||
/// Return true and call CefPermissionPromptCallback::Continue either in this
|
/// Return true and call CefPermissionPromptCallback::Continue either in this
|
||||||
/// method or at a later time to continue or cancel the request. Return false
|
/// method or at a later time to continue or cancel the request. Return false
|
||||||
/// to proceed with default handling. With the Chrome runtime, default
|
/// to proceed with default handling. With Chrome style, default handling will
|
||||||
/// handling will display the permission prompt UI. With the Alloy runtime,
|
/// display the permission prompt UI. With Alloy style, default handling is
|
||||||
/// default handling is CEF_PERMISSION_RESULT_IGNORE.
|
/// CEF_PERMISSION_RESULT_IGNORE.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool OnShowPermissionPrompt(
|
virtual bool OnShowPermissionPrompt(
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
class CefPostData;
|
class CefPostData;
|
||||||
|
@@ -42,8 +42,6 @@
|
|||||||
|
|
||||||
#include "include/cef_callback.h"
|
#include "include/cef_callback.h"
|
||||||
#include "include/cef_cookie.h"
|
#include "include/cef_cookie.h"
|
||||||
#include "include/cef_extension.h"
|
|
||||||
#include "include/cef_extension_handler.h"
|
|
||||||
#include "include/cef_media_router.h"
|
#include "include/cef_media_router.h"
|
||||||
#include "include/cef_preference.h"
|
#include "include/cef_preference.h"
|
||||||
#include "include/cef_values.h"
|
#include "include/cef_values.h"
|
||||||
@@ -219,94 +217,6 @@ class CefRequestContext : public CefPreferenceManager {
|
|||||||
virtual void ResolveHost(const CefString& origin,
|
virtual void ResolveHost(const CefString& origin,
|
||||||
CefRefPtr<CefResolveCallback> callback) = 0;
|
CefRefPtr<CefResolveCallback> callback) = 0;
|
||||||
|
|
||||||
///
|
|
||||||
/// Load an extension.
|
|
||||||
///
|
|
||||||
/// If extension resources will be read from disk using the default load
|
|
||||||
/// implementation then |root_directory| should be the absolute path to the
|
|
||||||
/// extension resources directory and |manifest| should be NULL. If extension
|
|
||||||
/// resources will be provided by the client (e.g. via CefRequestHandler
|
|
||||||
/// and/or CefExtensionHandler) then |root_directory| should be a path
|
|
||||||
/// component unique to the extension (if not absolute this will be internally
|
|
||||||
/// prefixed with the PK_DIR_RESOURCES path) and |manifest| should contain the
|
|
||||||
/// contents that would otherwise be read from the "manifest.json" file on
|
|
||||||
/// disk.
|
|
||||||
///
|
|
||||||
/// The loaded extension will be accessible in all contexts sharing the same
|
|
||||||
/// storage (HasExtension returns true). However, only the context on which
|
|
||||||
/// this method was called is considered the loader (DidLoadExtension returns
|
|
||||||
/// true) and only the loader will receive CefRequestContextHandler callbacks
|
|
||||||
/// for the extension.
|
|
||||||
///
|
|
||||||
/// CefExtensionHandler::OnExtensionLoaded will be called on load success or
|
|
||||||
/// CefExtensionHandler::OnExtensionLoadFailed will be called on load failure.
|
|
||||||
///
|
|
||||||
/// If the extension specifies a background script via the "background"
|
|
||||||
/// manifest key then CefExtensionHandler::OnBeforeBackgroundBrowser will be
|
|
||||||
/// called to create the background browser. See that method for additional
|
|
||||||
/// information about background scripts.
|
|
||||||
///
|
|
||||||
/// For visible extension views the client application should evaluate the
|
|
||||||
/// manifest to determine the correct extension URL to load and then pass that
|
|
||||||
/// URL to the CefBrowserHost::CreateBrowser* function after the extension has
|
|
||||||
/// loaded. For example, the client can look for the "browser_action" manifest
|
|
||||||
/// key as documented at
|
|
||||||
/// https://developer.chrome.com/extensions/browserAction. Extension URLs take
|
|
||||||
/// the form "chrome-extension://<extension_id>/<path>".
|
|
||||||
///
|
|
||||||
/// Browsers that host extensions differ from normal browsers as follows:
|
|
||||||
/// - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit
|
|
||||||
/// chrome://extensions-support for the list of extension APIs currently
|
|
||||||
/// supported by CEF.
|
|
||||||
/// - Main frame navigation to non-extension content is blocked.
|
|
||||||
/// - Pinch-zooming is disabled.
|
|
||||||
/// - CefBrowserHost::GetExtension returns the hosted extension.
|
|
||||||
/// - CefBrowserHost::IsBackgroundHost returns true for background hosts.
|
|
||||||
///
|
|
||||||
/// See https://developer.chrome.com/extensions for extension implementation
|
|
||||||
/// and usage documentation.
|
|
||||||
///
|
|
||||||
/*--cef(optional_param=manifest,optional_param=handler)--*/
|
|
||||||
virtual void LoadExtension(const CefString& root_directory,
|
|
||||||
CefRefPtr<CefDictionaryValue> manifest,
|
|
||||||
CefRefPtr<CefExtensionHandler> handler) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true if this context was used to load the extension identified by
|
|
||||||
/// |extension_id|. Other contexts sharing the same storage will also have
|
|
||||||
/// access to the extension (see HasExtension). This method must be called on
|
|
||||||
/// the browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool DidLoadExtension(const CefString& extension_id) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns true if this context has access to the extension identified by
|
|
||||||
/// |extension_id|. This may not be the context that was used to load the
|
|
||||||
/// extension (see DidLoadExtension). This method must be called on the
|
|
||||||
/// browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool HasExtension(const CefString& extension_id) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Retrieve the list of all extensions that this context has access to (see
|
|
||||||
/// HasExtension). |extension_ids| will be populated with the list of
|
|
||||||
/// extension ID values. Returns true on success. This method must be called
|
|
||||||
/// on the browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual bool GetExtensions(std::vector<CefString>& extension_ids) = 0;
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Returns the extension matching |extension_id| or NULL if no matching
|
|
||||||
/// extension is accessible in this context (see HasExtension). This method
|
|
||||||
/// must be called on the browser process UI thread.
|
|
||||||
///
|
|
||||||
/*--cef()--*/
|
|
||||||
virtual CefRefPtr<CefExtension> GetExtension(
|
|
||||||
const CefString& extension_id) = 0;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the MediaRouter object associated with this context. If
|
/// Returns the MediaRouter object associated with this context. If
|
||||||
/// |callback| is non-NULL it will be executed asnychronously on the UI thread
|
/// |callback| is non-NULL it will be executed asnychronously on the UI thread
|
||||||
|
@@ -226,10 +226,10 @@ class CefRequestHandler : public virtual CefBaseRefCounted {
|
|||||||
/// Called on the browser process UI thread when the render process is
|
/// Called on the browser process UI thread when the render process is
|
||||||
/// unresponsive as indicated by a lack of input event processing for at
|
/// unresponsive as indicated by a lack of input event processing for at
|
||||||
/// least 15 seconds. Return false for the default behavior which is an
|
/// least 15 seconds. Return false for the default behavior which is an
|
||||||
/// indefinite wait with the Alloy runtime or display of the "Page
|
/// indefinite wait with Alloy style or display of the "Page
|
||||||
/// unresponsive" dialog with the Chrome runtime. Return true and don't
|
/// unresponsive" dialog with Chrome style. Return true and don't
|
||||||
/// execute the callback for an indefinite wait without display of the Chrome
|
/// execute the callback for an indefinite wait without display of the Chrome
|
||||||
/// runtime dialog. Return true and call CefUnresponsiveProcessCallback::Wait
|
/// style dialog. Return true and call CefUnresponsiveProcessCallback::Wait
|
||||||
/// either in this method or at a later time to reset the wait timer,
|
/// either in this method or at a later time to reset the wait timer,
|
||||||
/// potentially triggering another call to this method if the process remains
|
/// potentially triggering another call to this method if the process remains
|
||||||
/// unresponsive. Return true and call CefUnresponsiveProcessCallback::
|
/// unresponsive. Return true and call CefUnresponsiveProcessCallback::
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_callback.h"
|
#include "include/cef_callback.h"
|
||||||
#include "include/cef_request.h"
|
#include "include/cef_request.h"
|
||||||
|
@@ -40,7 +40,6 @@
|
|||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_values.h"
|
#include "include/cef_values.h"
|
||||||
|
|
||||||
#include "include/cef_x509_certificate.h"
|
#include "include/cef_x509_certificate.h"
|
||||||
|
|
||||||
///
|
///
|
||||||
|
109
include/cef_task_manager.h
Normal file
109
include/cef_task_manager.h
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// 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.
|
||||||
|
//
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// The contents of this file must follow a specific format in order to
|
||||||
|
// support the CEF translator tool. See the translator.README.txt file in the
|
||||||
|
// tools directory for more information.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_CEF_TASK_MANAGER_H_
|
||||||
|
#define CEF_INCLUDE_CEF_TASK_MANAGER_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Class that facilitates managing the browser-related tasks.
|
||||||
|
/// The methods of this class may only be called on the UI thread.
|
||||||
|
///
|
||||||
|
/*--cef(source=library)--*/
|
||||||
|
class CefTaskManager : public virtual CefBaseRefCounted {
|
||||||
|
public:
|
||||||
|
typedef std::vector<int64_t> TaskIdList;
|
||||||
|
typedef cef_task_type_t TaskType;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the global task manager object.
|
||||||
|
/// Returns nullptr if the method was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
static CefRefPtr<CefTaskManager> GetTaskManager();
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the number of tasks currently tracked by the task manager.
|
||||||
|
/// Returns 0 if the method was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual size_t GetTasksCount() = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Gets the list of task IDs currently tracked by the task manager. Tasks
|
||||||
|
/// that share the same process id will always be consecutive. The list will
|
||||||
|
/// be sorted in a way that reflects the process tree: the browser process
|
||||||
|
/// will be first, followed by the gpu process if it exists. Related processes
|
||||||
|
/// (e.g., a subframe process and its parent) will be kept together if
|
||||||
|
/// possible. Callers can expect this ordering to be stable when a process is
|
||||||
|
/// added or removed. The task IDs are unique within the application lifespan.
|
||||||
|
/// Returns false if the method was called from the incorrect thread.
|
||||||
|
///
|
||||||
|
/*--cef(count_func=task_ids:GetTasksCount)--*/
|
||||||
|
virtual bool GetTaskIdsList(TaskIdList& task_ids) = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Gets information about the task with |task_id|.
|
||||||
|
/// Returns true if the information about the task was successfully
|
||||||
|
/// retrieved and false if the |task_id| is invalid or the method was called
|
||||||
|
/// from the incorrect thread.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual bool GetTaskInfo(int64_t task_id, CefTaskInfo& info) = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Attempts to terminate a task with |task_id|.
|
||||||
|
/// Returns false if the |task_id| is invalid, the call is made from an
|
||||||
|
/// incorrect thread, or if the task cannot be terminated.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual bool KillTask(int64_t task_id) = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the task ID associated with the main task for |browser_id|
|
||||||
|
/// (value from CefBrowser::GetIdentifier). Returns -1 if |browser_id| is
|
||||||
|
/// invalid, does not currently have an associated task, or the method was
|
||||||
|
/// called from the incorrect thread.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual int64_t GetTaskIdForBrowserId(int browser_id) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_CEF_TASK_MANAGER_H_
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_browser.h"
|
#include "include/cef_browser.h"
|
||||||
#include "include/cef_frame.h"
|
#include "include/cef_frame.h"
|
||||||
@@ -434,7 +435,6 @@ class CefV8ArrayBufferReleaseCallback : public virtual CefBaseRefCounted {
|
|||||||
/*--cef(source=library,no_debugct_check)--*/
|
/*--cef(source=library,no_debugct_check)--*/
|
||||||
class CefV8Value : public virtual CefBaseRefCounted {
|
class CefV8Value : public virtual CefBaseRefCounted {
|
||||||
public:
|
public:
|
||||||
typedef cef_v8_accesscontrol_t AccessControl;
|
|
||||||
typedef cef_v8_propertyattribute_t PropertyAttribute;
|
typedef cef_v8_propertyattribute_t PropertyAttribute;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -520,12 +520,26 @@ class CefV8Value : public virtual CefBaseRefCounted {
|
|||||||
/// or CefV8Accessor callback, or in combination with calling Enter() and
|
/// or CefV8Accessor callback, or in combination with calling Enter() and
|
||||||
/// Exit() on a stored CefV8Context reference.
|
/// Exit() on a stored CefV8Context reference.
|
||||||
///
|
///
|
||||||
|
/// NOTE: Always returns nullptr when V8 sandbox is enabled.
|
||||||
|
///
|
||||||
/*--cef(optional_param=buffer)--*/
|
/*--cef(optional_param=buffer)--*/
|
||||||
static CefRefPtr<CefV8Value> CreateArrayBuffer(
|
static CefRefPtr<CefV8Value> CreateArrayBuffer(
|
||||||
void* buffer,
|
void* buffer,
|
||||||
size_t length,
|
size_t length,
|
||||||
CefRefPtr<CefV8ArrayBufferReleaseCallback> release_callback);
|
CefRefPtr<CefV8ArrayBufferReleaseCallback> release_callback);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Create a new CefV8Value object of type ArrayBuffer which copies the
|
||||||
|
/// provided |buffer| of size |length| bytes.
|
||||||
|
/// This method should only be called from within the scope of a
|
||||||
|
/// CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in
|
||||||
|
/// combination with calling Enter() and Exit() on a stored CefV8Context
|
||||||
|
/// reference.
|
||||||
|
///
|
||||||
|
/*--cef(optional_param=buffer)--*/
|
||||||
|
static CefRefPtr<CefV8Value> CreateArrayBufferWithCopy(void* buffer,
|
||||||
|
size_t length);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Create a new CefV8Value object of type function. This method should only
|
/// Create a new CefV8Value object of type function. This method should only
|
||||||
/// be called from within the scope of a CefRenderProcessHandler, CefV8Handler
|
/// be called from within the scope of a CefRenderProcessHandler, CefV8Handler
|
||||||
@@ -793,9 +807,7 @@ class CefV8Value : public virtual CefBaseRefCounted {
|
|||||||
/// will return true even though assignment failed.
|
/// will return true even though assignment failed.
|
||||||
///
|
///
|
||||||
/*--cef(capi_name=set_value_byaccessor,optional_param=key)--*/
|
/*--cef(capi_name=set_value_byaccessor,optional_param=key)--*/
|
||||||
virtual bool SetValue(const CefString& key,
|
virtual bool SetValue(const CefString& key, PropertyAttribute attribute) = 0;
|
||||||
AccessControl settings,
|
|
||||||
PropertyAttribute attribute) = 0;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Read the keys for the object's values into the specified vector. Integer-
|
/// Read the keys for the object's values into the specified vector. Integer-
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
|
|
||||||
class CefBinaryValue;
|
class CefBinaryValue;
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
// Copyright (c) 2021 Marshall A. Greenblatt. Portions copyright (c) 2015
|
// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved.
|
||||||
// Google Inc. 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
|
||||||
@@ -28,33 +27,42 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#ifndef INCLUDE_BASE_CEF_PTR_UTIL_H_
|
#ifndef CEF_INCLUDE_INTERNAL_CEF_DUMP_WITHOUT_CRASHING_INTERNAL_H_
|
||||||
#define INCLUDE_BASE_CEF_PTR_UTIL_H_
|
#define CEF_INCLUDE_INTERNAL_CEF_DUMP_WITHOUT_CRASHING_INTERNAL_H_
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#if defined(USING_CHROMIUM_INCLUDES)
|
#include <stddef.h>
|
||||||
// When building CEF include the Chromium header directly.
|
|
||||||
#include "base/memory/ptr_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 <memory>
|
#include "include/internal/cef_export.h"
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
namespace base {
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// See include/base/cef_dump_without_crashing.h for intended usage.
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Helper to transfer ownership of a raw pointer to a std::unique_ptr<T>.
|
/// cef_dump_without_crashing allows for capturing crash dumps in a throttled
|
||||||
/// Note that std::unique_ptr<T> has very different semantics from
|
/// manner. This function should only be called after CefInitialize has been
|
||||||
/// std::unique_ptr<T[]>: do not use this helper for array allocations.
|
/// successfully called. For detailed behavior, usage instructions, and
|
||||||
|
/// considerations, refer to the documentation of DumpWithoutCrashing in
|
||||||
|
/// base/debug/dump_without_crashing.h.
|
||||||
///
|
///
|
||||||
template <typename T>
|
CEF_EXPORT int cef_dump_without_crashing(long long mseconds_between_dumps,
|
||||||
std::unique_ptr<T> WrapUnique(T* ptr) {
|
const char* function_name,
|
||||||
return std::unique_ptr<T>(ptr);
|
const char* file_name,
|
||||||
|
int line_number);
|
||||||
|
///
|
||||||
|
/// cef_dump_without_crashing_unthrottled allows for capturing crash dumps
|
||||||
|
/// without any throttling constraints. This function should also only be called
|
||||||
|
/// after CefInitialize has been successfully called. For detailed behavior,
|
||||||
|
/// usage instructions, and considerations, refer to the documentation of
|
||||||
|
/// DumpWithoutCrashingUnthrottled in base/debug/dump_without_crashing.h.
|
||||||
|
///
|
||||||
|
CEF_EXPORT int cef_dump_without_crashing_unthrottled();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
} // namespace base
|
#endif // CEF_INCLUDE_INTERNAL_CEF_DUMP_WITHOUT_CRASHING_INTERNAL_H_
|
||||||
|
|
||||||
#endif // INCLUDE_BASE_CEF_PTR_UTIL_H_
|
|
@@ -70,6 +70,7 @@ struct CefWindowInfoTraits {
|
|||||||
target->shared_texture_enabled = src->shared_texture_enabled;
|
target->shared_texture_enabled = src->shared_texture_enabled;
|
||||||
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
||||||
target->window = src->window;
|
target->window = src->window;
|
||||||
|
target->runtime_style = src->runtime_style;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -110,6 +111,7 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
|||||||
void SetAsWindowless(CefWindowHandle parent) {
|
void SetAsWindowless(CefWindowHandle parent) {
|
||||||
windowless_rendering_enabled = true;
|
windowless_rendering_enabled = true;
|
||||||
parent_window = parent;
|
parent_window = parent;
|
||||||
|
runtime_style = CEF_RUNTIME_STYLE_ALLOY;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -71,6 +71,7 @@ struct CefWindowInfoTraits {
|
|||||||
target->shared_texture_enabled = src->shared_texture_enabled;
|
target->shared_texture_enabled = src->shared_texture_enabled;
|
||||||
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
||||||
target->view = src->view;
|
target->view = src->view;
|
||||||
|
target->runtime_style = src->runtime_style;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -112,6 +113,7 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
|||||||
void SetAsWindowless(CefWindowHandle parent) {
|
void SetAsWindowless(CefWindowHandle parent) {
|
||||||
windowless_rendering_enabled = true;
|
windowless_rendering_enabled = true;
|
||||||
parent_view = parent;
|
parent_view = parent;
|
||||||
|
runtime_style = CEF_RUNTIME_STYLE_ALLOY;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -235,13 +235,6 @@ typedef struct _cef_settings_t {
|
|||||||
///
|
///
|
||||||
cef_string_t main_bundle_path;
|
cef_string_t main_bundle_path;
|
||||||
|
|
||||||
///
|
|
||||||
/// Set to true (1) to enable use of the Chrome runtime in CEF. This feature
|
|
||||||
/// is considered experimental and is not recommended for most users at this
|
|
||||||
/// time. See issue #2969 for details.
|
|
||||||
///
|
|
||||||
int chrome_runtime;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Set to true (1) to have the browser process message loop run in a separate
|
/// Set to true (1) to have the browser process message loop run in a separate
|
||||||
/// thread. If false (0) then the CefDoMessageLoopWork() function must be
|
/// thread. If false (0) then the CefDoMessageLoopWork() function must be
|
||||||
@@ -288,9 +281,9 @@ typedef struct _cef_settings_t {
|
|||||||
/// in root_cache_path). HTML5 databases such as localStorage will only
|
/// in root_cache_path). HTML5 databases such as localStorage will only
|
||||||
/// persist across sessions if a cache path is specified. Can be overridden
|
/// persist across sessions if a cache path is specified. Can be overridden
|
||||||
/// for individual CefRequestContext instances via the
|
/// for individual CefRequestContext instances via the
|
||||||
/// CefRequestContextSettings.cache_path value. When using the Chrome runtime
|
/// CefRequestContextSettings.cache_path value. Any child directory value will
|
||||||
/// any child directory value will be ignored and the "default" profile (also
|
/// be ignored and the "default" profile (also a child directory) will be used
|
||||||
/// a child directory) will be used instead.
|
/// instead.
|
||||||
///
|
///
|
||||||
cef_string_t cache_path;
|
cef_string_t cache_path;
|
||||||
|
|
||||||
@@ -334,16 +327,6 @@ typedef struct _cef_settings_t {
|
|||||||
///
|
///
|
||||||
int persist_session_cookies;
|
int persist_session_cookies;
|
||||||
|
|
||||||
///
|
|
||||||
/// To persist user preferences as a JSON file in the cache path directory set
|
|
||||||
/// this value to true (1). A |cache_path| value must also be specified
|
|
||||||
/// to enable this feature. Also configurable using the
|
|
||||||
/// "persist-user-preferences" command-line switch. Can be overridden for
|
|
||||||
/// individual CefRequestContext instances via the
|
|
||||||
/// CefRequestContextSettings.persist_user_preferences value.
|
|
||||||
///
|
|
||||||
int persist_user_preferences;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Value that will be returned as the User-Agent HTTP header. If empty the
|
/// Value that will be returned as the User-Agent HTTP header. If empty the
|
||||||
/// default User-Agent string will be used. Also configurable using the
|
/// default User-Agent string will be used. Also configurable using the
|
||||||
@@ -421,15 +404,6 @@ typedef struct _cef_settings_t {
|
|||||||
///
|
///
|
||||||
cef_string_t locales_dir_path;
|
cef_string_t locales_dir_path;
|
||||||
|
|
||||||
///
|
|
||||||
/// Set to true (1) to disable loading of pack files for resources and
|
|
||||||
/// locales. A resource bundle handler must be provided for the browser and
|
|
||||||
/// render processes via CefApp::GetResourceBundleHandler() if loading of pack
|
|
||||||
/// files is disabled. Also configurable using the "disable-pack-loading"
|
|
||||||
/// command- line switch.
|
|
||||||
///
|
|
||||||
int pack_loading_disabled;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Set to a value between 1024 and 65535 to enable remote debugging on the
|
/// Set to a value between 1024 and 65535 to enable remote debugging on the
|
||||||
/// specified port. Also configurable using the "remote-debugging-port"
|
/// specified port. Also configurable using the "remote-debugging-port"
|
||||||
@@ -494,7 +468,7 @@ typedef struct _cef_settings_t {
|
|||||||
/// policies. On Windows, this is a registry key like
|
/// policies. On Windows, this is a registry key like
|
||||||
/// "SOFTWARE\\Policies\\Google\\Chrome". On MacOS, this is a bundle ID like
|
/// "SOFTWARE\\Policies\\Google\\Chrome". On MacOS, this is a bundle ID like
|
||||||
/// "com.google.Chrome". On Linux, this is an absolute directory path like
|
/// "com.google.Chrome". On Linux, this is an absolute directory path like
|
||||||
/// "/etc/opt/chrome/policies". Only supported with the Chrome runtime. See
|
/// "/etc/opt/chrome/policies". Only supported with Chrome style. See
|
||||||
/// https://support.google.com/chrome/a/answer/9037717 for details.
|
/// https://support.google.com/chrome/a/answer/9037717 for details.
|
||||||
///
|
///
|
||||||
/// Chrome Browser Cloud Management integration, when enabled via the
|
/// Chrome Browser Cloud Management integration, when enabled via the
|
||||||
@@ -508,10 +482,17 @@ typedef struct _cef_settings_t {
|
|||||||
/// Specify an ID for an ICON resource that can be loaded from the main
|
/// Specify an ID for an ICON resource that can be loaded from the main
|
||||||
/// executable and used when creating default Chrome windows such as DevTools
|
/// executable and used when creating default Chrome windows such as DevTools
|
||||||
/// and Task Manager. If unspecified the default Chromium ICON (IDR_MAINFRAME
|
/// and Task Manager. If unspecified the default Chromium ICON (IDR_MAINFRAME
|
||||||
/// [101]) will be loaded from libcef.dll. Only supported with the Chrome
|
/// [101]) will be loaded from libcef.dll. Only supported with Chrome style on
|
||||||
/// runtime on Windows.
|
/// Windows.
|
||||||
///
|
///
|
||||||
int chrome_app_icon_id;
|
int chrome_app_icon_id;
|
||||||
|
|
||||||
|
#if defined(OS_POSIX) && !defined(OS_ANDROID)
|
||||||
|
///
|
||||||
|
/// Specify whether signal handlers must be disabled on POSIX systems.
|
||||||
|
///
|
||||||
|
int disable_signal_handlers;
|
||||||
|
#endif
|
||||||
} cef_settings_t;
|
} cef_settings_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -548,14 +529,6 @@ typedef struct _cef_request_context_settings_t {
|
|||||||
///
|
///
|
||||||
int persist_session_cookies;
|
int persist_session_cookies;
|
||||||
|
|
||||||
///
|
|
||||||
/// To persist user preferences as a JSON file in the cache path directory set
|
|
||||||
/// this value to true (1). Can be set globally using the
|
|
||||||
/// CefSettings.persist_user_preferences value. This value will be ignored if
|
|
||||||
/// |cache_path| is empty or if it matches the CefSettings.cache_path value.
|
|
||||||
///
|
|
||||||
int persist_user_preferences;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Comma delimited ordered list of language codes without any whitespace that
|
/// Comma delimited ordered list of language codes without any whitespace that
|
||||||
/// will be used in the "Accept-Language" HTTP request header and
|
/// will be used in the "Accept-Language" HTTP request header and
|
||||||
@@ -718,14 +691,14 @@ typedef struct _cef_browser_settings_t {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Controls whether the Chrome status bubble will be used. Only supported
|
/// Controls whether the Chrome status bubble will be used. Only supported
|
||||||
/// with the Chrome runtime. For details about the status bubble see
|
/// with Chrome style. For details about the status bubble see
|
||||||
/// https://www.chromium.org/user-experience/status-bubble/
|
/// https://www.chromium.org/user-experience/status-bubble/
|
||||||
///
|
///
|
||||||
cef_state_t chrome_status_bubble;
|
cef_state_t chrome_status_bubble;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Controls whether the Chrome zoom bubble will be shown when zooming. Only
|
/// Controls whether the Chrome zoom bubble will be shown when zooming. Only
|
||||||
/// supported with the Chrome runtime.
|
/// supported with Chrome style.
|
||||||
///
|
///
|
||||||
cef_state_t chrome_zoom_bubble;
|
cef_state_t chrome_zoom_bubble;
|
||||||
} cef_browser_settings_t;
|
} cef_browser_settings_t;
|
||||||
@@ -1237,16 +1210,6 @@ typedef enum {
|
|||||||
CEF_TEXT_INPUT_MODE_MAX = CEF_TEXT_INPUT_MODE_SEARCH,
|
CEF_TEXT_INPUT_MODE_MAX = CEF_TEXT_INPUT_MODE_SEARCH,
|
||||||
} cef_text_input_mode_t;
|
} cef_text_input_mode_t;
|
||||||
|
|
||||||
///
|
|
||||||
/// V8 access control values.
|
|
||||||
///
|
|
||||||
typedef enum {
|
|
||||||
V8_ACCESS_CONTROL_DEFAULT = 0,
|
|
||||||
V8_ACCESS_CONTROL_ALL_CAN_READ = 1,
|
|
||||||
V8_ACCESS_CONTROL_ALL_CAN_WRITE = 1 << 1,
|
|
||||||
V8_ACCESS_CONTROL_PROHIBITS_OVERWRITING = 1 << 2
|
|
||||||
} cef_v8_accesscontrol_t;
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// V8 property attribute values.
|
/// V8 property attribute values.
|
||||||
///
|
///
|
||||||
@@ -1409,7 +1372,7 @@ typedef enum {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// User got to this page through a suggestion in the UI (for example, via the
|
/// User got to this page through a suggestion in the UI (for example, via the
|
||||||
/// destinations page). Chrome runtime only.
|
/// destinations page). Chrome style only.
|
||||||
///
|
///
|
||||||
TT_AUTO_BOOKMARK = 2,
|
TT_AUTO_BOOKMARK = 2,
|
||||||
|
|
||||||
@@ -1436,7 +1399,7 @@ typedef enum {
|
|||||||
/// that did not look like a URL. For example, a match might have the URL
|
/// that did not look like a URL. For example, a match might have the URL
|
||||||
/// of a Google search result page, but appear like "Search Google for ...".
|
/// of a Google search result page, but appear like "Search Google for ...".
|
||||||
/// These are not quite the same as EXPLICIT navigations because the user
|
/// These are not quite the same as EXPLICIT navigations because the user
|
||||||
/// didn't type or see the destination URL. Chrome runtime only.
|
/// didn't type or see the destination URL. Chrome style only.
|
||||||
/// See also TT_KEYWORD.
|
/// See also TT_KEYWORD.
|
||||||
///
|
///
|
||||||
TT_GENERATED = 5,
|
TT_GENERATED = 5,
|
||||||
@@ -1446,7 +1409,7 @@ typedef enum {
|
|||||||
/// loaded in a toplevel frame. For example, opening a tab to show the ASH
|
/// loaded in a toplevel frame. For example, opening a tab to show the ASH
|
||||||
/// screen saver, opening the devtools window, opening the NTP after the safe
|
/// screen saver, opening the devtools window, opening the NTP after the safe
|
||||||
/// browsing warning, opening web-based dialog boxes are examples of
|
/// browsing warning, opening web-based dialog boxes are examples of
|
||||||
/// AUTO_TOPLEVEL navigations. Chrome runtime only.
|
/// AUTO_TOPLEVEL navigations. Chrome style only.
|
||||||
///
|
///
|
||||||
TT_AUTO_TOPLEVEL = 6,
|
TT_AUTO_TOPLEVEL = 6,
|
||||||
|
|
||||||
@@ -1473,13 +1436,13 @@ typedef enum {
|
|||||||
/// the url 'http://' + keyword. For example, if you do a tab-to-search
|
/// the url 'http://' + keyword. For example, if you do a tab-to-search
|
||||||
/// against wikipedia the generated url has a transition qualifer of
|
/// against wikipedia the generated url has a transition qualifer of
|
||||||
/// TT_KEYWORD, and TemplateURLModel generates a visit for 'wikipedia.org'
|
/// TT_KEYWORD, and TemplateURLModel generates a visit for 'wikipedia.org'
|
||||||
/// with a transition type of TT_KEYWORD_GENERATED. Chrome runtime only.
|
/// with a transition type of TT_KEYWORD_GENERATED. Chrome style only.
|
||||||
///
|
///
|
||||||
TT_KEYWORD = 9,
|
TT_KEYWORD = 9,
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Corresponds to a visit generated for a keyword. See description of
|
/// Corresponds to a visit generated for a keyword. See description of
|
||||||
/// TT_KEYWORD for more details. Chrome runtime only.
|
/// TT_KEYWORD for more details. Chrome style only.
|
||||||
///
|
///
|
||||||
TT_KEYWORD_GENERATED = 10,
|
TT_KEYWORD_GENERATED = 10,
|
||||||
|
|
||||||
@@ -1509,14 +1472,13 @@ typedef enum {
|
|||||||
TT_DIRECT_LOAD_FLAG = 0x02000000,
|
TT_DIRECT_LOAD_FLAG = 0x02000000,
|
||||||
|
|
||||||
///
|
///
|
||||||
/// User is navigating to the home page. Chrome runtime only.
|
/// User is navigating to the home page. Chrome style only.
|
||||||
///
|
///
|
||||||
TT_HOME_PAGE_FLAG = 0x04000000,
|
TT_HOME_PAGE_FLAG = 0x04000000,
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The transition originated from an external application; the exact
|
/// The transition originated from an external application; the exact
|
||||||
/// definition of this is embedder dependent. Chrome runtime and
|
/// definition of this is embedder dependent. Chrome style only.
|
||||||
/// extension system only.
|
|
||||||
///
|
///
|
||||||
TT_FROM_API_FLAG = 0x08000000,
|
TT_FROM_API_FLAG = 0x08000000,
|
||||||
|
|
||||||
@@ -1892,6 +1854,34 @@ typedef struct _cef_screen_info_t {
|
|||||||
cef_rect_t available_rect;
|
cef_rect_t available_rect;
|
||||||
} cef_screen_info_t;
|
} cef_screen_info_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Linux window properties, such as X11's WM_CLASS or Wayland's app_id.
|
||||||
|
/// Those are passed to CefWindowDelegate, so the client can set them
|
||||||
|
/// for the CefWindow's top-level. Thus, allowing window managers to correctly
|
||||||
|
/// display the application's information (e.g., icons).
|
||||||
|
///
|
||||||
|
typedef struct _cef_linux_window_properties_t {
|
||||||
|
///
|
||||||
|
/// Main window's Wayland's app_id
|
||||||
|
///
|
||||||
|
cef_string_t wayland_app_id;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Main window's WM_CLASS_CLASS in X11
|
||||||
|
///
|
||||||
|
cef_string_t wm_class_class;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Main window's WM_CLASS_NAME in X11
|
||||||
|
///
|
||||||
|
cef_string_t wm_class_name;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Main window's WM_WINDOW_ROLE in X11
|
||||||
|
///
|
||||||
|
cef_string_t wm_role_name;
|
||||||
|
} cef_linux_window_properties_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Supported menu IDs. Non-English translations can be provided for the
|
/// Supported menu IDs. Non-English translations can be provided for the
|
||||||
/// IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString().
|
/// IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString().
|
||||||
@@ -3471,18 +3461,18 @@ typedef enum {
|
|||||||
CEF_CPAIT_COOKIE_CONTROLS,
|
CEF_CPAIT_COOKIE_CONTROLS,
|
||||||
CEF_CPAIT_FILE_SYSTEM_ACCESS,
|
CEF_CPAIT_FILE_SYSTEM_ACCESS,
|
||||||
CEF_CPAIT_FIND,
|
CEF_CPAIT_FIND,
|
||||||
CEF_CPAIT_HIGH_EFFICIENCY,
|
CEF_CPAIT_MEMORY_SAVER,
|
||||||
CEF_CPAIT_INTENT_PICKER,
|
CEF_CPAIT_INTENT_PICKER,
|
||||||
CEF_CPAIT_LOCAL_CARD_MIGRATION,
|
CEF_CPAIT_LOCAL_CARD_MIGRATION,
|
||||||
CEF_CPAIT_MANAGE_PASSWORDS,
|
CEF_CPAIT_MANAGE_PASSWORDS,
|
||||||
CEF_CPAIT_PAYMENTS_OFFER_NOTIFICATION,
|
CEF_CPAIT_PAYMENTS_OFFER_NOTIFICATION,
|
||||||
CEF_CPAIT_PRICE_TRACKING,
|
CEF_CPAIT_PRICE_TRACKING,
|
||||||
CEF_CPAIT_PWA_INSTALL,
|
CEF_CPAIT_PWA_INSTALL,
|
||||||
CEF_CPAIT_QR_CODE_GENERATOR,
|
CEF_CPAIT_QR_CODE_GENERATOR_DEPRECATED,
|
||||||
CEF_CPAIT_READER_MODE,
|
CEF_CPAIT_READER_MODE_DEPRECATED,
|
||||||
CEF_CPAIT_SAVE_AUTOFILL_ADDRESS,
|
CEF_CPAIT_SAVE_AUTOFILL_ADDRESS,
|
||||||
CEF_CPAIT_SAVE_CARD,
|
CEF_CPAIT_SAVE_CARD,
|
||||||
CEF_CPAIT_SEND_TAB_TO_SELF,
|
CEF_CPAIT_SEND_TAB_TO_SELF_DEPRECATED,
|
||||||
CEF_CPAIT_SHARING_HUB,
|
CEF_CPAIT_SHARING_HUB,
|
||||||
CEF_CPAIT_SIDE_SEARCH,
|
CEF_CPAIT_SIDE_SEARCH,
|
||||||
CEF_CPAIT_SMS_REMOTE_FETCHER,
|
CEF_CPAIT_SMS_REMOTE_FETCHER,
|
||||||
@@ -3494,7 +3484,10 @@ typedef enum {
|
|||||||
CEF_CPAIT_MANDATORY_REAUTH,
|
CEF_CPAIT_MANDATORY_REAUTH,
|
||||||
CEF_CPAIT_PRICE_INSIGHTS,
|
CEF_CPAIT_PRICE_INSIGHTS,
|
||||||
CEF_CPAIT_PRICE_READ_ANYTHING,
|
CEF_CPAIT_PRICE_READ_ANYTHING,
|
||||||
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_PRICE_READ_ANYTHING,
|
CEF_CPAIT_PRODUCT_SPECIFICATIONS,
|
||||||
|
CEF_CPAIT_LENS_OVERLAY,
|
||||||
|
CEF_CPAIT_DISCOUNTS,
|
||||||
|
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_DISCOUNTS,
|
||||||
} cef_chrome_page_action_icon_type_t;
|
} cef_chrome_page_action_icon_type_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -3619,7 +3612,7 @@ typedef enum {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Permission types used with OnShowPermissionPrompt. Some types are
|
/// Permission types used with OnShowPermissionPrompt. Some types are
|
||||||
/// platform-specific or only supported with the Chrome runtime. Should be kept
|
/// platform-specific or only supported with Chrome style. Should be kept
|
||||||
/// in sync with Chromium's permissions::RequestType type.
|
/// in sync with Chromium's permissions::RequestType type.
|
||||||
///
|
///
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -3634,18 +3627,22 @@ typedef enum {
|
|||||||
CEF_PERMISSION_TYPE_DISK_QUOTA = 1 << 7,
|
CEF_PERMISSION_TYPE_DISK_QUOTA = 1 << 7,
|
||||||
CEF_PERMISSION_TYPE_LOCAL_FONTS = 1 << 8,
|
CEF_PERMISSION_TYPE_LOCAL_FONTS = 1 << 8,
|
||||||
CEF_PERMISSION_TYPE_GEOLOCATION = 1 << 9,
|
CEF_PERMISSION_TYPE_GEOLOCATION = 1 << 9,
|
||||||
CEF_PERMISSION_TYPE_IDENTITY_PROVIDER = 1 << 10,
|
CEF_PERMISSION_TYPE_HAND_TRACKING = 1 << 10,
|
||||||
CEF_PERMISSION_TYPE_IDLE_DETECTION = 1 << 11,
|
CEF_PERMISSION_TYPE_IDENTITY_PROVIDER = 1 << 11,
|
||||||
CEF_PERMISSION_TYPE_MIC_STREAM = 1 << 12,
|
CEF_PERMISSION_TYPE_IDLE_DETECTION = 1 << 12,
|
||||||
CEF_PERMISSION_TYPE_MIDI_SYSEX = 1 << 13,
|
CEF_PERMISSION_TYPE_MIC_STREAM = 1 << 13,
|
||||||
CEF_PERMISSION_TYPE_MULTIPLE_DOWNLOADS = 1 << 14,
|
CEF_PERMISSION_TYPE_MIDI_SYSEX = 1 << 14,
|
||||||
CEF_PERMISSION_TYPE_NOTIFICATIONS = 1 << 15,
|
CEF_PERMISSION_TYPE_MULTIPLE_DOWNLOADS = 1 << 15,
|
||||||
CEF_PERMISSION_TYPE_PROTECTED_MEDIA_IDENTIFIER = 1 << 16,
|
CEF_PERMISSION_TYPE_NOTIFICATIONS = 1 << 16,
|
||||||
CEF_PERMISSION_TYPE_REGISTER_PROTOCOL_HANDLER = 1 << 17,
|
CEF_PERMISSION_TYPE_KEYBOARD_LOCK = 1 << 17,
|
||||||
CEF_PERMISSION_TYPE_STORAGE_ACCESS = 1 << 18,
|
CEF_PERMISSION_TYPE_POINTER_LOCK = 1 << 18,
|
||||||
CEF_PERMISSION_TYPE_VR_SESSION = 1 << 19,
|
CEF_PERMISSION_TYPE_PROTECTED_MEDIA_IDENTIFIER = 1 << 19,
|
||||||
CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT = 1 << 20,
|
CEF_PERMISSION_TYPE_REGISTER_PROTOCOL_HANDLER = 1 << 20,
|
||||||
CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS = 1 << 21,
|
CEF_PERMISSION_TYPE_STORAGE_ACCESS = 1 << 21,
|
||||||
|
CEF_PERMISSION_TYPE_VR_SESSION = 1 << 22,
|
||||||
|
CEF_PERMISSION_TYPE_WEB_APP_INSTALLATION = 1 << 23,
|
||||||
|
CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT = 1 << 24,
|
||||||
|
CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS = 1 << 25,
|
||||||
} cef_permission_request_types_t;
|
} cef_permission_request_types_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -3853,6 +3850,67 @@ typedef enum {
|
|||||||
CEF_COLOR_VARIANT_EXPRESSIVE,
|
CEF_COLOR_VARIANT_EXPRESSIVE,
|
||||||
} cef_color_variant_t;
|
} cef_color_variant_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Specifies the task type variants supported by CefTaskManager.
|
||||||
|
/// Should be kept in sync with Chromium's task_manager::Task::Type type.
|
||||||
|
///
|
||||||
|
typedef enum {
|
||||||
|
CEF_TASK_TYPE_UNKNOWN = 0,
|
||||||
|
/// The main browser process.
|
||||||
|
CEF_TASK_TYPE_BROWSER,
|
||||||
|
/// A graphics process.
|
||||||
|
CEF_TASK_TYPE_GPU,
|
||||||
|
/// A Linux zygote process.
|
||||||
|
CEF_TASK_TYPE_ZYGOTE,
|
||||||
|
/// A browser utility process.
|
||||||
|
CEF_TASK_TYPE_UTILITY,
|
||||||
|
/// A normal WebContents renderer process.
|
||||||
|
CEF_TASK_TYPE_RENDERER,
|
||||||
|
/// An extension or app process.
|
||||||
|
CEF_TASK_TYPE_EXTENSION,
|
||||||
|
/// A browser plugin guest process.
|
||||||
|
CEF_TASK_TYPE_GUEST,
|
||||||
|
/// A plugin process.
|
||||||
|
CEF_TASK_TYPE_PLUGIN,
|
||||||
|
/// A sandbox helper process
|
||||||
|
CEF_TASK_TYPE_SANDBOX_HELPER,
|
||||||
|
/// A dedicated worker running on the renderer process.
|
||||||
|
CEF_TASK_TYPE_DEDICATED_WORKER,
|
||||||
|
/// A shared worker running on the renderer process.
|
||||||
|
CEF_TASK_TYPE_SHARED_WORKER,
|
||||||
|
/// A service worker running on the renderer process.
|
||||||
|
CEF_TASK_TYPE_SERVICE_WORKER,
|
||||||
|
} cef_task_type_t;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Structure representing task information provided by CefTaskManager.
|
||||||
|
///
|
||||||
|
typedef struct _cef_task_info_t {
|
||||||
|
/// The task ID.
|
||||||
|
int64_t id;
|
||||||
|
/// The task type.
|
||||||
|
cef_task_type_t type;
|
||||||
|
/// Set to true (1) if the task is killable.
|
||||||
|
int is_killable;
|
||||||
|
/// The task title.
|
||||||
|
cef_string_t title;
|
||||||
|
/// The CPU usage of the process on which the task is running. The value is
|
||||||
|
/// in the range zero to number_of_processors * 100%.
|
||||||
|
double cpu_usage;
|
||||||
|
/// The number of processors available on the system.
|
||||||
|
int number_of_processors;
|
||||||
|
/// The memory footprint of the task in bytes. A value of -1 means no valid
|
||||||
|
/// value is currently available.
|
||||||
|
int64_t memory;
|
||||||
|
/// The GPU memory usage of the task in bytes. A value of -1 means no valid
|
||||||
|
/// value is currently available.
|
||||||
|
int64_t gpu_memory;
|
||||||
|
/// Set to true (1) if this task process' GPU resource count is inflated
|
||||||
|
/// because it is counting other processes' resources (e.g, the GPU process
|
||||||
|
/// has this value set to true because it is the aggregate of all processes).
|
||||||
|
int is_gpu_memory_inflated;
|
||||||
|
} cef_task_info_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -37,7 +37,7 @@ extern "C" {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Supported content setting types. Some types are platform-specific or only
|
/// Supported content setting types. Some types are platform-specific or only
|
||||||
/// supported with the Chrome runtime. Should be kept in sync with Chromium's
|
/// supported with Chrome style. Should be kept in sync with Chromium's
|
||||||
/// ContentSettingsType type.
|
/// ContentSettingsType type.
|
||||||
///
|
///
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -380,6 +380,13 @@ typedef enum {
|
|||||||
/// a requesting-origin/top-level-site combination and persistent.
|
/// a requesting-origin/top-level-site combination and persistent.
|
||||||
CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_TPCD_TRIAL,
|
CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_TPCD_TRIAL,
|
||||||
|
|
||||||
|
/// Content Setting for a first-party origin trial that allows websites to
|
||||||
|
/// enable third-party cookie deprecation.
|
||||||
|
/// ALLOW (default): no effect (e.g. third-party cookies allowed, if not
|
||||||
|
/// blocked otherwise).
|
||||||
|
/// BLOCK: third-party cookies blocked, but 3PCD mitigations enabled.
|
||||||
|
CEF_CONTENT_SETTING_TOP_LEVEL_TPCD_ORIGIN_TRIAL,
|
||||||
|
|
||||||
/// Content setting used to indicate whether entering picture-in-picture
|
/// Content setting used to indicate whether entering picture-in-picture
|
||||||
/// automatically should be enabled.
|
/// automatically should be enabled.
|
||||||
CEF_CONTENT_SETTING_TYPE_AUTO_PICTURE_IN_PICTURE,
|
CEF_CONTENT_SETTING_TYPE_AUTO_PICTURE_IN_PICTURE,
|
||||||
@@ -428,6 +435,45 @@ typedef enum {
|
|||||||
/// Pointer Lock API allows a site to hide the cursor and have exclusive
|
/// Pointer Lock API allows a site to hide the cursor and have exclusive
|
||||||
/// access to mouse inputs.
|
/// access to mouse inputs.
|
||||||
CEF_CONTENT_SETTING_TYPE_POINTER_LOCK,
|
CEF_CONTENT_SETTING_TYPE_POINTER_LOCK,
|
||||||
|
|
||||||
|
/// Website setting which is used for UnusedSitePermissionsService to store
|
||||||
|
/// auto-revoked notification permissions from abusive sites.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_REVOKED_ABUSIVE_NOTIFICATION_PERMISSIONS,
|
||||||
|
|
||||||
|
/// Content setting that controls tracking protection status per site.
|
||||||
|
/// BLOCK: Protections enabled. This is the default state.
|
||||||
|
/// ALLOW: Protections disabled.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_TRACKING_PROTECTION,
|
||||||
|
|
||||||
|
/// With this permission, when the application calls `getDisplayMedia()`, a
|
||||||
|
/// system audio track can be returned without showing the display media
|
||||||
|
/// selection picker. The application can explicitly specify
|
||||||
|
/// `systemAudio: 'exclude'` or `video: true` to still show the display media
|
||||||
|
/// selection picker if needed. Please note that the setting only works for
|
||||||
|
/// WebUI.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_DISPLAY_MEDIA_SYSTEM_AUDIO,
|
||||||
|
|
||||||
|
/// Whether to use the higher-tier v8 optimizers for running JavaScript on the
|
||||||
|
/// page.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_OPTIMIZER,
|
||||||
|
|
||||||
|
/// Content Setting for the Storage Access Headers persistent origin trial
|
||||||
|
/// that allows origins to opt into the storage access header behavior. Should
|
||||||
|
/// be scoped to `REQUESTING_ORIGIN_AND_TOP_SCHEMEFUL_SITE_SCOPE` in order to
|
||||||
|
/// correspond to the design of persistent origin trials. See also:
|
||||||
|
/// https://github.com/cfredric/storage-access-headers
|
||||||
|
/// ALLOW: storage access request headers will be attached to cross-site
|
||||||
|
/// requests, and url requests will look for response headers from
|
||||||
|
/// origins to retry a request or load with storage access.
|
||||||
|
/// BLOCK (default): no effect.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS_HEADER_ORIGIN_TRIAL,
|
||||||
|
|
||||||
|
/// Whether or not sites can request Hand Tracking data within WebXR Sessions.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_HAND_TRACKING,
|
||||||
|
|
||||||
|
/// Website setting to indicate whether user has opted in to allow web apps to
|
||||||
|
/// install other web apps.
|
||||||
|
CEF_CONTENT_SETTING_TYPE_WEB_APP_INSTALLATION,
|
||||||
} cef_content_setting_types_t;
|
} cef_content_setting_types_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -32,7 +32,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "include/base/cef_build.h"
|
#include "include/base/cef_build.h"
|
||||||
#include "include/cef_config.h"
|
|
||||||
|
|
||||||
#if defined(OS_LINUX)
|
#if defined(OS_LINUX)
|
||||||
|
|
||||||
@@ -45,6 +44,7 @@ typedef struct _XDisplay XDisplay;
|
|||||||
#include "include/internal/cef_string.h"
|
#include "include/internal/cef_string.h"
|
||||||
#include "include/internal/cef_types_color.h"
|
#include "include/internal/cef_types_color.h"
|
||||||
#include "include/internal/cef_types_geometry.h"
|
#include "include/internal/cef_types_geometry.h"
|
||||||
|
#include "include/internal/cef_types_runtime.h"
|
||||||
|
|
||||||
// Handle types.
|
// Handle types.
|
||||||
#if defined(CEF_X11)
|
#if defined(CEF_X11)
|
||||||
@@ -136,6 +136,13 @@ typedef struct _cef_window_info_t {
|
|||||||
/// Pointer for the new browser window. Only used with windowed rendering.
|
/// Pointer for the new browser window. Only used with windowed rendering.
|
||||||
///
|
///
|
||||||
cef_window_handle_t window;
|
cef_window_handle_t window;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style. Alloy style will always be used if
|
||||||
|
/// |windowless_rendering_enabled| is true. See cef_runtime_style_t
|
||||||
|
/// documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t runtime_style;
|
||||||
} cef_window_info_t;
|
} cef_window_info_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
#include "include/internal/cef_string.h"
|
#include "include/internal/cef_string.h"
|
||||||
#include "include/internal/cef_types_color.h"
|
#include "include/internal/cef_types_color.h"
|
||||||
#include "include/internal/cef_types_geometry.h"
|
#include "include/internal/cef_types_geometry.h"
|
||||||
|
#include "include/internal/cef_types_runtime.h"
|
||||||
|
|
||||||
// Handle types.
|
// Handle types.
|
||||||
// Actually NSCursor*
|
// Actually NSCursor*
|
||||||
@@ -137,6 +138,13 @@ typedef struct _cef_window_info_t {
|
|||||||
/// rendering.
|
/// rendering.
|
||||||
///
|
///
|
||||||
cef_window_handle_t view;
|
cef_window_handle_t view;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style. Alloy style will always be used if
|
||||||
|
/// |windowless_rendering_enabled| is true or if |parent_view| is provided.
|
||||||
|
/// See cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t runtime_style;
|
||||||
} cef_window_info_t;
|
} cef_window_info_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
81
include/internal/cef_types_runtime.h
Normal file
81
include/internal/cef_types_runtime.h
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_INTERNAL_CEF_TYPES_RUNTIME_H_
|
||||||
|
#define CEF_INCLUDE_INTERNAL_CEF_TYPES_RUNTIME_H_
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
/// CEF supports both a Chrome runtime style (based on the Chrome UI layer) and
|
||||||
|
/// an Alloy runtime style (based on the Chromium content layer). Chrome style
|
||||||
|
/// provides the full Chrome UI and browser functionality whereas Alloy style
|
||||||
|
/// provides less default browser functionality but adds additional client
|
||||||
|
/// callbacks and support for windowless (off-screen) rendering. The style type
|
||||||
|
/// is individually configured for each window/browser at creation time and
|
||||||
|
/// different styles can be mixed during runtime. For additional comparative
|
||||||
|
/// details on runtime styles see
|
||||||
|
/// https://bitbucket.org/chromiumembedded/cef/wiki/Architecture.md#markdown-header-cef3
|
||||||
|
///
|
||||||
|
/// Windowless rendering will always use Alloy style. Windowed rendering with a
|
||||||
|
/// default window or client-provided parent window can configure the style via
|
||||||
|
/// CefWindowInfo.runtime_style. Windowed rendering with the Views framework can
|
||||||
|
/// configure the style via CefWindowDelegate::GetWindowRuntimeStyle and
|
||||||
|
/// CefBrowserViewDelegate::GetBrowserRuntimeStyle. Alloy style Windows with the
|
||||||
|
/// Views framework can host only Alloy style BrowserViews but Chrome style
|
||||||
|
/// Windows can host both style BrowserViews. Additionally, a Chrome style
|
||||||
|
/// Window can host at most one Chrome style BrowserView but potentially
|
||||||
|
/// multiple Alloy style BrowserViews. See CefWindowInfo.runtime_style
|
||||||
|
/// documentation for any additional platform-specific limitations.
|
||||||
|
///
|
||||||
|
typedef enum {
|
||||||
|
///
|
||||||
|
/// Use the default style. See above documentation for exceptions.
|
||||||
|
///
|
||||||
|
CEF_RUNTIME_STYLE_DEFAULT,
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Use Chrome style.
|
||||||
|
///
|
||||||
|
CEF_RUNTIME_STYLE_CHROME,
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Use Alloy style.
|
||||||
|
///
|
||||||
|
CEF_RUNTIME_STYLE_ALLOY,
|
||||||
|
} cef_runtime_style_t;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CEF_INCLUDE_INTERNAL_CEF_TYPES_RUNTIME_H_
|
@@ -39,6 +39,7 @@
|
|||||||
#include "include/internal/cef_string.h"
|
#include "include/internal/cef_string.h"
|
||||||
#include "include/internal/cef_types_color.h"
|
#include "include/internal/cef_types_color.h"
|
||||||
#include "include/internal/cef_types_geometry.h"
|
#include "include/internal/cef_types_geometry.h"
|
||||||
|
#include "include/internal/cef_types_runtime.h"
|
||||||
|
|
||||||
// Handle types.
|
// Handle types.
|
||||||
#define cef_cursor_handle_t HCURSOR
|
#define cef_cursor_handle_t HCURSOR
|
||||||
@@ -104,6 +105,13 @@ typedef struct _cef_window_info_t {
|
|||||||
/// Handle for the new browser window. Only used with windowed rendering.
|
/// Handle for the new browser window. Only used with windowed rendering.
|
||||||
///
|
///
|
||||||
cef_window_handle_t window;
|
cef_window_handle_t window;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style. Alloy style will always be used if
|
||||||
|
/// |windowless_rendering_enabled| is true. See cef_runtime_style_t
|
||||||
|
/// documentation for details.
|
||||||
|
///
|
||||||
|
cef_runtime_style_t runtime_style;
|
||||||
} cef_window_info_t;
|
} cef_window_info_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@@ -387,7 +387,6 @@ struct CefSettingsTraits {
|
|||||||
&target->framework_dir_path, copy);
|
&target->framework_dir_path, copy);
|
||||||
cef_string_set(src->main_bundle_path.str, src->main_bundle_path.length,
|
cef_string_set(src->main_bundle_path.str, src->main_bundle_path.length,
|
||||||
&target->main_bundle_path, copy);
|
&target->main_bundle_path, copy);
|
||||||
target->chrome_runtime = src->chrome_runtime;
|
|
||||||
target->multi_threaded_message_loop = src->multi_threaded_message_loop;
|
target->multi_threaded_message_loop = src->multi_threaded_message_loop;
|
||||||
target->external_message_pump = src->external_message_pump;
|
target->external_message_pump = src->external_message_pump;
|
||||||
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
target->windowless_rendering_enabled = src->windowless_rendering_enabled;
|
||||||
@@ -398,7 +397,6 @@ struct CefSettingsTraits {
|
|||||||
cef_string_set(src->root_cache_path.str, src->root_cache_path.length,
|
cef_string_set(src->root_cache_path.str, src->root_cache_path.length,
|
||||||
&target->root_cache_path, copy);
|
&target->root_cache_path, copy);
|
||||||
target->persist_session_cookies = src->persist_session_cookies;
|
target->persist_session_cookies = src->persist_session_cookies;
|
||||||
target->persist_user_preferences = src->persist_user_preferences;
|
|
||||||
|
|
||||||
cef_string_set(src->user_agent.str, src->user_agent.length,
|
cef_string_set(src->user_agent.str, src->user_agent.length,
|
||||||
&target->user_agent, copy);
|
&target->user_agent, copy);
|
||||||
@@ -417,7 +415,6 @@ struct CefSettingsTraits {
|
|||||||
&target->resources_dir_path, copy);
|
&target->resources_dir_path, copy);
|
||||||
cef_string_set(src->locales_dir_path.str, src->locales_dir_path.length,
|
cef_string_set(src->locales_dir_path.str, src->locales_dir_path.length,
|
||||||
&target->locales_dir_path, copy);
|
&target->locales_dir_path, copy);
|
||||||
target->pack_loading_disabled = src->pack_loading_disabled;
|
|
||||||
target->remote_debugging_port = src->remote_debugging_port;
|
target->remote_debugging_port = src->remote_debugging_port;
|
||||||
target->uncaught_exception_stack_size = src->uncaught_exception_stack_size;
|
target->uncaught_exception_stack_size = src->uncaught_exception_stack_size;
|
||||||
target->background_color = src->background_color;
|
target->background_color = src->background_color;
|
||||||
@@ -435,6 +432,10 @@ struct CefSettingsTraits {
|
|||||||
cef_string_set(src->chrome_policy_id.str, src->chrome_policy_id.length,
|
cef_string_set(src->chrome_policy_id.str, src->chrome_policy_id.length,
|
||||||
&target->chrome_policy_id, copy);
|
&target->chrome_policy_id, copy);
|
||||||
target->chrome_app_icon_id = src->chrome_app_icon_id;
|
target->chrome_app_icon_id = src->chrome_app_icon_id;
|
||||||
|
|
||||||
|
#if defined(OS_POSIX) && !defined(OS_ANDROID)
|
||||||
|
target->disable_signal_handlers = src->disable_signal_handlers;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -460,7 +461,6 @@ struct CefRequestContextSettingsTraits {
|
|||||||
cef_string_set(src->cache_path.str, src->cache_path.length,
|
cef_string_set(src->cache_path.str, src->cache_path.length,
|
||||||
&target->cache_path, copy);
|
&target->cache_path, copy);
|
||||||
target->persist_session_cookies = src->persist_session_cookies;
|
target->persist_session_cookies = src->persist_session_cookies;
|
||||||
target->persist_user_preferences = src->persist_user_preferences;
|
|
||||||
cef_string_set(src->accept_language_list.str,
|
cef_string_set(src->accept_language_list.str,
|
||||||
src->accept_language_list.length,
|
src->accept_language_list.length,
|
||||||
&target->accept_language_list, copy);
|
&target->accept_language_list, copy);
|
||||||
@@ -760,4 +760,63 @@ class CefAcceleratedPaintInfo : public cef_accelerated_paint_info_t {
|
|||||||
: cef_accelerated_paint_info_t(r) {}
|
: cef_accelerated_paint_info_t(r) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct CefTaskInfoTraits {
|
||||||
|
using struct_type = cef_task_info_t;
|
||||||
|
|
||||||
|
static inline void init(struct_type* s) {}
|
||||||
|
|
||||||
|
static inline void clear(struct_type* s) { cef_string_clear(&s->title); }
|
||||||
|
|
||||||
|
static inline void set(const struct_type* src,
|
||||||
|
struct_type* target,
|
||||||
|
bool copy) {
|
||||||
|
target->id = src->id;
|
||||||
|
target->type = src->type;
|
||||||
|
target->is_killable = src->is_killable;
|
||||||
|
cef_string_set(src->title.str, src->title.length, &target->title, copy);
|
||||||
|
target->cpu_usage = src->cpu_usage;
|
||||||
|
target->number_of_processors = src->number_of_processors;
|
||||||
|
target->memory = src->memory;
|
||||||
|
target->gpu_memory = src->gpu_memory;
|
||||||
|
target->is_gpu_memory_inflated = src->is_gpu_memory_inflated;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Class representing task information.
|
||||||
|
///
|
||||||
|
using CefTaskInfo = CefStructBase<CefTaskInfoTraits>;
|
||||||
|
|
||||||
|
struct CefLinuxWindowPropertiesTraits {
|
||||||
|
using struct_type = cef_linux_window_properties_t;
|
||||||
|
|
||||||
|
static inline void init(struct_type* s) {}
|
||||||
|
|
||||||
|
static inline void clear(struct_type* s) {
|
||||||
|
cef_string_clear(&s->wayland_app_id);
|
||||||
|
cef_string_clear(&s->wm_class_class);
|
||||||
|
cef_string_clear(&s->wm_class_name);
|
||||||
|
cef_string_clear(&s->wm_role_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void set(const struct_type* src,
|
||||||
|
struct_type* target,
|
||||||
|
bool copy) {
|
||||||
|
cef_string_set(src->wayland_app_id.str, src->wayland_app_id.length,
|
||||||
|
&target->wayland_app_id, copy);
|
||||||
|
cef_string_set(src->wm_class_class.str, src->wm_class_class.length,
|
||||||
|
&target->wm_class_class, copy);
|
||||||
|
cef_string_set(src->wm_class_name.str, src->wm_class_name.length,
|
||||||
|
&target->wm_class_name, copy);
|
||||||
|
cef_string_set(src->wm_role_name.str, src->wm_role_name.length,
|
||||||
|
&target->wm_role_name, copy);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Class representing the Linux-specific window properties required
|
||||||
|
/// for the window managers to correct group and display the window.
|
||||||
|
///
|
||||||
|
using CefLinuxWindowProperties = CefStructBase<CefLinuxWindowPropertiesTraits>;
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_INTERNAL_CEF_TYPES_WRAPPERS_H_
|
#endif // CEF_INCLUDE_INTERNAL_CEF_TYPES_WRAPPERS_H_
|
||||||
|
@@ -73,6 +73,7 @@ struct CefWindowInfoTraits {
|
|||||||
target->shared_texture_enabled = src->shared_texture_enabled;
|
target->shared_texture_enabled = src->shared_texture_enabled;
|
||||||
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
target->external_begin_frame_enabled = src->external_begin_frame_enabled;
|
||||||
target->window = src->window;
|
target->window = src->window;
|
||||||
|
target->runtime_style = src->runtime_style;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -130,6 +131,7 @@ class CefWindowInfo : public CefStructBase<CefWindowInfoTraits> {
|
|||||||
void SetAsWindowless(CefWindowHandle parent) {
|
void SetAsWindowless(CefWindowHandle parent) {
|
||||||
windowless_rendering_enabled = TRUE;
|
windowless_rendering_enabled = TRUE;
|
||||||
parent_window = parent;
|
parent_window = parent;
|
||||||
|
runtime_style = CEF_RUNTIME_STYLE_ALLOY;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -67,4 +67,12 @@ void CefExecuteJavaScriptWithUserGestureForTests(CefRefPtr<CefFrame> frame,
|
|||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
void CefSetDataDirectoryForTests(const CefString& dir);
|
void CefSetDataDirectoryForTests(const CefString& dir);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns true if |feature_name| is enabled by default, command line or field
|
||||||
|
/// trial. This supports a short list of curated values that are queried by unit
|
||||||
|
/// tests.
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
bool CefIsFeatureEnabledForTests(const CefString& feature_name);
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_TEST_CEF_TEST_HELPERS_H_
|
#endif // CEF_INCLUDE_TEST_CEF_TEST_HELPERS_H_
|
||||||
|
@@ -49,6 +49,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "include/cef_base.h"
|
#include "include/cef_base.h"
|
||||||
#include "include/cef_request.h"
|
#include "include/cef_request.h"
|
||||||
|
|
||||||
|
@@ -82,7 +82,7 @@ class CefBrowserView : public CefView {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Returns the Chrome toolbar associated with this BrowserView. Only
|
/// Returns the Chrome toolbar associated with this BrowserView. Only
|
||||||
/// supported when using the Chrome runtime. The CefBrowserViewDelegate::
|
/// supported when using Chrome style. The CefBrowserViewDelegate::
|
||||||
/// GetChromeToolbarType() method must return a value other than
|
/// GetChromeToolbarType() method must return a value other than
|
||||||
/// CEF_CTT_NONE and the toolbar will not be available until after this
|
/// CEF_CTT_NONE and the toolbar will not be available until after this
|
||||||
/// BrowserView is added to a CefWindow and CefViewDelegate::OnWindowChanged()
|
/// BrowserView is added to a CefWindow and CefViewDelegate::OnWindowChanged()
|
||||||
@@ -96,7 +96,7 @@ class CefBrowserView : public CefView {
|
|||||||
/// content (`keydown` event handler) or CefKeyboardHandler. Normal priority
|
/// content (`keydown` event handler) or CefKeyboardHandler. Normal priority
|
||||||
/// accelerators can be registered via CefWindow::SetAccelerator (with
|
/// accelerators can be registered via CefWindow::SetAccelerator (with
|
||||||
/// |high_priority|=false) or internally for standard accelerators supported
|
/// |high_priority|=false) or internally for standard accelerators supported
|
||||||
/// by the Chrome runtime. If |prefer_accelerators| is true then the matching
|
/// by Chrome style. If |prefer_accelerators| is true then the matching
|
||||||
/// accelerator will be triggered immediately (calling
|
/// accelerator will be triggered immediately (calling
|
||||||
/// CefWindowDelegate::OnAccelerator or CefCommandHandler::OnChromeCommand
|
/// CefWindowDelegate::OnAccelerator or CefCommandHandler::OnChromeCommand
|
||||||
/// respectively) and the event will not be forwarded to the web content or
|
/// respectively) and the event will not be forwarded to the web content or
|
||||||
@@ -107,6 +107,13 @@ class CefBrowserView : public CefView {
|
|||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void SetPreferAccelerators(bool prefer_accelerators) = 0;
|
virtual void SetPreferAccelerators(bool prefer_accelerators) = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this BrowserView (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
/*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/
|
||||||
|
virtual cef_runtime_style_t GetRuntimeStyle() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_VIEWS_CEF_BROWSER_VIEW_H_
|
#endif // CEF_INCLUDE_VIEWS_CEF_BROWSER_VIEW_H_
|
||||||
|
@@ -132,14 +132,23 @@ class CefBrowserViewDelegate : public CefViewDelegate {
|
|||||||
///
|
///
|
||||||
/// Called when |browser_view| receives a gesture command. Return true to
|
/// Called when |browser_view| receives a gesture command. Return true to
|
||||||
/// handle (or disable) a |gesture_command| or false to propagate the gesture
|
/// handle (or disable) a |gesture_command| or false to propagate the gesture
|
||||||
/// to the browser for default handling. With the Chrome runtime these
|
/// to the browser for default handling. With Chrome style these commands can
|
||||||
/// commands can also be handled via CefCommandHandler::OnChromeCommand.
|
/// also be handled via CefCommandHandler::OnChromeCommand.
|
||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual bool OnGestureCommand(CefRefPtr<CefBrowserView> browser_view,
|
virtual bool OnGestureCommand(CefRefPtr<CefBrowserView> browser_view,
|
||||||
cef_gesture_command_t gesture_command) {
|
cef_gesture_command_t gesture_command) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style for this BrowserView. See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
/*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/
|
||||||
|
virtual cef_runtime_style_t GetBrowserRuntimeStyle() {
|
||||||
|
return CEF_RUNTIME_STYLE_DEFAULT;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_VIEWS_CEF_BROWSER_VIEW_DELEGATE_H_
|
#endif // CEF_INCLUDE_VIEWS_CEF_BROWSER_VIEW_DELEGATE_H_
|
||||||
|
@@ -414,6 +414,13 @@ class CefWindow : public CefPanel {
|
|||||||
///
|
///
|
||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void ThemeChanged() = 0;
|
virtual void ThemeChanged() = 0;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Returns the runtime style for this Window (ALLOY or CHROME). See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
/*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/
|
||||||
|
virtual cef_runtime_style_t GetRuntimeStyle() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_VIEWS_CEF_WINDOW_H_
|
#endif // CEF_INCLUDE_VIEWS_CEF_WINDOW_H_
|
||||||
|
@@ -89,7 +89,7 @@ class CefWindowDelegate : public CefPanelDelegate {
|
|||||||
/// the transition occurs asynchronously with |is_competed| set to false when
|
/// the transition occurs asynchronously with |is_competed| set to false when
|
||||||
/// the transition starts and true after the transition completes. On other
|
/// the transition starts and true after the transition completes. On other
|
||||||
/// platforms the transition occurs synchronously with |is_completed| set to
|
/// platforms the transition occurs synchronously with |is_completed| set to
|
||||||
/// true after the transition completes. With the Alloy runtime you must also
|
/// true after the transition completes. With Alloy style you must also
|
||||||
/// implement CefDisplayHandler::OnFullscreenModeChange to handle fullscreen
|
/// implement CefDisplayHandler::OnFullscreenModeChange to handle fullscreen
|
||||||
/// transitions initiated by browser content.
|
/// transitions initiated by browser content.
|
||||||
///
|
///
|
||||||
@@ -251,12 +251,10 @@ class CefWindowDelegate : public CefPanelDelegate {
|
|||||||
/// Chrome theme colors will be applied and this callback will be triggered
|
/// Chrome theme colors will be applied and this callback will be triggered
|
||||||
/// if/when a BrowserView is added to the Window's component hierarchy. Chrome
|
/// if/when a BrowserView is added to the Window's component hierarchy. Chrome
|
||||||
/// theme colors can be configured on a per-RequestContext basis using
|
/// theme colors can be configured on a per-RequestContext basis using
|
||||||
/// CefRequestContext::SetChromeColorScheme or (Chrome runtime only) by
|
/// CefRequestContext::SetChromeColorScheme or (Chrome style only) by
|
||||||
/// visiting chrome://settings/manageProfile. Any theme changes using those
|
/// visiting chrome://settings/manageProfile. Any theme changes using those
|
||||||
/// mechanisms will also trigger this callback. Chrome theme colors will be
|
/// mechanisms will also trigger this callback. Chrome theme colors will be
|
||||||
/// persisted and restored from disk cache with the Chrome runtime, and with
|
/// persisted and restored from disk cache.
|
||||||
/// the Alloy runtime if persist_user_preferences is set to true via
|
|
||||||
/// CefSettings or CefRequestContextSettings.
|
|
||||||
///
|
///
|
||||||
/// This callback is not triggered on Window creation so clients that wish to
|
/// This callback is not triggered on Window creation so clients that wish to
|
||||||
/// customize the initial native/OS theme must call CefWindow::SetThemeColor
|
/// customize the initial native/OS theme must call CefWindow::SetThemeColor
|
||||||
@@ -271,6 +269,25 @@ class CefWindowDelegate : public CefPanelDelegate {
|
|||||||
/*--cef()--*/
|
/*--cef()--*/
|
||||||
virtual void OnThemeColorsChanged(CefRefPtr<CefWindow> window,
|
virtual void OnThemeColorsChanged(CefRefPtr<CefWindow> window,
|
||||||
bool chrome_theme) {}
|
bool chrome_theme) {}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Optionally change the runtime style for this Window. See
|
||||||
|
/// cef_runtime_style_t documentation for details.
|
||||||
|
///
|
||||||
|
/*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/
|
||||||
|
virtual cef_runtime_style_t GetWindowRuntimeStyle() {
|
||||||
|
return CEF_RUNTIME_STYLE_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Return Linux-specific window properties for correctly handling by window
|
||||||
|
/// managers
|
||||||
|
///
|
||||||
|
/*--cef()--*/
|
||||||
|
virtual bool GetLinuxWindowProperties(CefRefPtr<CefWindow> window,
|
||||||
|
CefLinuxWindowProperties& properties) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CEF_INCLUDE_VIEWS_CEF_WINDOW_DELEGATE_H_
|
#endif // CEF_INCLUDE_VIEWS_CEF_WINDOW_DELEGATE_H_
|
||||||
|
@@ -1,474 +0,0 @@
|
|||||||
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
#include "libcef/browser/alloy/alloy_browser_context.h"
|
|
||||||
|
|
||||||
#include <map>
|
|
||||||
#include <memory>
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
#include "libcef/browser/download_manager_delegate.h"
|
|
||||||
#include "libcef/browser/extensions/extension_system.h"
|
|
||||||
#include "libcef/browser/prefs/browser_prefs.h"
|
|
||||||
#include "libcef/browser/ssl_host_state_delegate.h"
|
|
||||||
#include "libcef/browser/thread_util.h"
|
|
||||||
#include "libcef/common/cef_switches.h"
|
|
||||||
#include "libcef/common/extensions/extensions_util.h"
|
|
||||||
|
|
||||||
#include "base/command_line.h"
|
|
||||||
#include "base/files/file_util.h"
|
|
||||||
#include "base/lazy_instance.h"
|
|
||||||
#include "base/logging.h"
|
|
||||||
#include "base/strings/string_util.h"
|
|
||||||
#include "chrome/browser/font_family_cache.h"
|
|
||||||
#include "chrome/browser/permissions/permission_manager_factory.h"
|
|
||||||
#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
|
|
||||||
#include "chrome/browser/profiles/profile_key.h"
|
|
||||||
#include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h"
|
|
||||||
#include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h"
|
|
||||||
#include "chrome/common/pref_names.h"
|
|
||||||
#include "components/guest_view/browser/guest_view_manager.h"
|
|
||||||
#include "components/keyed_service/content/browser_context_dependency_manager.h"
|
|
||||||
#include "components/keyed_service/core/simple_dependency_manager.h"
|
|
||||||
#include "components/keyed_service/core/simple_key_map.h"
|
|
||||||
#include "components/permissions/permission_manager.h"
|
|
||||||
#include "components/prefs/pref_service.h"
|
|
||||||
#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
|
|
||||||
#include "components/user_prefs/user_prefs.h"
|
|
||||||
#include "components/visitedlink/browser/visitedlink_event_listener.h"
|
|
||||||
#include "components/visitedlink/browser/visitedlink_writer.h"
|
|
||||||
#include "components/zoom/zoom_event_manager.h"
|
|
||||||
#include "content/public/browser/browser_task_traits.h"
|
|
||||||
#include "content/public/browser/browser_thread.h"
|
|
||||||
#include "content/public/browser/download_manager.h"
|
|
||||||
#include "content/public/browser/resource_context.h"
|
|
||||||
#include "content/public/browser/storage_partition.h"
|
|
||||||
#include "extensions/browser/extension_protocols.h"
|
|
||||||
#include "extensions/browser/process_manager.h"
|
|
||||||
#include "extensions/common/constants.h"
|
|
||||||
#include "net/proxy_resolution/proxy_config_service.h"
|
|
||||||
#include "services/network/public/mojom/cors_origin_pattern.mojom.h"
|
|
||||||
|
|
||||||
using content::BrowserThread;
|
|
||||||
|
|
||||||
// Creates and manages VisitedLinkEventListener objects for each
|
|
||||||
// AlloyBrowserContext sharing the same VisitedLinkWriter.
|
|
||||||
class CefVisitedLinkListener : public visitedlink::VisitedLinkWriter::Listener {
|
|
||||||
public:
|
|
||||||
CefVisitedLinkListener() { DCHECK(listener_map_.empty()); }
|
|
||||||
|
|
||||||
CefVisitedLinkListener(const CefVisitedLinkListener&) = delete;
|
|
||||||
CefVisitedLinkListener& operator=(const CefVisitedLinkListener&) = delete;
|
|
||||||
|
|
||||||
void CreateListenerForContext(content::BrowserContext* context) {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
auto listener =
|
|
||||||
std::make_unique<visitedlink::VisitedLinkEventListener>(context);
|
|
||||||
listener_map_.insert(std::make_pair(context, std::move(listener)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void RemoveListenerForContext(content::BrowserContext* context) {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
ListenerMap::iterator it = listener_map_.find(context);
|
|
||||||
DCHECK(it != listener_map_.end());
|
|
||||||
listener_map_.erase(it);
|
|
||||||
}
|
|
||||||
|
|
||||||
// visitedlink::VisitedLinkWriter::Listener methods.
|
|
||||||
|
|
||||||
void NewTable(base::ReadOnlySharedMemoryRegion* table_region) override {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
ListenerMap::iterator it = listener_map_.begin();
|
|
||||||
for (; it != listener_map_.end(); ++it) {
|
|
||||||
it->second->NewTable(table_region);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Add(visitedlink::VisitedLinkCommon::Fingerprint fingerprint) override {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
ListenerMap::iterator it = listener_map_.begin();
|
|
||||||
for (; it != listener_map_.end(); ++it) {
|
|
||||||
it->second->Add(fingerprint);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reset(bool invalidate_hashes) override {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
ListenerMap::iterator it = listener_map_.begin();
|
|
||||||
for (; it != listener_map_.end(); ++it) {
|
|
||||||
it->second->Reset(invalidate_hashes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Map of AlloyBrowserContext to the associated VisitedLinkEventListener.
|
|
||||||
using ListenerMap =
|
|
||||||
std::map<const content::BrowserContext*,
|
|
||||||
std::unique_ptr<visitedlink::VisitedLinkEventListener>>;
|
|
||||||
ListenerMap listener_map_;
|
|
||||||
};
|
|
||||||
|
|
||||||
AlloyBrowserContext::AlloyBrowserContext(
|
|
||||||
const CefRequestContextSettings& settings)
|
|
||||||
: CefBrowserContext(settings) {}
|
|
||||||
|
|
||||||
AlloyBrowserContext::~AlloyBrowserContext() = default;
|
|
||||||
|
|
||||||
bool AlloyBrowserContext::IsInitialized() const {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
return !!key_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::StoreOrTriggerInitCallback(
|
|
||||||
base::OnceClosure callback) {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
// Initialization is always synchronous.
|
|
||||||
std::move(callback).Run();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::Initialize() {
|
|
||||||
CefBrowserContext::Initialize();
|
|
||||||
|
|
||||||
key_ = std::make_unique<ProfileKey>(cache_path_);
|
|
||||||
SimpleKeyMap::GetInstance()->Associate(this, key_.get());
|
|
||||||
|
|
||||||
// Initialize the PrefService object.
|
|
||||||
pref_service_ = browser_prefs::CreatePrefService(
|
|
||||||
this, cache_path_, !!settings_.persist_user_preferences);
|
|
||||||
|
|
||||||
// This must be called before creating any services to avoid hitting
|
|
||||||
// DependencyManager::AssertContextWasntDestroyed when creating/destroying
|
|
||||||
// multiple browser contexts (due to pointer address reuse).
|
|
||||||
BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices(
|
|
||||||
this);
|
|
||||||
|
|
||||||
const bool extensions_enabled = extensions::ExtensionsEnabled();
|
|
||||||
if (extensions_enabled) {
|
|
||||||
// Create the custom ExtensionSystem first because other KeyedServices
|
|
||||||
// depend on it.
|
|
||||||
extension_system_ = static_cast<extensions::CefExtensionSystem*>(
|
|
||||||
extensions::ExtensionSystem::Get(this));
|
|
||||||
extension_system_->InitForRegularProfile(true);
|
|
||||||
|
|
||||||
// Make sure the ProcessManager is created so that it receives extension
|
|
||||||
// load notifications. This is necessary for the proper initialization of
|
|
||||||
// background/event pages.
|
|
||||||
extensions::ProcessManager::Get(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize visited links management.
|
|
||||||
base::FilePath visited_link_path;
|
|
||||||
if (!cache_path_.empty()) {
|
|
||||||
visited_link_path = cache_path_.Append(FILE_PATH_LITERAL("Visited Links"));
|
|
||||||
}
|
|
||||||
visitedlink_listener_ = new CefVisitedLinkListener;
|
|
||||||
visitedlink_master_ = std::make_unique<visitedlink::VisitedLinkWriter>(
|
|
||||||
visitedlink_listener_, this, !visited_link_path.empty(), false,
|
|
||||||
visited_link_path, 0);
|
|
||||||
visitedlink_listener_->CreateListenerForContext(this);
|
|
||||||
visitedlink_master_->Init();
|
|
||||||
|
|
||||||
// Initialize proxy configuration tracker.
|
|
||||||
pref_proxy_config_tracker_ = std::make_unique<PrefProxyConfigTrackerImpl>(
|
|
||||||
GetPrefs(), content::GetIOThreadTaskRunner({}));
|
|
||||||
|
|
||||||
// Spell checking support and possibly other subsystems retrieve the
|
|
||||||
// PrefService associated with a BrowserContext via UserPrefs::Get().
|
|
||||||
PrefService* pref_service = GetPrefs();
|
|
||||||
DCHECK(pref_service);
|
|
||||||
user_prefs::UserPrefs::Set(this, pref_service);
|
|
||||||
key_->SetPrefs(pref_service);
|
|
||||||
|
|
||||||
if (extensions_enabled) {
|
|
||||||
extension_system_->Init();
|
|
||||||
}
|
|
||||||
|
|
||||||
ChromePluginServiceFilter::GetInstance()->RegisterProfile(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::Shutdown() {
|
|
||||||
CefBrowserContext::Shutdown();
|
|
||||||
|
|
||||||
// Send notifications to clean up objects associated with this Profile.
|
|
||||||
MaybeSendDestroyedNotification();
|
|
||||||
|
|
||||||
ChromePluginServiceFilter::GetInstance()->UnregisterProfile(this);
|
|
||||||
|
|
||||||
// Remove any BrowserContextKeyedServiceFactory associations. This must be
|
|
||||||
// called before the ProxyService owned by AlloyBrowserContext is destroyed.
|
|
||||||
// The SimpleDependencyManager should always be passed after the
|
|
||||||
// BrowserContextDependencyManager. This is because the KeyedService instances
|
|
||||||
// in the BrowserContextDependencyManager's dependency graph can depend on the
|
|
||||||
// ones in the SimpleDependencyManager's graph.
|
|
||||||
DependencyManager::PerformInterlockedTwoPhaseShutdown(
|
|
||||||
BrowserContextDependencyManager::GetInstance(), this,
|
|
||||||
SimpleDependencyManager::GetInstance(), key_.get());
|
|
||||||
|
|
||||||
key_.reset();
|
|
||||||
SimpleKeyMap::GetInstance()->Dissociate(this);
|
|
||||||
|
|
||||||
// Shuts down the storage partitions associated with this browser context.
|
|
||||||
// This must be called before the browser context is actually destroyed
|
|
||||||
// and before a clean-up task for its corresponding IO thread residents
|
|
||||||
// (e.g. ResourceContext) is posted, so that the classes that hung on
|
|
||||||
// StoragePartition can have time to do necessary cleanups on IO thread.
|
|
||||||
ShutdownStoragePartitions();
|
|
||||||
|
|
||||||
visitedlink_listener_->RemoveListenerForContext(this);
|
|
||||||
|
|
||||||
// The FontFamilyCache references the ProxyService so delete it before the
|
|
||||||
// ProxyService is deleted.
|
|
||||||
SetUserData(&kFontFamilyCacheKey, nullptr);
|
|
||||||
|
|
||||||
pref_proxy_config_tracker_->DetachFromPrefService();
|
|
||||||
|
|
||||||
// Delete the download manager delegate here because otherwise we'll crash
|
|
||||||
// when it's accessed from the content::BrowserContext destructor.
|
|
||||||
if (download_manager_delegate_) {
|
|
||||||
download_manager_delegate_.reset(nullptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::RemoveCefRequestContext(
|
|
||||||
CefRequestContextImpl* context) {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
|
|
||||||
if (extensions::ExtensionsEnabled()) {
|
|
||||||
extension_system()->OnRequestContextDeleted(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
// May result in |this| being deleted.
|
|
||||||
CefBrowserContext::RemoveCefRequestContext(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::LoadExtension(
|
|
||||||
const CefString& root_directory,
|
|
||||||
CefRefPtr<CefDictionaryValue> manifest,
|
|
||||||
CefRefPtr<CefExtensionHandler> handler,
|
|
||||||
CefRefPtr<CefRequestContext> loader_context) {
|
|
||||||
if (!extensions::ExtensionsEnabled()) {
|
|
||||||
if (handler) {
|
|
||||||
handler->OnExtensionLoadFailed(ERR_ABORTED);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (manifest && manifest->GetSize() > 0) {
|
|
||||||
CefDictionaryValueImpl* value_impl =
|
|
||||||
static_cast<CefDictionaryValueImpl*>(manifest.get());
|
|
||||||
auto value = value_impl->CopyValue();
|
|
||||||
extension_system()->LoadExtension(std::move(value.GetDict()),
|
|
||||||
root_directory, false /* builtin */,
|
|
||||||
loader_context, handler);
|
|
||||||
} else {
|
|
||||||
extension_system()->LoadExtension(root_directory, false /* builtin */,
|
|
||||||
loader_context, handler);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserContext::GetExtensions(std::vector<CefString>& extension_ids) {
|
|
||||||
if (!extensions::ExtensionsEnabled()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
extensions::CefExtensionSystem::ExtensionMap extension_map =
|
|
||||||
extension_system()->GetExtensions();
|
|
||||||
extensions::CefExtensionSystem::ExtensionMap::const_iterator it =
|
|
||||||
extension_map.begin();
|
|
||||||
for (; it != extension_map.end(); ++it) {
|
|
||||||
extension_ids.push_back(it->second->GetIdentifier());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
CefRefPtr<CefExtension> AlloyBrowserContext::GetExtension(
|
|
||||||
const CefString& extension_id) {
|
|
||||||
if (!extensions::ExtensionsEnabled()) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return extension_system()->GetExtension(extension_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserContext::UnloadExtension(const CefString& extension_id) {
|
|
||||||
DCHECK(extensions::ExtensionsEnabled());
|
|
||||||
return extension_system()->UnloadExtension(extension_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserContext::IsPrintPreviewSupported() const {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
if (!extensions::PrintPreviewEnabled()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return !GetPrefs()->GetBoolean(prefs::kPrintPreviewDisabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
content::ClientHintsControllerDelegate*
|
|
||||||
AlloyBrowserContext::GetClientHintsControllerDelegate() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
ChromeZoomLevelPrefs* AlloyBrowserContext::GetZoomLevelPrefs() {
|
|
||||||
return static_cast<ChromeZoomLevelPrefs*>(
|
|
||||||
GetStoragePartition(nullptr)->GetZoomLevelDelegate());
|
|
||||||
}
|
|
||||||
|
|
||||||
scoped_refptr<network::SharedURLLoaderFactory>
|
|
||||||
AlloyBrowserContext::GetURLLoaderFactory() {
|
|
||||||
return GetDefaultStoragePartition()->GetURLLoaderFactoryForBrowserProcess();
|
|
||||||
}
|
|
||||||
|
|
||||||
base::FilePath AlloyBrowserContext::GetPath() {
|
|
||||||
return cache_path_;
|
|
||||||
}
|
|
||||||
|
|
||||||
base::FilePath AlloyBrowserContext::GetPath() const {
|
|
||||||
return cache_path_;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<content::ZoomLevelDelegate>
|
|
||||||
AlloyBrowserContext::CreateZoomLevelDelegate(
|
|
||||||
const base::FilePath& partition_path) {
|
|
||||||
if (cache_path_.empty()) {
|
|
||||||
return std::unique_ptr<content::ZoomLevelDelegate>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return base::WrapUnique(new ChromeZoomLevelPrefs(
|
|
||||||
GetPrefs(), cache_path_, partition_path,
|
|
||||||
zoom::ZoomEventManager::GetForBrowserContext(this)->GetWeakPtr()));
|
|
||||||
}
|
|
||||||
|
|
||||||
content::DownloadManagerDelegate*
|
|
||||||
AlloyBrowserContext::GetDownloadManagerDelegate() {
|
|
||||||
if (!download_manager_delegate_) {
|
|
||||||
download_manager_delegate_ =
|
|
||||||
std::make_unique<CefDownloadManagerDelegate>(GetDownloadManager());
|
|
||||||
}
|
|
||||||
return download_manager_delegate_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
content::BrowserPluginGuestManager* AlloyBrowserContext::GetGuestManager() {
|
|
||||||
if (!extensions::ExtensionsEnabled()) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
return guest_view::GuestViewManager::FromBrowserContext(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
storage::SpecialStoragePolicy* AlloyBrowserContext::GetSpecialStoragePolicy() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::PlatformNotificationService*
|
|
||||||
AlloyBrowserContext::GetPlatformNotificationService() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::PushMessagingService* AlloyBrowserContext::GetPushMessagingService() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::StorageNotificationService*
|
|
||||||
AlloyBrowserContext::GetStorageNotificationService() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::SSLHostStateDelegate* AlloyBrowserContext::GetSSLHostStateDelegate() {
|
|
||||||
if (!ssl_host_state_delegate_) {
|
|
||||||
ssl_host_state_delegate_ = std::make_unique<CefSSLHostStateDelegate>();
|
|
||||||
}
|
|
||||||
return ssl_host_state_delegate_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
content::PermissionControllerDelegate*
|
|
||||||
AlloyBrowserContext::GetPermissionControllerDelegate() {
|
|
||||||
return PermissionManagerFactory::GetForProfile(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
content::BackgroundFetchDelegate*
|
|
||||||
AlloyBrowserContext::GetBackgroundFetchDelegate() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::BackgroundSyncController*
|
|
||||||
AlloyBrowserContext::GetBackgroundSyncController() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::BrowsingDataRemoverDelegate*
|
|
||||||
AlloyBrowserContext::GetBrowsingDataRemoverDelegate() {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
content::ReduceAcceptLanguageControllerDelegate*
|
|
||||||
AlloyBrowserContext::GetReduceAcceptLanguageControllerDelegate() {
|
|
||||||
return ReduceAcceptLanguageFactory::GetForProfile(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
PrefService* AlloyBrowserContext::GetPrefs() {
|
|
||||||
return pref_service_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
const PrefService* AlloyBrowserContext::GetPrefs() const {
|
|
||||||
return pref_service_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
ProfileKey* AlloyBrowserContext::GetProfileKey() const {
|
|
||||||
DCHECK(key_);
|
|
||||||
return key_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
policy::SchemaRegistryService*
|
|
||||||
AlloyBrowserContext::GetPolicySchemaRegistryService() {
|
|
||||||
DCHECK(false);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
policy::UserCloudPolicyManager*
|
|
||||||
AlloyBrowserContext::GetUserCloudPolicyManager() {
|
|
||||||
DCHECK(false);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
policy::ProfileCloudPolicyManager*
|
|
||||||
AlloyBrowserContext::GetProfileCloudPolicyManager() {
|
|
||||||
DCHECK(false);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
policy::ProfilePolicyConnector*
|
|
||||||
AlloyBrowserContext::GetProfilePolicyConnector() {
|
|
||||||
DCHECK(false);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
const policy::ProfilePolicyConnector*
|
|
||||||
AlloyBrowserContext::GetProfilePolicyConnector() const {
|
|
||||||
DCHECK(false);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserContext::IsNewProfile() const {
|
|
||||||
DCHECK(false);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::RebuildTable(
|
|
||||||
const scoped_refptr<URLEnumerator>& enumerator) {
|
|
||||||
// Called when visited links will not or cannot be loaded from disk.
|
|
||||||
enumerator->OnComplete(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
DownloadPrefs* AlloyBrowserContext::GetDownloadPrefs() {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
if (!download_prefs_) {
|
|
||||||
download_prefs_ = std::make_unique<DownloadPrefs>(this);
|
|
||||||
}
|
|
||||||
return download_prefs_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserContext::AddVisitedURLs(const std::vector<GURL>& urls) {
|
|
||||||
visitedlink_master_->AddURLs(urls);
|
|
||||||
}
|
|
@@ -1,146 +0,0 @@
|
|||||||
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
#ifndef CEF_LIBCEF_BROWSER_ALLOY_ALLOY_BROWSER_CONTEXT_H_
|
|
||||||
#define CEF_LIBCEF_BROWSER_ALLOY_ALLOY_BROWSER_CONTEXT_H_
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "include/cef_request_context_handler.h"
|
|
||||||
#include "libcef/browser/alloy/chrome_profile_alloy.h"
|
|
||||||
#include "libcef/browser/browser_context.h"
|
|
||||||
#include "libcef/browser/request_context_handler_map.h"
|
|
||||||
|
|
||||||
#include "chrome/browser/download/download_prefs.h"
|
|
||||||
#include "components/proxy_config/pref_proxy_config_tracker.h"
|
|
||||||
#include "components/visitedlink/browser/visitedlink_delegate.h"
|
|
||||||
|
|
||||||
class CefDownloadManagerDelegate;
|
|
||||||
class CefSSLHostStateDelegate;
|
|
||||||
class CefVisitedLinkListener;
|
|
||||||
class PrefService;
|
|
||||||
|
|
||||||
namespace extensions {
|
|
||||||
class CefExtensionSystem;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace visitedlink {
|
|
||||||
class VisitedLinkWriter;
|
|
||||||
}
|
|
||||||
|
|
||||||
// See CefBrowserContext documentation for usage. Only accessed on the UI thread
|
|
||||||
// unless otherwise indicated. ChromeProfileAlloy must be the first listed base
|
|
||||||
// class to avoid issues when casting between void* and content::BrowserContext*
|
|
||||||
// in Chromium code.
|
|
||||||
class AlloyBrowserContext : public ChromeProfileAlloy,
|
|
||||||
public CefBrowserContext,
|
|
||||||
public visitedlink::VisitedLinkDelegate {
|
|
||||||
public:
|
|
||||||
explicit AlloyBrowserContext(const CefRequestContextSettings& settings);
|
|
||||||
|
|
||||||
AlloyBrowserContext(const AlloyBrowserContext&) = delete;
|
|
||||||
AlloyBrowserContext& operator=(const AlloyBrowserContext&) = delete;
|
|
||||||
|
|
||||||
// CefBrowserContext overrides.
|
|
||||||
content::BrowserContext* AsBrowserContext() override { return this; }
|
|
||||||
Profile* AsProfile() override { return this; }
|
|
||||||
bool IsInitialized() const override;
|
|
||||||
void StoreOrTriggerInitCallback(base::OnceClosure callback) override;
|
|
||||||
void Initialize() override;
|
|
||||||
void Shutdown() override;
|
|
||||||
void RemoveCefRequestContext(CefRequestContextImpl* context) override;
|
|
||||||
void LoadExtension(const CefString& root_directory,
|
|
||||||
CefRefPtr<CefDictionaryValue> manifest,
|
|
||||||
CefRefPtr<CefExtensionHandler> handler,
|
|
||||||
CefRefPtr<CefRequestContext> loader_context) override;
|
|
||||||
bool GetExtensions(std::vector<CefString>& extension_ids) override;
|
|
||||||
CefRefPtr<CefExtension> GetExtension(const CefString& extension_id) override;
|
|
||||||
bool UnloadExtension(const CefString& extension_id) override;
|
|
||||||
bool IsPrintPreviewSupported() const override;
|
|
||||||
|
|
||||||
// content::BrowserContext overrides.
|
|
||||||
content::ClientHintsControllerDelegate* GetClientHintsControllerDelegate()
|
|
||||||
override;
|
|
||||||
base::FilePath GetPath() override;
|
|
||||||
base::FilePath GetPath() const override;
|
|
||||||
std::unique_ptr<content::ZoomLevelDelegate> CreateZoomLevelDelegate(
|
|
||||||
const base::FilePath& partition_path) override;
|
|
||||||
content::DownloadManagerDelegate* GetDownloadManagerDelegate() override;
|
|
||||||
content::BrowserPluginGuestManager* GetGuestManager() override;
|
|
||||||
storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override;
|
|
||||||
content::PlatformNotificationService* GetPlatformNotificationService()
|
|
||||||
override;
|
|
||||||
content::PushMessagingService* GetPushMessagingService() override;
|
|
||||||
content::StorageNotificationService* GetStorageNotificationService() override;
|
|
||||||
content::SSLHostStateDelegate* GetSSLHostStateDelegate() override;
|
|
||||||
content::PermissionControllerDelegate* GetPermissionControllerDelegate()
|
|
||||||
override;
|
|
||||||
content::BackgroundFetchDelegate* GetBackgroundFetchDelegate() override;
|
|
||||||
content::BackgroundSyncController* GetBackgroundSyncController() override;
|
|
||||||
content::BrowsingDataRemoverDelegate* GetBrowsingDataRemoverDelegate()
|
|
||||||
override;
|
|
||||||
content::ReduceAcceptLanguageControllerDelegate*
|
|
||||||
GetReduceAcceptLanguageControllerDelegate() override;
|
|
||||||
|
|
||||||
// Profile overrides.
|
|
||||||
ChromeZoomLevelPrefs* GetZoomLevelPrefs() override;
|
|
||||||
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
|
|
||||||
PrefService* GetPrefs() override;
|
|
||||||
bool AllowsBrowserWindows() const override { return false; }
|
|
||||||
const PrefService* GetPrefs() const override;
|
|
||||||
ProfileKey* GetProfileKey() const override;
|
|
||||||
policy::SchemaRegistryService* GetPolicySchemaRegistryService() override;
|
|
||||||
policy::UserCloudPolicyManager* GetUserCloudPolicyManager() override;
|
|
||||||
policy::ProfileCloudPolicyManager* GetProfileCloudPolicyManager() override;
|
|
||||||
policy::ProfilePolicyConnector* GetProfilePolicyConnector() override;
|
|
||||||
const policy::ProfilePolicyConnector* GetProfilePolicyConnector()
|
|
||||||
const override;
|
|
||||||
bool IsNewProfile() const override;
|
|
||||||
|
|
||||||
// Values checked in ProfileNetworkContextService::CreateNetworkContextParams
|
|
||||||
// when creating the NetworkContext.
|
|
||||||
bool ShouldRestoreOldSessionCookies() override {
|
|
||||||
return ShouldPersistSessionCookies();
|
|
||||||
}
|
|
||||||
bool ShouldPersistSessionCookies() const override {
|
|
||||||
return !!settings_.persist_session_cookies;
|
|
||||||
}
|
|
||||||
|
|
||||||
// visitedlink::VisitedLinkDelegate methods.
|
|
||||||
void RebuildTable(const scoped_refptr<URLEnumerator>& enumerator) override;
|
|
||||||
|
|
||||||
// Manages extensions.
|
|
||||||
extensions::CefExtensionSystem* extension_system() const {
|
|
||||||
return extension_system_;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called from AlloyBrowserHostImpl::DidFinishNavigation to update the table
|
|
||||||
// of visited links.
|
|
||||||
void AddVisitedURLs(const std::vector<GURL>& urls);
|
|
||||||
|
|
||||||
// Called from DownloadPrefs::FromBrowserContext.
|
|
||||||
DownloadPrefs* GetDownloadPrefs();
|
|
||||||
|
|
||||||
private:
|
|
||||||
~AlloyBrowserContext() override;
|
|
||||||
|
|
||||||
std::unique_ptr<PrefService> pref_service_;
|
|
||||||
std::unique_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
|
|
||||||
|
|
||||||
std::unique_ptr<CefDownloadManagerDelegate> download_manager_delegate_;
|
|
||||||
std::unique_ptr<CefSSLHostStateDelegate> ssl_host_state_delegate_;
|
|
||||||
std::unique_ptr<visitedlink::VisitedLinkWriter> visitedlink_master_;
|
|
||||||
// |visitedlink_listener_| is owned by visitedlink_master_.
|
|
||||||
CefVisitedLinkListener* visitedlink_listener_ = nullptr;
|
|
||||||
|
|
||||||
// Owned by the KeyedService system.
|
|
||||||
extensions::CefExtensionSystem* extension_system_ = nullptr;
|
|
||||||
|
|
||||||
// The key to index KeyedService instances created by
|
|
||||||
// SimpleKeyedServiceFactory.
|
|
||||||
std::unique_ptr<ProfileKey> key_;
|
|
||||||
|
|
||||||
std::unique_ptr<DownloadPrefs> download_prefs_;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CEF_LIBCEF_BROWSER_ALLOY_ALLOY_BROWSER_CONTEXT_H_
|
|
@@ -3,39 +3,38 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
#include "libcef/browser/alloy/alloy_browser_host_impl.h"
|
#include "cef/libcef/browser/alloy/alloy_browser_host_impl.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "libcef/browser/alloy/alloy_browser_context.h"
|
|
||||||
#include "libcef/browser/alloy/browser_platform_delegate_alloy.h"
|
|
||||||
#include "libcef/browser/audio_capturer.h"
|
|
||||||
#include "libcef/browser/browser_context.h"
|
|
||||||
#include "libcef/browser/browser_info.h"
|
|
||||||
#include "libcef/browser/browser_info_manager.h"
|
|
||||||
#include "libcef/browser/browser_platform_delegate.h"
|
|
||||||
#include "libcef/browser/context.h"
|
|
||||||
#include "libcef/browser/devtools/devtools_manager.h"
|
|
||||||
#include "libcef/browser/hang_monitor.h"
|
|
||||||
#include "libcef/browser/media_access_query.h"
|
|
||||||
#include "libcef/browser/osr/osr_util.h"
|
|
||||||
#include "libcef/browser/request_context_impl.h"
|
|
||||||
#include "libcef/browser/thread_util.h"
|
|
||||||
#include "libcef/common/cef_switches.h"
|
|
||||||
#include "libcef/common/drag_data_impl.h"
|
|
||||||
#include "libcef/common/frame_util.h"
|
|
||||||
#include "libcef/common/net/url_util.h"
|
|
||||||
#include "libcef/common/request_impl.h"
|
|
||||||
#include "libcef/common/values_impl.h"
|
|
||||||
#include "libcef/features/runtime_checks.h"
|
|
||||||
|
|
||||||
#include "base/command_line.h"
|
#include "base/command_line.h"
|
||||||
#include "base/functional/bind.h"
|
#include "base/functional/bind.h"
|
||||||
#include "base/functional/callback_helpers.h"
|
#include "base/functional/callback_helpers.h"
|
||||||
|
#include "cef/libcef/browser/alloy/browser_platform_delegate_alloy.h"
|
||||||
|
#include "cef/libcef/browser/audio_capturer.h"
|
||||||
|
#include "cef/libcef/browser/browser_context.h"
|
||||||
|
#include "cef/libcef/browser/browser_guest_util.h"
|
||||||
|
#include "cef/libcef/browser/browser_info.h"
|
||||||
|
#include "cef/libcef/browser/browser_info_manager.h"
|
||||||
|
#include "cef/libcef/browser/browser_platform_delegate.h"
|
||||||
|
#include "cef/libcef/browser/context.h"
|
||||||
|
#include "cef/libcef/browser/hang_monitor.h"
|
||||||
|
#include "cef/libcef/browser/media_access_query.h"
|
||||||
|
#include "cef/libcef/browser/osr/osr_util.h"
|
||||||
|
#include "cef/libcef/browser/request_context_impl.h"
|
||||||
|
#include "cef/libcef/browser/thread_util.h"
|
||||||
|
#include "cef/libcef/common/cef_switches.h"
|
||||||
|
#include "cef/libcef/common/drag_data_impl.h"
|
||||||
|
#include "cef/libcef/common/frame_util.h"
|
||||||
|
#include "cef/libcef/common/net/url_util.h"
|
||||||
|
#include "cef/libcef/common/request_impl.h"
|
||||||
|
#include "cef/libcef/common/values_impl.h"
|
||||||
#include "chrome/browser/file_select_helper.h"
|
#include "chrome/browser/file_select_helper.h"
|
||||||
#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
|
#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
|
||||||
|
#include "chrome/common/webui_url_constants.h"
|
||||||
|
#include "components/input/native_web_keyboard_event.h"
|
||||||
#include "components/zoom/page_zoom.h"
|
#include "components/zoom/page_zoom.h"
|
||||||
#include "content/browser/gpu/compositor_util.h"
|
#include "content/browser/gpu/compositor_util.h"
|
||||||
#include "content/public/browser/desktop_media_id.h"
|
#include "content/public/browser/desktop_media_id.h"
|
||||||
@@ -48,10 +47,8 @@
|
|||||||
#include "content/public/browser/render_view_host.h"
|
#include "content/public/browser/render_view_host.h"
|
||||||
#include "content/public/browser/render_widget_host.h"
|
#include "content/public/browser/render_widget_host.h"
|
||||||
#include "content/public/browser/web_contents.h"
|
#include "content/public/browser/web_contents.h"
|
||||||
#include "content/public/common/input/native_web_keyboard_event.h"
|
|
||||||
#include "content/public/common/url_constants.h"
|
#include "content/public/common/url_constants.h"
|
||||||
#include "extensions/common/constants.h"
|
#include "extensions/common/constants.h"
|
||||||
#include "extensions/common/extension.h"
|
|
||||||
#include "net/base/net_errors.h"
|
#include "net/base/net_errors.h"
|
||||||
#include "ui/events/base_event_utils.h"
|
#include "ui/events/base_event_utils.h"
|
||||||
|
|
||||||
@@ -61,6 +58,47 @@ namespace {
|
|||||||
|
|
||||||
static constexpr base::TimeDelta kRecentlyAudibleTimeout = base::Seconds(2);
|
static constexpr base::TimeDelta kRecentlyAudibleTimeout = base::Seconds(2);
|
||||||
|
|
||||||
|
// List of WebUI hosts that have been tested to work in Alloy-style browsers.
|
||||||
|
// Do not add new hosts to this list without also manually testing all related
|
||||||
|
// functionality in CEF.
|
||||||
|
const char* kAllowedWebUIHosts[] = {
|
||||||
|
chrome::kChromeUIAccessibilityHost,
|
||||||
|
content::kChromeUIBlobInternalsHost,
|
||||||
|
chrome::kChromeUIChromeURLsHost,
|
||||||
|
chrome::kChromeUICreditsHost,
|
||||||
|
content::kChromeUIGpuHost,
|
||||||
|
content::kChromeUIHistogramHost,
|
||||||
|
content::kChromeUIIndexedDBInternalsHost,
|
||||||
|
chrome::kChromeUILicenseHost,
|
||||||
|
content::kChromeUIMediaInternalsHost,
|
||||||
|
chrome::kChromeUINetExportHost,
|
||||||
|
chrome::kChromeUINetInternalsHost,
|
||||||
|
content::kChromeUINetworkErrorHost,
|
||||||
|
content::kChromeUINetworkErrorsListingHost,
|
||||||
|
chrome::kChromeUIPrintHost,
|
||||||
|
content::kChromeUIProcessInternalsHost,
|
||||||
|
content::kChromeUIResourcesHost,
|
||||||
|
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
|
||||||
|
chrome::kChromeUISandboxHost,
|
||||||
|
#endif
|
||||||
|
content::kChromeUIServiceWorkerInternalsHost,
|
||||||
|
chrome::kChromeUISystemInfoHost,
|
||||||
|
chrome::kChromeUITermsHost,
|
||||||
|
chrome::kChromeUIThemeHost,
|
||||||
|
content::kChromeUITracingHost,
|
||||||
|
chrome::kChromeUIVersionHost,
|
||||||
|
content::kChromeUIWebRTCInternalsHost,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool IsAllowedWebUIHost(const std::string_view& host) {
|
||||||
|
for (auto& allowed_host : kAllowedWebUIHosts) {
|
||||||
|
if (base::EqualsCaseInsensitiveASCII(allowed_host, host)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
// AlloyBrowserHostImpl static methods.
|
// AlloyBrowserHostImpl static methods.
|
||||||
@@ -73,11 +111,13 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::Create(
|
|||||||
CefBrowserPlatformDelegate::Create(create_params);
|
CefBrowserPlatformDelegate::Create(create_params);
|
||||||
CHECK(platform_delegate);
|
CHECK(platform_delegate);
|
||||||
|
|
||||||
const bool is_devtools_popup = !!create_params.devtools_opener;
|
// Expect runtime style to match.
|
||||||
|
CHECK(platform_delegate->IsAlloyStyle());
|
||||||
|
|
||||||
scoped_refptr<CefBrowserInfo> info =
|
scoped_refptr<CefBrowserInfo> info =
|
||||||
CefBrowserInfoManager::GetInstance()->CreateBrowserInfo(
|
CefBrowserInfoManager::GetInstance()->CreateBrowserInfo(
|
||||||
is_devtools_popup, platform_delegate->IsWindowless(),
|
/*is_devtools_popup=*/false, platform_delegate->IsWindowless(),
|
||||||
|
platform_delegate->IsPrintPreviewSupported(),
|
||||||
create_params.extra_info);
|
create_params.extra_info);
|
||||||
|
|
||||||
bool own_web_contents = false;
|
bool own_web_contents = false;
|
||||||
@@ -89,32 +129,18 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::Create(
|
|||||||
auto request_context_impl =
|
auto request_context_impl =
|
||||||
static_cast<CefRequestContextImpl*>(create_params.request_context.get());
|
static_cast<CefRequestContextImpl*>(create_params.request_context.get());
|
||||||
|
|
||||||
CefRefPtr<CefExtension> cef_extension;
|
CefRefPtr<AlloyBrowserHostImpl> browser =
|
||||||
if (create_params.extension) {
|
CreateInternal(create_params.settings, create_params.client, web_contents,
|
||||||
auto cef_browser_context = request_context_impl->GetBrowserContext();
|
own_web_contents, info,
|
||||||
cef_extension =
|
/*opener=*/nullptr, /*is_devtools_popup=*/false,
|
||||||
cef_browser_context->GetExtension(create_params.extension->id());
|
request_context_impl, std::move(platform_delegate));
|
||||||
CHECK(cef_extension);
|
|
||||||
}
|
|
||||||
|
|
||||||
auto platform_delegate_ptr = platform_delegate.get();
|
|
||||||
|
|
||||||
CefRefPtr<AlloyBrowserHostImpl> browser = CreateInternal(
|
|
||||||
create_params.settings, create_params.client, web_contents,
|
|
||||||
own_web_contents, info,
|
|
||||||
static_cast<AlloyBrowserHostImpl*>(create_params.devtools_opener.get()),
|
|
||||||
is_devtools_popup, request_context_impl, std::move(platform_delegate),
|
|
||||||
cef_extension);
|
|
||||||
if (!browser) {
|
if (!browser) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
GURL url = url_util::MakeGURL(create_params.url, /*fixup=*/true);
|
GURL url = url_util::MakeGURL(create_params.url, /*fixup=*/true);
|
||||||
|
|
||||||
if (create_params.extension) {
|
if (!url.is_empty()) {
|
||||||
platform_delegate_ptr->CreateExtensionHost(
|
|
||||||
create_params.extension, url, create_params.extension_host_type);
|
|
||||||
} else if (!url.is_empty()) {
|
|
||||||
content::OpenURLParams params(url, content::Referrer(),
|
content::OpenURLParams params(url, content::Referrer(),
|
||||||
WindowOpenDisposition::CURRENT_TAB,
|
WindowOpenDisposition::CURRENT_TAB,
|
||||||
CefFrameHostImpl::kPageTransitionExplicit,
|
CefFrameHostImpl::kPageTransitionExplicit,
|
||||||
@@ -135,8 +161,7 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::CreateInternal(
|
|||||||
CefRefPtr<AlloyBrowserHostImpl> opener,
|
CefRefPtr<AlloyBrowserHostImpl> opener,
|
||||||
bool is_devtools_popup,
|
bool is_devtools_popup,
|
||||||
CefRefPtr<CefRequestContextImpl> request_context,
|
CefRefPtr<CefRequestContextImpl> request_context,
|
||||||
std::unique_ptr<CefBrowserPlatformDelegate> platform_delegate,
|
std::unique_ptr<CefBrowserPlatformDelegate> platform_delegate) {
|
||||||
CefRefPtr<CefExtension> extension) {
|
|
||||||
CEF_REQUIRE_UIT();
|
CEF_REQUIRE_UIT();
|
||||||
DCHECK(web_contents);
|
DCHECK(web_contents);
|
||||||
DCHECK(browser_info);
|
DCHECK(browser_info);
|
||||||
@@ -167,7 +192,7 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::CreateInternal(
|
|||||||
|
|
||||||
CefRefPtr<AlloyBrowserHostImpl> browser = new AlloyBrowserHostImpl(
|
CefRefPtr<AlloyBrowserHostImpl> browser = new AlloyBrowserHostImpl(
|
||||||
settings, client, web_contents, browser_info, opener, request_context,
|
settings, client, web_contents, browser_info, opener, request_context,
|
||||||
std::move(platform_delegate), extension);
|
std::move(platform_delegate));
|
||||||
browser->InitializeBrowser();
|
browser->InitializeBrowser();
|
||||||
|
|
||||||
if (!browser->CreateHostWindow()) {
|
if (!browser->CreateHostWindow()) {
|
||||||
@@ -180,9 +205,9 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::CreateInternal(
|
|||||||
if (opener && opener->platform_delegate_) {
|
if (opener && opener->platform_delegate_) {
|
||||||
// 1. Notify the opener browser's platform delegate. With Views this will
|
// 1. Notify the opener browser's platform delegate. With Views this will
|
||||||
// result in a call to CefBrowserViewDelegate::OnPopupBrowserViewCreated().
|
// result in a call to CefBrowserViewDelegate::OnPopupBrowserViewCreated().
|
||||||
// Do this first for consistency with the Chrome runtime.
|
// Do this first for consistency with Chrome style.
|
||||||
opener->platform_delegate_->PopupBrowserCreated(browser.get(),
|
opener->platform_delegate_->PopupBrowserCreated(
|
||||||
is_devtools_popup);
|
browser->platform_delegate(), browser.get(), is_devtools_popup);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Notify the browser's LifeSpanHandler. This must always be the first
|
// 2. Notify the browser's LifeSpanHandler. This must always be the first
|
||||||
@@ -200,36 +225,38 @@ CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::CreateInternal(
|
|||||||
return browser;
|
return browser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::FromBaseChecked(
|
||||||
|
CefRefPtr<CefBrowserHostBase> host_base) {
|
||||||
|
if (!host_base) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
CHECK(host_base->IsAlloyStyle());
|
||||||
|
return static_cast<AlloyBrowserHostImpl*>(host_base.get());
|
||||||
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForHost(
|
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForHost(
|
||||||
const content::RenderViewHost* host) {
|
const content::RenderViewHost* host) {
|
||||||
REQUIRE_ALLOY_RUNTIME();
|
return FromBaseChecked(CefBrowserHostBase::GetBrowserForHost(host));
|
||||||
auto browser = CefBrowserHostBase::GetBrowserForHost(host);
|
|
||||||
return static_cast<AlloyBrowserHostImpl*>(browser.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForHost(
|
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForHost(
|
||||||
const content::RenderFrameHost* host) {
|
const content::RenderFrameHost* host) {
|
||||||
REQUIRE_ALLOY_RUNTIME();
|
return FromBaseChecked(CefBrowserHostBase::GetBrowserForHost(host));
|
||||||
auto browser = CefBrowserHostBase::GetBrowserForHost(host);
|
|
||||||
return static_cast<AlloyBrowserHostImpl*>(browser.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForContents(
|
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForContents(
|
||||||
const content::WebContents* contents) {
|
const content::WebContents* contents) {
|
||||||
REQUIRE_ALLOY_RUNTIME();
|
return FromBaseChecked(CefBrowserHostBase::GetBrowserForContents(contents));
|
||||||
auto browser = CefBrowserHostBase::GetBrowserForContents(contents);
|
|
||||||
return static_cast<AlloyBrowserHostImpl*>(browser.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForGlobalId(
|
CefRefPtr<AlloyBrowserHostImpl> AlloyBrowserHostImpl::GetBrowserForGlobalId(
|
||||||
const content::GlobalRenderFrameHostId& global_id) {
|
const content::GlobalRenderFrameHostId& global_id) {
|
||||||
REQUIRE_ALLOY_RUNTIME();
|
return FromBaseChecked(CefBrowserHostBase::GetBrowserForGlobalId(global_id));
|
||||||
auto browser = CefBrowserHostBase::GetBrowserForGlobalId(global_id);
|
|
||||||
return static_cast<AlloyBrowserHostImpl*>(browser.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AlloyBrowserHostImpl methods.
|
// AlloyBrowserHostImpl methods.
|
||||||
@@ -333,42 +360,6 @@ void AlloyBrowserHostImpl::StopFinding(bool clearSelection) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::ShowDevToolsOnUIThread(
|
|
||||||
std::unique_ptr<CefShowDevToolsParams> params) {
|
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
if (!EnsureDevToolsManager()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
devtools_manager_->ShowDevTools(params->window_info_, params->client_,
|
|
||||||
params->settings_,
|
|
||||||
params->inspect_element_at_);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::CloseDevTools() {
|
|
||||||
if (!CEF_CURRENTLY_ON_UIT()) {
|
|
||||||
CEF_POST_TASK(CEF_UIT,
|
|
||||||
base::BindOnce(&AlloyBrowserHostImpl::CloseDevTools, this));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!devtools_manager_) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
devtools_manager_->CloseDevTools();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::HasDevTools() {
|
|
||||||
if (!CEF_CURRENTLY_ON_UIT()) {
|
|
||||||
DCHECK(false) << "called on invalid thread";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!devtools_manager_) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return devtools_manager_->HasDevTools();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::SetAutoResizeEnabled(bool enabled,
|
void AlloyBrowserHostImpl::SetAutoResizeEnabled(bool enabled,
|
||||||
const CefSize& min_size,
|
const CefSize& min_size,
|
||||||
const CefSize& max_size) {
|
const CefSize& max_size) {
|
||||||
@@ -384,14 +375,6 @@ void AlloyBrowserHostImpl::SetAutoResizeEnabled(bool enabled,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CefRefPtr<CefExtension> AlloyBrowserHostImpl::GetExtension() {
|
|
||||||
return extension_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::IsBackgroundHost() {
|
|
||||||
return is_background_host_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::CanExecuteChromeCommand(int command_id) {
|
bool AlloyBrowserHostImpl::CanExecuteChromeCommand(int command_id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -580,17 +563,6 @@ void AlloyBrowserHostImpl::DestroyBrowser() {
|
|||||||
|
|
||||||
destruction_state_ = DESTRUCTION_STATE_COMPLETED;
|
destruction_state_ = DESTRUCTION_STATE_COMPLETED;
|
||||||
|
|
||||||
// Notify that this browser has been destroyed. These must be delivered in
|
|
||||||
// the expected order.
|
|
||||||
|
|
||||||
// 1. Notify the platform delegate. With Views this will result in a call to
|
|
||||||
// CefBrowserViewDelegate::OnBrowserDestroyed().
|
|
||||||
platform_delegate_->NotifyBrowserDestroyed();
|
|
||||||
|
|
||||||
// 2. Notify the browser's LifeSpanHandler. This must always be the last
|
|
||||||
// notification for this browser.
|
|
||||||
OnBeforeClose();
|
|
||||||
|
|
||||||
// Destroy any platform constructs first.
|
// Destroy any platform constructs first.
|
||||||
if (javascript_dialog_manager_.get()) {
|
if (javascript_dialog_manager_.get()) {
|
||||||
javascript_dialog_manager_->Destroy();
|
javascript_dialog_manager_->Destroy();
|
||||||
@@ -599,16 +571,8 @@ void AlloyBrowserHostImpl::DestroyBrowser() {
|
|||||||
menu_manager_->Destroy();
|
menu_manager_->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify any observers that may have state associated with this browser.
|
// Disassociate the platform delegate from this browser. This will trigger
|
||||||
OnBrowserDestroyed();
|
// WebContents destruction in most cases.
|
||||||
|
|
||||||
// If the WebContents still exists at this point, signal destruction before
|
|
||||||
// browser destruction.
|
|
||||||
if (web_contents()) {
|
|
||||||
WebContentsDestroyed();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Disassociate the platform delegate from this browser.
|
|
||||||
platform_delegate_->BrowserDestroyed(this);
|
platform_delegate_->BrowserDestroyed(this);
|
||||||
|
|
||||||
// Delete objects created by the platform delegate that may be referenced by
|
// Delete objects created by the platform delegate that may be referenced by
|
||||||
@@ -636,31 +600,34 @@ void AlloyBrowserHostImpl::CancelContextMenu() {
|
|||||||
|
|
||||||
bool AlloyBrowserHostImpl::MaybeAllowNavigation(
|
bool AlloyBrowserHostImpl::MaybeAllowNavigation(
|
||||||
content::RenderFrameHost* opener,
|
content::RenderFrameHost* opener,
|
||||||
bool is_guest_view,
|
|
||||||
const content::OpenURLParams& params) {
|
const content::OpenURLParams& params) {
|
||||||
|
const bool is_guest_view =
|
||||||
|
IsBrowserPluginGuest(content::WebContents::FromRenderFrameHost(opener));
|
||||||
if (is_guest_view && !params.is_pdf &&
|
if (is_guest_view && !params.is_pdf &&
|
||||||
!params.url.SchemeIs(extensions::kExtensionScheme) &&
|
!params.url.SchemeIs(extensions::kExtensionScheme) &&
|
||||||
!params.url.SchemeIs(content::kChromeUIScheme)) {
|
!params.url.SchemeIs(content::kChromeUIScheme)) {
|
||||||
// The PDF viewer will load the PDF extension in the guest view, and print
|
// The PDF viewer will load the PDF extension in the guest view, and print
|
||||||
// preview will load chrome://print in the guest view. The PDF renderer
|
// preview will load chrome://print in the guest view. The PDF renderer
|
||||||
// used with PdfUnseasoned will set |params.is_pdf| when loading the PDF
|
// used with PdfUnseasoned will set |params.is_pdf| when loading the PDF
|
||||||
// stream (see PdfNavigationThrottle::WillStartRequest). All other
|
// stream (see PdfNavigationThrottle::WillStartRequest). All other guest
|
||||||
// navigations are passed to the owner browser.
|
// view navigations are passed to the owner browser.
|
||||||
CEF_POST_TASK(CEF_UIT,
|
CEF_POST_TASK(CEF_UIT,
|
||||||
base::BindOnce(
|
base::BindOnce(
|
||||||
base::IgnoreResult(&AlloyBrowserHostImpl::OpenURLFromTab),
|
base::IgnoreResult(&AlloyBrowserHostImpl::OpenURLFromTab),
|
||||||
this, nullptr, params));
|
this, nullptr, params, base::NullCallback()));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
if (!is_guest_view && params.url.SchemeIs(content::kChromeUIScheme) &&
|
||||||
}
|
!IsAllowedWebUIHost(params.url.host_piece())) {
|
||||||
|
// Block navigation to non-allowlisted WebUI pages.
|
||||||
|
LOG(WARNING) << "Navigation to " << params.url.spec()
|
||||||
|
<< " is blocked in Alloy-style browser.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
extensions::ExtensionHost* AlloyBrowserHostImpl::GetExtensionHost() const {
|
return true;
|
||||||
CEF_REQUIRE_UIT();
|
|
||||||
DCHECK(platform_delegate_);
|
|
||||||
return platform_delegate_->GetExtensionHost();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::OnSetFocus(cef_focus_source_t source) {
|
void AlloyBrowserHostImpl::OnSetFocus(cef_focus_source_t source) {
|
||||||
@@ -670,7 +637,7 @@ void AlloyBrowserHostImpl::OnSetFocus(cef_focus_source_t source) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contents_delegate_->OnSetFocus(source)) {
|
if (contents_delegate_.OnSetFocus(source)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -682,13 +649,13 @@ void AlloyBrowserHostImpl::OnSetFocus(cef_focus_source_t source) {
|
|||||||
void AlloyBrowserHostImpl::EnterFullscreenModeForTab(
|
void AlloyBrowserHostImpl::EnterFullscreenModeForTab(
|
||||||
content::RenderFrameHost* requesting_frame,
|
content::RenderFrameHost* requesting_frame,
|
||||||
const blink::mojom::FullscreenOptions& options) {
|
const blink::mojom::FullscreenOptions& options) {
|
||||||
contents_delegate_->EnterFullscreenModeForTab(requesting_frame, options);
|
contents_delegate_.EnterFullscreenModeForTab(requesting_frame, options);
|
||||||
WasResized();
|
WasResized();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::ExitFullscreenModeForTab(
|
void AlloyBrowserHostImpl::ExitFullscreenModeForTab(
|
||||||
content::WebContents* web_contents) {
|
content::WebContents* web_contents) {
|
||||||
contents_delegate_->ExitFullscreenModeForTab(web_contents);
|
contents_delegate_.ExitFullscreenModeForTab(web_contents);
|
||||||
WasResized();
|
WasResized();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -957,8 +924,11 @@ bool AlloyBrowserHostImpl::IsAudioMuted() {
|
|||||||
|
|
||||||
content::WebContents* AlloyBrowserHostImpl::OpenURLFromTab(
|
content::WebContents* AlloyBrowserHostImpl::OpenURLFromTab(
|
||||||
content::WebContents* source,
|
content::WebContents* source,
|
||||||
const content::OpenURLParams& params) {
|
const content::OpenURLParams& params,
|
||||||
auto target_contents = contents_delegate_->OpenURLFromTab(source, params);
|
base::OnceCallback<void(content::NavigationHandle&)>
|
||||||
|
navigation_handle_callback) {
|
||||||
|
auto target_contents = contents_delegate_.OpenURLFromTabEx(
|
||||||
|
source, params, navigation_handle_callback);
|
||||||
if (target_contents) {
|
if (target_contents) {
|
||||||
// Start a navigation in the current browser that will result in the
|
// Start a navigation in the current browser that will result in the
|
||||||
// creation of a new render process.
|
// creation of a new render process.
|
||||||
@@ -970,13 +940,7 @@ content::WebContents* AlloyBrowserHostImpl::OpenURLFromTab(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::ShouldAllowRendererInitiatedCrossProcessNavigation(
|
content::WebContents* AlloyBrowserHostImpl::AddNewContents(
|
||||||
bool is_main_frame_navigation) {
|
|
||||||
return platform_delegate_->ShouldAllowRendererInitiatedCrossProcessNavigation(
|
|
||||||
is_main_frame_navigation);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::AddNewContents(
|
|
||||||
content::WebContents* source,
|
content::WebContents* source,
|
||||||
std::unique_ptr<content::WebContents> new_contents,
|
std::unique_ptr<content::WebContents> new_contents,
|
||||||
const GURL& target_url,
|
const GURL& target_url,
|
||||||
@@ -984,14 +948,16 @@ void AlloyBrowserHostImpl::AddNewContents(
|
|||||||
const blink::mojom::WindowFeatures& window_features,
|
const blink::mojom::WindowFeatures& window_features,
|
||||||
bool user_gesture,
|
bool user_gesture,
|
||||||
bool* was_blocked) {
|
bool* was_blocked) {
|
||||||
|
auto* new_contents_ptr = new_contents.get();
|
||||||
platform_delegate_->AddNewContents(source, std::move(new_contents),
|
platform_delegate_->AddNewContents(source, std::move(new_contents),
|
||||||
target_url, disposition, window_features,
|
target_url, disposition, window_features,
|
||||||
user_gesture, was_blocked);
|
user_gesture, was_blocked);
|
||||||
|
return new_contents_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::LoadingStateChanged(content::WebContents* source,
|
void AlloyBrowserHostImpl::LoadingStateChanged(content::WebContents* source,
|
||||||
bool should_show_loading_ui) {
|
bool should_show_loading_ui) {
|
||||||
contents_delegate_->LoadingStateChanged(source, should_show_loading_ui);
|
contents_delegate_.LoadingStateChanged(source, should_show_loading_ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::CloseContents(content::WebContents* source) {
|
void AlloyBrowserHostImpl::CloseContents(content::WebContents* source) {
|
||||||
@@ -1044,7 +1010,7 @@ void AlloyBrowserHostImpl::CloseContents(content::WebContents* source) {
|
|||||||
|
|
||||||
void AlloyBrowserHostImpl::UpdateTargetURL(content::WebContents* source,
|
void AlloyBrowserHostImpl::UpdateTargetURL(content::WebContents* source,
|
||||||
const GURL& url) {
|
const GURL& url) {
|
||||||
contents_delegate_->UpdateTargetURL(source, url);
|
contents_delegate_.UpdateTargetURL(source, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::DidAddMessageToConsole(
|
bool AlloyBrowserHostImpl::DidAddMessageToConsole(
|
||||||
@@ -1053,8 +1019,8 @@ bool AlloyBrowserHostImpl::DidAddMessageToConsole(
|
|||||||
const std::u16string& message,
|
const std::u16string& message,
|
||||||
int32_t line_no,
|
int32_t line_no,
|
||||||
const std::u16string& source_id) {
|
const std::u16string& source_id) {
|
||||||
return contents_delegate_->DidAddMessageToConsole(source, level, message,
|
return contents_delegate_.DidAddMessageToConsole(source, level, message,
|
||||||
line_no, source_id);
|
line_no, source_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::ContentsZoomChange(bool zoom_in) {
|
void AlloyBrowserHostImpl::ContentsZoomChange(bool zoom_in) {
|
||||||
@@ -1089,24 +1055,24 @@ void AlloyBrowserHostImpl::CanDownload(
|
|||||||
const GURL& url,
|
const GURL& url,
|
||||||
const std::string& request_method,
|
const std::string& request_method,
|
||||||
base::OnceCallback<void(bool)> callback) {
|
base::OnceCallback<void(bool)> callback) {
|
||||||
contents_delegate_->CanDownload(url, request_method, std::move(callback));
|
contents_delegate_.CanDownload(url, request_method, std::move(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyboardEventProcessingResult AlloyBrowserHostImpl::PreHandleKeyboardEvent(
|
KeyboardEventProcessingResult AlloyBrowserHostImpl::PreHandleKeyboardEvent(
|
||||||
content::WebContents* source,
|
content::WebContents* source,
|
||||||
const content::NativeWebKeyboardEvent& event) {
|
const input::NativeWebKeyboardEvent& event) {
|
||||||
return contents_delegate_->PreHandleKeyboardEvent(source, event);
|
return contents_delegate_.PreHandleKeyboardEvent(source, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::HandleKeyboardEvent(
|
bool AlloyBrowserHostImpl::HandleKeyboardEvent(
|
||||||
content::WebContents* source,
|
content::WebContents* source,
|
||||||
const content::NativeWebKeyboardEvent& event) {
|
const input::NativeWebKeyboardEvent& event) {
|
||||||
// Check to see if event should be ignored.
|
// Check to see if event should be ignored.
|
||||||
if (event.skip_if_unhandled) {
|
if (event.skip_if_unhandled) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contents_delegate_->HandleKeyboardEvent(source, event)) {
|
if (contents_delegate_.HandleKeyboardEvent(source, event)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1116,12 +1082,6 @@ bool AlloyBrowserHostImpl::HandleKeyboardEvent(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::PreHandleGestureEvent(
|
|
||||||
content::WebContents* source,
|
|
||||||
const blink::WebGestureEvent& event) {
|
|
||||||
return platform_delegate_->PreHandleGestureEvent(source, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::CanDragEnter(content::WebContents* source,
|
bool AlloyBrowserHostImpl::CanDragEnter(content::WebContents* source,
|
||||||
const content::DropData& data,
|
const content::DropData& data,
|
||||||
blink::DragOperationsMask mask) {
|
blink::DragOperationsMask mask) {
|
||||||
@@ -1146,8 +1106,8 @@ void AlloyBrowserHostImpl::GetCustomWebContentsView(
|
|||||||
const GURL& target_url,
|
const GURL& target_url,
|
||||||
int opener_render_process_id,
|
int opener_render_process_id,
|
||||||
int opener_render_frame_id,
|
int opener_render_frame_id,
|
||||||
content::WebContentsView** view,
|
raw_ptr<content::WebContentsView>* view,
|
||||||
content::RenderViewHostDelegateView** delegate_view) {
|
raw_ptr<content::RenderViewHostDelegateView>* delegate_view) {
|
||||||
CefBrowserInfoManager::GetInstance()->GetCustomWebContentsView(
|
CefBrowserInfoManager::GetInstance()->GetCustomWebContentsView(
|
||||||
target_url,
|
target_url,
|
||||||
frame_util::MakeGlobalId(opener_render_process_id,
|
frame_util::MakeGlobalId(opener_render_process_id,
|
||||||
@@ -1175,7 +1135,8 @@ void AlloyBrowserHostImpl::WebContentsCreated(
|
|||||||
|
|
||||||
scoped_refptr<CefBrowserInfo> info =
|
scoped_refptr<CefBrowserInfo> info =
|
||||||
CefBrowserInfoManager::GetInstance()->CreatePopupBrowserInfo(
|
CefBrowserInfoManager::GetInstance()->CreatePopupBrowserInfo(
|
||||||
new_contents, platform_delegate->IsWindowless(), extra_info);
|
new_contents, platform_delegate->IsWindowless(),
|
||||||
|
platform_delegate->IsPrintPreviewSupported(), extra_info);
|
||||||
CHECK(info.get());
|
CHECK(info.get());
|
||||||
CHECK(info->is_popup());
|
CHECK(info->is_popup());
|
||||||
|
|
||||||
@@ -1191,10 +1152,10 @@ void AlloyBrowserHostImpl::WebContentsCreated(
|
|||||||
|
|
||||||
// We don't officially own |new_contents| until AddNewContents() is called.
|
// We don't officially own |new_contents| until AddNewContents() is called.
|
||||||
// However, we need to install observers/delegates here.
|
// However, we need to install observers/delegates here.
|
||||||
CefRefPtr<AlloyBrowserHostImpl> browser =
|
CefRefPtr<AlloyBrowserHostImpl> browser = CreateInternal(
|
||||||
CreateInternal(settings, client, new_contents, /*own_web_contents=*/false,
|
settings, client, new_contents, /*own_web_contents=*/false, info, opener,
|
||||||
info, opener, /*is_devtools_popup=*/false, request_context,
|
/*is_devtools_popup=*/false, request_context,
|
||||||
std::move(platform_delegate), /*extension=*/nullptr);
|
std::move(platform_delegate));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::RendererUnresponsive(
|
void AlloyBrowserHostImpl::RendererUnresponsive(
|
||||||
@@ -1213,11 +1174,7 @@ void AlloyBrowserHostImpl::RendererResponsive(
|
|||||||
|
|
||||||
content::JavaScriptDialogManager*
|
content::JavaScriptDialogManager*
|
||||||
AlloyBrowserHostImpl::GetJavaScriptDialogManager(content::WebContents* source) {
|
AlloyBrowserHostImpl::GetJavaScriptDialogManager(content::WebContents* source) {
|
||||||
if (!javascript_dialog_manager_) {
|
return CefBrowserHostBase::GetJavaScriptDialogManager();
|
||||||
javascript_dialog_manager_ =
|
|
||||||
std::make_unique<CefJavaScriptDialogManager>(this);
|
|
||||||
}
|
|
||||||
return javascript_dialog_manager_.get();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::RunFileChooser(
|
void AlloyBrowserHostImpl::RunFileChooser(
|
||||||
@@ -1282,11 +1239,6 @@ bool AlloyBrowserHostImpl::CheckMediaAccessPermission(
|
|||||||
security_origin, type);
|
security_origin, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::IsNeverComposited(
|
|
||||||
content::WebContents* web_contents) {
|
|
||||||
return platform_delegate_->IsNeverComposited(web_contents);
|
|
||||||
}
|
|
||||||
|
|
||||||
content::PictureInPictureResult AlloyBrowserHostImpl::EnterPictureInPicture(
|
content::PictureInPictureResult AlloyBrowserHostImpl::EnterPictureInPicture(
|
||||||
content::WebContents* web_contents) {
|
content::WebContents* web_contents) {
|
||||||
if (!IsPictureInPictureSupported()) {
|
if (!IsPictureInPictureSupported()) {
|
||||||
@@ -1302,9 +1254,9 @@ void AlloyBrowserHostImpl::ExitPictureInPicture() {
|
|||||||
PictureInPictureWindowManager::GetInstance()->ExitPictureInPicture();
|
PictureInPictureWindowManager::GetInstance()->ExitPictureInPicture();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlloyBrowserHostImpl::IsBackForwardCacheSupported() {
|
bool AlloyBrowserHostImpl::IsBackForwardCacheSupported(
|
||||||
// Disabled due to issue #3237.
|
content::WebContents& web_contents) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
content::PreloadingEligibility AlloyBrowserHostImpl::IsPrerender2Supported(
|
content::PreloadingEligibility AlloyBrowserHostImpl::IsPrerender2Supported(
|
||||||
@@ -1312,17 +1264,24 @@ content::PreloadingEligibility AlloyBrowserHostImpl::IsPrerender2Supported(
|
|||||||
return content::PreloadingEligibility::kEligible;
|
return content::PreloadingEligibility::kEligible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AlloyBrowserHostImpl::DraggableRegionsChanged(
|
||||||
|
const std::vector<blink::mojom::DraggableRegionPtr>& regions,
|
||||||
|
content::WebContents* contents) {
|
||||||
|
contents_delegate_.DraggableRegionsChanged(regions, contents);
|
||||||
|
}
|
||||||
|
|
||||||
// content::WebContentsObserver methods.
|
// content::WebContentsObserver methods.
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::DidFinishNavigation(
|
void AlloyBrowserHostImpl::DidFinishNavigation(
|
||||||
content::NavigationHandle* navigation_handle) {
|
content::NavigationHandle* navigation_handle) {
|
||||||
if (web_contents()) {
|
if (web_contents()) {
|
||||||
auto cef_browser_context =
|
auto cef_browser_context = CefBrowserContext::FromBrowserContext(
|
||||||
static_cast<AlloyBrowserContext*>(web_contents()->GetBrowserContext());
|
web_contents()->GetBrowserContext());
|
||||||
if (cef_browser_context) {
|
if (cef_browser_context) {
|
||||||
cef_browser_context->AddVisitedURLs(
|
cef_browser_context->AddVisitedURLs(
|
||||||
navigation_handle->GetRedirectChain());
|
navigation_handle->GetURL(), navigation_handle->GetRedirectChain(),
|
||||||
|
navigation_handle->GetPageTransition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1355,34 +1314,46 @@ void AlloyBrowserHostImpl::OnRecentlyAudibleTimerFired() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::AccessibilityEventReceived(
|
void AlloyBrowserHostImpl::AccessibilityEventReceived(
|
||||||
const content::AXEventNotificationDetails& content_event_bundle) {
|
const ui::AXUpdatesAndEvents& details) {
|
||||||
// Only needed in windowless mode.
|
// Only needed in windowless mode.
|
||||||
if (IsWindowless()) {
|
if (IsWindowless()) {
|
||||||
if (!web_contents() || !platform_delegate_) {
|
if (!web_contents() || !platform_delegate_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_delegate_->AccessibilityEventReceived(content_event_bundle);
|
platform_delegate_->AccessibilityEventReceived(details);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::AccessibilityLocationChangesReceived(
|
void AlloyBrowserHostImpl::AccessibilityLocationChangesReceived(
|
||||||
const std::vector<content::AXLocationChangeNotificationDetails>& locData) {
|
const std::vector<ui::AXLocationChanges>& details) {
|
||||||
// Only needed in windowless mode.
|
// Only needed in windowless mode.
|
||||||
if (IsWindowless()) {
|
if (IsWindowless()) {
|
||||||
if (!web_contents() || !platform_delegate_) {
|
if (!web_contents() || !platform_delegate_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_delegate_->AccessibilityLocationChangesReceived(locData);
|
platform_delegate_->AccessibilityLocationChangesReceived(details);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlloyBrowserHostImpl::WebContentsDestroyed() {
|
void AlloyBrowserHostImpl::WebContentsDestroyed() {
|
||||||
|
// In case we're notified before the CefBrowserContentsDelegate,
|
||||||
|
// reset it first for consistent state in DestroyWebContents.
|
||||||
|
if (GetWebContents()) {
|
||||||
|
contents_delegate_.WebContentsDestroyed();
|
||||||
|
}
|
||||||
|
|
||||||
auto wc = web_contents();
|
auto wc = web_contents();
|
||||||
content::WebContentsObserver::Observe(nullptr);
|
content::WebContentsObserver::Observe(nullptr);
|
||||||
if (platform_delegate_) {
|
DestroyWebContents(wc);
|
||||||
platform_delegate_->WebContentsDestroyed(wc);
|
|
||||||
|
if (destruction_state_ < DESTRUCTION_STATE_COMPLETED) {
|
||||||
|
// We were not called via DestroyBrowser. This can occur when (for example)
|
||||||
|
// a pending popup WebContents is destroyed during parent WebContents
|
||||||
|
// destruction. Try to close the associated browser now.
|
||||||
|
CEF_POST_TASK(CEF_UIT, base::BindOnce(&AlloyBrowserHostImpl::CloseBrowser,
|
||||||
|
this, /*force_close=*/true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1419,8 +1390,7 @@ AlloyBrowserHostImpl::AlloyBrowserHostImpl(
|
|||||||
scoped_refptr<CefBrowserInfo> browser_info,
|
scoped_refptr<CefBrowserInfo> browser_info,
|
||||||
CefRefPtr<AlloyBrowserHostImpl> opener,
|
CefRefPtr<AlloyBrowserHostImpl> opener,
|
||||||
CefRefPtr<CefRequestContextImpl> request_context,
|
CefRefPtr<CefRequestContextImpl> request_context,
|
||||||
std::unique_ptr<CefBrowserPlatformDelegate> platform_delegate,
|
std::unique_ptr<CefBrowserPlatformDelegate> platform_delegate)
|
||||||
CefRefPtr<CefExtension> extension)
|
|
||||||
: CefBrowserHostBase(settings,
|
: CefBrowserHostBase(settings,
|
||||||
client,
|
client,
|
||||||
std::move(platform_delegate),
|
std::move(platform_delegate),
|
||||||
@@ -1428,9 +1398,8 @@ AlloyBrowserHostImpl::AlloyBrowserHostImpl(
|
|||||||
request_context),
|
request_context),
|
||||||
content::WebContentsObserver(web_contents),
|
content::WebContentsObserver(web_contents),
|
||||||
opener_(kNullWindowHandle),
|
opener_(kNullWindowHandle),
|
||||||
is_windowless_(platform_delegate_->IsWindowless()),
|
is_windowless_(platform_delegate_->IsWindowless()) {
|
||||||
extension_(extension) {
|
contents_delegate_.ObserveWebContents(web_contents);
|
||||||
contents_delegate_->ObserveWebContents(web_contents);
|
|
||||||
|
|
||||||
if (opener.get() && !is_views_hosted_) {
|
if (opener.get() && !is_views_hosted_) {
|
||||||
// GetOpenerWindowHandle() only returns a value for non-views-hosted
|
// GetOpenerWindowHandle() only returns a value for non-views-hosted
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user