Compare commits

..

44 Commits
5735 ... 5790

Author SHA1 Message Date
Marshall Greenblatt
21130e0144 Update to Chromium version 115.0.5790.173 2023-08-15 13:01:34 +00:00
Marshall Greenblatt
91e8c06f29 Update to Chromium version 115.0.5790.172 2023-08-11 01:41:22 +00:00
Marshall Greenblatt
749b4d4340 Update depot_tools version to fix gclient sync error
Fixes Error: 91> Wrong keys 'git_dependencies'
2023-08-07 16:27:46 +00:00
Marshall Greenblatt
fcd259c3e0 Update to Chromium version 115.0.5790.171 2023-08-03 17:12:09 +00:00
Marshall Greenblatt
a61da9b80c Update to Chromium version 115.0.5790.114 2023-07-27 13:40:27 +00:00
Marshall Greenblatt
9cc8df1534 Update to Chromium version 115.0.5790.102 2023-07-24 15:43:53 +00:00
Marshall Greenblatt
aa348cb3de Update to Chromium version 115.0.5790.99 2023-07-20 15:28:39 -04:00
Marshall Greenblatt
75c3bf0480 Don't run UI thread tasks after calling CefQuitMessageLoop
This avoids a situation where misbehaving clients may cause the
application to continue running indefinitely by posting new UI
thread tasks after calling CefQuitMessageLoop.
2023-07-11 16:19:50 +03:00
Marshall Greenblatt
a8d552a01b cefclient: mac: Fix type conversion error with Xcode 2023-07-06 13:22:48 +03:00
Marshall Greenblatt
89aff51c04 chrome: linux: Fix NativeWidgetType for bubble popups 2023-07-04 20:57:03 +03:00
Marshall Greenblatt
4e9a80a23d chrome: mac: Keep bubble popups on-screen 2023-07-04 20:56:52 +03:00
Marshall Greenblatt
557c3ad6e7 cefclient: views: Add option for bottom controls placement
Run with the `--use-bottom-controls` command-line flag to place all controls
at the bottom of the window instead of the top.
2023-07-04 20:56:17 +03:00
Marshall Greenblatt
521608d3c2 linux: Fix invalid argument type in CHECK 2023-06-28 22:01:25 +03:00
Marshall Greenblatt
d1d2d6a532 tests: Fix timing issue with DownloadTest.ClickedInvalid 2023-06-28 22:01:25 +03:00
Marshall Greenblatt
419ffdb122 Update to Chromium version 115.0.5790.40 2023-06-22 07:04:54 +00:00
Marshall Greenblatt
5dbfe13ac8 views: Add support for modal browser dialogs
A modal dialog is a child CefWindow that implements some special behaviors
relative to a parent CefWindow. Like any CefWindow it can be framed with
titlebar or frameless, and optionally contain draggable regions (subject to
platform limitations described below). Modal dialogs are shown centered on
the parent window (inside a single display) and always stay on top of the
parent window in z-order. Sizing behavior and available window buttons are
controlled via the usual CefWindowDelegate callbacks. For example, the dialog
can have a preferred size with resize, minimize and maximize disabled (via
GetPreferredSize, CanResize, CanMinimize and CanMaximize respectively).

This change adds support for two modality modes. With window modality all
controls in the parent window are disabled. With browser modality only the
browser view in the parent window is disabled.

Both modality modes require that a valid parent window be returned via
GetParentWindow. For window modality return true from IsWindowModalDialog
and call CefWindow::Show. For browser modality return false from
IsWindowModalDialog (the default value) and call
CefWindow::ShowAsBrowserModalDialog with a reference to the parent window's
browser view.

Window modal dialog behavior depends on the platform. On Windows and
Linux these dialogs have a titlebar and can be moved independent of the
parent window. On macOS these dialogs do not have a titlebar, move with
the parent window, and do not support draggable regions (because they are
implemented using sheets). On Linux disabling the parent window controls
requires a window manager the supports _NET_WM_STATE_MODAL.

Browser modal dialog behavior is similar on all platforms. The dialog will
be automatically sized and positioned relative to the parent window's
browser view. Closing the parent window or navigating the parent browser
view will dismiss the dialog. The dialog can also be moved independent of
the parent window though it will be recentered when the parent window
itself is resized or redisplayed. On MacOS the dialog will move along with
the parent window while on Windows and Linux the parent window can be moved
independently.

To test: Use the Tests > Dialog Window menu option in cefclient with Views
enabled (`--use-views` or `--enable-chrome-runtime` command-line flag).
Browser modal dialog is the default behavior. For window modal dialog add
the `--use-window-modal-dialog` command-line flag.
2023-06-21 11:59:11 +03:00
Marshall Greenblatt
061204d5be views: win: Use black title bar with dark mode 2023-06-21 11:59:11 +03:00
Marshall Greenblatt
cf87de98bc Update to Chromium version 115.0.5790.32 2023-06-16 07:35:27 +00:00
Marshall Greenblatt
ed5af5272d Update to Chromium version 115.0.5790.24 2023-06-12 07:45:13 +00:00
Marshall Greenblatt
be022e26bc mac: Fix char16_t declaration error with Xcode 14.2 (fixes #3526) 2023-06-07 13:27:00 +03:00
Marshall Greenblatt
096e3eb30d alloy: Remove CefSettings.user_data_path (fixes #3511)
This change replaces existing CefSettings.user_data_path usage with
CefSettings.root_cache_path for better alignment with the Chrome runtime.
All files should now be written inside the root_cache_path directory.
2023-06-06 18:45:53 +03:00
Chris Frank
7bcc232ecf linux: alloy: Fix window resize after context menu dismissal (fixes #3466) 2023-06-06 15:35:09 +03:00
Marshall Greenblatt
30c8e3634d mac: Fix <uchar.h> not available with Xcode < 14.3 (fixes #3526) 2023-06-06 14:57:08 +03:00
Marshall Greenblatt
82da225a9f mac: chrome: Fix crash in BrowserView::ShouldHideUIForFullscreen (fixes #3527) 2023-06-06 12:22:58 +03:00
Marshall Greenblatt
e43eab3229 Update to Chromium version 115.0.5790.13 2023-06-03 12:22:04 +03:00
Marshall Greenblatt
6355aaf33b mac: cefclient: Fix compile error with Xcode 14.3.1 2023-06-02 17:28:41 +03:00
Marshall Greenblatt
e53bff712a Delete cef_basictypes.h which is no longer required (fixes #3507) 2023-06-01 19:32:36 +03:00
Marshall Greenblatt
b854992ae6 Update generated files for int/char typedef removal (see #3507) 2023-06-01 19:32:36 +03:00
Marshall Greenblatt
5042d71408 Remove CEF-specific integer and char16 typedef's (see #3507) 2023-06-01 19:32:36 +03:00
Marshall Greenblatt
695ee2a041 Update to Chromium version 115.0.5790.0 (#1148114)
- Mac: 13.3 SDK (Xcode 14.3) is now required
2023-06-01 13:44:39 +03:00
Marshall Greenblatt
cf8b7db4b4 win: Ship d3dcompiler_47.dll on ARM64 (fixes #3515)
Use the same file from the Windows SDK as Chromium on all architectures
("$windows_sdk_path/Redist/D3D/$target_cpu/d3dcompiler_47.dll").
2023-06-01 13:38:38 +03:00
Marshall Greenblatt
5d8c6799fc win: cmake: VS2022 is now required (fixes #3516) 2023-06-01 13:10:56 +03:00
Marshall Greenblatt
bd368f5d3a win: Fix ambiguous max() usage (fixes #3524, see #3422) 2023-06-01 12:55:30 +03:00
Marshall Greenblatt
87a04aba03 win: Update msvs_env.bat to prefer VS2022 (fixes #3509) 2023-06-01 12:55:30 +03:00
Marshall Greenblatt
df4dddee0b win: Fix MSVC compile errors in registry.cc (fixes #3519) 2023-05-30 11:57:41 +03:00
Nik Pavlov
eb63f9e7ae alloy: views: mac: Add three-finger-swipe navigation gesture support
This adds support for the three-finger-swipe navigation gesture with
Alloy/Views. The default implementation matches the Chrome runtime
and navigates the browser back/forward. We also add an Alloy/Views-
specific client callback in CefBrowserViewDelegate for optional
custom handling of the gesture event.
2023-05-26 09:05:33 +00:00
Marshall Greenblatt
29b5999fd7 Add missing include for std::numeric_limits (see #3422) 2023-05-26 08:35:09 +00:00
Marshall Greenblatt
5707889555 Add methods for configuring website/content settings (fixes #3490)
This approach is now used to allow popups on a case-by-case basis in
tests instead of globally disabling the popup blocker with the Chrome
runtime.
2023-05-25 11:15:06 +00:00
Vladimir Kharitonov
ecdfd467f8 Update CefRange type to match gfx::Range (fixes #3422) 2023-05-16 14:44:19 +03:00
Marshall Greenblatt
e5334a5a18 mac: Enable ARC in libcef (fixes #3496)
Also enables debugging of zombie Objective-C objects.
2023-05-09 18:26:47 +03:00
Marshall Greenblatt
e5c4b27366 tools: Fix incorrect SharedMemoryRegion translation (fixes #3498) 2023-05-09 12:37:42 +03:00
Marshall Greenblatt
c18545a7f5 Replace NOTREACHED() with DCHECK(false) in generated files (see #3500)
Restores the old behavior of assertion in Debug build only.
2023-05-08 18:36:00 +03:00
Marshall Greenblatt
dc9e64308a Replace NOTREACHED() with DCHECK(false) (fixes #3500)
Restores the old behavior of assertion in Debug build only.
2023-05-08 18:36:00 +03:00
Marshall Greenblatt
b8e1c6a59d Remove TRACE_EVENT_COPY_XXX overloads (fixes #3497)
This functionality is not compatible with Chromium's new tracing implementation
based on Perfetto.
2023-05-08 18:32:54 +03:00
388 changed files with 3788 additions and 2500 deletions

View File

@@ -801,6 +801,7 @@ source_set("libcef_static") {
"libcef/browser/views/view_util.cc",
"libcef/browser/views/view_util.h",
"libcef/browser/views/view_view.h",
"libcef/browser/views/widget_destruction_observer.h",
"libcef/browser/views/window_impl.cc",
"libcef/browser/views/window_impl.h",
"libcef/browser/views/window_view.cc",
@@ -1156,6 +1157,8 @@ source_set("libcef_static") {
"//chrome/app/chrome_main_mac.h",
"//chrome/app/chrome_main_mac.mm",
]
configs += [ "//build/config/compiler:enable_arc" ]
}
if (ozone_platform_x11) {
@@ -1351,9 +1354,10 @@ make_pack_header("resources") {
"$root_gen_dir/content/browser/tracing/grit/tracing_resources.h",
"$root_gen_dir/content/browser/webrtc/resources/grit/webrtc_internals_resources.h",
"$root_gen_dir/content/grit/content_resources.h",
"$root_gen_dir/content/grit/dev_ui_content_resources.h",
"$root_gen_dir/content/grit/gpu_resources.h",
"$root_gen_dir/content/grit/histograms_resources.h",
"$root_gen_dir/content/grit/process_resources.h",
"$root_gen_dir/content/grit/service_worker_resources.h",
"$root_gen_dir/extensions/grit/extensions_browser_resources.h",
"$root_gen_dir/extensions/grit/extensions_renderer_resources.h",
"$root_gen_dir/extensions/grit/extensions_resources.h",
@@ -1379,10 +1383,11 @@ make_pack_header("resources") {
"//content/browser/devtools:devtools_resources",
"//content/browser/resources/gpu:resources",
"//content/browser/resources/histograms:resources",
"//content/browser/resources/process:resources",
"//content/browser/resources/service_worker:resources",
"//content/browser/tracing:resources",
"//content/browser/webrtc/resources",
"//content:content_resources",
"//content:dev_ui_content_resources",
"//extensions:extensions_browser_resources",
"//extensions:extensions_renderer_resources",
"//extensions:extensions_resources_grd",
@@ -1602,6 +1607,7 @@ if (is_mac) {
configs += [
":libcef_autogen_config",
"//build/config/compiler:enable_arc",
]
# We don't link the framework so just use the path from the main executable.

View File

@@ -7,6 +7,6 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{
'chromium_checkout': 'refs/tags/114.0.5735.201',
'depot_tools_checkout': '7ee8e6c7cb'
'chromium_checkout': 'refs/tags/115.0.5790.173',
'depot_tools_checkout': '6d0c235dae'
}

View File

@@ -8,7 +8,6 @@
'include/base/cef_atomic_flag.h',
'include/base/cef_atomic_ref_count.h',
'include/base/cef_auto_reset.h',
'include/base/cef_basictypes.h',
'include/base/cef_bind.h',
'include/base/cef_build.h',
'include/base/cef_callback.h',
@@ -55,6 +54,7 @@
'include/internal/cef_time.h',
'include/internal/cef_trace_event_internal.h',
'include/internal/cef_types.h',
'include/internal/cef_types_content_settings.h',
'include/internal/cef_types_geometry.h',
],
'includes_capi': [

View File

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

View File

@@ -253,7 +253,7 @@
// The compiler thinks std::string::const_iterator and "const char*" are
// equivalent types.
#define STD_STRING_ITERATOR_IS_CHAR_POINTER
// The compiler thinks std::u16string::const_iterator and "char16*" are
// The compiler thinks std::u16string::const_iterator and "char16_t*" are
// equivalent types.
#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
#endif

View File

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

View File

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

View File

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

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=936274d5539f225ff7adb7e0acba517fd9a8e2f8$
// $hash=932c3ecb22fd26322d96d0e01459122aadafd302$
//
#ifndef CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_
@@ -93,7 +93,7 @@ typedef struct _cef_audio_handler_t {
struct _cef_browser_t* browser,
const float** data,
int frames,
int64 pts);
int64_t pts);
///
/// Called on the UI thread when the stream has stopped. OnAudioSteamStopped

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=7254c050cd7db2ff7d40a1f54c99e941dc592692$
// $hash=683d7bff8da04826eee83c7e23cf9c5a701ae265$
//
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
@@ -167,7 +167,7 @@ typedef struct _cef_browser_t {
///
struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)(
struct _cef_browser_t* self,
int64 identifier);
int64_t identifier);
///
/// Returns the frame with the specified name, or NULL if not found.
@@ -185,7 +185,7 @@ typedef struct _cef_browser_t {
///
void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self,
size_t* identifiersCount,
int64* identifiers);
int64_t* identifiers);
///
/// Returns the names of all existing frames.
@@ -424,7 +424,7 @@ typedef struct _cef_browser_host_t {
struct _cef_browser_host_t* self,
const cef_string_t* image_url,
int is_favicon,
uint32 max_image_size,
uint32_t max_image_size,
int bypass_cache,
struct _cef_download_image_callback_t* callback);

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=4ef8b73a5218531b370fdd76c23153a1f83b7f7b$
// $hash=a146316e075450f0a6f37cb45d14e15e0ac7be08$
//
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
@@ -121,7 +121,7 @@ typedef struct _cef_browser_process_handler_t {
///
void(CEF_CALLBACK* on_schedule_message_pump_work)(
struct _cef_browser_process_handler_t* self,
int64 delay_ms);
int64_t delay_ms);
///
/// Return the default client for use with a newly created browser window. If

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=5c6e0b9e37b8103a182f200fccdf5973104fcd70$
// $hash=22cfd717df9032a01214d9abfe3e0e51949b3319$
//
#ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
@@ -90,7 +90,7 @@ extern "C" {
/// If "AppName" is set on Windows then crash report information (metrics,
/// database and dumps) will be stored locally on disk under the
/// "C:\Users\[CurrentUser]\AppData\Local\[AppName]\User Data" folder. On other
/// platforms the cef_settings_t.user_data_path value will be used.
/// platforms the cef_settings_t.root_cache_path value will be used.
///
/// If "ExternalHandler" is set on Windows then the specified exe will be
/// launched as the crashpad-handler instead of re-launching the main process

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=d9e9f4b914ae2d3b1ed83ae0d9e2e46e9e736af5$
// $hash=c4ecfde5d6791400c4b3fd466e7d3676d51cf8d8$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
@@ -90,7 +90,7 @@ typedef struct _cef_download_item_t {
///
/// Returns a simple speed estimate in bytes/s.
///
int64(CEF_CALLBACK* get_current_speed)(struct _cef_download_item_t* self);
int64_t(CEF_CALLBACK* get_current_speed)(struct _cef_download_item_t* self);
///
/// Returns the rough percent complete or -1 if the receive total size is
@@ -101,12 +101,12 @@ typedef struct _cef_download_item_t {
///
/// Returns the total number of bytes.
///
int64(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self);
int64_t(CEF_CALLBACK* get_total_bytes)(struct _cef_download_item_t* self);
///
/// Returns the number of received bytes.
///
int64(CEF_CALLBACK* get_received_bytes)(struct _cef_download_item_t* self);
int64_t(CEF_CALLBACK* get_received_bytes)(struct _cef_download_item_t* self);
///
/// Returns the time that the download started.
@@ -129,7 +129,7 @@ typedef struct _cef_download_item_t {
///
/// Returns the unique identifier for this download.
///
uint32(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self);
uint32_t(CEF_CALLBACK* get_id)(struct _cef_download_item_t* self);
///
/// Returns the URL.

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=5bed8359f09a821f4b5ec8ebfad0aa5720bf39f9$
// $hash=1ad87e4addc2f05497671bc59dc7fd315e0603f3$
//
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
@@ -181,7 +181,7 @@ typedef struct _cef_frame_t {
/// Returns the globally unique identifier for this frame or < 0 if the
/// underlying frame does not yet exist.
///
int64(CEF_CALLBACK* get_identifier)(struct _cef_frame_t* self);
int64_t(CEF_CALLBACK* get_identifier)(struct _cef_frame_t* self);
///
/// Returns the parent of this frame or NULL if this is the main (top-level)

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=bc44eb70b7f0b48e0646825e919cb9996ac99781$
// $hash=012d76416d19b590f29c013c44ceec1674593022$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PERMISSION_HANDLER_CAPI_H_
@@ -66,7 +66,7 @@ typedef struct _cef_media_access_callback_t {
/// OnRequestMediaAccessPermission.
///
void(CEF_CALLBACK* cont)(struct _cef_media_access_callback_t* self,
uint32 allowed_permissions);
uint32_t allowed_permissions);
///
/// Cancel the media access request.
@@ -119,7 +119,7 @@ typedef struct _cef_permission_handler_t {
struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
const cef_string_t* requesting_origin,
uint32 requested_permissions,
uint32_t requested_permissions,
struct _cef_media_access_callback_t* callback);
///
@@ -136,9 +136,9 @@ typedef struct _cef_permission_handler_t {
int(CEF_CALLBACK* on_show_permission_prompt)(
struct _cef_permission_handler_t* self,
struct _cef_browser_t* browser,
uint64 prompt_id,
uint64_t prompt_id,
const cef_string_t* requesting_origin,
uint32 requested_permissions,
uint32_t requested_permissions,
struct _cef_permission_prompt_callback_t* callback);
///
@@ -153,7 +153,7 @@ typedef struct _cef_permission_handler_t {
void(CEF_CALLBACK* on_dismiss_permission_prompt)(
struct _cef_permission_handler_t* self,
struct _cef_browser_t* browser,
uint64 prompt_id,
uint64_t prompt_id,
cef_permission_request_result_t result);
} cef_permission_handler_t;

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=3339290cad3a77c8b0b07d422f0faf902a047838$
// $hash=241f8b8ba0a4555f8ad8ed1d60345ae83d4d62f4$
//
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
@@ -214,7 +214,7 @@ typedef struct _cef_request_t {
/// in the browser process to track a single request across multiple
/// callbacks.
///
uint64(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
uint64_t(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
} cef_request_t;
///

View File

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

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=93e5c4f5e93f56b63b5944208300669dcecba972$
// $hash=ca5c224b373452158904b0f859f126f36c927f93$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_
@@ -67,7 +67,7 @@ typedef struct _cef_resource_skip_callback_t {
/// 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE.
///
void(CEF_CALLBACK* cont)(struct _cef_resource_skip_callback_t* self,
int64 bytes_skipped);
int64_t bytes_skipped);
} cef_resource_skip_callback_t;
///
@@ -146,7 +146,7 @@ typedef struct _cef_resource_handler_t {
///
void(CEF_CALLBACK* get_response_headers)(struct _cef_resource_handler_t* self,
struct _cef_response_t* response,
int64* response_length,
int64_t* response_length,
cef_string_t* redirectUrl);
///
@@ -159,8 +159,8 @@ typedef struct _cef_resource_handler_t {
/// function will be called in sequence but not from a dedicated thread.
///
int(CEF_CALLBACK* skip)(struct _cef_resource_handler_t* self,
int64 bytes_to_skip,
int64* bytes_skipped,
int64_t bytes_to_skip,
int64_t* bytes_skipped,
struct _cef_resource_skip_callback_t* callback);
///

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=70d6b393cbdc96a75864911d7ca3568cc8dcdebf$
// $hash=757155e6dbceef47938fd562f7f5f48a609ce288$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_REQUEST_HANDLER_CAPI_H_
@@ -188,7 +188,7 @@ typedef struct _cef_resource_request_handler_t {
struct _cef_request_t* request,
struct _cef_response_t* response,
cef_urlrequest_status_t status,
int64 received_content_length);
int64_t received_content_length);
///
/// Called on the IO thread to handle requests for URLs with an unknown

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=64e9ebc0e01acca0333ca3419e379d4053892270$
// $hash=d0563a0850f6118c850ab01c553142d2e890703e$
//
#ifndef CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_
@@ -153,7 +153,7 @@ typedef struct _cef_server_t {
int connection_id,
int response_code,
const cef_string_t* content_type,
int64 content_length,
int64_t content_length,
cef_string_multimap_t extra_headers);
///
@@ -203,7 +203,7 @@ typedef struct _cef_server_t {
/// server lifespan.
///
CEF_EXPORT void cef_server_create(const cef_string_t* address,
uint16 port,
uint16_t port,
int backlog,
struct _cef_server_handler_t* handler);

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=bbb4153d5d7325ac9a410d7f85a8d47eadcfaf6e$
// $hash=5632e62f83aac60e62db9d7f308563fed3285c65$
//
#ifndef CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_
@@ -70,13 +70,13 @@ typedef struct _cef_read_handler_t {
/// failure.
///
int(CEF_CALLBACK* seek)(struct _cef_read_handler_t* self,
int64 offset,
int64_t offset,
int whence);
///
/// Return the current offset position.
///
int64(CEF_CALLBACK* tell)(struct _cef_read_handler_t* self);
int64_t(CEF_CALLBACK* tell)(struct _cef_read_handler_t* self);
///
/// Return non-zero if at end of file.
@@ -115,13 +115,13 @@ typedef struct _cef_stream_reader_t {
/// failure.
///
int(CEF_CALLBACK* seek)(struct _cef_stream_reader_t* self,
int64 offset,
int64_t offset,
int whence);
///
/// Return the current offset position.
///
int64(CEF_CALLBACK* tell)(struct _cef_stream_reader_t* self);
int64_t(CEF_CALLBACK* tell)(struct _cef_stream_reader_t* self);
///
/// Return non-zero if at end of file.
@@ -178,13 +178,13 @@ typedef struct _cef_write_handler_t {
/// failure.
///
int(CEF_CALLBACK* seek)(struct _cef_write_handler_t* self,
int64 offset,
int64_t offset,
int whence);
///
/// Return the current offset position.
///
int64(CEF_CALLBACK* tell)(struct _cef_write_handler_t* self);
int64_t(CEF_CALLBACK* tell)(struct _cef_write_handler_t* self);
///
/// Flush the stream.
@@ -223,13 +223,13 @@ typedef struct _cef_stream_writer_t {
/// failure.
///
int(CEF_CALLBACK* seek)(struct _cef_stream_writer_t* self,
int64 offset,
int64_t offset,
int whence);
///
/// Return the current offset position.
///
int64(CEF_CALLBACK* tell)(struct _cef_stream_writer_t* self);
int64_t(CEF_CALLBACK* tell)(struct _cef_stream_writer_t* self);
///
/// Flush the stream.

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=273a6abfd4ac030701be00c45811c19e74e128bd$
// $hash=fc609ce5aa3bc51e5cef1f9174dbfc5cff0a0689$
//
#ifndef CEF_INCLUDE_CAPI_CEF_TASK_CAPI_H_
@@ -114,7 +114,7 @@ typedef struct _cef_task_runner_t {
///
int(CEF_CALLBACK* post_delayed_task)(struct _cef_task_runner_t* self,
struct _cef_task_t* task,
int64 delay_ms);
int64_t delay_ms);
} cef_task_runner_t;
///
@@ -149,7 +149,7 @@ CEF_EXPORT int cef_post_task(cef_thread_id_t threadId, cef_task_t* task);
///
CEF_EXPORT int cef_post_delayed_task(cef_thread_id_t threadId,
cef_task_t* task,
int64 delay_ms);
int64_t delay_ms);
#ifdef __cplusplus
}

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=8d275bd73854b2b8d5a7a5bc55fa737e020705ee$
// $hash=28e2d2d86dffdfdad0f275a444656a0638b44d0e$
//
#ifndef CEF_INCLUDE_CAPI_CEF_TRACE_CAPI_H_
@@ -109,7 +109,7 @@ CEF_EXPORT int cef_end_tracing(const cef_string_t* tracing_file,
/// high-res time. Can be used by clients to synchronize with the time
/// information in trace events.
///
CEF_EXPORT int64 cef_now_from_system_trace_time(void);
CEF_EXPORT int64_t cef_now_from_system_trace_time(void);
#ifdef __cplusplus
}

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=91c121d4353a80d7fff3ef582c5a56ac86e0a34c$
// $hash=b038ad859f1dad2d8ba63589da118898350b309c$
//
#ifndef CEF_INCLUDE_CAPI_CEF_URLREQUEST_CAPI_H_
@@ -158,8 +158,8 @@ typedef struct _cef_urlrequest_client_t {
///
void(CEF_CALLBACK* on_upload_progress)(struct _cef_urlrequest_client_t* self,
struct _cef_urlrequest_t* request,
int64 current,
int64 total);
int64_t current,
int64_t total);
///
/// Notifies the client of download progress. |current| denotes the number of
@@ -169,8 +169,8 @@ typedef struct _cef_urlrequest_client_t {
void(CEF_CALLBACK* on_download_progress)(
struct _cef_urlrequest_client_t* self,
struct _cef_urlrequest_t* request,
int64 current,
int64 total);
int64_t current,
int64_t total);
///
/// Called when some part of the response is read. |data| contains the current

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=0d787ac7676ba90d3a1fe68d5e2494b985b1db0e$
// $hash=42de7c0e6f5ec529d9182fe4cbf2c1edfacd7392$
//
#ifndef CEF_INCLUDE_CAPI_CEF_V8_CAPI_H_
@@ -474,12 +474,12 @@ typedef struct _cef_v8value_t {
///
/// Return an int value.
///
int32(CEF_CALLBACK* get_int_value)(struct _cef_v8value_t* self);
int32_t(CEF_CALLBACK* get_int_value)(struct _cef_v8value_t* self);
///
/// Return an unsigned int value.
///
uint32(CEF_CALLBACK* get_uint_value)(struct _cef_v8value_t* self);
uint32_t(CEF_CALLBACK* get_uint_value)(struct _cef_v8value_t* self);
///
/// Return a double value.
@@ -764,12 +764,12 @@ CEF_EXPORT cef_v8value_t* cef_v8value_create_bool(int value);
///
/// Create a new cef_v8value_t object of type int.
///
CEF_EXPORT cef_v8value_t* cef_v8value_create_int(int32 value);
CEF_EXPORT cef_v8value_t* cef_v8value_create_int(int32_t value);
///
/// Create a new cef_v8value_t object of type unsigned int.
///
CEF_EXPORT cef_v8value_t* cef_v8value_create_uint(uint32 value);
CEF_EXPORT cef_v8value_t* cef_v8value_create_uint(uint32_t value);
///
/// Create a new cef_v8value_t object of type double.

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=683d592a2405ada0a9c46c004f003d640a3298ad$
// $hash=be3741396459ccf1337f319965ba1dc509142536$
//
#ifndef CEF_INCLUDE_CAPI_CEF_WAITABLE_EVENT_CAPI_H_
@@ -96,7 +96,7 @@ typedef struct _cef_waitable_event_t {
/// called on the browser process UI or IO threads.
///
int(CEF_CALLBACK* timed_wait)(struct _cef_waitable_event_t* self,
int64 max_ms);
int64_t max_ms);
} cef_waitable_event_t;
///

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=7a541729b4ac664b22cdea625f19f1dba1b6a685$
// $hash=a4b62b20f30552fef5d522bdd00ebf9a8f12464c$
//
#ifndef CEF_INCLUDE_CAPI_CEF_X509_CERTIFICATE_CAPI_H_
@@ -93,13 +93,6 @@ typedef struct _cef_x509cert_principal_t {
cef_string_userfree_t(CEF_CALLBACK* get_country_name)(
struct _cef_x509cert_principal_t* self);
///
/// Retrieve the list of street addresses.
///
void(CEF_CALLBACK* get_street_addresses)(
struct _cef_x509cert_principal_t* self,
cef_string_list_t addresses);
///
/// Retrieve the list of organization names.
///
@@ -113,13 +106,6 @@ typedef struct _cef_x509cert_principal_t {
void(CEF_CALLBACK* get_organization_unit_names)(
struct _cef_x509cert_principal_t* self,
cef_string_list_t names);
///
/// Retrieve the list of domain components.
///
void(CEF_CALLBACK* get_domain_components)(
struct _cef_x509cert_principal_t* self,
cef_string_list_t components);
} cef_x509cert_principal_t;
///

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=83debac545c04a630270665b391f52b15484b5d3$
// $hash=d082d724164cb0b1da12d49b080c599934f08b9d$
//
#ifndef CEF_INCLUDE_CAPI_CEF_ZIP_READER_CAPI_H_
@@ -95,7 +95,7 @@ typedef struct _cef_zip_reader_t {
///
/// Returns the uncompressed size of the file.
///
int64(CEF_CALLBACK* get_file_size)(struct _cef_zip_reader_t* self);
int64_t(CEF_CALLBACK* get_file_size)(struct _cef_zip_reader_t* self);
///
/// Returns the last modified timestamp for the file.
@@ -126,7 +126,7 @@ typedef struct _cef_zip_reader_t {
///
/// Returns the current offset in the uncompressed file contents.
///
int64(CEF_CALLBACK* tell)(struct _cef_zip_reader_t* self);
int64_t(CEF_CALLBACK* tell)(struct _cef_zip_reader_t* self);
///
/// Returns true (1) if at end of the file contents.

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=df532eb91caf9de44b077abdf00620dd2508402b$
// $hash=f5731d0fffb953f1269b63b478a89bb6b842ac94$
//
#ifndef CEF_INCLUDE_CAPI_TEST_CEF_TEST_SERVER_CAPI_H_
@@ -104,7 +104,7 @@ typedef struct _cef_test_server_t {
/// started. The server will continue running until Stop is called.
///
CEF_EXPORT cef_test_server_t* cef_test_server_create_and_start(
uint16 port,
uint16_t port,
int https_server,
cef_test_cert_type_t https_cert_type,
struct _cef_test_server_handler_t* handler);

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=7674d3af52dd4272b454b2028e7a4ee72fb3c9ff$
// $hash=2e9acfffaf1dbc70f0c76fcf58a5190326b131ba$
//
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_DISPLAY_CAPI_H_
@@ -63,7 +63,7 @@ typedef struct _cef_display_t {
///
/// Returns the unique identifier for this Display.
///
int64(CEF_CALLBACK* get_id)(struct _cef_display_t* self);
int64_t(CEF_CALLBACK* get_id)(struct _cef_display_t* self);
///
/// Returns this Display's device pixel scale factor. This specifies how much

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=04aa6e193cc5d5658c0ef28a42c0777c0a955409$
// $hash=d53c4a0a7e731a56a0edcb9d705c76b0a2770155$
//
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_CAPI_H_
@@ -51,6 +51,8 @@
extern "C" {
#endif
struct _cef_browser_view_t;
///
/// A Window is a top-level Window/widget in the Views hierarchy. By default it
/// will have a non-client area with title bar, icon and buttons that supports
@@ -69,6 +71,21 @@ typedef struct _cef_window_t {
///
void(CEF_CALLBACK* show)(struct _cef_window_t* self);
///
/// Show the Window as a browser modal dialog relative to |browser_view|. A
/// parent Window must be returned via
/// cef_window_delegate_t::get_parent_window() and |browser_view| must belong
/// to that parent Window. While this Window is visible, |browser_view| will
/// be disabled while other controls in the parent Window remain enabled.
/// Navigating or destroying the |browser_view| will close this Window
/// automatically. Alternately, use show() and return true (1) from
/// cef_window_delegate_t::is_window_modal_dialog() for a window modal dialog
/// where all controls in the parent Window are disabled.
///
void(CEF_CALLBACK* show_as_browser_modal_dialog)(
struct _cef_window_t* self,
struct _cef_browser_view_t* browser_view);
///
/// Hide the Window.
///
@@ -286,7 +303,7 @@ typedef struct _cef_window_t {
///
void(CEF_CALLBACK* send_key_press)(struct _cef_window_t* self,
int key_code,
uint32 event_flags);
uint32_t event_flags);
///
/// Simulate a mouse move. The mouse cursor will be moved to the specified

View File

@@ -33,7 +33,7 @@
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=7201d268e16fc89f255b6ccd00d043f34fe77584$
// $hash=61099a1ba8b16a5e46f5a80d326d1f9bfc99317d$
//
#ifndef CEF_INCLUDE_CAPI_VIEWS_CEF_WINDOW_DELEGATE_CAPI_H_
@@ -110,6 +110,18 @@ typedef struct _cef_window_delegate_t {
int* is_menu,
int* can_activate_menu);
///
/// Return true (1) if |window| should be created as a window modal dialog.
/// Only called when a Window is returned via get_parent_window() with
/// |is_menu| set to false (0). All controls in the parent Window will be
/// disabled while |window| is visible. This functionality is not supported by
/// all Linux window managers. Alternately, use
/// cef_window_t::show_as_browser_modal_dialog() for a browser modal dialog
/// that works on all platforms.
///
int(CEF_CALLBACK* is_window_modal_dialog)(struct _cef_window_delegate_t* self,
struct _cef_window_t* window);
///
/// Return the initial bounds for |window| in density independent pixel (DIP)
/// coordinates. If this function returns an NULL CefRect then

View File

@@ -42,13 +42,13 @@
// way that may cause binary incompatibility with other builds. The universal
// hash value will change if any platform is affected whereas the platform hash
// values will change only if that particular platform is affected.
#define CEF_API_HASH_UNIVERSAL "eb6257d3e4894dd51617d20588b7f0c3c8717301"
#define CEF_API_HASH_UNIVERSAL "9c9fbc9d59a544c8e0c2f0cbed4b6622f2786f1c"
#if defined(OS_WIN)
#define CEF_API_HASH_PLATFORM "3c99a150153b982d4d8b1a19e33b66a1d93fec21"
#define CEF_API_HASH_PLATFORM "240e06747f2ea2d7d4a3071042d45cf80d170420"
#elif defined(OS_MAC)
#define CEF_API_HASH_PLATFORM "b63aacf68a1fda1164948c24bab4f74abe046137"
#define CEF_API_HASH_PLATFORM "cd4a815153a919ad30b95c659688b564823d92fc"
#elif defined(OS_LINUX)
#define CEF_API_HASH_PLATFORM "b12c839a3ea0dcb9705e543fc17fd3c1d9fa1e7c"
#define CEF_API_HASH_PLATFORM "4c372cb13e3446b2a54aaaea51b0d47ba7766152"
#endif
#ifdef __cplusplus

View File

@@ -87,7 +87,7 @@ class CefAudioHandler : public virtual CefBaseRefCounted {
virtual void OnAudioStreamPacket(CefRefPtr<CefBrowser> browser,
const float** data,
int frames,
int64 pts) = 0;
int64_t pts) = 0;
///
/// Called on the UI thread when the stream has stopped. OnAudioSteamStopped

View File

@@ -170,7 +170,7 @@ class CefBrowser : public virtual CefBaseRefCounted {
/// Returns the frame with the specified identifier, or NULL if not found.
///
/*--cef(capi_name=get_frame_byident)--*/
virtual CefRefPtr<CefFrame> GetFrame(int64 identifier) = 0;
virtual CefRefPtr<CefFrame> GetFrame(int64_t identifier) = 0;
///
/// Returns the frame with the specified name, or NULL if not found.
@@ -188,7 +188,7 @@ class CefBrowser : public virtual CefBaseRefCounted {
/// Returns the identifiers of all existing frames.
///
/*--cef(count_func=identifiers:GetFrameCount)--*/
virtual void GetFrameIdentifiers(std::vector<int64>& identifiers) = 0;
virtual void GetFrameIdentifiers(std::vector<int64_t>& identifiers) = 0;
///
/// Returns the names of all existing frames.
@@ -456,7 +456,7 @@ class CefBrowserHost : public virtual CefBaseRefCounted {
/*--cef()--*/
virtual void DownloadImage(const CefString& image_url,
bool is_favicon,
uint32 max_image_size,
uint32_t max_image_size,
bool bypass_cache,
CefRefPtr<CefDownloadImageCallback> callback) = 0;

View File

@@ -111,7 +111,7 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted {
/// pending scheduled call should be cancelled.
///
/*--cef()--*/
virtual void OnScheduleMessagePumpWork(int64 delay_ms) {}
virtual void OnScheduleMessagePumpWork(int64_t delay_ms) {}
///
/// Return the default client for use with a newly created browser window. If

View File

@@ -82,7 +82,7 @@
/// If "AppName" is set on Windows then crash report information (metrics,
/// database and dumps) will be stored locally on disk under the
/// "C:\Users\[CurrentUser]\AppData\Local\[AppName]\User Data" folder. On other
/// platforms the cef_settings_t.user_data_path value will be used.
/// platforms the cef_settings_t.root_cache_path value will be used.
///
/// If "ExternalHandler" is set on Windows then the specified exe will be
/// launched as the crashpad-handler instead of re-launching the main process

View File

@@ -87,7 +87,7 @@ class CefDownloadItem : public virtual CefBaseRefCounted {
/// Returns a simple speed estimate in bytes/s.
///
/*--cef()--*/
virtual int64 GetCurrentSpeed() = 0;
virtual int64_t GetCurrentSpeed() = 0;
///
/// Returns the rough percent complete or -1 if the receive total size is
@@ -100,13 +100,13 @@ class CefDownloadItem : public virtual CefBaseRefCounted {
/// Returns the total number of bytes.
///
/*--cef()--*/
virtual int64 GetTotalBytes() = 0;
virtual int64_t GetTotalBytes() = 0;
///
/// Returns the number of received bytes.
///
/*--cef()--*/
virtual int64 GetReceivedBytes() = 0;
virtual int64_t GetReceivedBytes() = 0;
///
/// Returns the time that the download started.
@@ -130,7 +130,7 @@ class CefDownloadItem : public virtual CefBaseRefCounted {
/// Returns the unique identifier for this download.
///
/*--cef()--*/
virtual uint32 GetId() = 0;
virtual uint32_t GetId() = 0;
///
/// Returns the URL.

View File

@@ -184,7 +184,7 @@ class CefFrame : public virtual CefBaseRefCounted {
/// underlying frame does not yet exist.
///
/*--cef()--*/
virtual int64 GetIdentifier() = 0;
virtual int64_t GetIdentifier() = 0;
///
/// Returns the parent of this frame or NULL if this is the main (top-level)

View File

@@ -57,7 +57,7 @@ class CefMediaAccessCallback : public virtual CefBaseRefCounted {
/// OnRequestMediaAccessPermission.
///
/*--cef(capi_name=cont)--*/
virtual void Continue(uint32 allowed_permissions) = 0;
virtual void Continue(uint32_t allowed_permissions) = 0;
///
/// Cancel the media access request.
@@ -104,7 +104,7 @@ class CefPermissionHandler : public virtual CefBaseRefCounted {
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
const CefString& requesting_origin,
uint32 requested_permissions,
uint32_t requested_permissions,
CefRefPtr<CefMediaAccessCallback> callback) {
return false;
}
@@ -123,9 +123,9 @@ class CefPermissionHandler : public virtual CefBaseRefCounted {
/*--cef()--*/
virtual bool OnShowPermissionPrompt(
CefRefPtr<CefBrowser> browser,
uint64 prompt_id,
uint64_t prompt_id,
const CefString& requesting_origin,
uint32 requested_permissions,
uint32_t requested_permissions,
CefRefPtr<CefPermissionPromptCallback> callback) {
return false;
}
@@ -142,7 +142,7 @@ class CefPermissionHandler : public virtual CefBaseRefCounted {
/*--cef()--*/
virtual void OnDismissPermissionPrompt(
CefRefPtr<CefBrowser> browser,
uint64 prompt_id,
uint64_t prompt_id,
cef_permission_request_result_t result) {}
};

View File

@@ -217,7 +217,7 @@ class CefRequest : public virtual CefBaseRefCounted {
/// browser process to track a single request across multiple callbacks.
///
/*--cef()--*/
virtual uint64 GetIdentifier() = 0;
virtual uint64_t GetIdentifier() = 0;
};
///

View File

@@ -46,6 +46,7 @@
#include "include/cef_extension_handler.h"
#include "include/cef_media_router.h"
#include "include/cef_preference.h"
#include "include/cef_values.h"
class CefRequestContextHandler;
class CefSchemeHandlerFactory;
@@ -314,6 +315,72 @@ class CefRequestContext : public CefPreferenceManager {
/*--cef(optional_param=callback)--*/
virtual CefRefPtr<CefMediaRouter> GetMediaRouter(
CefRefPtr<CefCompletionCallback> callback) = 0;
///
/// Returns the current value for |content_type| that applies for the
/// specified URLs. If both URLs are empty the default value will be returned.
/// Returns nullptr if no value is configured. Must be called on the browser
/// process UI thread.
///
/*--cef(optional_param=requesting_url,optional_param=top_level_url)--*/
virtual CefRefPtr<CefValue> GetWebsiteSetting(
const CefString& requesting_url,
const CefString& top_level_url,
cef_content_setting_types_t content_type) = 0;
///
/// Sets the current value for |content_type| for the specified URLs in the
/// default scope. If both URLs are empty, and the context is not incognito,
/// the default value will be set. Pass nullptr for |value| to remove the
/// default value for this content type.
///
/// WARNING: Incorrect usage of this method may cause instability or security
/// issues in Chromium. Make sure that you first understand the potential
/// impact of any changes to |content_type| by reviewing the related source
/// code in Chromium. For example, if you plan to modify
/// CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of
/// ContentSettingsType::POPUPS in Chromium:
/// https://source.chromium.org/search?q=ContentSettingsType::POPUPS
///
/*--cef(optional_param=requesting_url,optional_param=top_level_url,
optional_param=value)--*/
virtual void SetWebsiteSetting(const CefString& requesting_url,
const CefString& top_level_url,
cef_content_setting_types_t content_type,
CefRefPtr<CefValue> value) = 0;
///
/// Returns the current value for |content_type| that applies for the
/// specified URLs. If both URLs are empty the default value will be returned.
/// Returns CEF_CONTENT_SETTING_VALUE_DEFAULT if no value is configured. Must
/// be called on the browser process UI thread.
///
/*--cef(optional_param=requesting_url,optional_param=top_level_url,
default_retval=CEF_CONTENT_SETTING_VALUE_DEFAULT)--*/
virtual cef_content_setting_values_t GetContentSetting(
const CefString& requesting_url,
const CefString& top_level_url,
cef_content_setting_types_t content_type) = 0;
///
/// Sets the current value for |content_type| for the specified URLs in the
/// default scope. If both URLs are empty, and the context is not incognito,
/// the default value will be set. Pass CEF_CONTENT_SETTING_VALUE_DEFAULT for
/// |value| to use the default value for this content type.
///
/// WARNING: Incorrect usage of this method may cause instability or security
/// issues in Chromium. Make sure that you first understand the potential
/// impact of any changes to |content_type| by reviewing the related source
/// code in Chromium. For example, if you plan to modify
/// CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of
/// ContentSettingsType::POPUPS in Chromium:
/// https://source.chromium.org/search?q=ContentSettingsType::POPUPS
///
/*--cef(optional_param=requesting_url,optional_param=top_level_url)--*/
virtual void SetContentSetting(const CefString& requesting_url,
const CefString& top_level_url,
cef_content_setting_types_t content_type,
cef_content_setting_values_t value) = 0;
};
#endif // CEF_INCLUDE_CEF_REQUEST_CONTEXT_H_

View File

@@ -58,7 +58,7 @@ class CefResourceSkipCallback : public virtual CefBaseRefCounted {
/// <= 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE.
///
/*--cef(capi_name=cont)--*/
virtual void Continue(int64 bytes_skipped) = 0;
virtual void Continue(int64_t bytes_skipped) = 0;
};
///
@@ -136,7 +136,7 @@ class CefResourceHandler : public virtual CefBaseRefCounted {
///
/*--cef()--*/
virtual void GetResponseHeaders(CefRefPtr<CefResponse> response,
int64& response_length,
int64_t& response_length,
CefString& redirectUrl) = 0;
///
@@ -149,8 +149,8 @@ class CefResourceHandler : public virtual CefBaseRefCounted {
/// method will be called in sequence but not from a dedicated thread.
///
/*--cef()--*/
virtual bool Skip(int64 bytes_to_skip,
int64& bytes_skipped,
virtual bool Skip(int64_t bytes_to_skip,
int64_t& bytes_skipped,
CefRefPtr<CefResourceSkipCallback> callback) {
bytes_skipped = -2;
return false;

View File

@@ -187,7 +187,7 @@ class CefResourceRequestHandler : public virtual CefBaseRefCounted {
CefRefPtr<CefRequest> request,
CefRefPtr<CefResponse> response,
URLRequestStatus status,
int64 received_content_length) {}
int64_t received_content_length) {}
///
/// Called on the IO thread to handle requests for URLs with an unknown

View File

@@ -74,7 +74,7 @@ class CefServer : public CefBaseRefCounted {
///
/*--cef()--*/
static void CreateServer(const CefString& address,
uint16 port,
uint16_t port,
int backlog,
CefRefPtr<CefServerHandler> handler);
@@ -170,7 +170,7 @@ class CefServer : public CefBaseRefCounted {
virtual void SendHttpResponse(int connection_id,
int response_code,
const CefString& content_type,
int64 content_length,
int64_t content_length,
const HeaderMap& extra_headers) = 0;
///

View File

@@ -58,13 +58,13 @@ class CefReadHandler : public virtual CefBaseRefCounted {
/// failure.
///
/*--cef()--*/
virtual int Seek(int64 offset, int whence) = 0;
virtual int Seek(int64_t offset, int whence) = 0;
///
/// Return the current offset position.
///
/*--cef()--*/
virtual int64 Tell() = 0;
virtual int64_t Tell() = 0;
///
/// Return non-zero if at end of file.
@@ -119,13 +119,13 @@ class CefStreamReader : public virtual CefBaseRefCounted {
/// failure.
///
/*--cef()--*/
virtual int Seek(int64 offset, int whence) = 0;
virtual int Seek(int64_t offset, int whence) = 0;
///
/// Return the current offset position.
///
/*--cef()--*/
virtual int64 Tell() = 0;
virtual int64_t Tell() = 0;
///
/// Return non-zero if at end of file.
@@ -161,13 +161,13 @@ class CefWriteHandler : public virtual CefBaseRefCounted {
/// failure.
///
/*--cef()--*/
virtual int Seek(int64 offset, int whence) = 0;
virtual int Seek(int64_t offset, int whence) = 0;
///
/// Return the current offset position.
///
/*--cef()--*/
virtual int64 Tell() = 0;
virtual int64_t Tell() = 0;
///
/// Flush the stream.
@@ -215,13 +215,13 @@ class CefStreamWriter : public virtual CefBaseRefCounted {
/// failure.
///
/*--cef()--*/
virtual int Seek(int64 offset, int whence) = 0;
virtual int Seek(int64_t offset, int whence) = 0;
///
/// Return the current offset position.
///
/*--cef()--*/
virtual int64 Tell() = 0;
virtual int64_t Tell() = 0;
///
/// Flush the stream.

View File

@@ -118,7 +118,7 @@ class CefTaskRunner : public virtual CefBaseRefCounted {
/// specified delay.
///
/*--cef()--*/
virtual bool PostDelayedTask(CefRefPtr<CefTask> task, int64 delay_ms) = 0;
virtual bool PostDelayedTask(CefRefPtr<CefTask> task, int64_t delay_ms) = 0;
};
///
@@ -143,6 +143,6 @@ bool CefPostTask(CefThreadId threadId, CefRefPtr<CefTask> task);
/*--cef()--*/
bool CefPostDelayedTask(CefThreadId threadId,
CefRefPtr<CefTask> task,
int64 delay_ms);
int64_t delay_ms);
#endif // CEF_INCLUDE_CEF_TASK_H_

View File

@@ -106,6 +106,6 @@ bool CefEndTracing(const CefString& tracing_file,
/// information in trace events.
///
/*--cef()--*/
int64 CefNowFromSystemTraceTime();
int64_t CefNowFromSystemTraceTime();
#endif // CEF_INCLUDE_CEF_TRACE_H_

View File

@@ -152,8 +152,8 @@ class CefURLRequestClient : public virtual CefBaseRefCounted {
///
/*--cef()--*/
virtual void OnUploadProgress(CefRefPtr<CefURLRequest> request,
int64 current,
int64 total) = 0;
int64_t current,
int64_t total) = 0;
///
/// Notifies the client of download progress. |current| denotes the number of
@@ -162,8 +162,8 @@ class CefURLRequestClient : public virtual CefBaseRefCounted {
///
/*--cef()--*/
virtual void OnDownloadProgress(CefRefPtr<CefURLRequest> request,
int64 current,
int64 total) = 0;
int64_t current,
int64_t total) = 0;
///
/// Called when some part of the response is read. |data| contains the current

View File

@@ -459,13 +459,13 @@ class CefV8Value : public virtual CefBaseRefCounted {
/// Create a new CefV8Value object of type int.
///
/*--cef()--*/
static CefRefPtr<CefV8Value> CreateInt(int32 value);
static CefRefPtr<CefV8Value> CreateInt(int32_t value);
///
/// Create a new CefV8Value object of type unsigned int.
///
/*--cef()--*/
static CefRefPtr<CefV8Value> CreateUInt(uint32 value);
static CefRefPtr<CefV8Value> CreateUInt(uint32_t value);
///
/// Create a new CefV8Value object of type double.
@@ -648,13 +648,13 @@ class CefV8Value : public virtual CefBaseRefCounted {
/// Return an int value.
///
/*--cef()--*/
virtual int32 GetIntValue() = 0;
virtual int32_t GetIntValue() = 0;
///
/// Return an unsigned int value.
///
/*--cef()--*/
virtual uint32 GetUIntValue() = 0;
virtual uint32_t GetUIntValue() = 0;
///
/// Return a double value.

View File

@@ -103,7 +103,7 @@ class CefWaitableEvent : public CefBaseRefCounted {
/// called on the browser process UI or IO threads.
///
/*--cef()--*/
virtual bool TimedWait(int64 max_ms) = 0;
virtual bool TimedWait(int64_t max_ms) = 0;
};
#endif // CEF_INCLUDE_CEF_WAITABLE_EVENT_H_

View File

@@ -81,12 +81,6 @@ class CefX509CertPrincipal : public virtual CefBaseRefCounted {
/*--cef()--*/
virtual CefString GetCountryName() = 0;
///
/// Retrieve the list of street addresses.
///
/*--cef()--*/
virtual void GetStreetAddresses(std::vector<CefString>& addresses) = 0;
///
/// Retrieve the list of organization names.
///
@@ -98,12 +92,6 @@ class CefX509CertPrincipal : public virtual CefBaseRefCounted {
///
/*--cef()--*/
virtual void GetOrganizationUnitNames(std::vector<CefString>& names) = 0;
///
/// Retrieve the list of domain components.
///
/*--cef()--*/
virtual void GetDomainComponents(std::vector<CefString>& components) = 0;
};
///

View File

@@ -96,7 +96,7 @@ class CefZipReader : public virtual CefBaseRefCounted {
/// Returns the uncompressed size of the file.
///
/*--cef()--*/
virtual int64 GetFileSize() = 0;
virtual int64_t GetFileSize() = 0;
///
/// Returns the last modified timestamp for the file.
@@ -128,7 +128,7 @@ class CefZipReader : public virtual CefBaseRefCounted {
/// Returns the current offset in the uncompressed file contents.
///
/*--cef()--*/
virtual int64 Tell() = 0;
virtual int64_t Tell() = 0;
///
/// Returns true if at end of the file contents.

View File

@@ -74,7 +74,7 @@ typedef cef_string_userfree_utf8_t cef_string_userfree_t;
#define cef_string_to_wide cef_string_utf8_to_wide
#define cef_string_from_wide cef_string_wide_to_utf8
#elif defined(CEF_STRING_TYPE_UTF16)
typedef char16 cef_char_t;
typedef char16_t cef_char_t;
typedef cef_string_userfree_utf16_t cef_string_userfree_t;
typedef cef_string_utf16_t cef_string_t;
#define cef_string_set cef_string_utf16_set

View File

@@ -33,7 +33,18 @@
#include <stddef.h>
#include "include/base/cef_basictypes.h"
#ifdef __clang__
// On macOS, <uchar.h> is only available with Xcode 14.3+.
#if __has_include(<uchar.h>)
#include <uchar.h>
#elif !defined(__cplusplus)
#include <stdint.h>
typedef uint_least16_t char16_t;
#endif
#else
#include <uchar.h>
#endif
#include "include/internal/cef_export.h"
///
@@ -70,9 +81,9 @@ typedef struct _cef_string_utf8_t {
} cef_string_utf8_t;
typedef struct _cef_string_utf16_t {
char16* str;
char16_t* str;
size_t length;
void (*dtor)(char16* str);
void (*dtor)(char16_t* str);
} cef_string_utf16_t;
///
@@ -89,7 +100,7 @@ CEF_EXPORT int cef_string_utf8_set(const char* src,
size_t src_len,
cef_string_utf8_t* output,
int copy);
CEF_EXPORT int cef_string_utf16_set(const char16* src,
CEF_EXPORT int cef_string_utf16_set(const char16_t* src,
size_t src_len,
cef_string_utf16_t* output,
int copy);
@@ -141,14 +152,14 @@ CEF_EXPORT int cef_string_utf8_to_wide(const char* src,
CEF_EXPORT int cef_string_wide_to_utf16(const wchar_t* src,
size_t src_len,
cef_string_utf16_t* output);
CEF_EXPORT int cef_string_utf16_to_wide(const char16* src,
CEF_EXPORT int cef_string_utf16_to_wide(const char16_t* src,
size_t src_len,
cef_string_wide_t* output);
CEF_EXPORT int cef_string_utf8_to_utf16(const char* src,
size_t src_len,
cef_string_utf16_t* output);
CEF_EXPORT int cef_string_utf16_to_utf8(const char16* src,
CEF_EXPORT int cef_string_utf16_to_utf8(const char16_t* src,
size_t src_len,
cef_string_utf8_t* output);
@@ -198,10 +209,10 @@ CEF_EXPORT void cef_string_userfree_utf16_free(cef_string_userfree_utf16_t str);
/// may change the length of the string in some cases.
///
CEF_EXPORT int cef_string_utf16_to_lower(const char16* src,
CEF_EXPORT int cef_string_utf16_to_lower(const char16_t* src,
size_t src_len,
cef_string_utf16_t* output);
CEF_EXPORT int cef_string_utf16_to_upper(const char16* src,
CEF_EXPORT int cef_string_utf16_to_upper(const char16_t* src,
size_t src_len,
cef_string_utf16_t* output);

View File

@@ -115,7 +115,7 @@ struct CefStringTraitsWide {
static inline bool from_string16(const std::u16string::value_type* data,
size_t length,
struct_type* s) {
return cef_string_utf16_to_wide(reinterpret_cast<const char16*>(data),
return cef_string_utf16_to_wide(reinterpret_cast<const char16_t*>(data),
length, s)
? true
: false;
@@ -213,7 +213,7 @@ struct CefStringTraitsUTF8 {
static inline bool from_string16(const std::u16string::value_type* data,
size_t length,
struct_type* s) {
return cef_string_utf16_to_utf8(reinterpret_cast<const char16*>(data),
return cef_string_utf16_to_utf8(reinterpret_cast<const char16_t*>(data),
length, s)
? true
: false;
@@ -227,7 +227,7 @@ struct CefStringTraitsUTF8 {
/// Traits implementation for utf16 character strings.
///
struct CefStringTraitsUTF16 {
typedef char16 char_type;
typedef char16_t char_type;
typedef cef_string_utf16_t struct_type;
typedef cef_string_userfree_utf16_t userfree_struct_type;
@@ -290,12 +290,15 @@ struct CefStringTraitsUTF16 {
}
#else // WCHAR_T_IS_UTF32
static inline std::wstring to_wstring(const struct_type* s) {
return std::wstring(s->str, s->length);
return std::wstring(reinterpret_cast<wchar_t*>(s->str), s->length);
}
static inline bool from_wstring(const std::wstring::value_type* data,
size_t length,
struct_type* s) {
return cef_string_utf16_set(data, length, s, true) ? true : false;
return cef_string_utf16_set(reinterpret_cast<const char16_t*>(data), length,
s, true)
? true
: false;
}
#endif // WCHAR_T_IS_UTF32
static inline bool from_wstring(const std::wstring& str, struct_type* s) {
@@ -308,7 +311,7 @@ struct CefStringTraitsUTF16 {
static inline bool from_string16(const std::u16string::value_type* data,
size_t length,
struct_type* s) {
return cef_string_utf16_set(reinterpret_cast<const char16*>(data), length,
return cef_string_utf16_set(reinterpret_cast<const char16_t*>(data), length,
s, true)
? true
: false;
@@ -412,15 +415,6 @@ class CefStringBase {
FromString16(src, length);
}
}
#if defined(WCHAR_T_IS_UTF32)
CefStringBase(const char16* src, size_t length = 0)
: string_(NULL), owner_(false) {
if (src) {
FromString16(reinterpret_cast<const std::u16string::value_type*>(src),
length);
}
}
#endif // WCHAR_T_IS_UTF32
///
/// Create a new string from an existing character array. If |copy| is true
@@ -826,12 +820,6 @@ class CefStringBase {
FromString16(str);
return *this;
}
#if defined(WCHAR_T_IS_UTF32)
CefStringBase& operator=(const char16* str) {
FromString16(reinterpret_cast<const std::u16string::value_type*>(str));
return *this;
}
#endif // WCHAR_T_IS_UTF32
#if defined(USING_CHROMIUM_INCLUDES)
// The base::FilePath constructor is marked as explicit so provide the
// conversion here for convenience.

View File

@@ -35,8 +35,9 @@
extern "C" {
#endif
#include <stdint.h>
#include <time.h>
#include "include/base/cef_basictypes.h"
#include "include/internal/cef_export.h"
///
@@ -47,7 +48,7 @@ extern "C" {
/// This is equivalent of Chromium `base::Time` (see base/time/time.h).
///
typedef struct _cef_basetime_t {
int64 val;
int64_t val;
} cef_basetime_t;
///

View File

@@ -45,77 +45,66 @@ extern "C" {
// may not include "(quotes) chars.
// - |argX_name|, |argX_val|, |valueX_name|, |valeX_val| are optional parameters
// and represent pairs of name and values of arguments
// - |copy| is used to avoid memory scoping issues with the |name| and
// |arg_name| parameters by copying them
// - |id| is used to disambiguate counters with the same name, or match async
// trace events
CEF_EXPORT void cef_trace_event_instant(const char* category,
const char* name,
const char* arg1_name,
uint64 arg1_val,
uint64_t arg1_val,
const char* arg2_name,
uint64 arg2_val,
int copy);
uint64_t arg2_val);
CEF_EXPORT void cef_trace_event_begin(const char* category,
const char* name,
const char* arg1_name,
uint64 arg1_val,
uint64_t arg1_val,
const char* arg2_name,
uint64 arg2_val,
int copy);
uint64_t arg2_val);
CEF_EXPORT void cef_trace_event_end(const char* category,
const char* name,
const char* arg1_name,
uint64 arg1_val,
uint64_t arg1_val,
const char* arg2_name,
uint64 arg2_val,
int copy);
uint64_t arg2_val);
CEF_EXPORT void cef_trace_counter(const char* category,
const char* name,
const char* value1_name,
uint64 value1_val,
uint64_t value1_val,
const char* value2_name,
uint64 value2_val,
int copy);
uint64_t value2_val);
CEF_EXPORT void cef_trace_counter_id(const char* category,
const char* name,
uint64 id,
uint64_t id,
const char* value1_name,
uint64 value1_val,
uint64_t value1_val,
const char* value2_name,
uint64 value2_val,
int copy);
uint64_t value2_val);
CEF_EXPORT void cef_trace_event_async_begin(const char* category,
const char* name,
uint64 id,
uint64_t id,
const char* arg1_name,
uint64 arg1_val,
uint64_t arg1_val,
const char* arg2_name,
uint64 arg2_val,
int copy);
uint64_t arg2_val);
CEF_EXPORT void cef_trace_event_async_step_into(const char* category,
const char* name,
uint64 id,
uint64 step,
uint64_t id,
uint64_t step,
const char* arg1_name,
uint64 arg1_val,
int copy);
uint64_t arg1_val);
CEF_EXPORT void cef_trace_event_async_step_past(const char* category,
const char* name,
uint64 id,
uint64 step,
uint64_t id,
uint64_t step,
const char* arg1_name,
uint64 arg1_val,
int copy);
uint64_t arg1_val);
CEF_EXPORT void cef_trace_event_async_end(const char* category,
const char* name,
uint64 id,
uint64_t id,
const char* arg1_name,
uint64 arg1_val,
uint64_t arg1_val,
const char* arg2_name,
uint64 arg2_val,
int copy);
uint64_t arg2_val);
#ifdef __cplusplus
}

View File

@@ -31,10 +31,14 @@
#define CEF_INCLUDE_INTERNAL_CEF_TYPES_H_
#pragma once
#include "include/base/cef_basictypes.h"
#include <limits.h>
#include <stddef.h>
#include <stdint.h>
#include "include/internal/cef_string.h"
#include "include/internal/cef_string_list.h"
#include "include/internal/cef_time.h"
#include "include/internal/cef_types_content_settings.h"
#include "include/internal/cef_types_geometry.h"
// Bring in platform-specific definitions.
@@ -48,7 +52,7 @@
// 32-bit ARGB color value, not premultiplied. The color components are always
// in a known order. Equivalent to the SkColor type.
typedef uint32 cef_color_t;
typedef uint32_t cef_color_t;
// Return the alpha byte from a cef_color_t value.
#define CefColorGetA(color) (((color) >> 24) & 0xFF)
@@ -65,17 +69,18 @@ typedef uint32 cef_color_t;
(static_cast<unsigned>(a) << 24) | (static_cast<unsigned>(r) << 16) | \
(static_cast<unsigned>(g) << 8) | (static_cast<unsigned>(b) << 0))
// Return an int64 value with the specified low and high int32 component values.
#define CefInt64Set(int32_low, int32_high) \
static_cast<int64>((static_cast<uint32>(int32_low)) | \
(static_cast<int64>(static_cast<int32>(int32_high))) \
<< 32)
// Return an int64_t value with the specified low and high int32_t component
// values.
#define CefInt64Set(int32_low, int32_high) \
static_cast<int64_t>( \
(static_cast<uint32_t>(int32_low)) | \
(static_cast<int64_t>(static_cast<int32_t>(int32_high))) << 32)
// Return the low int32 value from an int64 value.
#define CefInt64GetLow(int64_val) static_cast<int32>(int64_val)
// Return the high int32 value from an int64 value.
// Return the low int32_t value from an int64_t value.
#define CefInt64GetLow(int64_val) static_cast<int32_t>(int64_val)
// Return the high int32_t value from an int64_t value.
#define CefInt64GetHigh(int64_val) \
static_cast<int32>((static_cast<int64>(int64_val) >> 32) & 0xFFFFFFFFL)
static_cast<int32_t>((static_cast<int64_t>(int64_val) >> 32) & 0xFFFFFFFFL)
#ifdef __cplusplus
extern "C" {
@@ -255,24 +260,16 @@ typedef struct _cef_settings_t {
/// The root directory that all CefSettings.cache_path and
/// CefRequestContextSettings.cache_path values must have in common. If this
/// value is empty and CefSettings.cache_path is non-empty then it will
/// default to the CefSettings.cache_path value. If this value is non-empty
/// then it must be an absolute path. Failure to set this value correctly may
/// result in the sandbox blocking read/write access to the cache_path
/// directory.
///
cef_string_t root_cache_path;
///
/// The location where user data such as the Widevine CDM module and spell
/// checking dictionary files will be stored on disk. If this value is empty
/// then the default platform-specific user data directory will be used
/// default to the CefSettings.cache_path value. If both values are empty
/// then the default platform-specific directory will be used
/// ("~/.config/cef_user_data" directory on Linux, "~/Library/Application
/// Support/CEF/User Data" directory on MacOS, "AppData\Local\CEF\User Data"
/// directory under the user profile directory on Windows). If this value is
/// non-empty then it must be an absolute path. When using the Chrome runtime
/// this value will be ignored in favor of the |root_cache_path| value.
/// non-empty then it must be an absolute path. Failure to set this value
/// correctly may result in the sandbox blocking read/write access to certain
/// files.
///
cef_string_t user_data_path;
cef_string_t root_cache_path;
///
/// To persist session cookies (cookies without an expiry date or validity
@@ -1778,7 +1775,7 @@ typedef struct _cef_mouse_event_t {
/// Bit flags describing any pressed modifier keys. See
/// cef_event_flags_t for values.
///
uint32 modifiers;
uint32_t modifiers;
} cef_mouse_event_t;
///
@@ -1856,7 +1853,7 @@ typedef struct _cef_touch_event_t {
/// Bit flags describing any pressed modifier keys. See
/// cef_event_flags_t for values.
///
uint32 modifiers;
uint32_t modifiers;
///
/// The device type that caused the event.
@@ -2069,7 +2066,7 @@ typedef struct _cef_key_event_t {
/// Bit flags describing any pressed modifier keys. See
/// cef_event_flags_t for values.
///
uint32 modifiers;
uint32_t modifiers;
///
/// The Windows key code for the key event. This value is used by the DOM
@@ -2094,13 +2091,13 @@ typedef struct _cef_key_event_t {
///
/// The character generated by the keystroke.
///
char16 character;
char16_t character;
///
/// Same as |character| but unmodified by any concurrently-held modifiers
/// (except shift). This is useful for working out shortcut keys.
///
char16 unmodified_character;
char16_t unmodified_character;
///
/// True if the focus is currently on an editable field on the page. This is
@@ -3289,7 +3286,8 @@ typedef enum {
CEF_CPAIT_VIRTUAL_CARD_MANUAL_FALLBACK,
CEF_CPAIT_ZOOM,
CEF_CPAIT_SAVE_IBAN,
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_SAVE_IBAN,
CEF_CPAIT_MANDATORY_REAUTH,
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_MANDATORY_REAUTH,
} cef_chrome_page_action_icon_type_t;
///
@@ -3346,7 +3344,7 @@ typedef struct _cef_touch_handle_state_t {
/// Combination of cef_touch_handle_state_flags_t values indicating what state
/// is set.
///
uint32 flags;
uint32_t flags;
///
/// Enabled state. Only set if |flags| contains CEF_THS_FLAG_ENABLED.

View File

@@ -0,0 +1,368 @@
// Copyright (c) 2023 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_CONTENT_SETTINGS_H_
#define CEF_INCLUDE_INTERNAL_CEF_TYPES_CONTENT_SETTINGS_H_
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
///
/// Supported content setting types. Some types are platform-specific or only
/// supported with the Chrome runtime. Should be kept in sync with Chromium's
/// ContentSettingsType type.
///
typedef enum {
CEF_CONTENT_SETTING_TYPE_COOKIES = 0,
CEF_CONTENT_SETTING_TYPE_IMAGES,
CEF_CONTENT_SETTING_TYPE_JAVASCRIPT,
/// This setting governs both popups and unwanted redirects like tab-unders
/// and framebusting.
CEF_CONTENT_SETTING_TYPE_POPUPS,
CEF_CONTENT_SETTING_TYPE_GEOLOCATION,
CEF_CONTENT_SETTING_TYPE_NOTIFICATIONS,
CEF_CONTENT_SETTING_TYPE_AUTO_SELECT_CERTIFICATE,
CEF_CONTENT_SETTING_TYPE_MIXEDSCRIPT,
CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_MIC,
CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_CAMERA,
CEF_CONTENT_SETTING_TYPE_PROTOCOL_HANDLERS,
CEF_CONTENT_SETTING_TYPE_DEPRECATED_PPAPI_BROKER,
CEF_CONTENT_SETTING_TYPE_AUTOMATIC_DOWNLOADS,
CEF_CONTENT_SETTING_TYPE_MIDI_SYSEX,
CEF_CONTENT_SETTING_TYPE_SSL_CERT_DECISIONS,
CEF_CONTENT_SETTING_TYPE_PROTECTED_MEDIA_IDENTIFIER,
CEF_CONTENT_SETTING_TYPE_APP_BANNER,
CEF_CONTENT_SETTING_TYPE_SITE_ENGAGEMENT,
CEF_CONTENT_SETTING_TYPE_DURABLE_STORAGE,
CEF_CONTENT_SETTING_TYPE_USB_CHOOSER_DATA,
CEF_CONTENT_SETTING_TYPE_BLUETOOTH_GUARD,
CEF_CONTENT_SETTING_TYPE_BACKGROUND_SYNC,
CEF_CONTENT_SETTING_TYPE_AUTOPLAY,
CEF_CONTENT_SETTING_TYPE_IMPORTANT_SITE_INFO,
CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOBLOCKER_DATA,
CEF_CONTENT_SETTING_TYPE_ADS,
/// Website setting which stores metadata for the subresource filter to aid in
/// decisions for whether or not to show the UI.
CEF_CONTENT_SETTING_TYPE_ADS_DATA,
/// This is special-cased in the permissions layer to always allow, and as
/// such doesn't have associated prefs data.
CEF_CONTENT_SETTING_TYPE_MIDI,
/// This content setting type is for caching password protection service's
/// verdicts of each origin.
CEF_CONTENT_SETTING_TYPE_PASSWORD_PROTECTION,
/// Website setting which stores engagement data for media related to a
/// specific origin.
CEF_CONTENT_SETTING_TYPE_MEDIA_ENGAGEMENT,
/// Content setting which stores whether or not the site can play audible
/// sound. This will not block playback but instead the user will not hear it.
CEF_CONTENT_SETTING_TYPE_SOUND,
/// Website setting which stores the list of client hints that the origin
/// requested the browser to remember. The browser is expected to send all
/// client hints in the HTTP request headers for every resource requested
/// from that origin.
CEF_CONTENT_SETTING_TYPE_CLIENT_HINTS,
/// Generic Sensor API covering ambient-light-sensor, accelerometer, gyroscope
/// and magnetometer are all mapped to a single content_settings_type.
/// Setting for the Generic Sensor API covering ambient-light-sensor,
/// accelerometer, gyroscope and magnetometer. These are all mapped to a
/// single ContentSettingsType.
CEF_CONTENT_SETTING_TYPE_SENSORS,
/// Content setting which stores whether or not the user has granted the site
/// permission to respond to accessibility events, which can be used to
/// provide a custom accessibility experience. Requires explicit user consent
/// because some users may not want sites to know they're using assistive
/// technology.
CEF_CONTENT_SETTING_TYPE_ACCESSIBILITY_EVENTS,
/// Used to store whether to allow a website to install a payment handler.
CEF_CONTENT_SETTING_TYPE_PAYMENT_HANDLER,
/// Content setting which stores whether to allow sites to ask for permission
/// to access USB devices. If this is allowed specific device permissions are
/// stored under USB_CHOOSER_DATA.
CEF_CONTENT_SETTING_TYPE_USB_GUARD,
/// Nothing is stored in this setting at present. Please refer to
/// BackgroundFetchPermissionContext for details on how this permission
/// is ascertained.
CEF_CONTENT_SETTING_TYPE_BACKGROUND_FETCH,
/// Website setting which stores the amount of times the user has dismissed
/// intent picker UI without explicitly choosing an option.
CEF_CONTENT_SETTING_TYPE_INTENT_PICKER_DISPLAY,
/// Used to store whether to allow a website to detect user active/idle state.
CEF_CONTENT_SETTING_TYPE_IDLE_DETECTION,
/// Setting for enabling auto-select of all screens for getDisplayMediaSet.
CEF_CONTENT_SETTING_TYPE_GET_DISPLAY_MEDIA_SET_SELECT_ALL_SCREENS,
/// Content settings for access to serial ports. The "guard" content setting
/// stores whether to allow sites to ask for permission to access a port. The
/// permissions granted to access particular ports are stored in the "chooser
/// data" website setting.
CEF_CONTENT_SETTING_TYPE_SERIAL_GUARD,
CEF_CONTENT_SETTING_TYPE_SERIAL_CHOOSER_DATA,
/// Nothing is stored in this setting at present. Please refer to
/// PeriodicBackgroundSyncPermissionContext for details on how this permission
/// is ascertained.
/// This content setting is not registered because it does not require access
/// to any existing providers.
CEF_CONTENT_SETTING_TYPE_PERIODIC_BACKGROUND_SYNC,
/// Content setting which stores whether to allow sites to ask for permission
/// to do Bluetooth scanning.
CEF_CONTENT_SETTING_TYPE_BLUETOOTH_SCANNING,
/// Content settings for access to HID devices. The "guard" content setting
/// stores whether to allow sites to ask for permission to access a device.
/// The permissions granted to access particular devices are stored in the
/// "chooser data" website setting.
CEF_CONTENT_SETTING_TYPE_HID_GUARD,
CEF_CONTENT_SETTING_TYPE_HID_CHOOSER_DATA,
/// Wake Lock API, which has two lock types: screen and system locks.
/// Currently, screen locks do not need any additional permission, and system
/// locks are always denied while the right UI is worked out.
CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SCREEN,
CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SYSTEM,
/// Legacy SameSite cookie behavior. This disables SameSite=Lax-by-default,
/// SameSite=None requires Secure, and Schemeful Same-Site, forcing the
/// legacy behavior wherein 1) cookies that don't specify SameSite are treated
/// as SameSite=None, 2) SameSite=None cookies are not required to be Secure,
/// and 3) schemeful same-site is not active.
///
/// This will also be used to revert to legacy behavior when future changes
/// in cookie handling are introduced.
CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_ACCESS,
/// Content settings which stores whether to allow sites to ask for permission
/// to save changes to an original file selected by the user through the
/// File System Access API.
CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_WRITE_GUARD,
/// Used to store whether to allow a website to exchange data with NFC
/// devices.
CEF_CONTENT_SETTING_TYPE_NFC,
/// Website setting to store permissions granted to access particular
/// Bluetooth devices.
CEF_CONTENT_SETTING_TYPE_BLUETOOTH_CHOOSER_DATA,
/// Full access to the system clipboard (sanitized read without user gesture,
/// and unsanitized read and write with user gesture).
CEF_CONTENT_SETTING_TYPE_CLIPBOARD_READ_WRITE,
/// This is special-cased in the permissions layer to always allow, and as
/// such doesn't have associated prefs data.
CEF_CONTENT_SETTING_TYPE_CLIPBOARD_SANITIZED_WRITE,
/// This content setting type is for caching safe browsing real time url
/// check's verdicts of each origin.
CEF_CONTENT_SETTING_TYPE_SAFE_BROWSING_URL_CHECK_DATA,
/// Used to store whether a site is allowed to request AR or VR sessions with
/// the WebXr Device API.
CEF_CONTENT_SETTING_TYPE_VR,
CEF_CONTENT_SETTING_TYPE_AR,
/// Content setting which stores whether to allow site to open and read files
/// and directories selected through the File System Access API.
CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_READ_GUARD,
/// Access to first party storage in a third-party context. Exceptions are
/// scoped to the combination of requesting/top-level origin, and are managed
/// through the Storage Access API. For the time being, this content setting
/// exists in parallel to third-party cookie rules stored in COOKIES.
CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS,
/// Content setting which stores whether to allow a site to control camera
/// movements. It does not give access to camera.
CEF_CONTENT_SETTING_TYPE_CAMERA_PAN_TILT_ZOOM,
/// Content setting for Screen Enumeration and Screen Detail functionality.
/// Permits access to detailed multi-screen information, like size and
/// position. Permits placing fullscreen and windowed content on specific
/// screens. See also: https://w3c.github.io/window-placement
CEF_CONTENT_SETTING_TYPE_WINDOW_MANAGEMENT,
/// Stores whether to allow insecure websites to make local network requests.
/// See also: https://wicg.github.io/local-network-access
/// Set through enterprise policies only.
CEF_CONTENT_SETTING_TYPE_INSECURE_LOCAL_NETWORK,
/// Content setting which stores whether or not a site can access low-level
/// locally installed font data using the Local Fonts Access API.
CEF_CONTENT_SETTING_TYPE_LOCAL_FONTS,
/// Stores per-origin state for permission auto-revocation (for all permission
/// types).
CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOREVOCATION_DATA,
/// Stores per-origin state of the most recently selected directory for the
/// use by the File System Access API.
CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_LAST_PICKED_DIRECTORY,
/// Controls access to the getDisplayMedia API when {preferCurrentTab: true}
/// is specified.
CEF_CONTENT_SETTING_TYPE_DISPLAY_CAPTURE,
/// Website setting to store permissions metadata granted to paths on the
/// local file system via the File System Access API.
/// |FILE_SYSTEM_WRITE_GUARD| is the corresponding "guard" setting.
CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_CHOOSER_DATA,
/// Stores a grant that allows a relying party to send a request for identity
/// information to specified identity providers, potentially through any
/// anti-tracking measures that would otherwise prevent it. This setting is
/// associated with the relying party's origin.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_SHARING,
/// Whether to use the v8 optimized JIT for running JavaScript on the page.
CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_JIT,
/// Content setting which stores user decisions to allow loading a site over
/// HTTP. Entries are added by hostname when a user bypasses the HTTPS-First
/// Mode interstitial warning when a site does not support HTTPS. Allowed
/// hosts are exact hostname matches -- subdomains of a host on the allowlist
/// must be separately allowlisted.
CEF_CONTENT_SETTING_TYPE_HTTP_ALLOWED,
/// Stores metadata related to form fill, such as e.g. whether user data was
/// autofilled on a specific website.
CEF_CONTENT_SETTING_TYPE_FORMFILL_METADATA,
/// Setting to indicate that there is an active federated sign-in session
/// between a specified relying party and a specified identity provider for
/// a specified account. When this is present it allows access to session
/// management capabilities between the sites. This setting is associated
/// with the relying party's origin.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_ACTIVE_SESSION,
/// Setting to indicate whether Chrome should automatically apply darkening to
/// web content.
CEF_CONTENT_SETTING_TYPE_AUTO_DARK_WEB_CONTENT,
/// Setting to indicate whether Chrome should request the desktop view of a
/// site instead of the mobile one.
CEF_CONTENT_SETTING_TYPE_REQUEST_DESKTOP_SITE,
/// Setting to indicate whether browser should allow signing into a website
/// via the browser FedCM API.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_API,
/// Stores notification interactions per origin for the past 90 days.
/// Interactions per origin are pre-aggregated over seven-day windows: A
/// notification interaction or display is assigned to the last Monday
/// midnight in local time.
CEF_CONTENT_SETTING_TYPE_NOTIFICATION_INTERACTIONS,
/// Website setting which stores the last reduced accept language negotiated
/// for a given origin, to be used on future visits to the origin.
CEF_CONTENT_SETTING_TYPE_REDUCED_ACCEPT_LANGUAGE,
/// Website setting which is used for NotificationPermissionReviewService to
/// store origin blocklist from review notification permissions feature.
CEF_CONTENT_SETTING_TYPE_NOTIFICATION_PERMISSION_REVIEW,
/// Website setting to store permissions granted to access particular devices
/// in private network.
CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_GUARD,
CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_CHOOSER_DATA,
/// Website setting which stores whether the browser has observed the user
/// signing into an identity-provider based on observing the IdP-SignIn-Status
/// HTTP header.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_SIGNIN_STATUS,
/// Website setting which is used for UnusedSitePermissionsService to
/// store revoked permissions of unused sites from unused site permissions
/// feature.
CEF_CONTENT_SETTING_TYPE_REVOKED_UNUSED_SITE_PERMISSIONS,
/// Similar to STORAGE_ACCESS, but applicable at the page-level rather than
/// being specific to a frame.
CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_STORAGE_ACCESS,
/// Setting to indicate whether user has opted in to allowing auto re-authn
/// via the FedCM API.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
/// Website setting which stores whether the user has explicitly registered
/// a website as an identity-provider.
CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_REGISTRATION,
/// Content setting which is used to indicate whether anti-abuse functionality
/// should be enabled.
CEF_CONTENT_SETTING_TYPE_ANTI_ABUSE,
/// Content setting used to indicate whether third-party storage partitioning
/// should be enabled.
CEF_CONTENT_SETTING_TYPE_THIRD_PARTY_STORAGE_PARTITIONING,
/// Used to indicate whether HTTPS-First Mode is enabled on the hostname.
CEF_CONTENT_SETTING_TYPE_HTTPS_ENFORCED,
CEF_CONTENT_SETTING_TYPE_NUM_TYPES,
} cef_content_setting_types_t;
///
/// Supported content setting values. Should be kept in sync with Chromium's
/// ContentSetting type.
///
typedef enum {
CEF_CONTENT_SETTING_VALUE_DEFAULT = 0,
CEF_CONTENT_SETTING_VALUE_ALLOW,
CEF_CONTENT_SETTING_VALUE_BLOCK,
CEF_CONTENT_SETTING_VALUE_ASK,
CEF_CONTENT_SETTING_VALUE_SESSION_ONLY,
CEF_CONTENT_SETTING_VALUE_DETECT_IMPORTANT_CONTENT,
CEF_CONTENT_SETTING_VALUE_NUM_VALUES
} cef_content_setting_values_t;
#ifdef __cplusplus
}
#endif
#endif // CEF_INCLUDE_INTERNAL_CEF_TYPES_CONTENT_SETTINGS_H_

View File

@@ -364,7 +364,6 @@ struct CefSettingsTraits {
cef_string_clear(&s->main_bundle_path);
cef_string_clear(&s->cache_path);
cef_string_clear(&s->root_cache_path);
cef_string_clear(&s->user_data_path);
cef_string_clear(&s->user_agent);
cef_string_clear(&s->user_agent_product);
cef_string_clear(&s->locale);
@@ -397,8 +396,6 @@ struct CefSettingsTraits {
&target->cache_path, copy);
cef_string_set(src->root_cache_path.str, src->root_cache_path.length,
&target->root_cache_path, copy);
cef_string_set(src->user_data_path.str, src->user_data_path.length,
&target->user_data_path, copy);
target->persist_session_cookies = src->persist_session_cookies;
target->persist_user_preferences = src->persist_user_preferences;

View File

@@ -86,7 +86,7 @@ class CefTestServer : public CefBaseRefCounted {
///
/*--cef()--*/
static CefRefPtr<CefTestServer> CreateAndStart(
uint16 port,
uint16_t port,
bool https_server,
cef_test_cert_type_t https_cert_type,
CefRefPtr<CefTestServerHandler> handler);

View File

@@ -123,7 +123,7 @@ class CefDisplay : public CefBaseRefCounted {
/// Returns the unique identifier for this Display.
///
/*--cef()--*/
virtual int64 GetID() = 0;
virtual int64_t GetID() = 0;
///
/// Returns this Display's device pixel scale factor. This specifies how much

View File

@@ -45,6 +45,8 @@
#include "include/views/cef_panel.h"
#include "include/views/cef_window_delegate.h"
class CefBrowserView;
///
/// A Window is a top-level Window/widget in the Views hierarchy. By default it
/// will have a non-client area with title bar, icon and buttons that supports
@@ -68,6 +70,20 @@ class CefWindow : public CefPanel {
/*--cef()--*/
virtual void Show() = 0;
///
/// Show the Window as a browser modal dialog relative to |browser_view|. A
/// parent Window must be returned via CefWindowDelegate::GetParentWindow()
/// and |browser_view| must belong to that parent Window. While this Window is
/// visible, |browser_view| will be disabled while other controls in the
/// parent Window remain enabled. Navigating or destroying the |browser_view|
/// will close this Window automatically. Alternately, use Show() and return
/// true from CefWindowDelegate::IsWindowModalDialog() for a window modal
/// dialog where all controls in the parent Window are disabled.
///
/*--cef()--*/
virtual void ShowAsBrowserModalDialog(
CefRefPtr<CefBrowserView> browser_view) = 0;
///
/// Hide the Window.
///
@@ -300,7 +316,7 @@ class CefWindow : public CefPanel {
/// primarily for testing purposes.
///
/*--cef()--*/
virtual void SendKeyPress(int key_code, uint32 event_flags) = 0;
virtual void SendKeyPress(int key_code, uint32_t event_flags) = 0;
///
/// Simulate a mouse move. The mouse cursor will be moved to the specified

View File

@@ -99,6 +99,19 @@ class CefWindowDelegate : public CefPanelDelegate {
return nullptr;
}
///
/// Return true if |window| should be created as a window modal dialog. Only
/// called when a Window is returned via GetParentWindow() with |is_menu| set
/// to false. All controls in the parent Window will be disabled while
/// |window| is visible. This functionality is not supported by all Linux
/// window managers. Alternately, use CefWindow::ShowAsBrowserModalDialog()
/// for a browser modal dialog that works on all platforms.
///
/*--cef()--*/
virtual bool IsWindowModalDialog(CefRefPtr<CefWindow> window) {
return false;
}
///
/// Return the initial bounds for |window| in density independent pixel (DIP)
/// coordinates. If this method returns an empty CefRect then

View File

@@ -61,15 +61,15 @@ class CefByteReadHandler : public CefReadHandler {
// CefReadHandler methods.
virtual size_t Read(void* ptr, size_t size, size_t n) override;
virtual int Seek(int64 offset, int whence) override;
virtual int64 Tell() override;
virtual int Seek(int64_t offset, int whence) override;
virtual int64_t Tell() override;
virtual int Eof() override;
virtual bool MayBlock() override { return false; }
private:
const unsigned char* bytes_;
int64 size_;
int64 offset_;
int64_t size_;
int64_t offset_;
CefRefPtr<CefBaseRefCounted> source_;
base::Lock lock_;

View File

@@ -109,9 +109,9 @@ bool CefPostTask(CefThreadId threadId, const base::RepeatingClosure& closure);
///
bool CefPostDelayedTask(CefThreadId threadId,
base::OnceClosure closure,
int64 delay_ms);
int64_t delay_ms);
bool CefPostDelayedTask(CefThreadId threadId,
const base::RepeatingClosure& closure,
int64 delay_ms);
int64_t delay_ms);
#endif // CEF_INCLUDE_WRAPPER_CEF_CLOSURE_TASK_H_

View File

@@ -177,7 +177,7 @@
// 8. Handle the query in your Handler::OnQuery implementation and execute the
// appropriate callback either immediately or asynchronously.
//
// void MyHandler::OnQuery(int64 query_id,
// void MyHandler::OnQuery(int64_t query_id,
// CefRefPtr<CefBrowser> browser,
// CefRefPtr<CefFrame> frame,
// const CefString& request,
@@ -269,7 +269,7 @@ class CefMessageRouterBrowserSide
///
virtual bool OnQuery(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int64 query_id,
int64_t query_id,
const CefString& request,
bool persistent,
CefRefPtr<Callback> callback) {
@@ -287,7 +287,7 @@ class CefMessageRouterBrowserSide
///
virtual void OnQueryCanceled(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int64 query_id) {}
int64_t query_id) {}
virtual ~Handler() {}
};

View File

@@ -361,7 +361,7 @@ class CefResourceManager
ProviderEntryList providers_;
// Map of response ID to pending CefResourceHandler object.
using PendingHandlersMap = std::map<uint64, CefRefPtr<CefResourceHandler>>;
using PendingHandlersMap = std::map<uint64_t, CefRefPtr<CefResourceHandler>>;
PendingHandlersMap pending_handlers_;
UrlFilter url_filter_;

View File

@@ -68,7 +68,7 @@ class CefStreamResourceHandler : public CefResourceHandler {
bool& handle_request,
CefRefPtr<CefCallback> callback) override;
void GetResponseHeaders(CefRefPtr<CefResponse> response,
int64& response_length,
int64_t& response_length,
CefString& redirectUrl) override;
bool Read(void* data_out,
int bytes_to_read,

View File

@@ -32,6 +32,7 @@
#include "chrome/browser/ui/color/chrome_color_mixers.h"
#include "chrome/browser/ui/javascript_dialogs/chrome_javascript_app_modal_dialog_view_factory.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "components/constrained_window/constrained_window_views.h"
#include "content/public/browser/gpu_data_manager.h"
@@ -58,6 +59,7 @@
#if BUILDFLAG(IS_WIN)
#include "base/enterprise_util.h"
#include "base/files/file_util.h"
#include "chrome/browser/chrome_browser_main_win.h"
#include "chrome/browser/win/parental_controls.h"
#endif
@@ -82,7 +84,6 @@
#include "base/path_service.h"
#include "chrome/browser/themes/theme_service_aura_linux.h"
#include "chrome/browser/ui/views/theme_profile_key.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/grit/chromium_strings.h"
#include "components/os_crypt/sync/key_storage_config_linux.h"
#include "libcef/browser/printing/print_dialog_linux.h"
@@ -241,6 +242,10 @@ void AlloyBrowserMainParts::PostCreateMainMessageLoop() {
DCHECK(!config->user_data_path.empty());
OSCrypt::SetConfig(std::move(config));
#endif // BUILDFLAG(IS_LINUX)
#if BUILDFLAG(IS_WIN)
base::SetExtraNoExecuteAllowedPath(chrome::DIR_USER_DATA);
#endif
}
int AlloyBrowserMainParts::PreCreateThreads() {

View File

@@ -300,11 +300,11 @@ void BindNetworkHintsHandler(
predictors::NetworkHintsHandlerImpl::Create(frame_host, std::move(receiver));
}
base::FilePath GetRootCachePath() {
// The CefContext::ValidateCachePath method enforces the requirement that all
// cache_path values be either equal to or a child of root_cache_path.
return base::FilePath(
CefString(&CefContext::Get()->settings().root_cache_path));
base::FilePath GetUserDataPath() {
base::FilePath user_data_path;
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_path);
DCHECK(!user_data_path.empty());
return user_data_path;
}
const extensions::Extension* GetEnabledExtensionFromSiteURL(
@@ -506,35 +506,7 @@ void AlloyContentBrowserClient::SiteInstanceGotProcess(
}
extensions::ProcessMap::Get(context)->Insert(
extension->id(), site_instance->GetProcess()->GetID(),
site_instance->GetId());
}
void AlloyContentBrowserClient::SiteInstanceDeleting(
content::SiteInstance* site_instance) {
if (!extensions::ExtensionsEnabled()) {
return;
}
if (!site_instance->HasProcess()) {
return;
}
auto context = site_instance->GetBrowserContext();
auto registry = extensions::ExtensionRegistry::Get(context);
if (!registry) {
return;
}
auto extension = registry->enabled_extensions().GetExtensionOrAppByURL(
site_instance->GetSiteURL());
if (!extension) {
return;
}
extensions::ProcessMap::Get(context)->Remove(
extension->id(), site_instance->GetProcess()->GetID(),
site_instance->GetId());
extension->id(), site_instance->GetProcess()->GetID());
}
void AlloyContentBrowserClient::BindHostReceiverForRenderer(
@@ -1176,9 +1148,9 @@ bool AlloyContentBrowserClient::ConfigureNetworkContextParams(
network_context_params->cookieable_schemes =
cef_context->GetCookieableSchemes();
// TODO(cef): Remove this and add required NetworkIsolationKeys,
// TODO(cef): Remove this and add required NetworkAnonymizationKey,
// this is currently not the case and this was not required pre M84.
network_context_params->require_network_isolation_key = false;
network_context_params->require_network_anonymization_key = false;
return true;
}
@@ -1187,19 +1159,7 @@ bool AlloyContentBrowserClient::ConfigureNetworkContextParams(
// directories that are not returned by this method.
std::vector<base::FilePath>
AlloyContentBrowserClient::GetNetworkContextsParentDirectory() {
base::FilePath user_data_path;
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_path);
DCHECK(!user_data_path.empty());
const auto& root_cache_path = GetRootCachePath();
// root_cache_path may sometimes be empty or a child of user_data_path, so
// only return the one path in that case.
if (root_cache_path.empty() || user_data_path.IsParent(root_cache_path)) {
return {user_data_path};
}
return {user_data_path, root_cache_path};
return {GetUserDataPath()};
}
bool AlloyContentBrowserClient::HandleExternalProtocol(
@@ -1310,7 +1270,7 @@ void AlloyContentBrowserClient::RegisterBrowserInterfaceBindersForServiceWorker(
base::FilePath
AlloyContentBrowserClient::GetSandboxedStorageServiceDataDirectory() {
return GetRootCachePath();
return GetUserDataPath();
}
std::string AlloyContentBrowserClient::GetProduct() {
@@ -1318,7 +1278,7 @@ std::string AlloyContentBrowserClient::GetProduct() {
}
std::string AlloyContentBrowserClient::GetChromeProduct() {
return version_info::GetProductNameAndVersionForUserAgent();
return std::string(version_info::GetProductNameAndVersionForUserAgent());
}
std::string AlloyContentBrowserClient::GetUserAgent() {
@@ -1340,18 +1300,8 @@ AlloyContentBrowserClient::GetWebContentsViewDelegate(
}
blink::UserAgentMetadata AlloyContentBrowserClient::GetUserAgentMetadata() {
blink::UserAgentMetadata metadata;
metadata.brand_version_list = {blink::UserAgentBrandVersion{
version_info::GetProductName(), version_info::GetMajorVersionNumber()}};
metadata.full_version = version_info::GetVersionNumber();
metadata.platform = version_info::GetOSType();
// TODO(mkwst): Poke at BuildUserAgentFromProduct to split out these pieces.
metadata.architecture = "";
metadata.model = "";
return metadata;
return embedder_support::GetUserAgentMetadata(
g_browser_process->local_state());
}
base::flat_set<std::string>

View File

@@ -65,7 +65,6 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient {
bool IsWebUIAllowedToMakeNetworkRequests(const url::Origin& origin) override;
bool IsHandledURL(const GURL& url) override;
void SiteInstanceGotProcess(content::SiteInstance* site_instance) override;
void SiteInstanceDeleting(content::SiteInstance* site_instance) override;
void BindHostReceiverForRenderer(
content::RenderProcessHost* render_process_host,
mojo::GenericPendingReceiver receiver) override;

View File

@@ -16,6 +16,7 @@
#include "libcef/common/extensions/extensions_util.h"
#include "base/command_line.h"
#include "base/path_service.h"
#include "chrome/browser/component_updater/chrome_component_updater_configurator.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/permissions/chrome_permissions_client.h"
@@ -24,6 +25,7 @@
#include "chrome/browser/printing/print_job_manager.h"
#include "chrome/browser/printing/print_preview_dialog_controller.h"
#include "chrome/browser/ui/prefs/pref_watcher.h"
#include "chrome/common/chrome_paths.h"
#include "components/component_updater/component_updater_service.h"
#include "components/component_updater/timer_update_scheduler.h"
#include "components/net_log/chrome_net_log.h"
@@ -172,6 +174,12 @@ ChromeBrowserProcessAlloy::network_quality_tracker() {
return nullptr;
}
embedder_support::OriginTrialsSettingsStorage*
ChromeBrowserProcessAlloy::GetOriginTrialsSettingsStorage() {
DCHECK(false);
return nullptr;
}
ProfileManager* ChromeBrowserProcessAlloy::profile_manager() {
DCHECK(context_initialized_);
return profile_manager_.get();
@@ -180,16 +188,15 @@ ProfileManager* ChromeBrowserProcessAlloy::profile_manager() {
PrefService* ChromeBrowserProcessAlloy::local_state() {
DCHECK(initialized_);
if (!local_state_) {
// Use a location that is shared by all request contexts.
const CefSettings& settings = CefContext::Get()->settings();
const base::FilePath& root_cache_path =
base::FilePath(CefString(&settings.root_cache_path));
base::FilePath user_data_path;
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_path);
DCHECK(!user_data_path.empty());
// Used for very early NetworkService initialization.
// Always persist preferences for this PrefService if possible because it
// contains the cookie encryption key on Windows.
local_state_ =
browser_prefs::CreatePrefService(nullptr /* profile */, root_cache_path,
browser_prefs::CreatePrefService(nullptr /* profile */, user_data_path,
true /* persist_user_preferences */);
}
return local_state_.get();

View File

@@ -57,6 +57,8 @@ class ChromeBrowserProcessAlloy : public BrowserProcess {
metrics::MetricsService* metrics_service() override;
SystemNetworkContextManager* system_network_context_manager() override;
network::NetworkQualityTracker* network_quality_tracker() override;
embedder_support::OriginTrialsSettingsStorage*
GetOriginTrialsSettingsStorage() override;
ProfileManager* profile_manager() override;
PrefService* local_state() override;
scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory()

View File

@@ -28,6 +28,7 @@
#include "content/public/browser/download_request_utils.h"
#include "content/public/browser/file_select_listener.h"
#include "content/public/browser/navigation_entry.h"
#include "ui/base/resource/resource_scale_factor.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/shell_dialogs/select_file_policy.h"
@@ -315,7 +316,7 @@ void CefBrowserHostBase::StartDownload(const CefString& url) {
void CefBrowserHostBase::DownloadImage(
const CefString& image_url,
bool is_favicon,
uint32 max_image_size,
uint32_t max_image_size,
bool bypass_cache,
CefRefPtr<CefDownloadImageCallback> callback) {
if (!CEF_CURRENTLY_ON_UIT()) {
@@ -340,11 +341,12 @@ void CefBrowserHostBase::DownloadImage(
return;
}
const float scale = ui::GetScaleForMaxSupportedResourceScaleFactor();
web_contents->DownloadImage(
gurl, is_favicon, gfx::Size(max_image_size, max_image_size),
max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), bypass_cache,
max_image_size * scale, bypass_cache,
base::BindOnce(
[](uint32 max_image_size,
[](uint32_t max_image_size,
CefRefPtr<CefDownloadImageCallback> callback, int id,
int http_status_code, const GURL& image_url,
const std::vector<SkBitmap>& bitmaps,
@@ -763,7 +765,7 @@ CefRefPtr<CefFrame> CefBrowserHostBase::GetFocusedFrame() {
return GetFrame(CefFrameHostImpl::kFocusedFrameId);
}
CefRefPtr<CefFrame> CefBrowserHostBase::GetFrame(int64 identifier) {
CefRefPtr<CefFrame> CefBrowserHostBase::GetFrame(int64_t identifier) {
if (identifier == CefFrameHostImpl::kInvalidFrameId) {
return nullptr;
} else if (identifier == CefFrameHostImpl::kMainFrameId) {
@@ -794,7 +796,8 @@ size_t CefBrowserHostBase::GetFrameCount() {
return browser_info_->GetAllFrames().size();
}
void CefBrowserHostBase::GetFrameIdentifiers(std::vector<int64>& identifiers) {
void CefBrowserHostBase::GetFrameIdentifiers(
std::vector<int64_t>& identifiers) {
if (identifiers.size() > 0) {
identifiers.clear();
}

View File

@@ -179,7 +179,7 @@ class CefBrowserHostBase : public CefBrowserHost,
void StartDownload(const CefString& url) override;
void DownloadImage(const CefString& image_url,
bool is_favicon,
uint32 max_image_size,
uint32_t max_image_size,
bool bypass_cache,
CefRefPtr<CefDownloadImageCallback> callback) override;
void Print() override;
@@ -225,10 +225,10 @@ class CefBrowserHostBase : public CefBrowserHost,
bool IsPopup() override;
CefRefPtr<CefFrame> GetMainFrame() override;
CefRefPtr<CefFrame> GetFocusedFrame() override;
CefRefPtr<CefFrame> GetFrame(int64 identifier) override;
CefRefPtr<CefFrame> GetFrame(int64_t identifier) override;
CefRefPtr<CefFrame> GetFrame(const CefString& name) override;
size_t GetFrameCount() override;
void GetFrameIdentifiers(std::vector<int64>& identifiers) override;
void GetFrameIdentifiers(std::vector<int64_t>& identifiers) override;
void GetFrameNames(std::vector<CefString>& names) override;
// CefBrowserContentsDelegate::Observer methods:

View File

@@ -408,7 +408,7 @@ void CefBrowserPlatformDelegate::StopFinding(bool clearSelection) {
// static
int CefBrowserPlatformDelegate::TranslateWebEventModifiers(
uint32 cef_modifiers) {
uint32_t cef_modifiers) {
int result = 0;
// Set modifiers based on key state.
if (cef_modifiers & EVENTFLAG_CAPS_LOCK_ON) {

View File

@@ -379,7 +379,7 @@ class CefBrowserPlatformDelegate {
CefBrowserPlatformDelegate();
virtual ~CefBrowserPlatformDelegate();
static int TranslateWebEventModifiers(uint32 cef_modifiers);
static int TranslateWebEventModifiers(uint32_t cef_modifiers);
// Not owned by this object.
content::WebContents* web_contents_ = nullptr;

View File

@@ -462,7 +462,6 @@ bool CefContext::Initialize(const CefMainArgs& args,
"browser_subprocess_path");
NormalizePathAndSet(settings_.framework_dir_path, "framework_dir_path");
NormalizePathAndSet(settings_.main_bundle_path, "main_bundle_path");
NormalizePathAndSet(settings_.user_data_path, "user_data_path");
NormalizePathAndSet(settings_.resources_dir_path, "resources_dir_path");
NormalizePathAndSet(settings_.locales_dir_path, "locales_dir_path");

View File

@@ -50,7 +50,7 @@ cef_download_interrupt_reason_t CefDownloadItemImpl::GetInterruptReason() {
const_value().GetLastReason());
}
int64 CefDownloadItemImpl::GetCurrentSpeed() {
int64_t CefDownloadItemImpl::GetCurrentSpeed() {
CEF_VALUE_VERIFY_RETURN(false, 0);
return const_value().CurrentSpeed();
}
@@ -60,12 +60,12 @@ int CefDownloadItemImpl::GetPercentComplete() {
return const_value().PercentComplete();
}
int64 CefDownloadItemImpl::GetTotalBytes() {
int64_t CefDownloadItemImpl::GetTotalBytes() {
CEF_VALUE_VERIFY_RETURN(false, 0);
return const_value().GetTotalBytes();
}
int64 CefDownloadItemImpl::GetReceivedBytes() {
int64_t CefDownloadItemImpl::GetReceivedBytes() {
CEF_VALUE_VERIFY_RETURN(false, 0);
return const_value().GetReceivedBytes();
}
@@ -85,7 +85,7 @@ CefString CefDownloadItemImpl::GetFullPath() {
return const_value().GetFullPath().value();
}
uint32 CefDownloadItemImpl::GetId() {
uint32_t CefDownloadItemImpl::GetId() {
CEF_VALUE_VERIFY_RETURN(false, 0);
return const_value().GetId();
}

View File

@@ -29,14 +29,14 @@ class CefDownloadItemImpl
bool IsCanceled() override;
bool IsInterrupted() override;
cef_download_interrupt_reason_t GetInterruptReason() override;
int64 GetCurrentSpeed() override;
int64_t GetCurrentSpeed() override;
int GetPercentComplete() override;
int64 GetTotalBytes() override;
int64 GetReceivedBytes() override;
int64_t GetTotalBytes() override;
int64_t GetReceivedBytes() override;
CefBaseTime GetStartTime() override;
CefBaseTime GetEndTime() override;
CefString GetFullPath() override;
uint32 GetId() override;
uint32_t GetId() override;
CefString GetURL() override;
CefString GetOriginalUrl() override;
CefString GetSuggestedFileName() override;

View File

@@ -45,7 +45,7 @@ CefRefPtr<CefDownloadHandler> GetDownloadHandler(
class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
public:
CefBeforeDownloadCallbackImpl(const base::WeakPtr<DownloadManager>& manager,
uint32 download_id,
uint32_t download_id,
const base::FilePath& suggested_name,
content::DownloadTargetCallback callback)
: manager_(manager),
@@ -81,7 +81,7 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
private:
static void GenerateFilename(base::WeakPtr<DownloadManager> manager,
uint32 download_id,
uint32_t download_id,
const base::FilePath& suggested_name,
const base::FilePath& download_path,
bool show_dialog,
@@ -117,7 +117,7 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
}
static void ChooseDownloadPath(base::WeakPtr<DownloadManager> manager,
uint32 download_id,
uint32_t download_id,
const base::FilePath& suggested_path,
bool show_dialog,
content::DownloadTargetCallback callback) {
@@ -188,7 +188,7 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
}
base::WeakPtr<DownloadManager> manager_;
uint32 download_id_;
uint32_t download_id_;
base::FilePath suggested_name_;
content::DownloadTargetCallback callback_;
@@ -200,7 +200,7 @@ class CefDownloadItemCallbackImpl : public CefDownloadItemCallback {
public:
explicit CefDownloadItemCallbackImpl(
const base::WeakPtr<DownloadManager>& manager,
uint32 download_id)
uint32_t download_id)
: manager_(manager), download_id_(download_id) {}
CefDownloadItemCallbackImpl(const CefDownloadItemCallbackImpl&) = delete;
@@ -265,7 +265,7 @@ class CefDownloadItemCallbackImpl : public CefDownloadItemCallback {
}
base::WeakPtr<DownloadManager> manager_;
uint32 download_id_;
uint32_t download_id_;
IMPLEMENT_REFCOUNTING(CefDownloadItemCallbackImpl);
};
@@ -416,7 +416,7 @@ bool CefDownloadManagerDelegate::DetermineDownloadTarget(
void CefDownloadManagerDelegate::GetNextId(
content::DownloadIdCallback callback) {
static uint32 next_id = DownloadItem::kInvalidId + 1;
static uint32_t next_id = DownloadItem::kInvalidId + 1;
std::move(callback).Run(next_id++);
}

View File

@@ -98,7 +98,7 @@ class CefGetExtensionLoadFileCallbackImpl
// Move to the end of the stream.
stream->Seek(0, SEEK_END);
const int64 size = stream->Tell();
const int64_t size = stream->Tell();
if (size == 0) {
LOG(WARNING) << "Extension resource " << file << " is empty.";
return nullptr;
@@ -111,7 +111,7 @@ class CefGetExtensionLoadFileCallbackImpl
stream->Seek(0, SEEK_SET);
// Read all stream contents into the string.
int64 read, offset = 0;
int64_t read, offset = 0;
do {
read =
static_cast<int>(stream->Read(&(*result)[offset], 1, size - offset));

View File

@@ -473,7 +473,7 @@ void CefExtensionSystem::InstallUpdate(
void CefExtensionSystem::PerformActionBasedOnOmahaAttributes(
const std::string& extension_id,
const base::Value& attributes) {
const base::Value::Dict& attributes) {
DCHECK(false);
}

View File

@@ -108,7 +108,7 @@ class CefExtensionSystem : public ExtensionSystem {
InstallUpdateCallback install_update_callback) override;
void PerformActionBasedOnOmahaAttributes(
const std::string& extension_id,
const base::Value& attributes) override;
const base::Value::Dict& attributes) override;
bool FinishDelayedInstallationIfReady(const std::string& extension_id,
bool install_immediately) override;

View File

@@ -193,13 +193,13 @@ CefString CefFrameHostImpl::GetName() {
return name_;
}
int64 CefFrameHostImpl::GetIdentifier() {
int64_t CefFrameHostImpl::GetIdentifier() {
base::AutoLock lock_scope(state_lock_);
return frame_id_;
}
CefRefPtr<CefFrame> CefFrameHostImpl::GetParent() {
int64 parent_frame_id;
int64_t parent_frame_id;
{
base::AutoLock lock_scope(state_lock_);
@@ -574,7 +574,7 @@ const ui::PageTransition CefFrameHostImpl::kPageTransitionExplicit =
static_cast<ui::PageTransition>(ui::PAGE_TRANSITION_TYPED |
ui::PAGE_TRANSITION_FROM_ADDRESS_BAR);
int64 CefFrameHostImpl::GetFrameId() const {
int64_t CefFrameHostImpl::GetFrameId() const {
base::AutoLock lock_scope(state_lock_);
return is_main_frame_ ? kMainFrameId : frame_id_;
}

View File

@@ -65,7 +65,7 @@ class CefFrameHostImpl : public CefFrame, public cef::mojom::BrowserFrame {
bool IsMain() override;
bool IsFocused() override;
CefString GetName() override;
int64 GetIdentifier() override;
int64_t GetIdentifier() override;
CefRefPtr<CefFrame> GetParent() override;
CefString GetURL() override;
CefRefPtr<CefBrowser> GetBrowser() override;
@@ -156,7 +156,7 @@ class CefFrameHostImpl : public CefFrame, public cef::mojom::BrowserFrame {
static const ui::PageTransition kPageTransitionExplicit;
private:
int64 GetFrameId() const;
int64_t GetFrameId() const;
scoped_refptr<CefBrowserInfo> GetBrowserInfo() const;
CefRefPtr<CefBrowserHostBase> GetBrowserHostBase() const;
@@ -176,12 +176,12 @@ class CefFrameHostImpl : public CefFrame, public cef::mojom::BrowserFrame {
// The following members may be read/modified from any thread. All access must
// be protected by |state_lock_|.
mutable base::Lock state_lock_;
int64 frame_id_;
int64_t frame_id_;
scoped_refptr<CefBrowserInfo> browser_info_;
bool is_focused_;
CefString url_;
CefString name_;
int64 parent_frame_id_;
int64_t parent_frame_id_;
// The following members are only accessed on the UI thread.
content::RenderFrameHost* render_frame_host_ = nullptr;

View File

@@ -273,8 +273,8 @@ void CefMainRunner::Shutdown(base::OnceClosure shutdown_on_ui_thread,
void CefMainRunner::RunMessageLoop() {
base::RunLoop run_loop;
DCHECK(quit_when_idle_callback_.is_null());
quit_when_idle_callback_ = run_loop.QuitWhenIdleClosure();
DCHECK(quit_callback_.is_null());
quit_callback_ = run_loop.QuitClosure();
main_delegate_->BeforeMainMessageLoopRun(&run_loop);
@@ -283,11 +283,11 @@ void CefMainRunner::RunMessageLoop() {
}
void CefMainRunner::QuitMessageLoop() {
if (!quit_when_idle_callback_.is_null()) {
if (!quit_callback_.is_null()) {
if (main_delegate_->HandleMainMessageLoopQuit()) {
return;
}
std::move(quit_when_idle_callback_).Run();
std::move(quit_callback_).Run();
}
}

View File

@@ -89,7 +89,7 @@ class CefMainRunner : public CefMainRunnerHandler {
std::unique_ptr<CefUIThread> ui_thread_;
// Used to quit the current base::RunLoop.
base::OnceClosure quit_when_idle_callback_;
base::OnceClosure quit_callback_;
};
#endif // CEF_LIBCEF_BROWSER_MAIN_RUNNER_H_

View File

@@ -229,7 +229,7 @@ base::TimeTicks CefBrowserPlatformDelegateNativeAura::GetEventTimeStamp() {
// static
int CefBrowserPlatformDelegateNativeAura::TranslateUiEventModifiers(
uint32 cef_modifiers) {
uint32_t cef_modifiers) {
int result = 0;
// Set modifiers based on key state.
if (cef_modifiers & EVENTFLAG_CAPS_LOCK_ON) {
@@ -273,7 +273,7 @@ int CefBrowserPlatformDelegateNativeAura::TranslateUiEventModifiers(
// static
int CefBrowserPlatformDelegateNativeAura::TranslateUiChangedButtonFlags(
uint32 cef_modifiers) {
uint32_t cef_modifiers) {
int result = 0;
if (cef_modifiers & EVENTFLAG_LEFT_MOUSE_BUTTON) {
result |= ui::EF_LEFT_MOUSE_BUTTON;

View File

@@ -75,8 +75,8 @@ class CefBrowserPlatformDelegateNativeAura
base::OnceClosure GetWidgetDeleteCallback();
static base::TimeTicks GetEventTimeStamp();
static int TranslateUiEventModifiers(uint32 cef_modifiers);
static int TranslateUiChangedButtonFlags(uint32 cef_modifiers);
static int TranslateUiEventModifiers(uint32_t cef_modifiers);
static int TranslateUiChangedButtonFlags(uint32_t cef_modifiers);
// Widget hosting the web contents. It will be deleted automatically when the
// associated root window is destroyed.

View File

@@ -7,6 +7,12 @@
#include "libcef/browser/native/browser_platform_delegate_native.h"
#if defined(__OBJC__)
@class CefWindowDelegate;
#else
class CefWindowDelegate;
#endif
namespace content {
class RenderWidgetHostViewMac;
}
@@ -67,7 +73,9 @@ class CefBrowserPlatformDelegateNativeMac
content::RenderWidgetHostViewMac* GetHostView() const;
// True if the host window has been created.
bool host_window_created_;
bool host_window_created_ = false;
CefWindowDelegate* __strong window_delegate_;
};
#endif // CEF_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_MAC_H_

View File

@@ -7,6 +7,7 @@
#import <Cocoa/Cocoa.h>
#import <CoreServices/CoreServices.h>
#include "include/internal/cef_types_mac.h"
#include "libcef/browser/alloy/alloy_browser_host_impl.h"
#include "libcef/browser/context.h"
#include "libcef/browser/native/javascript_dialog_runner_mac.h"
@@ -28,6 +29,10 @@
#include "ui/events/keycodes/keyboard_codes_posix.h"
#include "ui/gfx/geometry/rect.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
// Wrapper NSView for the native view. Necessary to destroy the browser when
// the view is deleted.
@interface CefBrowserHostView : NSView {
@@ -49,8 +54,6 @@
// PlatformCreateWindow().
static_cast<AlloyBrowserHostImpl*>(browser_)->WindowDestroyed();
}
[super dealloc];
}
@end
@@ -59,7 +62,7 @@
@interface CefWindowDelegate : NSObject <NSWindowDelegate> {
@private
CefBrowserHostBase* browser_; // weak
NSWindow* window_;
NSWindow* __strong window_;
}
- (id)initWithWindow:(NSWindow*)window andBrowser:(CefBrowserHostBase*)browser;
@end
@@ -70,16 +73,12 @@
if (self = [super init]) {
window_ = window;
browser_ = browser;
[window_ setDelegate:self];
}
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
- (BOOL)windowShouldClose:(id)window {
@@ -88,6 +87,11 @@
return NO;
}
// For an NSWindow object, the default is to be released on |close|. We
// instead want it to remain valid until all strong references are released
// via |cleanup:| and |BrowserDestroyed|.
((NSWindow*)window).releasedWhenClosed = NO;
// Clean ourselves up after clearing the stack of anything that might have the
// window on it.
[self performSelectorOnMainThread:@selector(cleanup:)
@@ -100,7 +104,7 @@
- (void)cleanup:(id)window {
[window_ setDelegate:nil];
[self release];
window_ = nil;
}
@end
@@ -239,16 +243,16 @@ void GetNSBoundsInDisplay(const gfx::Rect& dip_bounds,
CefBrowserPlatformDelegateNativeMac::CefBrowserPlatformDelegateNativeMac(
const CefWindowInfo& window_info,
SkColor background_color)
: CefBrowserPlatformDelegateNative(window_info, background_color),
host_window_created_(false) {}
: CefBrowserPlatformDelegateNative(window_info, background_color) {}
void CefBrowserPlatformDelegateNativeMac::BrowserDestroyed(
CefBrowserHostBase* browser) {
CefBrowserPlatformDelegateNative::BrowserDestroyed(browser);
if (host_window_created_) {
// Release the reference added in CreateHostWindow().
// Release the references added in CreateHostWindow().
browser->Release();
window_delegate_ = nil;
}
}
@@ -285,12 +289,15 @@ bool CefBrowserPlatformDelegateNativeMac::CreateHostWindow() {
defer:NO];
// Create the delegate for control and browser window events.
[[CefWindowDelegate alloc] initWithWindow:new_window andBrowser:browser_];
// Add a reference that will be released in BrowserDestroyed().
window_delegate_ = [[CefWindowDelegate alloc] initWithWindow:new_window
andBrowser:browser_];
[new_window setDelegate:window_delegate_];
parent_view = [new_window contentView];
browser_view_rect = [parent_view bounds];
window_info_.parent_view = parent_view;
window_info_.parent_view = CAST_NSVIEW_TO_CEF_WINDOW_HANDLE(parent_view);
// Make the content view for the window have a layer. This will make all
// sub-views have layers. This is necessary to ensure correct layer
@@ -314,7 +321,6 @@ bool CefBrowserPlatformDelegateNativeMac::CreateHostWindow() {
[parent_view addSubview:browser_view];
[browser_view setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
[browser_view setNeedsDisplay:YES];
[browser_view release];
// Parent the WebContents to the browser view.
const NSRect bounds = [browser_view bounds];
@@ -324,7 +330,7 @@ bool CefBrowserPlatformDelegateNativeMac::CreateHostWindow() {
[native_view setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
[native_view setNeedsDisplay:YES];
window_info_.view = browser_view;
window_info_.view = CAST_NSVIEW_TO_CEF_WINDOW_HANDLE(browser_view);
if (new_window != nil && !window_info_.hidden) {
// Show the window.
@@ -461,7 +467,7 @@ void CefBrowserPlatformDelegate::HandleExternalProtocol(const GURL& url) {}
CefEventHandle CefBrowserPlatformDelegateNativeMac::GetEventHandle(
const content::NativeWebKeyboardEvent& event) const {
return event.os_event;
return CAST_NSEVENT_TO_CEF_EVENT_HANDLE(event.os_event);
}
std::unique_ptr<CefJavaScriptDialogRunner>
@@ -507,11 +513,12 @@ CefBrowserPlatformDelegateNativeMac::TranslateWebKeyEvent(
}
NSString* charactersIgnoringModifiers =
[[[NSString alloc] initWithCharacters:&key_event.unmodified_character
length:1] autorelease];
NSString* characters =
[[[NSString alloc] initWithCharacters:&key_event.character
length:1] autorelease];
[[NSString alloc] initWithCharacters:reinterpret_cast<const unichar*>(
&key_event.unmodified_character)
length:1];
NSString* characters = [[NSString alloc]
initWithCharacters:reinterpret_cast<const unichar*>(&key_event.character)
length:1];
NSEvent* synthetic_event =
[NSEvent keyEventWithType:event_type

View File

@@ -2,11 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be found
// in the LICENSE file.
#include "include/internal/cef_types_mac.h"
#include "libcef/browser/native/cursor_util.h"
#import "base/mac/scoped_nsobject.h"
#import "ui/base/cocoa/cursor_utils.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace cursor_util {
namespace {
@@ -15,14 +19,16 @@ class ScopedCursorHandleImpl : public ScopedCursorHandle {
public:
explicit ScopedCursorHandleImpl(NSCursor* native_cursor) {
if (native_cursor) {
cursor_.reset([native_cursor retain]);
cursor_ = native_cursor;
}
}
cef_cursor_handle_t GetCursorHandle() override { return cursor_.get(); }
cef_cursor_handle_t GetCursorHandle() override {
return CAST_NSCURSOR_TO_CEF_CURSOR_HANDLE(cursor_);
}
private:
base::scoped_nsobject<NSCursor> cursor_;
NSCursor* __strong cursor_;
};
} // namespace

View File

@@ -10,7 +10,6 @@
#include "libcef/browser/javascript_dialog_runner.h"
#include "base/functional/callback.h"
#include "base/mac/scoped_nsobject.h"
#include "base/memory/weak_ptr.h"
#if __OBJC__
@@ -40,7 +39,7 @@ class CefJavaScriptDialogRunnerMac : public CefJavaScriptDialogRunner {
private:
DialogClosedCallback callback_;
base::scoped_nsobject<CefJavaScriptDialogHelper> helper_;
CefJavaScriptDialogHelper* __strong helper_;
// Must be the last member.
base::WeakPtrFactory<CefJavaScriptDialogRunnerMac> weak_ptr_factory_;

View File

@@ -12,12 +12,16 @@
#include "base/strings/utf_string_conversions.h"
#include "components/url_formatter/elide_url.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
// Helper object that receives the notification that the dialog/sheet is
// going away. Is responsible for cleaning itself up.
@interface CefJavaScriptDialogHelper : NSObject <NSAlertDelegate> {
@private
base::scoped_nsobject<NSAlert> alert_;
NSTextField* textField_; // WEAK; owned by alert_
NSAlert* __strong alert_;
NSTextField* __weak textField_;
// Copies of the fields in CefJavaScriptDialog because they're private.
CefJavaScriptDialogRunner::DialogClosedCallback callback_;
@@ -46,18 +50,20 @@
}
- (NSAlert*)alert {
alert_.reset([[NSAlert alloc] init]);
alert_ = [[NSAlert alloc] init];
return alert_;
}
- (NSTextField*)textField {
textField_ = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 300, 22)];
[[textField_ cell] setLineBreakMode:NSLineBreakByTruncatingTail];
[alert_ setAccessoryView:textField_];
[[alert_ window] setInitialFirstResponder:textField_];
[textField_ release];
NSTextField* textField =
[[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 300, 22)];
textField.cell.lineBreakMode = NSLineBreakByTruncatingTail;
return textField_;
alert_.accessoryView = textField;
alert_.window.initialFirstResponder = textField;
textField_ = textField;
return textField;
}
- (void)alertDidEnd:(NSAlert*)alert
@@ -70,15 +76,15 @@
bool success = returnCode == NSAlertFirstButtonReturn;
std::u16string input;
if (textField_) {
input = base::SysNSStringToUTF16([textField_ stringValue]);
input = base::SysNSStringToUTF16(textField_.stringValue);
}
std::move(callback_).Run(success, input);
}
- (void)cancel {
[NSApp endSheet:[alert_ window]];
alert_.reset();
[NSApp endSheet:alert_.window];
alert_ = nil;
}
@end
@@ -97,26 +103,26 @@ void CefJavaScriptDialogRunnerMac::Run(
const std::u16string& message_text,
const std::u16string& default_prompt_text,
DialogClosedCallback callback) {
DCHECK(!helper_.get());
DCHECK(!helper_);
callback_ = std::move(callback);
bool text_field = message_type == content::JAVASCRIPT_DIALOG_TYPE_PROMPT;
bool one_button = message_type == content::JAVASCRIPT_DIALOG_TYPE_ALERT;
helper_.reset([[CefJavaScriptDialogHelper alloc]
helper_ = [[CefJavaScriptDialogHelper alloc]
initHelperWithCallback:base::BindOnce(
&CefJavaScriptDialogRunnerMac::DialogClosed,
weak_ptr_factory_.GetWeakPtr())]);
weak_ptr_factory_.GetWeakPtr())];
// Show the modal dialog.
NSAlert* alert = [helper_ alert];
NSTextField* field = nil;
if (text_field) {
field = [helper_ textField];
[field setStringValue:base::SysUTF16ToNSString(default_prompt_text)];
field.stringValue = base::SysUTF16ToNSString(default_prompt_text);
}
[alert setDelegate:helper_];
[alert setInformativeText:base::SysUTF16ToNSString(message_text)];
alert.delegate = helper_;
alert.informativeText = base::SysUTF16ToNSString(message_text);
std::u16string label;
switch (message_type) {
@@ -137,12 +143,12 @@ void CefJavaScriptDialogRunnerMac::Run(
label += u" - " + display_url;
}
[alert setMessageText:base::SysUTF16ToNSString(label)];
alert.messageText = base::SysUTF16ToNSString(label);
[alert addButtonWithTitle:@"OK"];
if (!one_button) {
NSButton* other = [alert addButtonWithTitle:@"Cancel"];
[other setKeyEquivalent:@"\e"];
other.keyEquivalent = @"\e";
}
// Calling beginSheetModalForWindow:nil is wrong API usage. For now work
@@ -168,21 +174,21 @@ void CefJavaScriptDialogRunnerMac::Run(
void CefJavaScriptDialogRunnerMac::Handle(
bool accept,
const std::u16string* prompt_override) {
if (helper_.get()) {
if (helper_) {
DialogClosed(accept, prompt_override ? *prompt_override : std::u16string());
}
}
void CefJavaScriptDialogRunnerMac::Cancel() {
if (helper_.get()) {
if (helper_) {
[helper_ cancel];
helper_.reset(nil);
helper_ = nil;
}
}
void CefJavaScriptDialogRunnerMac::DialogClosed(
bool success,
const std::u16string& user_input) {
helper_.reset(nil);
helper_ = nil;
std::move(callback_).Run(success, user_input);
}

View File

@@ -8,8 +8,6 @@
#include "libcef/browser/menu_runner.h"
#include "base/mac/scoped_nsobject.h"
#if __OBJC__
@class MenuControllerCocoa;
#else
@@ -28,7 +26,7 @@ class CefMenuRunnerMac : public CefMenuRunner {
void CancelContextMenu() override;
private:
base::scoped_nsobject<MenuControllerCocoa> menu_controller_;
MenuControllerCocoa* __strong menu_controller_;
};
#endif // CEF_LIBCEF_BROWSER_NATIVE_MENU_RUNNER_MAC_H_

View File

@@ -11,6 +11,10 @@
#import "ui/base/cocoa/menu_controller.h"
#include "ui/gfx/geometry/point.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
CefMenuRunnerMac::CefMenuRunnerMac() {}
CefMenuRunnerMac::~CefMenuRunnerMac() {}
@@ -20,17 +24,12 @@ bool CefMenuRunnerMac::RunContextMenu(
CefMenuModelImpl* model,
const content::ContextMenuParams& params) {
// Create a menu controller based on the model.
menu_controller_.reset([[MenuControllerCocoa alloc]
initWithModel:model->model()
delegate:nil
useWithPopUpButtonCell:NO]);
MenuControllerCocoa* menu_controller =
[[MenuControllerCocoa alloc] initWithModel:model->model()
delegate:nil
useWithPopUpButtonCell:NO];
// Keep the menu controller alive (by adding an additional retain) until after
// the menu has been dismissed. Otherwise it will crash if the browser is
// destroyed (and consequently the menu controller is destroyed) while the
// menu is still pending.
base::scoped_nsobject<MenuControllerCocoa> menu_controller_ref(
menu_controller_);
menu_controller_ = menu_controller;
// Make sure events can be pumped while the menu is up.
base::CurrentThread::ScopedAllowApplicationTasksInNativeNestedLoop allow;
@@ -86,7 +85,7 @@ bool CefMenuRunnerMac::RunContextMenu(
}
void CefMenuRunnerMac::CancelContextMenu() {
if (menu_controller_.get()) {
[menu_controller_ cancel];
if (menu_controller_) {
menu_controller_ = nil;
}
}

View File

@@ -70,7 +70,7 @@ class RedirectHandler : public CefResourceHandler {
}
void GetResponseHeaders(CefRefPtr<CefResponse> response,
int64& response_length,
int64_t& response_length,
CefString& redirectUrl) override {
response_length = 0;
redirectUrl = url_.spec();
@@ -111,7 +111,7 @@ class InternalHandler : public CefResourceHandler {
}
void GetResponseHeaders(CefRefPtr<CefResponse> response,
int64& response_length,
int64_t& response_length,
CefString& redirectUrl) override {
response_length = size_;

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