Compare commits

...

143 Commits
3071 ... 3282

Author SHA1 Message Date
Marshall Greenblatt
96f907e55a cmake: Linux: Add missing binaries (issue #2394) 2018-02-27 15:39:15 -05:00
Alfred Reynolds
cd946151e1 Fix crash due to by delayed execution of JS functions on destroyed windows (issue #2038) 2018-02-22 16:28:34 -05:00
Dmitry Azaraev
61bd6b5e3a Add unit test for crash due to by delayed execution of JS functions on destroyed windows (issue #2038) 2018-02-22 16:28:25 -05:00
Tobias Taschner
cb6713fd49 Windows: cmake: Add CEF_RUNTIME_LIBRARY_FLAG for overriding VS runtime type. 2018-02-22 16:28:16 -05:00
Mike Wiedenbauer
a42c0eaa34 Fixes encoding issues when using a custom resource handler (issue #1906). 2018-02-22 16:28:06 -05:00
Marshall Greenblatt
1172b27916 Fix OSR transparency problems (issue #2212, issue #2345) 2018-02-22 16:27:33 -05:00
Alexander Guettler
435cf4d862 Fix input range handle does not follow mouse cursor with OSR (issue #2189) 2018-02-22 16:21:10 -05:00
Marshall Greenblatt
1e5b631452 Windows: Fix per-monitor DPI scaling of top-level browser windows and placement of context menus (issue #2313) 2018-02-21 17:15:38 -05:00
Marshall Greenblatt
8f26fe059b Windows: Add per-monitor DPI support (issue #2313) 2018-02-20 17:34:48 -05:00
Marshall Greenblatt
9091548f17 Fix crash when plugin is not found (issue #2379) 2018-02-12 16:22:51 -05:00
Marshall Greenblatt
973997f650 Add callbacks for network request access to cookies (issue #2374) 2018-02-06 16:34:47 -05:00
Marshall Greenblatt
fc9a4fa04a Fix crashes when loading Flash plugins with extensions disabled (issue #2359) 2018-02-02 19:08:13 -05:00
Marshall Greenblatt
923cb991ba Initialize required KeyedServiceFactories when extensions are disabled (issue #2359) 2018-02-02 19:07:20 -05:00
Marshall Greenblatt
67b06ea44f Fix crash when clicking PDF link (issue #2371) 2018-02-02 16:10:55 -05:00
Marshall Greenblatt
2171fc7dbe Remove problematic section from extensions_1947.patch 2018-02-02 14:20:47 -05:00
Marshall Greenblatt
0e44127ee5 Update to Chromium version 64.0.3282.119 2018-02-01 15:55:40 -05:00
Marshall Greenblatt
c8368c8b13 Update to Chromium version 64.0.3282.71 2018-01-05 20:00:33 -05:00
Marshall Greenblatt
b9ba8a4352 msvs_env.bat: Fix VS2017 path discovery and avoid CWD change (issue #2350, issue #2351) 2018-01-05 13:32:03 -05:00
Marshall Greenblatt
acb89916a0 Return Chrome 'Browser' value for DevTools remote debugging (issue #2300) 2018-01-04 18:54:37 -05:00
Marshall Greenblatt
cc4d57b920 Add CefURLRequest::ResponseWasCached method (issue #2283) 2018-01-03 16:15:59 -05:00
Marshall Greenblatt
c3dc5f71bb Update generated file copyright year 2018-01-03 16:15:49 -05:00
Marshall Greenblatt
1a680363b5 macOS: cmake: Don't create target name with spaces (issue #2342) 2018-01-03 15:04:48 -05:00
Dan Kegel
8d826cbe8c - Linux: Disable gcc warning about code in comments (issue #2346).
- macOS: Fix clang warning about display_unittest.cc missing a newline (issue #2347).
2018-01-03 18:52:09 +00:00
Marshall Greenblatt
45a037385a Linux: Fix crash when canceling the print dialog (issue #2341) 2018-01-02 16:53:25 -05:00
Dan Kegel
2de137fabe Linux: Switch to Debian Stretch sysroot (issue #2343) 2018-01-02 19:31:46 +00:00
Marshall Greenblatt
a422efc3e3 Return correct 'Browser' value for DevTools remote debugging (issue #2300) 2017-12-27 17:36:21 -05:00
Marshall Greenblatt
aac5f8d968 Fix proxy service initialization (issue #2066) 2017-12-27 16:39:10 -05:00
Marshall Greenblatt
080fc0848b cmake: Fix detection of tests folder 2017-12-27 15:53:18 -05:00
Marshall Greenblatt
29c0eb32da Windows: cmake: Add VS2017 15.5 build support 2017-12-27 15:53:11 -05:00
Marshall Greenblatt
a92bbdd169 Windows: Fix 64-bit build warning C4267 (issue #2335) 2017-12-27 15:53:04 -05:00
Marshall Greenblatt
642f29baac Merge webkit_set target into //WebKit/source/controller to fix deps race (issue #2339) 2017-12-27 13:22:27 -05:00
Marshall Greenblatt
9042f3719b Fix crash when ALT+Clicking invalid protocol link (issue #2306) 2017-12-22 16:42:33 -05:00
Marshall Greenblatt
e35e95bec3 Fix crash when using CefJSDialogHandler with the default dialog implementation (issue #2329) 2017-12-21 16:48:45 -05:00
Marshall Greenblatt
5a8af72a35 Windows: Fix x64 compile error (issue #2332) 2017-12-21 15:44:40 -05:00
Marshall Greenblatt
efd7475bf2 Fix crash when creating JS popup with no URL (issue #2330) 2017-12-21 14:59:09 -05:00
Marshall Greenblatt
08b0314f83 Fix assertion when calling SendProcessMessage from non-UI thread (issue #2325) 2017-12-19 15:15:46 -05:00
SergeyAvd
ef9531f0af Fix typos in the comments that generate the documentation 2017-12-18 18:45:47 -05:00
Mario Pistrich
d97b3f5e13 Add log level to CefDisplayHandler::OnConsoleMessage (issue #2234) 2017-12-18 18:38:25 -05:00
Marshall Greenblatt
7eacec0d91 Windows: Fix ui/base/ui_features.h file not found component build error 2017-12-18 18:38:19 -05:00
Andrei Kurushin
7c1bf316b2 Windows: Fix non x2 HiDPI OSR paint crop (issue #2299) 2017-12-18 14:39:49 -05:00
Marshall Greenblatt
739f67aa05 Fix README typo 2017-12-18 14:21:28 -05:00
Marshall Greenblatt
b34b281f4a Linux: Add missing swiftshader binaries to distribution (issue #2321) 2017-12-18 14:13:26 -05:00
Marshall Greenblatt
eca7d18013 Update to Chromium version 64.0.3282.24 2017-12-14 18:52:01 -05:00
Marshall Greenblatt
8d51acb9be Update to Chromium revision 5fdc0fab (#520840)
- Windows now builds with clang by default.
2017-12-14 15:31:07 -05:00
Marshall Greenblatt
d5e141648b Fix OSR accessibility tests (issue #2312) 2017-12-12 15:57:46 -05:00
Tammo Hinrichs
4c795f5188 OSR: Fix GPU->CPU readback performance issues (issue #2046) 2017-12-05 13:05:12 -05:00
Marshall Greenblatt
7fe13d87c6 Fix accessibility information (issue #2312) 2017-12-04 14:20:06 -05:00
Marshall Greenblatt
7dcabf547b macOS: Fix build of widevinecdmadapter.plugin (issue #2314) 2017-12-04 12:41:57 -05:00
Marshall Greenblatt
69178d519e Fix bugs and test failures with browser-side navigation (issue #2290) 2017-11-30 18:20:24 -05:00
Per Lundberg
493bec52c9 README.md: Update CefSharp link 2017-11-30 15:37:05 -05:00
amaitland
b14167ad04 cmake: Don't require test projects with minimal distribution (issue #2169) 2017-11-30 15:36:58 -05:00
Tamas Lustyik
85d041c0e2 Making it possible to bridge C++ wrapper classes to C (issue #2311). 2017-11-28 15:57:10 +00:00
Tamas Lustyik
be2160e6c3 macOS: Added guard to previously overlooked C++ include (issue #2297) 2017-11-28 15:52:00 +00:00
Marshall Greenblatt
232a68480e cmake: Add v8_context_snapshot.bin binary file 2017-11-27 12:18:05 -05:00
Marshall Greenblatt
facee1f750 - Add cache awareness to CefURLRequest (issue #2283)
- Properly set referer values on server requests (issue #2278)
2017-11-17 17:14:05 -05:00
Marshall Greenblatt
7e783d6a37 Linux: Fix missing ui::Service symbols (issue #2294) 2017-11-16 12:23:51 -05:00
Marshall Greenblatt
059ed41926 Linux: Don't generate Chromium installer packages (issue #2301) 2017-11-15 19:28:16 -05:00
Marshall Greenblatt
7840b4f406 Enable Brotli encoding (issue #2303) 2017-11-15 17:21:34 -05:00
Lk Xf
4a6e9b636e Allow inclusion of cef_application_mac.h from pure C/ObjC (issue #2297) 2017-11-15 19:55:16 +00:00
Marshall Greenblatt
89a1f2b372 Add CefServer API for handling HTTP/WebSocket requests (issue #2278) 2017-11-15 12:00:36 -05:00
Marshall Greenblatt
bfdc2655ad Windows: Add VS2017.4 build support 2017-11-01 16:27:40 -04:00
Marshall Greenblatt
51136f6541 cmake: Fix accidental version dependency break (issue #2293) 2017-11-01 16:27:34 -04:00
Marshall Greenblatt
9f7bdcf7d5 Don't create 'GPUCache' and 'databases' directories when cache-path is unspecified (issue #2289) 2017-10-30 16:52:39 -04:00
Marshall Greenblatt
486e69e23b Windows: Add missing swiftshader binaries to distribution (issue #2291) 2017-10-30 14:49:25 -04:00
Marshall Greenblatt
c506c8c5c0 Windows: Don't recommend is_win_fastlink=true with VS2017 (issue #1691) 2017-10-27 19:02:59 -04:00
Marshall Greenblatt
4787b45db2 Resolve request mapping issues with swapped out frames and browser-side navigation (issue #2290) 2017-10-26 15:58:57 -04:00
Marshall Greenblatt
2733a561e4 Disable browser-side navigation by default (issue #2290) 2017-10-26 15:58:49 -04:00
Marshall Greenblatt
9334a09176 Set the correct response status on internal redirects 2017-10-26 15:58:43 -04:00
Marshall Greenblatt
8b4980b4ca Update to Chromium revision adb61db1 (#508578) 2017-10-26 15:58:05 -04:00
Marshall Greenblatt
c80264ab11 Add "win-rt-app" command-line flag to disable MITIGATION_STRICT_HANDLE_CHECKS
and avoid sandboxed renderer process crash in WinRT apps (issue #2274)
2017-09-29 11:17:36 +02:00
Marshall Greenblatt
607a1d9f49 Add chrome.tabs.create API support (issue #1947) 2017-09-28 15:41:10 +02:00
Marshall Greenblatt
3006329678 Simplify PrefService initialization (issue #1947) 2017-09-25 15:12:12 +02:00
Marshall Greenblatt
f372e90025 Linux: Fix client termination (issue #2268) 2017-09-21 07:05:36 -07:00
Marshall Greenblatt
6bcbefa5fc Fix task runner checking 2017-09-21 14:23:02 +02:00
Marshall Greenblatt
b0edce9c9d Windows: Add missing pe_image.lib to cef_sandbox.lib (issue #2266) 2017-09-20 11:34:30 +02:00
Kaustubh Vats
c95b92f1e8 macOS: Fix horizontal scrolling with trackpad (issue #2261) 2017-09-13 16:47:43 +00:00
Marshall Greenblatt
c1269e105d automate-git.py: Fix application of DEPS.patch 2017-09-12 15:57:56 -04:00
Marshall Greenblatt
3f48f8ec54 Linux: Fix 32-bit build fails with ld.gold: internal error in get_section_contents, at icf.cc:467 (issue #2256) 2017-09-12 13:22:39 -04:00
Ryan Shetley
d8a602ed2f Add support for Chrome Storage Extension API (issue #1947)
- Supports chrome.storage.local and chrome.storage.sync
- chrome.storage.sync behaves identically to chrome.storage.local
2017-09-11 18:42:30 +00:00
Marshall Greenblatt
a028976ac4 Update to Chromium revision fa6a5d87 (#499098) 2017-09-07 17:29:47 -04:00
Marshall Greenblatt
22d2fc50d1 Add QUIC protocol configuration support (issue #2184) 2017-09-05 14:21:56 -04:00
Marshall Greenblatt
05cddc2490 Windows: Fix crash during window creation (see https://crbug.com/761389) 2017-09-05 11:41:34 -04:00
Marshall Greenblatt
ed5208366c Windows: Wait for WM_NCDESTROY before calling OnBeforeClose (issue #2248) 2017-08-31 18:10:51 -04:00
Ryan Shetley
dddfce456c Add support for Chrome Alarms Extension API (issue #1947) 2017-08-30 11:46:21 +00:00
Marshall Greenblatt
64e6971099 views: Linux: Support CefWindowDelegate::CanResize restriction 2017-08-25 18:42:10 -04:00
Marshall Greenblatt
7f6c18af09 Fix shutdown assertion in SchemaRegistryServiceFactory after loading chrome://system 2017-08-25 18:42:10 -04:00
Marshall Greenblatt
9cff99dc4e Add support for loading extensions (issue #1947)
- Add CefRequestContext::LoadExtension, CefExtension, CefExtensionHandler and
  related methods/interfaces.
- Add chrome://extensions-support that lists supported Chrome APIs.
- Add CefBrowserHost::SetAutoResizeEnabled and CefDisplayHandler::OnAutoResize
  to support browser resize based on preferred web contents size.
- views: Add support for custom CefMenuButton popups.
- cefclient: Run with `--load-extension=set_page_color` command-line flag for
  an extension loading example. Add `--use-views` on Windows and Linux for an
  even better example.
2017-08-25 18:40:32 -04:00
Sergey Linev
5b12134a45 Linux: Fix error: suggest explicit braces to avoid ambiguous ‘else’ [-Werror=dangling-else] with gcc 7.1 2017-08-11 16:56:52 +00:00
Marshall Greenblatt
76eb49196e Fix crash loading chrome://net-internals 2017-08-10 16:58:05 -04:00
Marshall Greenblatt
b153ba46db Fix Widevine DRM loading 2017-08-09 14:56:17 -04:00
Marshall Greenblatt
7b94ec0c8b views: Fix LabelButton size calculation 2017-08-08 19:44:52 -04:00
Marshall Greenblatt
f229796a39 Update to Chromium revision ff259bab (#488528) 2017-07-28 18:30:34 -04:00
Marshall Greenblatt
6da2bbf229 Windows: Fix dialog loading for component build (issue #1617) 2017-07-24 12:14:27 -04:00
Marshall Greenblatt
85c945bc00 Add missing deps for component build (issue #1617) 2017-07-19 12:41:18 -04:00
Marshall Greenblatt
0c24e90b44 Fix errors on gclient sync of older release branches (issue #2211) 2017-07-18 17:07:23 -04:00
Marshall Greenblatt
1aea3a06a5 Linux/Mac: Fix handling of command-line arguments (issue #2208) 2017-07-18 13:57:04 -07:00
Marshall Greenblatt
796c7b6c59 Windows: Build cef_sandbox.lib with different GN args for official binary distributions (issue #2220) 2017-07-18 15:52:18 -04:00
Marshall Greenblatt
700123d3eb Add support for loading certificate revocation lists (issue #2213) 2017-07-11 15:44:35 -04:00
Marshall Greenblatt
b216f427f6 Add component build support (issue #1617) 2017-07-06 18:22:13 -04:00
Marshall Greenblatt
c080187908 Fix incorrect OSR browser display during navigation (issue #2209) 2017-07-05 15:18:52 -04:00
Marshall Greenblatt
75acd20e9a Fix OSR PDF mouse events after keyboard input (issue #2078) 2017-06-30 16:30:30 -04:00
Marshall Greenblatt
8e69e3dcea Windows/macOS: Fix incorrect clear of buffer during software rendering (issue #2197) 2017-06-23 18:37:49 -04:00
Marshall Greenblatt
cb0dfccddc Fix OSR PDF mouse wheel scrolling (issue #2078) 2017-06-23 15:28:56 -04:00
Marshall Greenblatt
2773518869 Windows: cefclient: Fix ATL-related build errors (issue #2200) 2017-06-19 15:00:18 +03:00
Marshall Greenblatt
70a01250e1 Linux: Don't pass NULL CefBrowser to PrintHandler::GetPdfPaperSize (issue #2199) 2017-06-17 12:49:41 +03:00
Marshall Greenblatt
dce5d5c28f Linux: Pass CefBrowser to CefPrintHandler callbacks (issue #2196) 2017-06-15 08:58:54 -07:00
Marshall Greenblatt
5918d426b3 Fix gtest path (issue #2188) 2017-06-13 17:09:59 +03:00
Marshall Greenblatt
943ffb217b macOS: Fix error: unknown type name 'size_t' 2017-06-05 15:38:49 +03:00
Marshall Greenblatt
09f021be88 Linux: Update to debian jessie sysroots 2017-06-05 15:38:42 +03:00
Marshall Greenblatt
5c79944b31 Update to Chromium revision d483fb77 (#474934)
- CefLifeSpanHandler::OnBeforePopup is now called on the UI thread.
- Remove CefBrowserSettings.javascript_open_windows which is no
  longer supported.
2017-06-02 05:55:23 -07:00
Marshall Greenblatt
12150b43d2 Apply yapf formatting to all Python files (issue #2171) 2017-05-28 15:04:18 +02:00
Marshall Greenblatt
59606b88d2 Update tooling to use yapf for Python file formatting (issue #2171) 2017-05-28 15:03:42 +02:00
Marshall Greenblatt
d4f06e3806 Move matching h file to top of header list (issue #2171) 2017-05-19 11:11:18 +02:00
Marshall Greenblatt
f6eb19f8d6 Fix discovery of the .clang-format file (issue #2171) 2017-05-19 11:00:44 +02:00
Marshall Greenblatt
24e20aec0f Fix duplicate definition of MSVC_PUSH_DISABLE_WARNING (issue #2171) 2017-05-18 12:30:06 +02:00
Marshall Greenblatt
31d9407ee2 Apply clang-format to all C, C++ and ObjC files (issue #2171) 2017-05-18 12:30:05 +02:00
Marshall Greenblatt
a566549e04 Update tooling to use clang-format (issue #2171) 2017-05-18 12:30:04 +02:00
Nishant Kaushik
816f700d3e Implement accessibility enhancements (issue #1217)
- Add new CefBrowserHost::SetAccessibilityState method for toggling
  accessibility state when readers are detected by the client.
- Add new CefAccessibilityHandler interface for the delivery of
  accessibility notifications to windowless (OSR) clients.
- Fix delivery of CefFocusHandler callbacks to windowless clients.
- cefclient: Add example windowless accessibility implementation on Windows and macOS.
- cefclient: Automatically detect screen readers on Windows and macOS.
2017-05-12 18:28:25 +00:00
Marshall Greenblatt
64fcfa6068 Linux: cefclient: Add OSR drag&drop implementation (issue #2008) 2017-05-11 12:06:32 -07:00
Marshall Greenblatt
67e23b472a Expose drag image via CefDragData (issue #1715) 2017-05-11 14:22:21 -04:00
Marshall Greenblatt
eaa0942690 Make CMake target settings private (issue #2007) 2017-05-11 13:43:38 -04:00
Marshall Greenblatt
49d1fe3b30 CMake configuration improvements (issue #2120)
- Windows: Fix excessive Ninja build warnings.
- Windows: Fix ATL detection for different VC toolchain paths.
- Windows: Fix Ninja Debug build when official build sandbox is enabled.
- Update build tool version recommendations.
2017-05-11 13:19:35 -04:00
Marshall Greenblatt
eea39b8413 Windows: Fix wrong calling convention with gcc compiler (issue 1209) 2017-05-10 16:26:11 -04:00
Marshall Greenblatt
b28a6145a1 Make the CefAuthCallback::Continue password parameter optional (issue #1928) 2017-05-10 12:16:53 -04:00
Marshall Greenblatt
7a02419cac Fix crash when parent is destroyed during popup creation (issue #2041) 2017-05-09 18:54:34 -04:00
Marshall Greenblatt
1347fec298 Remove unused function (issue #1853) 2017-05-09 17:14:02 -04:00
Marshall Greenblatt
51e8c53f30 Remove CefForceShutdown and make failure to call CefShutdown a DCHECK instead (issue #1932) 2017-05-09 15:52:52 -04:00
Marshall Greenblatt
77097ffab7 Remove the CefSettings.context_safety_implementation option (issue #1853).
The default hash implementation will now always be used.
2017-05-09 15:29:27 -04:00
Andrew Warnick
96f9108343 Fix crash when a resource is cancelled due to browser closing (issue #2165) 2017-05-09 15:30:48 +00:00
Marshall Greenblatt
e5ad5a8fcd Fix DCHECK during Find (issue #2050) 2017-05-05 15:34:20 -04:00
Marshall Greenblatt
86c329e790 Linux: Fix DCHECK during GPU feature info detection. 2017-05-04 16:58:47 -07:00
Marshall Greenblatt
3f970689a0 Popups must share the parent context to avoid crashes on parent browser destruction (issue #2162) 2017-05-04 18:17:24 -04:00
Marshall Greenblatt
5a5b538af7 macOS: Fix incorrect creation of NSAutoreleasePool (issue #2160) 2017-04-28 17:49:23 -04:00
Marshall Greenblatt
6d97cfb761 cefclient: macOS: Fix Xcode 5 compile error (issue #2116) 2017-04-28 17:19:29 -04:00
Marshall Greenblatt
b85e69a94c Add support for WebRTC screen sharing (issue #1065) 2017-04-28 16:39:37 -04:00
Marshall Greenblatt
03e25c778a Exit early when patches fail to apply (issue #2012) 2017-04-27 15:20:50 -04:00
Marshall Greenblatt
6a603af993 Fix IndexedDB quota (issue #2070) 2017-04-27 14:59:31 -04:00
Marshall Greenblatt
4fe6ac0d4b Use git apply for applying patch files (issue #1825) 2017-04-27 13:53:32 -04:00
Marshall Greenblatt
a2b8c250a8 Windows: Revert early chrome_elf crashpad initialization (issue #2122) 2017-04-27 13:20:33 -04:00
Marshall Greenblatt
0a2b82757a cefclient: macOS: Fix crash during shutdown from full-screen (issue #2158) 2017-04-26 15:17:49 -04:00
Marshall Greenblatt
f440f850ef cefclient: macOS: Fix CefBrowser leak during OSR shutdown (issue #2151) 2017-04-26 15:05:12 -04:00
Marshall Greenblatt
f2b988a0ce Windows: Fix crash on touch press text selection (issue #2149) 2017-04-26 12:49:30 -04:00
Marshall Greenblatt
10fccbd6cf Windows: Fix VS2008 compile error (issue #2155) 2017-04-26 12:15:59 -04:00
1623 changed files with 79077 additions and 46132 deletions

3
.gitignore vendored
View File

@@ -46,7 +46,4 @@ Thumbs.db
/binary_distrib /binary_distrib
/docs /docs
# CEF generated files # CEF generated files
/include/cef_pack_resources.h
/include/cef_pack_strings.h
/include/cef_version.h /include/cef_version.h
/patch/patch_state.h

9
.style.cfg Normal file
View File

@@ -0,0 +1,9 @@
# Copyright (c) 2017 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file
# Configuration settings for tools/fix_style.py
{
# Directories containing these path components will be ignored.
'ignore_directories': ['yapf'],
}

2
.style.yapf Normal file
View File

@@ -0,0 +1,2 @@
[style]
based_on_style = chromium

262
BUILD.gn
View File

@@ -105,6 +105,8 @@ import("//media/media_options.gni")
import("//mojo/public/tools/bindings/mojom.gni") import("//mojo/public/tools/bindings/mojom.gni")
import("//ppapi/features/features.gni") import("//ppapi/features/features.gni")
import("//printing/features/features.gni") import("//printing/features/features.gni")
import("//services/catalog/public/tools/catalog.gni")
import("//services/service_manager/public/service_manifest.gni")
import("//third_party/icu/config.gni") import("//third_party/icu/config.gni")
import("//third_party/widevine/cdm/widevine.gni") import("//third_party/widevine/cdm/widevine.gni")
import("//tools/grit/repack.gni") import("//tools/grit/repack.gni")
@@ -145,10 +147,6 @@ if (is_clang) {
assert(!clang_use_chrome_plugins) assert(!clang_use_chrome_plugins)
} }
# CEF does not currently support component builds. See
# https://bitbucket.org/chromiumembedded/cef/issues/1617
assert(!is_component_build)
if (is_mac) { if (is_mac) {
# Always generate dSYM files. The make_distrib script will fail if # Always generate dSYM files. The make_distrib script will fail if
# enable_dsyms=true is not explicitly set when is_official_build=false. # enable_dsyms=true is not explicitly set when is_official_build=false.
@@ -233,15 +231,47 @@ group("cef") {
# libcef static target. # libcef static target.
# #
# Configuration that will be applied to all targets that depend on if (is_win) {
# libcef_static. # Target for building code that accesses chrome_elf internals. Included from
config("libcef_static_config") { # the //chrome_elf:crash target. Defined as a static_library instead of a
# CEF targets use includes relative to the CEF root directory. # source_set because (a) the source files don't export any symbols and (b)
include_dirs = [ "." ] # *_switches.cc duplication otherwise causes linker errors.
defines = [ static_library("chrome_elf_set") {
"BUILDING_CEF_SHARED", sources = [
"USING_CHROMIUM_INCLUDES", "libcef/common/crash_reporter_client.cc",
"libcef/common/crash_reporter_client.h",
# Required for crash_keys::GetChromeCrashKeys.
# Otherwise we need to copy this array into CEF, which would be difficult
# to maintain.
"//chrome/common/crash_keys.cc",
"//chrome/common/chrome_switches.cc",
"//components/flags_ui/flags_ui_switches.cc",
"//content/public/common/content_switches.cc",
] ]
configs += [
"libcef/features:config",
"//build/config:precompiled_headers",
]
if (is_component_build) {
# Avoid linker errors with content_switches.cc in component build by not
# defining CONTENT_EXPORT.
defines = ["COMPILE_CONTENT_STATICALLY"]
}
deps = [
"//components/crash/core/common", # crash_keys
"//gpu/config:crash_keys",
# Required by chrome_switches.cc
"//chrome/common:features",
"//ppapi/features:features",
"//printing/features:features",
"//ui/base:ui_features",
]
}
} }
static_library("libcef_static") { static_library("libcef_static") {
@@ -251,6 +281,8 @@ static_library("libcef_static") {
"libcef/browser/browser_context.h", "libcef/browser/browser_context.h",
"libcef/browser/browser_context_impl.cc", "libcef/browser/browser_context_impl.cc",
"libcef/browser/browser_context_impl.h", "libcef/browser/browser_context_impl.h",
"libcef/browser/browser_context_keyed_service_factories.cc",
"libcef/browser/browser_context_keyed_service_factories.h",
"libcef/browser/browser_context_proxy.cc", "libcef/browser/browser_context_proxy.cc",
"libcef/browser/browser_context_proxy.h", "libcef/browser/browser_context_proxy.h",
"libcef/browser/browser_host_impl.cc", "libcef/browser/browser_host_impl.cc",
@@ -294,12 +326,16 @@ static_library("libcef_static") {
"libcef/browser/download_item_impl.h", "libcef/browser/download_item_impl.h",
"libcef/browser/download_manager_delegate.cc", "libcef/browser/download_manager_delegate.cc",
"libcef/browser/download_manager_delegate.h", "libcef/browser/download_manager_delegate.h",
"libcef/browser/extension_impl.cc",
"libcef/browser/extension_impl.h",
"libcef/browser/extensions/api/storage/sync_value_store_cache.cc",
"libcef/browser/extensions/api/storage/sync_value_store_cache.h",
"libcef/browser/extensions/api/tabs/tabs_api.cc", "libcef/browser/extensions/api/tabs/tabs_api.cc",
"libcef/browser/extensions/api/tabs/tabs_api.h", "libcef/browser/extensions/api/tabs/tabs_api.h",
"libcef/browser/extensions/browser_context_keyed_service_factories.cc",
"libcef/browser/extensions/browser_context_keyed_service_factories.h",
"libcef/browser/extensions/browser_extensions_util.cc", "libcef/browser/extensions/browser_extensions_util.cc",
"libcef/browser/extensions/browser_extensions_util.h", "libcef/browser/extensions/browser_extensions_util.h",
"libcef/browser/extensions/browser_platform_delegate_background.cc",
"libcef/browser/extensions/browser_platform_delegate_background.h",
"libcef/browser/extensions/chrome_api_registration.cc", "libcef/browser/extensions/chrome_api_registration.cc",
"libcef/browser/extensions/chrome_api_registration.h", "libcef/browser/extensions/chrome_api_registration.h",
"libcef/browser/extensions/component_extension_resource_manager.cc", "libcef/browser/extensions/component_extension_resource_manager.cc",
@@ -308,10 +344,18 @@ static_library("libcef_static") {
"libcef/browser/extensions/extensions_api_client.h", "libcef/browser/extensions/extensions_api_client.h",
"libcef/browser/extensions/extensions_browser_client.cc", "libcef/browser/extensions/extensions_browser_client.cc",
"libcef/browser/extensions/extensions_browser_client.h", "libcef/browser/extensions/extensions_browser_client.h",
"libcef/browser/extensions/extension_background_host.cc",
"libcef/browser/extensions/extension_background_host.h",
"libcef/browser/extensions/extension_function_details.cc",
"libcef/browser/extensions/extension_function_details.h",
"libcef/browser/extensions/extension_host_delegate.cc",
"libcef/browser/extensions/extension_host_delegate.h",
"libcef/browser/extensions/extension_system.cc", "libcef/browser/extensions/extension_system.cc",
"libcef/browser/extensions/extension_system.h", "libcef/browser/extensions/extension_system.h",
"libcef/browser/extensions/extension_system_factory.cc", "libcef/browser/extensions/extension_system_factory.cc",
"libcef/browser/extensions/extension_system_factory.h", "libcef/browser/extensions/extension_system_factory.h",
"libcef/browser/extensions/extension_view_host.cc",
"libcef/browser/extensions/extension_view_host.h",
"libcef/browser/extensions/extension_web_contents_observer.cc", "libcef/browser/extensions/extension_web_contents_observer.cc",
"libcef/browser/extensions/extension_web_contents_observer.h", "libcef/browser/extensions/extension_web_contents_observer.h",
"libcef/browser/extensions/mime_handler_view_guest_delegate.cc", "libcef/browser/extensions/mime_handler_view_guest_delegate.cc",
@@ -320,6 +364,10 @@ static_library("libcef_static") {
"libcef/browser/extensions/pdf_extension_util.h", "libcef/browser/extensions/pdf_extension_util.h",
"libcef/browser/extensions/pdf_web_contents_helper_client.cc", "libcef/browser/extensions/pdf_web_contents_helper_client.cc",
"libcef/browser/extensions/pdf_web_contents_helper_client.h", "libcef/browser/extensions/pdf_web_contents_helper_client.h",
"libcef/browser/extensions/value_store/cef_value_store.cc",
"libcef/browser/extensions/value_store/cef_value_store.h",
"libcef/browser/extensions/value_store/cef_value_store_factory.cc",
"libcef/browser/extensions/value_store/cef_value_store_factory.h",
"libcef/browser/file_dialog_runner.h", "libcef/browser/file_dialog_runner.h",
"libcef/browser/file_dialog_manager.cc", "libcef/browser/file_dialog_manager.cc",
"libcef/browser/file_dialog_manager.h", "libcef/browser/file_dialog_manager.h",
@@ -348,10 +396,13 @@ static_library("libcef_static") {
"libcef/browser/net/chrome_scheme_handler.h", "libcef/browser/net/chrome_scheme_handler.h",
"libcef/browser/net/cookie_store_proxy.cc", "libcef/browser/net/cookie_store_proxy.cc",
"libcef/browser/net/cookie_store_proxy.h", "libcef/browser/net/cookie_store_proxy.h",
"libcef/browser/net/crlset_file_util_impl.cc",
"libcef/browser/net/devtools_scheme_handler.cc", "libcef/browser/net/devtools_scheme_handler.cc",
"libcef/browser/net/devtools_scheme_handler.h", "libcef/browser/net/devtools_scheme_handler.h",
"libcef/browser/net/internal_scheme_handler.cc", "libcef/browser/net/internal_scheme_handler.cc",
"libcef/browser/net/internal_scheme_handler.h", "libcef/browser/net/internal_scheme_handler.h",
"libcef/browser/net/net_util.cc",
"libcef/browser/net/net_util.h",
"libcef/browser/net/network_delegate.cc", "libcef/browser/net/network_delegate.cc",
"libcef/browser/net/network_delegate.h", "libcef/browser/net/network_delegate.h",
"libcef/browser/net/resource_request_job.cc", "libcef/browser/net/resource_request_job.cc",
@@ -380,6 +431,8 @@ static_library("libcef_static") {
"libcef/browser/origin_whitelist_impl.h", "libcef/browser/origin_whitelist_impl.h",
"libcef/browser/osr/browser_platform_delegate_osr.cc", "libcef/browser/osr/browser_platform_delegate_osr.cc",
"libcef/browser/osr/browser_platform_delegate_osr.h", "libcef/browser/osr/browser_platform_delegate_osr.h",
"libcef/browser/osr/osr_accessibility_util.cc",
"libcef/browser/osr/osr_accessibility_util.h",
"libcef/browser/osr/osr_util.cc", "libcef/browser/osr/osr_util.cc",
"libcef/browser/osr/osr_util.h", "libcef/browser/osr/osr_util.h",
"libcef/browser/osr/render_widget_host_view_osr.cc", "libcef/browser/osr/render_widget_host_view_osr.cc",
@@ -389,20 +442,18 @@ static_library("libcef_static") {
"libcef/browser/osr/web_contents_view_osr.cc", "libcef/browser/osr/web_contents_view_osr.cc",
"libcef/browser/osr/web_contents_view_osr.h", "libcef/browser/osr/web_contents_view_osr.h",
"libcef/browser/path_util_impl.cc", "libcef/browser/path_util_impl.cc",
"libcef/browser/pepper/browser_pepper_host_factory.cc",
"libcef/browser/pepper/browser_pepper_host_factory.h",
"libcef/browser/permissions/permission_context.cc", "libcef/browser/permissions/permission_context.cc",
"libcef/browser/permissions/permission_context.h", "libcef/browser/permissions/permission_context.h",
"libcef/browser/permissions/permission_manager.cc", "libcef/browser/permissions/permission_manager.cc",
"libcef/browser/permissions/permission_manager.h", "libcef/browser/permissions/permission_manager.h",
"libcef/browser/permissions/permission_util.cc", "libcef/browser/permissions/permission_util.cc",
"libcef/browser/permissions/permission_util.h", "libcef/browser/permissions/permission_util.h",
"libcef/browser/plugins/plugin_info_message_filter.cc",
"libcef/browser/plugins/plugin_info_message_filter.h",
"libcef/browser/plugins/plugin_service_filter.cc", "libcef/browser/plugins/plugin_service_filter.cc",
"libcef/browser/plugins/plugin_service_filter.h", "libcef/browser/plugins/plugin_service_filter.h",
"libcef/browser/prefs/browser_prefs.cc", "libcef/browser/prefs/browser_prefs.cc",
"libcef/browser/prefs/browser_prefs.h", "libcef/browser/prefs/browser_prefs.h",
"libcef/browser/prefs/pref_store.cc",
"libcef/browser/prefs/pref_store.h",
"libcef/browser/prefs/renderer_prefs.cc", "libcef/browser/prefs/renderer_prefs.cc",
"libcef/browser/prefs/renderer_prefs.h", "libcef/browser/prefs/renderer_prefs.h",
"libcef/browser/print_settings_impl.cc", "libcef/browser/print_settings_impl.cc",
@@ -421,6 +472,8 @@ static_library("libcef_static") {
"libcef/browser/request_context_impl.cc", "libcef/browser/request_context_impl.cc",
"libcef/browser/request_context_impl.h", "libcef/browser/request_context_impl.h",
"libcef/browser/scheme_impl.cc", "libcef/browser/scheme_impl.cc",
"libcef/browser/server_impl.cc",
"libcef/browser/server_impl.h",
"libcef/browser/speech_recognition_manager_delegate.cc", "libcef/browser/speech_recognition_manager_delegate.cc",
"libcef/browser/speech_recognition_manager_delegate.h", "libcef/browser/speech_recognition_manager_delegate.h",
"libcef/browser/ssl_host_state_delegate.cc", "libcef/browser/ssl_host_state_delegate.cc",
@@ -532,22 +585,14 @@ static_library("libcef_static") {
"libcef/renderer/extensions/extensions_dispatcher_delegate.h", "libcef/renderer/extensions/extensions_dispatcher_delegate.h",
"libcef/renderer/extensions/extensions_renderer_client.cc", "libcef/renderer/extensions/extensions_renderer_client.cc",
"libcef/renderer/extensions/extensions_renderer_client.h", "libcef/renderer/extensions/extensions_renderer_client.h",
"libcef/renderer/extensions/print_web_view_helper_delegate.cc", "libcef/renderer/extensions/print_render_frame_helper_delegate.cc",
"libcef/renderer/extensions/print_web_view_helper_delegate.h", "libcef/renderer/extensions/print_render_frame_helper_delegate.h",
"libcef/renderer/frame_impl.cc", "libcef/renderer/frame_impl.cc",
"libcef/renderer/frame_impl.h", "libcef/renderer/frame_impl.h",
"libcef/renderer/media/cef_key_systems.cc",
"libcef/renderer/media/cef_key_systems.h",
"libcef/renderer/pepper/pepper_helper.cc",
"libcef/renderer/pepper/pepper_helper.h",
"libcef/renderer/pepper/renderer_pepper_host_factory.cc",
"libcef/renderer/pepper/renderer_pepper_host_factory.h",
"libcef/renderer/plugins/cef_plugin_placeholder.cc",
"libcef/renderer/plugins/cef_plugin_placeholder.h",
"libcef/renderer/plugins/plugin_preroller.cc",
"libcef/renderer/plugins/plugin_preroller.h",
"libcef/renderer/render_frame_observer.cc", "libcef/renderer/render_frame_observer.cc",
"libcef/renderer/render_frame_observer.h", "libcef/renderer/render_frame_observer.h",
"libcef/renderer/render_frame_util.cc",
"libcef/renderer/render_frame_util.h",
"libcef/renderer/render_message_filter.cc", "libcef/renderer/render_message_filter.cc",
"libcef/renderer/render_message_filter.h", "libcef/renderer/render_message_filter.h",
"libcef/renderer/render_thread_observer.cc", "libcef/renderer/render_thread_observer.cc",
@@ -557,8 +602,6 @@ static_library("libcef_static") {
"libcef/renderer/thread_util.h", "libcef/renderer/thread_util.h",
"libcef/renderer/v8_impl.cc", "libcef/renderer/v8_impl.cc",
"libcef/renderer/v8_impl.h", "libcef/renderer/v8_impl.h",
"libcef/renderer/webkit_glue.cc",
"libcef/renderer/webkit_glue.h",
"libcef/utility/content_utility_client.cc", "libcef/utility/content_utility_client.cc",
"libcef/utility/content_utility_client.h", "libcef/utility/content_utility_client.h",
@@ -566,33 +609,21 @@ static_library("libcef_static") {
# with enable_print_preview=0. # with enable_print_preview=0.
"//chrome/renderer/pepper/chrome_pdf_print_client.cc", "//chrome/renderer/pepper/chrome_pdf_print_client.cc",
"//chrome/renderer/pepper/chrome_pdf_print_client.h", "//chrome/renderer/pepper/chrome_pdf_print_client.h",
# Part of //components/prefs:test_support which is testingonly.
"//components/prefs/testing_pref_store.cc",
"//components/prefs/testing_pref_store.h",
] ]
configs += [ configs += [
":libcef_static_config", "libcef/features:config",
"//build/config:precompiled_headers", "//build/config:precompiled_headers",
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning", "//build/config/compiler:no_size_t_to_int_warning",
# Blink-internal include paths.
"//third_party/WebKit/Source/core:core_include_dirs",
] ]
public_configs = [ public_configs = [
":libcef_static_config", "libcef/features:config",
] ]
include_dirs = [ include_dirs = [
# Blink code uses paths relative to these directories. We need them because
# we include Blink headers.
"//third_party/WebKit/public/platform",
"//third_party/WebKit/public/web",
# Crashpad code uses paths relative to this directory. # Crashpad code uses paths relative to this directory.
"//third_party/crashpad/crashpad", "//third_party/crashpad/crashpad",
] ]
@@ -623,6 +654,7 @@ static_library("libcef_static") {
"//chrome/child", "//chrome/child",
"//chrome/common", "//chrome/common",
"//chrome/renderer", "//chrome/renderer",
"//chrome/utility",
"//components/cdm/renderer", "//components/cdm/renderer",
"//components/content_settings/core/browser", "//components/content_settings/core/browser",
"//components/content_settings/core/common", "//components/content_settings/core/common",
@@ -632,6 +664,7 @@ static_library("libcef_static") {
"//components/keyed_service/content:content", "//components/keyed_service/content:content",
"//components/keyed_service/core:core", "//components/keyed_service/core:core",
"//components/navigation_interception", "//components/navigation_interception",
"//components/network_session_configurator/browser",
"//components/pdf/browser", "//components/pdf/browser",
"//components/pdf/renderer", "//components/pdf/renderer",
"//components/plugins/renderer", "//components/plugins/renderer",
@@ -639,6 +672,9 @@ static_library("libcef_static") {
"//components/printing/browser", "//components/printing/browser",
"//components/printing/common", "//components/printing/common",
"//components/printing/renderer", "//components/printing/renderer",
"//components/printing/service:pdf_compositor_manifest",
"//components/printing/service/public/cpp:factory",
"//components/printing/service/public/interfaces",
"//components/proxy_config", "//components/proxy_config",
"//components/ssl_config", "//components/ssl_config",
"//components/update_client", "//components/update_client",
@@ -648,17 +684,20 @@ static_library("libcef_static") {
"//components/visitedlink/browser", "//components/visitedlink/browser",
"//components/visitedlink/common", "//components/visitedlink/common",
"//components/visitedlink/renderer", "//components/visitedlink/renderer",
"//components/viz/service",
"//components/web_cache/renderer", "//components/web_cache/renderer",
"//content/public/app:both", "//content/public/app:both",
"//content/public/browser", "//content/public/browser",
"//content/public/child",
"//content/public/common", "//content/public/common",
"//content/public/gpu", "//content/public/gpu",
"//content/public/network",
"//content/public/renderer", "//content/public/renderer",
"//content/public/utility", "//content/public/utility",
"//crypto", "//crypto",
"//device/base", "//device/base",
"//device/geolocation", "//device/geolocation",
"//device/hid", "//device/geolocation/public/interfaces",
"//extensions/browser", "//extensions/browser",
"//extensions/browser/api:api_registration", "//extensions/browser/api:api_registration",
"//extensions/common/api", "//extensions/common/api",
@@ -676,17 +715,22 @@ static_library("libcef_static") {
"//pdf", "//pdf",
"//ppapi/features", "//ppapi/features",
"//printing/features", "//printing/features",
"//services/service_manager/embedder",
"//services/service_manager/public/interfaces",
"//services/service_manager/runner/common",
"//skia", "//skia",
"//storage/browser", "//storage/browser",
"//third_party/brotli:dec", "//third_party/brotli:dec",
"//third_party/cld", "//third_party/cld_3/src/src:cld_3",
"//third_party/hunspell", "//third_party/hunspell",
"//third_party/leveldatabase", "//third_party/leveldatabase",
"//third_party/libxml", "//third_party/libxml",
"//third_party/WebKit/public:blink", "//third_party/WebKit/public:blink",
"//third_party/widevine/cdm:headers", "//third_party/widevine/cdm:headers",
"//third_party/widevine/cdm:widevinecdmadapter",
"//third_party/icu", "//third_party/icu",
"//third_party/zlib:minizip", "//third_party/zlib:minizip",
"//tools/v8_context_snapshot:v8_context_snapshot",
"//ui/base", "//ui/base",
"//ui/base/ime", "//ui/base/ime",
"//ui/events:events_base", "//ui/events:events_base",
@@ -700,11 +744,6 @@ static_library("libcef_static") {
"//v8", "//v8",
] ]
if (!is_mac) {
# TODO(cef): Enable for Mac once Widevine build errors are resolved.
deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ]
}
if (is_win) { if (is_win) {
sources += gypi_paths2.includes_win + [ sources += gypi_paths2.includes_win + [
"libcef/browser/browser_main_win.cc", "libcef/browser/browser_main_win.cc",
@@ -735,6 +774,14 @@ static_library("libcef_static") {
deps += [ deps += [
"//chrome_elf", "//chrome_elf",
] ]
if (is_component_build) {
deps += [ "//content:sandbox_helper_win" ]
}
libs = [
"comctl32.lib",
]
} }
if (is_linux) { if (is_linux) {
@@ -754,7 +801,8 @@ static_library("libcef_static") {
deps += [ deps += [
"//build/config/freetype", "//build/config/freetype",
"//build/linux:fontconfig", "//services/ui:lib",
"//third_party/fontconfig",
] ]
} }
@@ -777,7 +825,7 @@ static_library("libcef_static") {
} }
if (is_win || is_mac) { if (is_win || is_mac) {
deps += [ "//third_party/crashpad/crashpad/handler:handler_lib" ] deps += [ "//third_party/crashpad/crashpad/handler" ]
} }
if (use_x11) { if (use_x11) {
@@ -869,6 +917,7 @@ static_library("libcef_static") {
"//ui/events", "//ui/events",
"//ui/strings", "//ui/strings",
"//ui/wm", "//ui/wm",
"//ui/wm/public",
] ]
if (toolkit_views) { if (toolkit_views) {
@@ -881,6 +930,11 @@ static_library("libcef_static") {
if (is_win) { if (is_win) {
sources += [ sources += [
# Support for UI input events. # Support for UI input events.
# Part of //base/test:test_config which is testingonly.
"//base/test/test_switches.cc",
"//base/test/test_switches.h",
"//base/test/test_timeouts.cc",
"//base/test/test_timeouts.h",
# Part of //ui/aura:test_support which is testingonly. # Part of //ui/aura:test_support which is testingonly.
"//ui/aura/test/ui_controls_factory_aurawin.cc", "//ui/aura/test/ui_controls_factory_aurawin.cc",
# Part of //ui/base:test_support which is testingonly. # Part of //ui/base:test_support which is testingonly.
@@ -963,6 +1017,43 @@ if (is_win) {
} }
#
# Service manifests.
#
cef_packaged_services = [
"//chrome/app:chrome_manifest", # For spell checking.
"//services/metrics:manifest",
"//services/proxy_resolver:proxy_resolver_manifest",
]
service_manifest("cef_packaged_services_manifest_overlay") {
source = "libcef/common/service_manifests/packaged_services_manifest_overlay.json"
packaged_services = cef_packaged_services
}
service_manifest("cef_browser_manifest_overlay") {
source = "libcef/common/service_manifests/browser_manifest_overlay.json"
}
service_manifest("cef_renderer_manifest_overlay") {
source = "libcef/common/service_manifests/renderer_manifest_overlay.json"
}
service_manifest("cef_utility_manifest_overlay") {
source = "libcef/common/service_manifests/utility_manifest_overlay.json"
}
group("cef_manifest_overlays") {
deps = [
":cef_packaged_services_manifest_overlay",
":cef_browser_manifest_overlay",
":cef_renderer_manifest_overlay",
":cef_utility_manifest_overlay",
]
}
# #
# Resource grit/pack targets. # Resource grit/pack targets.
# #
@@ -975,7 +1066,7 @@ template("cef_pak_scaled") {
# Each input pak file should also have a deps line for completeness. # Each input pak file should also have a deps line for completeness.
# Add associated .h files in the make_pack_header("resources") target. # Add associated .h files in the make_pack_header("resources") target.
sources = [ sources = [
"$root_gen_dir/blink/public/resources/blink_image_resources_${percent}_percent.pak", "$root_gen_dir/blink/public/resources/blink_scaled_resources_${percent}_percent.pak",
"$root_gen_dir/chrome/renderer_resources_${percent}_percent.pak", "$root_gen_dir/chrome/renderer_resources_${percent}_percent.pak",
"$root_gen_dir/components/components_resources_${percent}_percent.pak", "$root_gen_dir/components/components_resources_${percent}_percent.pak",
"$root_gen_dir/content/app/resources/content_resources_${percent}_percent.pak", "$root_gen_dir/content/app/resources/content_resources_${percent}_percent.pak",
@@ -987,7 +1078,7 @@ template("cef_pak_scaled") {
# the libcef_static target. Grit deps that generate .cc files must be # the libcef_static target. Grit deps that generate .cc files must be
# listed both here and in the libcef_static target. # listed both here and in the libcef_static target.
public_deps = [ public_deps = [
"//third_party/WebKit/public:image_resources", "//third_party/WebKit/public:scaled_resources",
"//chrome/renderer:resources", "//chrome/renderer:resources",
"//components/resources:components_scaled_resources", "//components/resources:components_scaled_resources",
"//content/app/resources", "//content/app/resources",
@@ -995,6 +1086,12 @@ template("cef_pak_scaled") {
"//ui/resources:ui_resources_grd", "//ui/resources:ui_resources_grd",
] ]
deps = [
# This repack target generates the blink_scaled_resources_*_percent.pak
# file but doesn't expose the public_deps required by make_pack_header.
"//third_party/WebKit/public:scaled_resources_${percent}_percent",
]
if (toolkit_views) { if (toolkit_views) {
sources += [ sources += [
"$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak" "$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak"
@@ -1045,6 +1142,7 @@ repack("pak_extensions") {
"$root_gen_dir/chrome/component_extension_resources.pak", "$root_gen_dir/chrome/component_extension_resources.pak",
"$root_gen_dir/extensions/extensions_renderer_resources.pak", "$root_gen_dir/extensions/extensions_renderer_resources.pak",
"$root_gen_dir/extensions/extensions_resources.pak", "$root_gen_dir/extensions/extensions_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
"$root_gen_dir/ui/resources/webui_resources.pak", "$root_gen_dir/ui/resources/webui_resources.pak",
] ]
@@ -1055,6 +1153,7 @@ repack("pak_extensions") {
"//chrome/browser/resources:component_extension_resources", "//chrome/browser/resources:component_extension_resources",
"//extensions:extensions_renderer_resources", "//extensions:extensions_renderer_resources",
"//extensions:extensions_resources_grd", "//extensions:extensions_resources_grd",
"//mojo/public/js:resources",
"//ui/resources:webui_resources_grd", "//ui/resources:webui_resources_grd",
] ]
@@ -1095,6 +1194,11 @@ grit("cef_resources") {
"grit/cef_resources.h", "grit/cef_resources.h",
"cef_resources.pak", "cef_resources.pak",
] ]
grit_flags = [
"-E",
"root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [ ":cef_manifest_overlays" ]
} }
# Generate cef.pak. # Generate cef.pak.
@@ -1162,6 +1266,7 @@ template("make_pack_header") {
make_pack_header("resources") { make_pack_header("resources") {
header = "$root_out_dir/includes/include/cef_pack_resources.h" header = "$root_out_dir/includes/include/cef_pack_resources.h"
inputs = [ inputs = [
"$root_gen_dir/blink/public/resources/grit/media_controls_resources.h",
"$root_gen_dir/blink/public/resources/grit/blink_image_resources.h", "$root_gen_dir/blink/public/resources/grit/blink_image_resources.h",
"$root_gen_dir/blink/public/resources/grit/blink_resources.h", "$root_gen_dir/blink/public/resources/grit/blink_resources.h",
"$root_gen_dir/cef/grit/cef_resources.h", "$root_gen_dir/cef/grit/cef_resources.h",
@@ -1243,8 +1348,8 @@ if (is_mac) {
"$root_out_dir/cef_200_percent.pak", "$root_out_dir/cef_200_percent.pak",
"$root_out_dir/cef_extensions.pak", "$root_out_dir/cef_extensions.pak",
"$root_out_dir/devtools_resources.pak", "$root_out_dir/devtools_resources.pak",
# TODO(cef): Restore this line once Widevine build errors are resolved. "$root_out_dir/v8_context_snapshot.bin",
# "$root_out_dir/$widevine_cdm_path/widevinecdmadapter.plugin", "$root_out_dir/$widevine_cdm_path/widevinecdmadapter.plugin",
] ]
public_deps = [ public_deps = [
@@ -1253,8 +1358,8 @@ if (is_mac) {
":pak_200_percent", ":pak_200_percent",
":pak_devtools", ":pak_devtools",
":pak_extensions", ":pak_extensions",
# TODO(cef): Restore this line once Widevine build errors are resolved. "//third_party/widevine/cdm:widevinecdmadapter",
# "//third_party/widevine/cdm:widevinecdmadapter", "//tools/v8_context_snapshot:v8_context_snapshot",
] ]
if (icu_use_data_file) { if (icu_use_data_file) {
@@ -1429,7 +1534,7 @@ if (is_mac) {
] ]
outputs = [ outputs = [
"{{bundle_root_dir}}/Frameworks/{{source_file_part}}", "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}",
] ]
} }
@@ -1487,6 +1592,13 @@ if (is_mac) {
] ]
} }
bundle_data("cefclient_resources_bundle_data_extensions_set_page_color") {
sources = gypi_paths2.cefclient_sources_resources_extensions_set_page_color
outputs = [
"{{bundle_resources_dir}}/extensions/set_page_color/{{source_file_part}}",
]
}
bundle_data("cefclient_resources_bundle_data_english") { bundle_data("cefclient_resources_bundle_data_english") {
sources = [ sources = [
"tests/cefclient/resources/mac/English.lproj/InfoPlist.strings", "tests/cefclient/resources/mac/English.lproj/InfoPlist.strings",
@@ -1531,6 +1643,7 @@ if (is_mac) {
gypi_paths2.cefclient_sources_mac gypi_paths2.cefclient_sources_mac
deps = [ deps = [
":cefclient_resources_bundle_data", ":cefclient_resources_bundle_data",
":cefclient_resources_bundle_data_extensions_set_page_color",
":cefclient_resources_bundle_data_english", ":cefclient_resources_bundle_data_english",
":cefclient_xibs", ":cefclient_xibs",
":libcef_dll_wrapper", ":libcef_dll_wrapper",
@@ -1694,6 +1807,11 @@ if (is_mac) {
gypi_paths2.cefclient_sources_resources gypi_paths2.cefclient_sources_resources
outputs = [ "${root_out_dir}/cefclient_files/{{source_file_part}}" ] outputs = [ "${root_out_dir}/cefclient_files/{{source_file_part}}" ]
} }
copy("copy_cefclient_files_extensions_set_page_color") {
sources = gypi_paths2.cefclient_sources_resources_extensions_set_page_color
outputs = [ "${root_out_dir}/cefclient_files/extensions/set_page_color/{{source_file_part}}" ]
}
} }
executable("cefclient") { executable("cefclient") {
@@ -1706,12 +1824,13 @@ if (is_mac) {
gypi_paths2.cefclient_sources_browser + gypi_paths2.cefclient_sources_browser +
gypi_paths2.cefclient_sources_common + gypi_paths2.cefclient_sources_common +
gypi_paths2.cefclient_sources_renderer + gypi_paths2.cefclient_sources_renderer +
gypi_paths2.cefclient_sources_resources gypi_paths2.cefclient_sources_resources +
gypi_paths2.cefclient_sources_resources_extensions_set_page_color
deps = [ deps = [
":libcef", ":libcef",
":libcef_dll_wrapper", ":libcef_dll_wrapper",
"//build/config/sanitizers:deps", "//build/config:exe_and_shlib_deps",
] ]
if (is_win) { if (is_win) {
@@ -1731,18 +1850,16 @@ if (is_mac) {
deps += [ deps += [
":cef_sandbox", ":cef_sandbox",
"//build/win:default_exe_manifest", "//build/win:default_exe_manifest",
# Tool that can be used for testing crash reporting.
"//content/shell:content_shell_crash_service",
] ]
libs = [ libs = [
"comctl32.lib", "comctl32.lib",
"shlwapi.lib",
"rpcrt4.lib",
"opengl32.lib",
"glu32.lib", "glu32.lib",
"imm32.lib", "imm32.lib",
"oleacc.lib",
"opengl32.lib",
"rpcrt4.lib",
"shlwapi.lib",
] ]
} }
@@ -1753,6 +1870,7 @@ if (is_mac) {
deps += [ deps += [
":copy_cefclient_files", ":copy_cefclient_files",
":copy_cefclient_files_extensions_set_page_color",
] ]
libs = [ libs = [
@@ -1786,7 +1904,7 @@ if (is_mac) {
deps = [ deps = [
":libcef", ":libcef",
":libcef_dll_wrapper", ":libcef_dll_wrapper",
"//build/config/sanitizers:deps", "//build/config:exe_and_shlib_deps",
] ]
if (is_win) { if (is_win) {
@@ -1855,7 +1973,7 @@ if (is_mac) {
deps = [ deps = [
":libcef", ":libcef",
":libcef_dll_wrapper", ":libcef_dll_wrapper",
"//build/config/sanitizers:deps", "//build/config:exe_and_shlib_deps",
"//testing/gtest", "//testing/gtest",
] ]

View File

@@ -7,5 +7,5 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{ {
'chromium_checkout': 'a106f0abbf69dad349d4aaf4bcc4f5d376dd2377', 'chromium_checkout': 'refs/tags/64.0.3282.119',
} }

View File

@@ -48,13 +48,13 @@
# libgtkglext1-dev (required by the cefclient target only) # libgtkglext1-dev (required by the cefclient target only)
# #
# - Mac OS X requirements: # - Mac OS X requirements:
# Xcode 5 or newer building on Mac OS X 10.9 (Mavericks) or newer. Xcode 7.2 # Xcode 5 or newer building on Mac OS X 10.9 (Mavericks) or newer. Xcode 8.3
# and OS X 10.11 are recommended. The Xcode command-line tools must also be # and OS X 10.12 are recommended. The Xcode command-line tools must also be
# installed. Only 64-bit builds are supported on OS X. # installed. Only 64-bit builds are supported on OS X.
# #
# - Windows requirements: # - Windows requirements:
# Visual Studio 2010 or newer building on Windows 7 or newer. Visual Studio # Visual Studio 2010 or newer building on Windows 7 or newer. Visual Studio
# 2015 Update 2 and Windows 10 64-bit are recommended. # 2015 Update 3 and Windows 10 64-bit are recommended.
# #
# BUILD EXAMPLES # BUILD EXAMPLES
# #
@@ -199,10 +199,12 @@ add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper)
# Include application targets. # Include application targets.
# Comes from the <target>/CMakeLists.txt file in the current directory. # Comes from the <target>/CMakeLists.txt file in the current directory.
# TODO: Change these lines to match your project target when you copy this file. # TODO: Change these lines to match your project target when you copy this file.
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests")
add_subdirectory(tests/cefclient) add_subdirectory(tests/cefclient)
add_subdirectory(tests/cefsimple) add_subdirectory(tests/cefsimple)
add_subdirectory(tests/gtest) add_subdirectory(tests/gtest)
add_subdirectory(tests/ceftests) add_subdirectory(tests/ceftests)
endif()
# Display configuration settings. # Display configuration settings.
PRINT_CEF_CONFIG() PRINT_CEF_CONFIG()

View File

@@ -42,7 +42,7 @@ The CEF project is an extension of the Chromium project. CEF maintains developme
The base CEF framework includes support for the C and C++ programming languages. Thanks to the hard work of external maintainers CEF can integrate with a number of other programming languages and frameworks. These external projects are not maintained by CEF so please contact the respective project maintainer if you have any questions or issues. The base CEF framework includes support for the C and C++ programming languages. Thanks to the hard work of external maintainers CEF can integrate with a number of other programming languages and frameworks. These external projects are not maintained by CEF so please contact the respective project maintainer if you have any questions or issues.
* .Net - https://github.com/chillitom/CefSharp * .Net (CEF3) - https://github.com/cefsharp/CefSharp
* .Net (CEF1) - https://bitbucket.org/fddima/cefglue * .Net (CEF1) - https://bitbucket.org/fddima/cefglue
* .Net/Mono (CEF3) - https://bitbucket.org/xilium/xilium.cefglue * .Net/Mono (CEF3) - https://bitbucket.org/xilium/xilium.cefglue
* .Net (CEF3) - https://bitbucket.org/chromiumfx/chromiumfx * .Net (CEF3) - https://bitbucket.org/chromiumfx/chromiumfx

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2017 The Chromium Embedded Framework Authors. All rights # Copyright (c) 2018 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that # reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file. # can be found in the LICENSE file.
# #
@@ -8,10 +8,13 @@
# by hand. See the translator.README.txt file in the tools directory for # by hand. See the translator.README.txt file in the tools directory for
# more information. # more information.
# #
# $hash=5f69924ad7517dee8adf933a7c013616ebb94c36$
#
{ {
'variables': { 'variables': {
'autogen_cpp_includes': [ 'autogen_cpp_includes': [
'include/cef_accessibility_handler.h',
'include/cef_app.h', 'include/cef_app.h',
'include/cef_auth_callback.h', 'include/cef_auth_callback.h',
'include/cef_browser.h', 'include/cef_browser.h',
@@ -29,6 +32,8 @@
'include/cef_download_item.h', 'include/cef_download_item.h',
'include/cef_drag_data.h', 'include/cef_drag_data.h',
'include/cef_drag_handler.h', 'include/cef_drag_handler.h',
'include/cef_extension.h',
'include/cef_extension_handler.h',
'include/cef_file_util.h', 'include/cef_file_util.h',
'include/cef_find_handler.h', 'include/cef_find_handler.h',
'include/cef_focus_handler.h', 'include/cef_focus_handler.h',
@@ -62,6 +67,7 @@
'include/cef_response.h', 'include/cef_response.h',
'include/cef_response_filter.h', 'include/cef_response_filter.h',
'include/cef_scheme.h', 'include/cef_scheme.h',
'include/cef_server.h',
'include/cef_ssl_info.h', 'include/cef_ssl_info.h',
'include/cef_ssl_status.h', 'include/cef_ssl_status.h',
'include/cef_stream.h', 'include/cef_stream.h',
@@ -77,6 +83,7 @@
'include/cef_x509_certificate.h', 'include/cef_x509_certificate.h',
'include/cef_xml_reader.h', 'include/cef_xml_reader.h',
'include/cef_zip_reader.h', 'include/cef_zip_reader.h',
'include/test/cef_test_helpers.h',
'include/test/cef_translator_test.h', 'include/test/cef_translator_test.h',
'include/views/cef_box_layout.h', 'include/views/cef_box_layout.h',
'include/views/cef_browser_view.h', 'include/views/cef_browser_view.h',
@@ -100,6 +107,7 @@
'include/views/cef_window_delegate.h', 'include/views/cef_window_delegate.h',
], ],
'autogen_capi_includes': [ 'autogen_capi_includes': [
'include/capi/cef_accessibility_handler_capi.h',
'include/capi/cef_app_capi.h', 'include/capi/cef_app_capi.h',
'include/capi/cef_auth_callback_capi.h', 'include/capi/cef_auth_callback_capi.h',
'include/capi/cef_browser_capi.h', 'include/capi/cef_browser_capi.h',
@@ -117,6 +125,8 @@
'include/capi/cef_download_item_capi.h', 'include/capi/cef_download_item_capi.h',
'include/capi/cef_drag_data_capi.h', 'include/capi/cef_drag_data_capi.h',
'include/capi/cef_drag_handler_capi.h', 'include/capi/cef_drag_handler_capi.h',
'include/capi/cef_extension_capi.h',
'include/capi/cef_extension_handler_capi.h',
'include/capi/cef_file_util_capi.h', 'include/capi/cef_file_util_capi.h',
'include/capi/cef_find_handler_capi.h', 'include/capi/cef_find_handler_capi.h',
'include/capi/cef_focus_handler_capi.h', 'include/capi/cef_focus_handler_capi.h',
@@ -150,6 +160,7 @@
'include/capi/cef_response_capi.h', 'include/capi/cef_response_capi.h',
'include/capi/cef_response_filter_capi.h', 'include/capi/cef_response_filter_capi.h',
'include/capi/cef_scheme_capi.h', 'include/capi/cef_scheme_capi.h',
'include/capi/cef_server_capi.h',
'include/capi/cef_ssl_info_capi.h', 'include/capi/cef_ssl_info_capi.h',
'include/capi/cef_ssl_status_capi.h', 'include/capi/cef_ssl_status_capi.h',
'include/capi/cef_stream_capi.h', 'include/capi/cef_stream_capi.h',
@@ -165,6 +176,7 @@
'include/capi/cef_x509_certificate_capi.h', 'include/capi/cef_x509_certificate_capi.h',
'include/capi/cef_xml_reader_capi.h', 'include/capi/cef_xml_reader_capi.h',
'include/capi/cef_zip_reader_capi.h', 'include/capi/cef_zip_reader_capi.h',
'include/capi/test/cef_test_helpers_capi.h',
'include/capi/test/cef_translator_test_capi.h', 'include/capi/test/cef_translator_test_capi.h',
'include/capi/views/cef_box_layout_capi.h', 'include/capi/views/cef_box_layout_capi.h',
'include/capi/views/cef_browser_view_capi.h', 'include/capi/views/cef_browser_view_capi.h',
@@ -188,6 +200,8 @@
'include/capi/views/cef_window_delegate_capi.h', 'include/capi/views/cef_window_delegate_capi.h',
], ],
'autogen_library_side': [ 'autogen_library_side': [
'libcef_dll/ctocpp/accessibility_handler_ctocpp.cc',
'libcef_dll/ctocpp/accessibility_handler_ctocpp.h',
'libcef_dll/ctocpp/app_ctocpp.cc', 'libcef_dll/ctocpp/app_ctocpp.cc',
'libcef_dll/ctocpp/app_ctocpp.h', 'libcef_dll/ctocpp/app_ctocpp.h',
'libcef_dll/cpptoc/auth_callback_cpptoc.cc', 'libcef_dll/cpptoc/auth_callback_cpptoc.cc',
@@ -258,6 +272,10 @@
'libcef_dll/ctocpp/drag_handler_ctocpp.h', 'libcef_dll/ctocpp/drag_handler_ctocpp.h',
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.cc', 'libcef_dll/ctocpp/end_tracing_callback_ctocpp.cc',
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.h', 'libcef_dll/ctocpp/end_tracing_callback_ctocpp.h',
'libcef_dll/cpptoc/extension_cpptoc.cc',
'libcef_dll/cpptoc/extension_cpptoc.h',
'libcef_dll/ctocpp/extension_handler_ctocpp.cc',
'libcef_dll/ctocpp/extension_handler_ctocpp.h',
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.cc', 'libcef_dll/cpptoc/file_dialog_callback_cpptoc.cc',
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.h', 'libcef_dll/cpptoc/file_dialog_callback_cpptoc.h',
'libcef_dll/cpptoc/views/fill_layout_cpptoc.cc', 'libcef_dll/cpptoc/views/fill_layout_cpptoc.cc',
@@ -272,6 +290,8 @@
'libcef_dll/cpptoc/geolocation_callback_cpptoc.h', 'libcef_dll/cpptoc/geolocation_callback_cpptoc.h',
'libcef_dll/ctocpp/geolocation_handler_ctocpp.cc', 'libcef_dll/ctocpp/geolocation_handler_ctocpp.cc',
'libcef_dll/ctocpp/geolocation_handler_ctocpp.h', 'libcef_dll/ctocpp/geolocation_handler_ctocpp.h',
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.cc',
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.h',
'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.cc', 'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.cc',
'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.h', 'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.h',
'libcef_dll/cpptoc/image_cpptoc.cc', 'libcef_dll/cpptoc/image_cpptoc.cc',
@@ -296,6 +316,8 @@
'libcef_dll/cpptoc/views/menu_button_cpptoc.h', 'libcef_dll/cpptoc/views/menu_button_cpptoc.h',
'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.cc', 'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.cc',
'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.h', 'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.h',
'libcef_dll/cpptoc/views/menu_button_pressed_lock_cpptoc.cc',
'libcef_dll/cpptoc/views/menu_button_pressed_lock_cpptoc.h',
'libcef_dll/cpptoc/menu_model_cpptoc.cc', 'libcef_dll/cpptoc/menu_model_cpptoc.cc',
'libcef_dll/cpptoc/menu_model_cpptoc.h', 'libcef_dll/cpptoc/menu_model_cpptoc.h',
'libcef_dll/ctocpp/menu_model_delegate_ctocpp.cc', 'libcef_dll/ctocpp/menu_model_delegate_ctocpp.cc',
@@ -370,6 +392,10 @@
'libcef_dll/cpptoc/views/scroll_view_cpptoc.h', 'libcef_dll/cpptoc/views/scroll_view_cpptoc.h',
'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.cc', 'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.cc',
'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.h', 'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.h',
'libcef_dll/cpptoc/server_cpptoc.cc',
'libcef_dll/cpptoc/server_cpptoc.h',
'libcef_dll/ctocpp/server_handler_ctocpp.cc',
'libcef_dll/ctocpp/server_handler_ctocpp.h',
'libcef_dll/ctocpp/set_cookie_callback_ctocpp.cc', 'libcef_dll/ctocpp/set_cookie_callback_ctocpp.cc',
'libcef_dll/ctocpp/set_cookie_callback_ctocpp.h', 'libcef_dll/ctocpp/set_cookie_callback_ctocpp.h',
'libcef_dll/cpptoc/stream_reader_cpptoc.cc', 'libcef_dll/cpptoc/stream_reader_cpptoc.cc',
@@ -460,6 +486,8 @@
'libcef_dll/cpptoc/zip_reader_cpptoc.h', 'libcef_dll/cpptoc/zip_reader_cpptoc.h',
], ],
'autogen_client_side': [ 'autogen_client_side': [
'libcef_dll/cpptoc/accessibility_handler_cpptoc.cc',
'libcef_dll/cpptoc/accessibility_handler_cpptoc.h',
'libcef_dll/cpptoc/app_cpptoc.cc', 'libcef_dll/cpptoc/app_cpptoc.cc',
'libcef_dll/cpptoc/app_cpptoc.h', 'libcef_dll/cpptoc/app_cpptoc.h',
'libcef_dll/ctocpp/auth_callback_ctocpp.cc', 'libcef_dll/ctocpp/auth_callback_ctocpp.cc',
@@ -530,6 +558,10 @@
'libcef_dll/cpptoc/drag_handler_cpptoc.h', 'libcef_dll/cpptoc/drag_handler_cpptoc.h',
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.cc', 'libcef_dll/cpptoc/end_tracing_callback_cpptoc.cc',
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.h', 'libcef_dll/cpptoc/end_tracing_callback_cpptoc.h',
'libcef_dll/ctocpp/extension_ctocpp.cc',
'libcef_dll/ctocpp/extension_ctocpp.h',
'libcef_dll/cpptoc/extension_handler_cpptoc.cc',
'libcef_dll/cpptoc/extension_handler_cpptoc.h',
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.cc', 'libcef_dll/ctocpp/file_dialog_callback_ctocpp.cc',
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.h', 'libcef_dll/ctocpp/file_dialog_callback_ctocpp.h',
'libcef_dll/ctocpp/views/fill_layout_ctocpp.cc', 'libcef_dll/ctocpp/views/fill_layout_ctocpp.cc',
@@ -544,6 +576,8 @@
'libcef_dll/ctocpp/geolocation_callback_ctocpp.h', 'libcef_dll/ctocpp/geolocation_callback_ctocpp.h',
'libcef_dll/cpptoc/geolocation_handler_cpptoc.cc', 'libcef_dll/cpptoc/geolocation_handler_cpptoc.cc',
'libcef_dll/cpptoc/geolocation_handler_cpptoc.h', 'libcef_dll/cpptoc/geolocation_handler_cpptoc.h',
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.cc',
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.h',
'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.cc', 'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.cc',
'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.h', 'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.h',
'libcef_dll/ctocpp/image_ctocpp.cc', 'libcef_dll/ctocpp/image_ctocpp.cc',
@@ -568,6 +602,8 @@
'libcef_dll/ctocpp/views/menu_button_ctocpp.h', 'libcef_dll/ctocpp/views/menu_button_ctocpp.h',
'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.cc', 'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.cc',
'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.h', 'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.h',
'libcef_dll/ctocpp/views/menu_button_pressed_lock_ctocpp.cc',
'libcef_dll/ctocpp/views/menu_button_pressed_lock_ctocpp.h',
'libcef_dll/ctocpp/menu_model_ctocpp.cc', 'libcef_dll/ctocpp/menu_model_ctocpp.cc',
'libcef_dll/ctocpp/menu_model_ctocpp.h', 'libcef_dll/ctocpp/menu_model_ctocpp.h',
'libcef_dll/cpptoc/menu_model_delegate_cpptoc.cc', 'libcef_dll/cpptoc/menu_model_delegate_cpptoc.cc',
@@ -642,6 +678,10 @@
'libcef_dll/ctocpp/views/scroll_view_ctocpp.h', 'libcef_dll/ctocpp/views/scroll_view_ctocpp.h',
'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.cc', 'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.cc',
'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.h', 'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.h',
'libcef_dll/ctocpp/server_ctocpp.cc',
'libcef_dll/ctocpp/server_ctocpp.h',
'libcef_dll/cpptoc/server_handler_cpptoc.cc',
'libcef_dll/cpptoc/server_handler_cpptoc.h',
'libcef_dll/cpptoc/set_cookie_callback_cpptoc.cc', 'libcef_dll/cpptoc/set_cookie_callback_cpptoc.cc',
'libcef_dll/cpptoc/set_cookie_callback_cpptoc.h', 'libcef_dll/cpptoc/set_cookie_callback_cpptoc.h',
'libcef_dll/ctocpp/stream_reader_ctocpp.cc', 'libcef_dll/ctocpp/stream_reader_ctocpp.cc',

View File

@@ -146,6 +146,10 @@
'shared_sources_browser': [ 'shared_sources_browser': [
'tests/shared/browser/client_app_browser.cc', 'tests/shared/browser/client_app_browser.cc',
'tests/shared/browser/client_app_browser.h', 'tests/shared/browser/client_app_browser.h',
'tests/shared/browser/extension_util.cc',
'tests/shared/browser/extension_util.h',
'tests/shared/browser/file_util.cc',
'tests/shared/browser/file_util.h',
'tests/shared/browser/geometry_util.cc', 'tests/shared/browser/geometry_util.cc',
'tests/shared/browser/geometry_util.h', 'tests/shared/browser/geometry_util.h',
'tests/shared/browser/main_message_loop.cc', 'tests/shared/browser/main_message_loop.cc',
@@ -155,7 +159,6 @@
'tests/shared/browser/main_message_loop_std.cc', 'tests/shared/browser/main_message_loop_std.cc',
'tests/shared/browser/main_message_loop_std.h', 'tests/shared/browser/main_message_loop_std.h',
'tests/shared/browser/resource_util.h', 'tests/shared/browser/resource_util.h',
'tests/shared/browser/resource_util.cc',
'tests/shared/browser/resource_util.h', 'tests/shared/browser/resource_util.h',
], ],
'shared_sources_common': [ 'shared_sources_common': [
@@ -216,6 +219,8 @@
'tests/cefclient/browser/dialog_test.h', 'tests/cefclient/browser/dialog_test.h',
'tests/cefclient/browser/drm_test.cc', 'tests/cefclient/browser/drm_test.cc',
'tests/cefclient/browser/drm_test.h', 'tests/cefclient/browser/drm_test.h',
'tests/cefclient/browser/image_cache.cc',
'tests/cefclient/browser/image_cache.h',
'tests/cefclient/browser/main_context.cc', 'tests/cefclient/browser/main_context.cc',
'tests/cefclient/browser/main_context.h', 'tests/cefclient/browser/main_context.h',
'tests/cefclient/browser/main_context_impl.cc', 'tests/cefclient/browser/main_context_impl.cc',
@@ -235,6 +240,8 @@
'tests/cefclient/browser/root_window_manager.h', 'tests/cefclient/browser/root_window_manager.h',
'tests/cefclient/browser/scheme_test.cc', 'tests/cefclient/browser/scheme_test.cc',
'tests/cefclient/browser/scheme_test.h', 'tests/cefclient/browser/scheme_test.h',
'tests/cefclient/browser/server_test.cc',
'tests/cefclient/browser/server_test.h',
'tests/cefclient/browser/temp_window.h', 'tests/cefclient/browser/temp_window.h',
'tests/cefclient/browser/test_runner.cc', 'tests/cefclient/browser/test_runner.cc',
'tests/cefclient/browser/test_runner.h', 'tests/cefclient/browser/test_runner.h',
@@ -273,11 +280,20 @@
'tests/cefclient/resources/performance2.html', 'tests/cefclient/resources/performance2.html',
'tests/cefclient/resources/preferences.html', 'tests/cefclient/resources/preferences.html',
'tests/cefclient/resources/response_filter.html', 'tests/cefclient/resources/response_filter.html',
'tests/cefclient/resources/server.html',
'tests/cefclient/resources/transparency.html', 'tests/cefclient/resources/transparency.html',
'tests/cefclient/resources/urlrequest.html', 'tests/cefclient/resources/urlrequest.html',
'tests/cefclient/resources/websocket.html',
'tests/cefclient/resources/window.html', 'tests/cefclient/resources/window.html',
'tests/cefclient/resources/xmlhttprequest.html', 'tests/cefclient/resources/xmlhttprequest.html',
], ],
'cefclient_sources_resources_extensions_set_page_color': [
'tests/cefclient/resources/extensions/set_page_color/icon.png',
'tests/cefclient/resources/extensions/set_page_color/manifest.json',
'tests/cefclient/resources/extensions/set_page_color/popup.html',
'tests/cefclient/resources/extensions/set_page_color/popup.js',
'tests/cefclient/resources/extensions/set_page_color/README.md',
],
'cefclient_sources_win': [ 'cefclient_sources_win': [
'tests/cefclient/browser/browser_window_osr_win.cc', 'tests/cefclient/browser/browser_window_osr_win.cc',
'tests/cefclient/browser/browser_window_osr_win.h', 'tests/cefclient/browser/browser_window_osr_win.h',
@@ -286,6 +302,11 @@
'tests/cefclient/browser/main_context_impl_win.cc', 'tests/cefclient/browser/main_context_impl_win.cc',
'tests/cefclient/browser/main_message_loop_multithreaded_win.cc', 'tests/cefclient/browser/main_message_loop_multithreaded_win.cc',
'tests/cefclient/browser/main_message_loop_multithreaded_win.h', 'tests/cefclient/browser/main_message_loop_multithreaded_win.h',
'tests/cefclient/browser/osr_accessibility_helper.cc',
'tests/cefclient/browser/osr_accessibility_helper.h',
'tests/cefclient/browser/osr_accessibility_node.cc',
'tests/cefclient/browser/osr_accessibility_node.h',
'tests/cefclient/browser/osr_accessibility_node_win.cc',
'tests/cefclient/browser/osr_dragdrop_win.cc', 'tests/cefclient/browser/osr_dragdrop_win.cc',
'tests/cefclient/browser/osr_dragdrop_win.h', 'tests/cefclient/browser/osr_dragdrop_win.h',
'tests/cefclient/browser/osr_ime_handler_win.cc', 'tests/cefclient/browser/osr_ime_handler_win.cc',
@@ -321,6 +342,11 @@
'tests/cefclient/browser/browser_window_std_mac.h', 'tests/cefclient/browser/browser_window_std_mac.h',
'tests/cefclient/browser/browser_window_std_mac.mm', 'tests/cefclient/browser/browser_window_std_mac.mm',
'tests/cefclient/browser/main_context_impl_posix.cc', 'tests/cefclient/browser/main_context_impl_posix.cc',
'tests/cefclient/browser/osr_accessibility_helper.cc',
'tests/cefclient/browser/osr_accessibility_helper.h',
'tests/cefclient/browser/osr_accessibility_node.cc',
'tests/cefclient/browser/osr_accessibility_node.h',
'tests/cefclient/browser/osr_accessibility_node_mac.mm',
'tests/cefclient/browser/root_window_mac.h', 'tests/cefclient/browser/root_window_mac.h',
'tests/cefclient/browser/root_window_mac.mm', 'tests/cefclient/browser/root_window_mac.mm',
'tests/cefclient/browser/temp_window_mac.h', 'tests/cefclient/browser/temp_window_mac.h',
@@ -407,8 +433,13 @@
'tests/ceftests/dom_unittest.cc', 'tests/ceftests/dom_unittest.cc',
'tests/ceftests/download_unittest.cc', 'tests/ceftests/download_unittest.cc',
'tests/ceftests/draggable_regions_unittest.cc', 'tests/ceftests/draggable_regions_unittest.cc',
'tests/ceftests/file_util.cc', 'tests/ceftests/extensions/background_unittest.cc',
'tests/ceftests/file_util.h', 'tests/ceftests/extensions/chrome_alarms_unittest.cc',
'tests/ceftests/extensions/chrome_storage_unittest.cc',
'tests/ceftests/extensions/chrome_tabs_unittest.cc',
'tests/ceftests/extensions/extension_test_handler.cc',
'tests/ceftests/extensions/extension_test_handler.h',
'tests/ceftests/extensions/view_unittest.cc',
'tests/ceftests/file_util_unittest.cc', 'tests/ceftests/file_util_unittest.cc',
'tests/ceftests/frame_unittest.cc', 'tests/ceftests/frame_unittest.cc',
'tests/ceftests/geolocation_unittest.cc', 'tests/ceftests/geolocation_unittest.cc',
@@ -420,6 +451,8 @@
'tests/ceftests/message_router_unittest.cc', 'tests/ceftests/message_router_unittest.cc',
'tests/ceftests/navigation_unittest.cc', 'tests/ceftests/navigation_unittest.cc',
'tests/ceftests/os_rendering_unittest.cc', 'tests/ceftests/os_rendering_unittest.cc',
'tests/ceftests/osr_accessibility_unittest.cc',
'tests/ceftests/osr_display_unittest.cc',
'tests/ceftests/parser_unittest.cc', 'tests/ceftests/parser_unittest.cc',
'tests/ceftests/plugin_unittest.cc', 'tests/ceftests/plugin_unittest.cc',
'tests/ceftests/preference_unittest.cc', 'tests/ceftests/preference_unittest.cc',
@@ -435,6 +468,7 @@
'tests/ceftests/run_all_unittests.cc', 'tests/ceftests/run_all_unittests.cc',
'tests/ceftests/scheme_handler_unittest.cc', 'tests/ceftests/scheme_handler_unittest.cc',
'tests/ceftests/scoped_temp_dir_unittest.cc', 'tests/ceftests/scoped_temp_dir_unittest.cc',
'tests/ceftests/server_unittest.cc',
'tests/ceftests/stream_unittest.cc', 'tests/ceftests/stream_unittest.cc',
'tests/ceftests/stream_resource_handler_unittest.cc', 'tests/ceftests/stream_resource_handler_unittest.cc',
'tests/ceftests/string_unittest.cc', 'tests/ceftests/string_unittest.cc',
@@ -482,15 +516,14 @@
'tests/ceftests/run_all_unittests_mac.mm', 'tests/ceftests/run_all_unittests_mac.mm',
], ],
'ceftests_sources_mac_helper': [ 'ceftests_sources_mac_helper': [
'tests/shared/browser/resource_util.cc', 'tests/shared/browser/file_util.cc',
'tests/shared/browser/file_util.h',
'tests/shared/browser/resource_util.h', 'tests/shared/browser/resource_util.h',
'tests/shared/browser/resource_util_mac.mm', 'tests/shared/browser/resource_util_mac.mm',
'tests/shared/browser/resource_util_posix.cc', 'tests/shared/browser/resource_util_posix.cc',
'tests/ceftests/client_app_delegates.cc', 'tests/ceftests/client_app_delegates.cc',
'tests/ceftests/cookie_unittest.cc', 'tests/ceftests/cookie_unittest.cc',
'tests/ceftests/dom_unittest.cc', 'tests/ceftests/dom_unittest.cc',
'tests/ceftests/file_util.cc',
'tests/ceftests/file_util.h',
'tests/ceftests/frame_unittest.cc', 'tests/ceftests/frame_unittest.cc',
'tests/ceftests/message_router_unittest.cc', 'tests/ceftests/message_router_unittest.cc',
'tests/ceftests/navigation_unittest.cc', 'tests/ceftests/navigation_unittest.cc',

View File

@@ -19,7 +19,7 @@ macro(PRINT_CEF_CONFIG)
message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}") message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}")
message(STATUS "Project architecture: ${PROJECT_ARCH}") message(STATUS "Project architecture: ${PROJECT_ARCH}")
if(${CMAKE_GENERATOR} STREQUAL "Ninja" OR ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles") if(GEN_NINJA OR GEN_MAKEFILES)
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
endif() endif()
@@ -81,8 +81,7 @@ endmacro()
# Determine the target output directory based on platform and generator. # Determine the target output directory based on platform and generator.
macro(SET_CEF_TARGET_OUT_DIR) macro(SET_CEF_TARGET_OUT_DIR)
if(${CMAKE_GENERATOR} STREQUAL "Ninja" OR if(GEN_NINJA OR GEN_MAKEFILES)
${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
# By default Ninja and Make builds don't create a subdirectory named after # By default Ninja and Make builds don't create a subdirectory named after
# the configuration. # the configuration.
set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}") set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
@@ -102,7 +101,19 @@ macro(COPY_FILES target file_list source_dir target_dir)
set(source_file ${source_dir}/${FILENAME}) set(source_file ${source_dir}/${FILENAME})
get_filename_component(target_name ${FILENAME} NAME) get_filename_component(target_name ${FILENAME} NAME)
set(target_file ${target_dir}/${target_name}) set(target_file ${target_dir}/${target_name})
if(IS_DIRECTORY ${source_file})
string(FIND ${source_file} "$<CONFIGURATION>" _pos)
if(NOT ${_pos} EQUAL -1)
# Must test with an actual configuration directory.
string(REPLACE "$<CONFIGURATION>" "Release" existing_source_file ${source_file})
if(NOT EXISTS ${existing_source_file})
string(REPLACE "$<CONFIGURATION>" "Debug" existing_source_file ${source_file})
endif()
else()
set(existing_source_file ${source_file})
endif()
if(IS_DIRECTORY ${existing_source_file})
add_custom_command( add_custom_command(
TARGET ${target} TARGET ${target}
POST_BUILD POST_BUILD
@@ -276,17 +287,17 @@ endmacro()
# SET_EXECUTABLE_TARGET_PROPERTIES() instead of calling this macro directly. # SET_EXECUTABLE_TARGET_PROPERTIES() instead of calling this macro directly.
macro(SET_COMMON_TARGET_PROPERTIES target) macro(SET_COMMON_TARGET_PROPERTIES target)
# Compile flags. # Compile flags.
target_compile_options(${target} PUBLIC ${CEF_COMPILER_FLAGS} ${CEF_CXX_COMPILER_FLAGS}) target_compile_options(${target} PRIVATE ${CEF_COMPILER_FLAGS} ${CEF_CXX_COMPILER_FLAGS})
target_compile_options(${target} PUBLIC $<$<CONFIG:Debug>:${CEF_COMPILER_FLAGS_DEBUG} ${CEF_CXX_COMPILER_FLAGS_DEBUG}>) target_compile_options(${target} PRIVATE $<$<CONFIG:Debug>:${CEF_COMPILER_FLAGS_DEBUG} ${CEF_CXX_COMPILER_FLAGS_DEBUG}>)
target_compile_options(${target} PUBLIC $<$<CONFIG:Release>:${CEF_COMPILER_FLAGS_RELEASE} ${CEF_CXX_COMPILER_FLAGS_RELEASE}>) target_compile_options(${target} PRIVATE $<$<CONFIG:Release>:${CEF_COMPILER_FLAGS_RELEASE} ${CEF_CXX_COMPILER_FLAGS_RELEASE}>)
# Compile definitions. # Compile definitions.
target_compile_definitions(${target} PUBLIC ${CEF_COMPILER_DEFINES}) target_compile_definitions(${target} PRIVATE ${CEF_COMPILER_DEFINES})
target_compile_definitions(${target} PUBLIC $<$<CONFIG:Debug>:${CEF_COMPILER_DEFINES_DEBUG}>) target_compile_definitions(${target} PRIVATE $<$<CONFIG:Debug>:${CEF_COMPILER_DEFINES_DEBUG}>)
target_compile_definitions(${target} PUBLIC $<$<CONFIG:Release>:${CEF_COMPILER_DEFINES_RELEASE}>) target_compile_definitions(${target} PRIVATE $<$<CONFIG:Release>:${CEF_COMPILER_DEFINES_RELEASE}>)
# Include directories. # Include directories.
target_include_directories(${target} PUBLIC ${CEF_INCLUDE_PATH}) target_include_directories(${target} PRIVATE ${CEF_INCLUDE_PATH})
# Linker flags. # Linker flags.
if(CEF_LINKER_FLAGS) if(CEF_LINKER_FLAGS)

View File

@@ -37,9 +37,14 @@ if(NOT DEFINED PROJECT_ARCH)
endif() endif()
endif() endif()
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
set(GEN_NINJA 1)
elseif(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
set(GEN_MAKEFILES 1)
endif()
# Determine the build type. # Determine the build type.
if(NOT CMAKE_BUILD_TYPE AND if(NOT CMAKE_BUILD_TYPE AND (GEN_NINJA OR GEN_MAKEFILES))
(${CMAKE_GENERATOR} STREQUAL "Ninja" OR ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles"))
# CMAKE_BUILD_TYPE should be specified when using Ninja or Unix Makefiles. # CMAKE_BUILD_TYPE should be specified when using Ninja or Unix Makefiles.
set(CMAKE_BUILD_TYPE Release) set(CMAKE_BUILD_TYPE Release)
message(WARNING "No CMAKE_BUILD_TYPE value selected, using ${CMAKE_BUILD_TYPE}") message(WARNING "No CMAKE_BUILD_TYPE value selected, using ${CMAKE_BUILD_TYPE}")
@@ -81,6 +86,7 @@ if(OS_LINUX)
-Werror # Treat warnings as errors -Werror # Treat warnings as errors
-Wno-missing-field-initializers # Don't warn about missing field initializers -Wno-missing-field-initializers # Don't warn about missing field initializers
-Wno-unused-parameter # Don't warn about unused parameters -Wno-unused-parameter # Don't warn about unused parameters
-Wno-error=comment # Don't complain about code in ascii art
) )
list(APPEND CEF_C_COMPILER_FLAGS list(APPEND CEF_C_COMPILER_FLAGS
-std=c99 # Use the C99 language standard -std=c99 # Use the C99 language standard
@@ -192,8 +198,12 @@ if(OS_LINUX)
set(CEF_BINARY_FILES set(CEF_BINARY_FILES
chrome-sandbox chrome-sandbox
libcef.so libcef.so
libEGL.so
libGLESv2.so
natives_blob.bin natives_blob.bin
snapshot_blob.bin snapshot_blob.bin
v8_context_snapshot.bin
swiftshader
) )
# List of CEF resource files. # List of CEF resource files.
@@ -314,27 +324,42 @@ endif()
# #
if(OS_WINDOWS) if(OS_WINDOWS)
# Configure use of the sandbox. if (GEN_NINJA)
option(USE_SANDBOX "Enable or disable use of the sandbox." ON) # When using the Ninja generator clear the CMake defaults to avoid excessive
if(USE_SANDBOX AND NOT MSVC_VERSION EQUAL 1900) # console warnings (see issue #2120).
# The cef_sandbox.lib static library is currently built with VS2015. It will set(CMAKE_CXX_FLAGS "")
# not link successfully with other VS versions. set(CMAKE_CXX_FLAGS_DEBUG "")
set(USE_SANDBOX OFF) set(CMAKE_CXX_FLAGS_RELEASE "")
endif() endif()
# Configure use of official build compiler settings. # Configure use of the sandbox.
# When using an official build the "Debug" build is actually a Release build option(USE_SANDBOX "Enable or disable use of the sandbox." ON)
# with DCHECKs enabled. In order to link the sandbox the Debug build must if(USE_SANDBOX)
# be configured with some Release-related compiler settings. # Check if the current MSVC version is compatible with the cef_sandbox.lib
option(USE_OFFICIAL_BUILD_SANDBOX "Enable or disable use of an official build sandbox." ON) # static library.
if(NOT USE_SANDBOX) list(APPEND supported_msvc_versions
# Don't need official build settings when the sandbox is off. 1900 # VS2015 and updates 1, 2, & 3
set(USE_OFFICIAL_BUILD_SANDBOX OFF) 1910 # VS2017 version 15.1 & 15.2
1911 # VS2017 version 15.3 & 15.4
1912 # VS2017 version 15.5
)
list(FIND supported_msvc_versions ${MSVC_VERSION} _index)
if (${_index} EQUAL -1)
message(WARNING "CEF sandbox is not compatible with the current MSVC version (${MSVC_VERSION})")
set(USE_SANDBOX OFF)
endif()
endif() endif()
# Consumers who run into LNK4099 warnings can pass /Z7 instead (see issue #385). # Consumers who run into LNK4099 warnings can pass /Z7 instead (see issue #385).
set(CEF_DEBUG_INFO_FLAG "/Zi" CACHE STRING "Optional flag specifying specific /Z flag to use") set(CEF_DEBUG_INFO_FLAG "/Zi" CACHE STRING "Optional flag specifying specific /Z flag to use")
# Consumers using different runtime types may want to pass different flags
set(CEF_RUNTIME_LIBRARY_FLAG "/MT" CACHE STRING "Optional flag specifying which runtime to use")
if (CEF_RUNTIME_LIBRARY_FLAG)
list(APPEND CEF_COMPILER_FLAGS_DEBUG ${CEF_RUNTIME_LIBRARY_FLAG}d)
list(APPEND CEF_COMPILER_FLAGS_RELEASE ${CEF_RUNTIME_LIBRARY_FLAG})
endif()
# Platform-specific compiler/linker flags. # Platform-specific compiler/linker flags.
set(CEF_LIBTYPE STATIC) set(CEF_LIBTYPE STATIC)
list(APPEND CEF_COMPILER_FLAGS list(APPEND CEF_COMPILER_FLAGS
@@ -353,24 +378,11 @@ if(OS_WINDOWS)
/wd4996 # Ignore "function or variable may be unsafe" warning /wd4996 # Ignore "function or variable may be unsafe" warning
${CEF_DEBUG_INFO_FLAG} ${CEF_DEBUG_INFO_FLAG}
) )
if(USE_OFFICIAL_BUILD_SANDBOX)
# CMake adds /RTC1, /D"_DEBUG" and a few other values by default for Debug
# builds. We can't link the sandbox with those values so clear the CMake
# defaults here.
set(CMAKE_CXX_FLAGS_DEBUG "")
list(APPEND CEF_COMPILER_FLAGS_DEBUG list(APPEND CEF_COMPILER_FLAGS_DEBUG
/MT # Multithreaded release runtime
)
else()
list(APPEND CEF_COMPILER_FLAGS_DEBUG
/MTd # Multithreaded debug runtime
/RTC1 # Disable optimizations /RTC1 # Disable optimizations
/Od # Enable basic run-time checks /Od # Enable basic run-time checks
) )
endif()
list(APPEND CEF_COMPILER_FLAGS_RELEASE list(APPEND CEF_COMPILER_FLAGS_RELEASE
/MT # Multithreaded release runtime
/O2 # Optimize for maximum speed /O2 # Optimize for maximum speed
/Ob2 # Inline any suitable function /Ob2 # Inline any suitable function
/GF # Enable string pooling /GF # Enable string pooling
@@ -390,12 +402,6 @@ if(OS_WINDOWS)
WIN32_LEAN_AND_MEAN # Exclude less common API declarations WIN32_LEAN_AND_MEAN # Exclude less common API declarations
_HAS_EXCEPTIONS=0 # Disable exceptions _HAS_EXCEPTIONS=0 # Disable exceptions
) )
if(USE_OFFICIAL_BUILD_SANDBOX)
list(APPEND CEF_COMPILER_DEFINES_DEBUG
NDEBUG _NDEBUG # Not a debug build
DCHECK_ALWAYS_ON=1 # DCHECKs are enabled
)
endif()
list(APPEND CEF_COMPILER_DEFINES_RELEASE list(APPEND CEF_COMPILER_DEFINES_RELEASE
NDEBUG _NDEBUG # Not a debug build NDEBUG _NDEBUG # Not a debug build
) )
@@ -428,6 +434,8 @@ if(OS_WINDOWS)
libGLESv2.dll libGLESv2.dll
natives_blob.bin natives_blob.bin
snapshot_blob.bin snapshot_blob.bin
v8_context_snapshot.bin
swiftshader
) )
# List of CEF resource files. # List of CEF resource files.
@@ -463,10 +471,26 @@ if(OS_WINDOWS)
# Configure use of ATL. # Configure use of ATL.
option(USE_ATL "Enable or disable use of ATL." ON) option(USE_ATL "Enable or disable use of ATL." ON)
if(USE_ATL) if(USE_ATL)
# Locate the atlmfc directory if it exists. It may be at any depth inside
# the VC directory. The cl.exe path returned by CMAKE_CXX_COMPILER may also
# be at different depths depending on the toolchain version
# (e.g. "VC/bin/cl.exe", "VC/bin/amd64_x86/cl.exe",
# "VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe", etc).
set(HAS_ATLMFC 0)
get_filename_component(VC_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)
get_filename_component(VC_DIR_NAME ${VC_DIR} NAME)
while(NOT ${VC_DIR_NAME} STREQUAL "VC")
get_filename_component(VC_DIR ${VC_DIR} DIRECTORY)
if(IS_DIRECTORY "${VC_DIR}/atlmfc")
set(HAS_ATLMFC 1)
break()
endif()
get_filename_component(VC_DIR_NAME ${VC_DIR} NAME)
endwhile()
# Determine if the Visual Studio install supports ATL. # Determine if the Visual Studio install supports ATL.
get_filename_component(VC_BIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY) if(NOT HAS_ATLMFC)
get_filename_component(VC_DIR ${VC_BIN_DIR} DIRECTORY) message(WARNING "ATL is not supported by your VC installation.")
if(NOT IS_DIRECTORY "${VC_DIR}/atlmfc")
set(USE_ATL OFF) set(USE_ATL OFF)
endif() endif()
endif() endif()

View File

@@ -39,14 +39,49 @@
#define CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_ #define CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_
#pragma once #pragma once
#if defined(BASE_ATOMIC_REF_COUNT_H_) #if defined(USING_CHROMIUM_INCLUDES)
// Do nothing if the Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts.
#elif defined(USING_CHROMIUM_INCLUDES)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/atomic_ref_count.h" #include "base/atomic_ref_count.h"
// Used when declaring a base::AtomicRefCount value. This is an object type with
// Chromium headers.
#define ATOMIC_DECLARATION (0)
// Maintaining compatibility with AtompicRefCount* functions that were removed
// from Chromium in http://crrev.com/ee96d561.
namespace base {
// Increment a reference count by 1.
inline void AtomicRefCountInc(volatile AtomicRefCount* ptr) {
const_cast<AtomicRefCount*>(ptr)->Increment();
}
// Decrement a reference count by 1 and return whether the result is non-zero.
// Insert barriers to ensure that state written before the reference count
// became zero will be visible to a thread that has just made the count zero.
inline bool AtomicRefCountDec(volatile AtomicRefCount* ptr) {
return const_cast<AtomicRefCount*>(ptr)->Decrement();
}
// Return whether the reference count is one. If the reference count is used
// in the conventional way, a refrerence count of 1 implies that the current
// thread owns the reference and no other thread shares it. This call performs
// the test for a reference count of one, and performs the memory barrier
// needed for the owning thread to act on the object, knowing that it has
// exclusive access to the object.
inline bool AtomicRefCountIsOne(volatile AtomicRefCount* ptr) {
return const_cast<AtomicRefCount*>(ptr)->IsOne();
}
// Return whether the reference count is zero. With conventional object
// referencing counting, the object will be destroyed, so the reference count
// should never be zero. Hence this is generally used for a debug check.
inline bool AtomicRefCountIsZero(volatile AtomicRefCount* ptr) {
return const_cast<AtomicRefCount*>(ptr)->IsZero();
}
} // namespace base
#else // !USING_CHROMIUM_INCLUDES #else // !USING_CHROMIUM_INCLUDES
// The following is substantially similar to the Chromium implementation. // The following is substantially similar to the Chromium implementation.
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
@@ -58,6 +93,10 @@
#define ANNOTATE_HAPPENS_BEFORE(obj) /* empty */ #define ANNOTATE_HAPPENS_BEFORE(obj) /* empty */
#define ANNOTATE_HAPPENS_AFTER(obj) /* empty */ #define ANNOTATE_HAPPENS_AFTER(obj) /* empty */
// Used when declaring a base::AtomicRefCount value. This is an integer/ptr type
// with CEF headers.
#define ATOMIC_DECLARATION = 0
namespace base { namespace base {
typedef subtle::Atomic32 AtomicRefCount; typedef subtle::Atomic32 AtomicRefCount;

View File

@@ -122,8 +122,7 @@ Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, Atomic32 new_value);
// *ptr with the increment applied. This routine implies no memory barriers. // *ptr with the increment applied. This routine implies no memory barriers.
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment); Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment);
Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment);
Atomic32 increment);
// These following lower-level operations are typically useful only to people // These following lower-level operations are typically useful only to people
// implementing higher-level synchronization operations like spinlocks, // implementing higher-level synchronization operations like spinlocks,

View File

@@ -43,11 +43,11 @@
// On Mac OS X, |long long| is used for 64-bit types for compatibility with // On Mac OS X, |long long| is used for 64-bit types for compatibility with
// <inttypes.h> format macros even in the LP64 model. // <inttypes.h> format macros even in the LP64 model.
#if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) #if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
typedef long int64; // NOLINT(runtime/int) typedef long int64;
typedef unsigned long uint64; // NOLINT(runtime/int) typedef unsigned long uint64;
#else #else
typedef long long int64; // NOLINT(runtime/int) typedef long long int64;
typedef unsigned long long uint64; // NOLINT(runtime/int) typedef unsigned long long uint64;
#endif #endif
// TODO: Remove these type guards. These are to avoid conflicts with // TODO: Remove these type guards. These are to avoid conflicts with
@@ -64,6 +64,16 @@ typedef int int32;
typedef unsigned int uint32; typedef unsigned int uint32;
#endif #endif
#ifndef _INT16
#define _INT16
typedef short int16;
#endif
#ifndef _UINT16
#define _UINT16
typedef unsigned short uint16;
#endif
// UTF-16 character type. // UTF-16 character type.
// This should be kept synchronized with base/strings/string16.h // This should be kept synchronized with base/strings/string16.h
#ifndef char16 #ifndef char16

View File

@@ -89,34 +89,32 @@
namespace base { namespace base {
template <typename Functor> template <typename Functor>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void()> void()>::UnboundRunType>
::UnboundRunType>
Bind(Functor functor) { Bind(Functor functor) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
typedef cef_internal::BindState<RunnableType, RunType, void()> BindState; typedef cef_internal::BindState<RunnableType, RunType, void()> BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor))); new BindState(cef_internal::MakeRunnable(functor)));
} }
template <typename Functor, typename P1> template <typename Functor, typename P1>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)> void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1) { Bind(Functor functor, const P1& p1) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -138,32 +136,32 @@ Bind(Functor functor, const P1& p1) {
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
!is_array<P1>::value, !is_array<P1>::value,
first_bound_argument_to_method_cannot_be_array); first_bound_argument_to_method_cannot_be_array);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)> BindState; RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1)); new BindState(cef_internal::MakeRunnable(functor), p1));
} }
template <typename Functor, typename P1, typename P2> template <typename Functor, typename P1, typename P2>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType)> typename cef_internal::CallbackParamTraits<P2>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2) { Bind(Functor functor, const P1& p1, const P2& p2) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -186,8 +184,7 @@ Bind(Functor functor, const P1& p1, const P2& p2) {
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -195,27 +192,28 @@ Bind(Functor functor, const P1& p1, const P2& p2) {
first_bound_argument_to_method_cannot_be_array); first_bound_argument_to_method_cannot_be_array);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
p2_is_refcounted_type_and_needs_scoped_refptr); p2_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P2>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2)); new BindState(cef_internal::MakeRunnable(functor), p1, p2));
} }
template <typename Functor, typename P1, typename P2, typename P3> template <typename Functor, typename P1, typename P2, typename P3>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType)> typename cef_internal::CallbackParamTraits<P3>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) { Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -239,8 +237,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -250,29 +247,30 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
p2_is_refcounted_type_and_needs_scoped_refptr); p2_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
p3_is_refcounted_type_and_needs_scoped_refptr); p3_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P3>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3)); new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3));
} }
template <typename Functor, typename P1, typename P2, typename P3, typename P4> template <typename Functor, typename P1, typename P2, typename P3, typename P4>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType)> typename cef_internal::CallbackParamTraits<P4>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) { Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -297,8 +295,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -310,33 +307,42 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
p3_is_refcounted_type_and_needs_scoped_refptr); p3_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
p4_is_refcounted_type_and_needs_scoped_refptr); p4_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P4>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4)); new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4));
} }
template <typename Functor, typename P1, typename P2, typename P3, typename P4, template <typename Functor,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5> typename P5>
base::Callback< base::Callback<typename cef_internal::BindState<
typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType)> typename cef_internal::CallbackParamTraits<P5>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, Bind(Functor functor,
const P1& p1,
const P2& p2,
const P3& p3,
const P4& p4,
const P5& p5) { const P5& p5) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -362,8 +368,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -377,22 +382,27 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
p4_is_refcounted_type_and_needs_scoped_refptr); p4_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value,
p5_is_refcounted_type_and_needs_scoped_refptr); p5_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P5>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>( return Callback<typename BindState::UnboundRunType>(
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5)); new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5));
} }
template <typename Functor, typename P1, typename P2, typename P3, typename P4, template <typename Functor,
typename P5, typename P6> typename P1,
base::Callback< typename P2,
typename cef_internal::BindState< typename P3,
typename P4,
typename P5,
typename P6>
base::Callback<typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
@@ -400,12 +410,18 @@ base::Callback<
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType, typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType)> typename cef_internal::CallbackParamTraits<P6>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, Bind(Functor functor,
const P5& p5, const P6& p6) { const P1& p1,
const P2& p2,
const P3& p3,
const P4& p4,
const P5& p5,
const P6& p6) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -432,8 +448,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -449,23 +464,29 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
p5_is_refcounted_type_and_needs_scoped_refptr); p5_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P6>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P6>::value,
p6_is_refcounted_type_and_needs_scoped_refptr); p6_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType, typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P6>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>(new BindState(
return Callback<typename BindState::UnboundRunType>( cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6));
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6));
} }
template <typename Functor, typename P1, typename P2, typename P3, typename P4, template <typename Functor,
typename P5, typename P6, typename P7> typename P1,
base::Callback< typename P2,
typename cef_internal::BindState< typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
base::Callback<typename cef_internal::BindState<
typename cef_internal::FunctorTraits<Functor>::RunnableType, typename cef_internal::FunctorTraits<Functor>::RunnableType,
typename cef_internal::FunctorTraits<Functor>::RunType, typename cef_internal::FunctorTraits<Functor>::RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
@@ -474,12 +495,19 @@ base::Callback<
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType, typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType, typename cef_internal::CallbackParamTraits<P6>::StorageType,
typename cef_internal::CallbackParamTraits<P7>::StorageType)> typename cef_internal::CallbackParamTraits<P7>::StorageType)>::
::UnboundRunType> UnboundRunType>
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, Bind(Functor functor,
const P5& p5, const P6& p6, const P7& p7) { const P1& p1,
const P2& p2,
const P3& p3,
const P4& p4,
const P5& p5,
const P6& p6,
const P7& p7) {
// Typedefs for how to store and run the functor. // Typedefs for how to store and run the functor.
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType; typedef
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType; typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
// Use RunnableType::RunType instead of RunType above because our // Use RunnableType::RunType instead of RunType above because our
@@ -507,8 +535,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
// a scoped_refptr because BindState<> itself takes care of AddRef() for // a scoped_refptr because BindState<> itself takes care of AddRef() for
// methods. We also disallow binding of an array as the method's target // methods. We also disallow binding of an array as the method's target
// object. // object.
COMPILE_ASSERT( COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
cef_internal::HasIsMethodTag<RunnableType>::value ||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, !cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
p1_is_refcounted_type_and_needs_scoped_refptr); p1_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value || COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
@@ -526,19 +553,19 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
p6_is_refcounted_type_and_needs_scoped_refptr); p6_is_refcounted_type_and_needs_scoped_refptr);
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P7>::value, COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P7>::value,
p7_is_refcounted_type_and_needs_scoped_refptr); p7_is_refcounted_type_and_needs_scoped_refptr);
typedef cef_internal::BindState<RunnableType, RunType, typedef cef_internal::BindState<
RunnableType, RunType,
void(typename cef_internal::CallbackParamTraits<P1>::StorageType, void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
typename cef_internal::CallbackParamTraits<P2>::StorageType, typename cef_internal::CallbackParamTraits<P2>::StorageType,
typename cef_internal::CallbackParamTraits<P3>::StorageType, typename cef_internal::CallbackParamTraits<P3>::StorageType,
typename cef_internal::CallbackParamTraits<P4>::StorageType, typename cef_internal::CallbackParamTraits<P4>::StorageType,
typename cef_internal::CallbackParamTraits<P5>::StorageType, typename cef_internal::CallbackParamTraits<P5>::StorageType,
typename cef_internal::CallbackParamTraits<P6>::StorageType, typename cef_internal::CallbackParamTraits<P6>::StorageType,
typename cef_internal::CallbackParamTraits<P7>::StorageType)> BindState; typename cef_internal::CallbackParamTraits<P7>::StorageType)>
BindState;
return Callback<typename BindState::UnboundRunType>(new BindState(
return Callback<typename BindState::UnboundRunType>( cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6, p7));
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6,
p7));
} }
} // namespace base } // namespace base

View File

@@ -276,13 +276,13 @@ class SupportsAddRefAndRelease {
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 4624) #pragma warning(disable : 4624)
#endif #endif
struct Base : public T, public BaseMixin { struct Base : public T, public BaseMixin {};
};
#if defined(OS_WIN) #if defined(OS_WIN)
#pragma warning(pop) #pragma warning(pop)
#endif #endif
template <void(BaseMixin::*)(void)> struct Helper {}; template <void (BaseMixin::*)(void)>
struct Helper {};
template <typename C> template <typename C>
static No& Check(Helper<&C::AddRef>*); static No& Check(Helper<&C::AddRef>*);
@@ -297,22 +297,18 @@ class SupportsAddRefAndRelease {
// Helpers to assert that arguments of a recounted type are bound with a // Helpers to assert that arguments of a recounted type are bound with a
// scoped_refptr. // scoped_refptr.
template <bool IsClasstype, typename T> template <bool IsClasstype, typename T>
struct UnsafeBindtoRefCountedArgHelper : false_type { struct UnsafeBindtoRefCountedArgHelper : false_type {};
};
template <typename T> template <typename T>
struct UnsafeBindtoRefCountedArgHelper<true, T> struct UnsafeBindtoRefCountedArgHelper<true, T>
: integral_constant<bool, SupportsAddRefAndRelease<T>::value> { : integral_constant<bool, SupportsAddRefAndRelease<T>::value> {};
};
template <typename T> template <typename T>
struct UnsafeBindtoRefCountedArg : false_type { struct UnsafeBindtoRefCountedArg : false_type {};
};
template <typename T> template <typename T>
struct UnsafeBindtoRefCountedArg<T*> struct UnsafeBindtoRefCountedArg<T*>
: UnsafeBindtoRefCountedArgHelper<is_class<T>::value, T> { : UnsafeBindtoRefCountedArgHelper<is_class<T>::value, T> {};
};
template <typename T> template <typename T>
class HasIsMethodTag { class HasIsMethodTag {
@@ -334,6 +330,7 @@ class UnretainedWrapper {
public: public:
explicit UnretainedWrapper(T* o) : ptr_(o) {} explicit UnretainedWrapper(T* o) : ptr_(o) {}
T* get() const { return ptr_; } T* get() const { return ptr_; }
private: private:
T* ptr_; T* ptr_;
}; };
@@ -343,6 +340,7 @@ class ConstRefWrapper {
public: public:
explicit ConstRefWrapper(const T& o) : ptr_(&o) {} explicit ConstRefWrapper(const T& o) : ptr_(&o) {}
const T& get() const { return *ptr_; } const T& get() const { return *ptr_; }
private: private:
const T* ptr_; const T* ptr_;
}; };
@@ -409,8 +407,7 @@ class PassedWrapper {
public: public:
explicit PassedWrapper(T scoper) : is_valid_(true), scoper_(scoper.Pass()) {} explicit PassedWrapper(T scoper) : is_valid_(true), scoper_(scoper.Pass()) {}
PassedWrapper(const PassedWrapper& other) PassedWrapper(const PassedWrapper& other)
: is_valid_(other.is_valid_), scoper_(other.scoper_.Pass()) { : is_valid_(other.is_valid_), scoper_(other.scoper_.Pass()) {}
}
T Pass() const { T Pass() const {
CHECK(is_valid_); CHECK(is_valid_);
is_valid_ = false; is_valid_ = false;
@@ -460,17 +457,13 @@ struct UnwrapTraits<WeakPtr<T> > {
template <typename T> template <typename T>
struct UnwrapTraits<OwnedWrapper<T>> { struct UnwrapTraits<OwnedWrapper<T>> {
typedef T* ForwardType; typedef T* ForwardType;
static ForwardType Unwrap(const OwnedWrapper<T>& o) { static ForwardType Unwrap(const OwnedWrapper<T>& o) { return o.get(); }
return o.get();
}
}; };
template <typename T> template <typename T>
struct UnwrapTraits<PassedWrapper<T>> { struct UnwrapTraits<PassedWrapper<T>> {
typedef T ForwardType; typedef T ForwardType;
static T Unwrap(PassedWrapper<T>& o) { static T Unwrap(PassedWrapper<T>& o) { return o.Pass(); }
return o.Pass();
}
}; };
// Utility for handling different refcounting semantics in the Bind() // Utility for handling different refcounting semantics in the Bind()
@@ -567,8 +560,8 @@ static inline cef_internal::IgnoreResultHelper<T> IgnoreResult(T data) {
} }
template <typename T> template <typename T>
static inline cef_internal::IgnoreResultHelper<Callback<T> > static inline cef_internal::IgnoreResultHelper<Callback<T>> IgnoreResult(
IgnoreResult(const Callback<T>& data) { const Callback<T>& data) {
return cef_internal::IgnoreResultHelper<Callback<T>>(data); return cef_internal::IgnoreResultHelper<Callback<T>>(data);
} }

View File

@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_BASE_CEF_BUILD_H_ #ifndef CEF_INCLUDE_BASE_CEF_BUILD_H_
#define CEF_INCLUDE_BASE_CEF_BUILD_H_ #define CEF_INCLUDE_BASE_CEF_BUILD_H_
#pragma once #pragma once
@@ -116,12 +115,10 @@
// Type detection for wchar_t. // Type detection for wchar_t.
#if defined(OS_WIN) #if defined(OS_WIN)
#define WCHAR_T_IS_UTF16 #define WCHAR_T_IS_UTF16
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \ #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff) (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
#define WCHAR_T_IS_UTF32 #define WCHAR_T_IS_UTF32
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \ #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff) (__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
// On Posix, we'll detect short wchar_t, but projects aren't guaranteed to // On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
// compile in this mode (in particular, Chrome doesn't). This is intended for // compile in this mode (in particular, Chrome doesn't). This is intended for
@@ -191,8 +188,7 @@
// Check for C++11 template alias support which was added in VS2013 and GCC4.7. // Check for C++11 template alias support which was added in VS2013 and GCC4.7.
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
#if __cplusplus > 199711L || \ #if __cplusplus > 199711L || (defined(_MSC_VER) && _MSC_VER >= 1800) || \
(defined(_MSC_VER) && _MSC_VER >= 1800) || \
(defined(__GNUC__) && \ (defined(__GNUC__) && \
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ >= 40700)) (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ >= 40700))
#define HAS_CPP11_TEMPLATE_ALIAS_SUPPORT #define HAS_CPP11_TEMPLATE_ALIAS_SUPPORT

View File

@@ -45,9 +45,9 @@
// If the Chromium implementation diverges the below implementation should be // If the Chromium implementation diverges the below implementation should be
// updated to match. // updated to match.
#include "include/base/internal/cef_callback_internal.h"
#include "include/base/cef_callback_forward.h" #include "include/base/cef_callback_forward.h"
#include "include/base/cef_template_util.h" #include "include/base/cef_template_util.h"
#include "include/base/internal/cef_callback_internal.h"
// NOTE: Header files that do not require the full definition of Callback or // NOTE: Header files that do not require the full definition of Callback or
// Closure should #include "base/cef_callback_forward.h" instead of this file. // Closure should #include "base/cef_callback_forward.h" instead of this file.
@@ -412,16 +412,15 @@ class Callback<R(void)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -437,9 +436,7 @@ class Callback<R(void)> : public cef_internal::CallbackBase {
} }
private: private:
typedef R(*PolymorphicInvoke)( typedef R (*PolymorphicInvoke)(cef_internal::BindStateBase*);
cef_internal::BindStateBase*);
}; };
template <typename R, typename A1> template <typename R, typename A1>
@@ -452,16 +449,15 @@ class Callback<R(A1)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -480,7 +476,6 @@ class Callback<R(A1)> : public cef_internal::CallbackBase {
typedef R (*PolymorphicInvoke)( typedef R (*PolymorphicInvoke)(
cef_internal::BindStateBase*, cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType); typename cef_internal::CallbackParamTraits<A1>::ForwardType);
}; };
template <typename R, typename A1, typename A2> template <typename R, typename A1, typename A2>
@@ -493,16 +488,15 @@ class Callback<R(A1, A2)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -524,7 +518,6 @@ class Callback<R(A1, A2)> : public cef_internal::CallbackBase {
cef_internal::BindStateBase*, cef_internal::BindStateBase*,
typename cef_internal::CallbackParamTraits<A1>::ForwardType, typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType); typename cef_internal::CallbackParamTraits<A2>::ForwardType);
}; };
template <typename R, typename A1, typename A2, typename A3> template <typename R, typename A1, typename A2, typename A3>
@@ -537,16 +530,15 @@ class Callback<R(A1, A2, A3)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -571,7 +563,6 @@ class Callback<R(A1, A2, A3)> : public cef_internal::CallbackBase {
typename cef_internal::CallbackParamTraits<A1>::ForwardType, typename cef_internal::CallbackParamTraits<A1>::ForwardType,
typename cef_internal::CallbackParamTraits<A2>::ForwardType, typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType); typename cef_internal::CallbackParamTraits<A3>::ForwardType);
}; };
template <typename R, typename A1, typename A2, typename A3, typename A4> template <typename R, typename A1, typename A2, typename A3, typename A4>
@@ -584,16 +575,15 @@ class Callback<R(A1, A2, A3, A4)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -621,10 +611,13 @@ class Callback<R(A1, A2, A3, A4)> : public cef_internal::CallbackBase {
typename cef_internal::CallbackParamTraits<A2>::ForwardType, typename cef_internal::CallbackParamTraits<A2>::ForwardType,
typename cef_internal::CallbackParamTraits<A3>::ForwardType, typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType); typename cef_internal::CallbackParamTraits<A4>::ForwardType);
}; };
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5> typename A5>
class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase { class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
public: public:
@@ -635,16 +628,15 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -660,11 +652,10 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
PolymorphicInvoke f = PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_); reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1), return f(
cef_internal::CallbackForward(a2), bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a3), cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5));
cef_internal::CallbackForward(a5));
} }
private: private:
@@ -675,11 +666,15 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
typename cef_internal::CallbackParamTraits<A3>::ForwardType, typename cef_internal::CallbackParamTraits<A3>::ForwardType,
typename cef_internal::CallbackParamTraits<A4>::ForwardType, typename cef_internal::CallbackParamTraits<A4>::ForwardType,
typename cef_internal::CallbackParamTraits<A5>::ForwardType); typename cef_internal::CallbackParamTraits<A5>::ForwardType);
}; };
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6> typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase { class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6); typedef R(RunType)(A1, A2, A3, A4, A5, A6);
@@ -689,16 +684,15 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -715,11 +709,10 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
PolymorphicInvoke f = PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_); reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1), return f(
cef_internal::CallbackForward(a2), bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a3), cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5),
cef_internal::CallbackForward(a5),
cef_internal::CallbackForward(a6)); cef_internal::CallbackForward(a6));
} }
@@ -732,12 +725,18 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
typename cef_internal::CallbackParamTraits<A4>::ForwardType, typename cef_internal::CallbackParamTraits<A4>::ForwardType,
typename cef_internal::CallbackParamTraits<A5>::ForwardType, typename cef_internal::CallbackParamTraits<A5>::ForwardType,
typename cef_internal::CallbackParamTraits<A6>::ForwardType); typename cef_internal::CallbackParamTraits<A6>::ForwardType);
}; };
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6, typename A7> typename A1,
class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBase { typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
class Callback<R(A1, A2, A3, A4, A5, A6, A7)>
: public cef_internal::CallbackBase {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7); typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
@@ -746,16 +745,15 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT // Note that this constructor CANNOT be explicit, and that Bind() CANNOT
// return the exact Callback<> type. See base/bind.h for details. // return the exact Callback<> type. See base/bind.h for details.
template <typename Runnable, typename BindRunType, typename BoundArgsType> template <typename Runnable, typename BindRunType, typename BoundArgsType>
Callback(cef_internal::BindState<Runnable, BindRunType, Callback(
BoundArgsType>* bind_state) cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
: CallbackBase(bind_state) { : CallbackBase(bind_state) {
// Force the assignment to a local variable of PolymorphicInvoke // Force the assignment to a local variable of PolymorphicInvoke
// so the compiler will typecheck that the passed in Run() method has // so the compiler will typecheck that the passed in Run() method has
// the correct type. // the correct type.
PolymorphicInvoke invoke_func = PolymorphicInvoke invoke_func =
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType> &cef_internal::BindState<Runnable, BindRunType,
::InvokerType::Run; BoundArgsType>::InvokerType::Run;
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func); polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
} }
@@ -773,13 +771,11 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
PolymorphicInvoke f = PolymorphicInvoke f =
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_); reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
return f(bind_state_.get(), cef_internal::CallbackForward(a1), return f(
cef_internal::CallbackForward(a2), bind_state_.get(), cef_internal::CallbackForward(a1),
cef_internal::CallbackForward(a3), cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5),
cef_internal::CallbackForward(a5), cef_internal::CallbackForward(a6), cef_internal::CallbackForward(a7));
cef_internal::CallbackForward(a6),
cef_internal::CallbackForward(a7));
} }
private: private:
@@ -792,10 +788,8 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
typename cef_internal::CallbackParamTraits<A5>::ForwardType, typename cef_internal::CallbackParamTraits<A5>::ForwardType,
typename cef_internal::CallbackParamTraits<A6>::ForwardType, typename cef_internal::CallbackParamTraits<A6>::ForwardType,
typename cef_internal::CallbackParamTraits<A7>::ForwardType); typename cef_internal::CallbackParamTraits<A7>::ForwardType);
}; };
// Syntactic sugar to make Callbacks<void(void)> easier to declare since it // Syntactic sugar to make Callbacks<void(void)> easier to declare since it
// will be used in a lot of APIs with delayed execution. // will be used in a lot of APIs with delayed execution.
typedef Callback<void(void)> Closure; typedef Callback<void(void)> Closure;

View File

@@ -48,12 +48,12 @@
#include <list> #include <list>
#include "include/base/cef_basictypes.h" #include "include/base/cef_basictypes.h"
#include "include/base/cef_callback.h"
#include "include/base/internal/cef_callback_internal.h"
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_logging.h" #include "include/base/cef_logging.h"
#include "include/base/cef_macros.h" #include "include/base/cef_macros.h"
#include "include/base/cef_scoped_ptr.h" #include "include/base/cef_scoped_ptr.h"
#include "include/base/internal/cef_callback_internal.h"
// OVERVIEW: // OVERVIEW:
// //
@@ -120,9 +120,7 @@ class CallbackListBase {
public: public:
Subscription(CallbackListBase<CallbackType>* list, Subscription(CallbackListBase<CallbackType>* list,
typename std::list<CallbackType>::iterator iter) typename std::list<CallbackType>::iterator iter)
: list_(list), : list_(list), iter_(iter) {}
iter_(iter) {
}
~Subscription() { ~Subscription() {
if (list_->active_iterator_count_) { if (list_->active_iterator_count_) {
@@ -167,14 +165,12 @@ class CallbackListBase {
class Iterator { class Iterator {
public: public:
explicit Iterator(CallbackListBase<CallbackType>* list) explicit Iterator(CallbackListBase<CallbackType>* list)
: list_(list), : list_(list), list_iter_(list_->callbacks_.begin()) {
list_iter_(list_->callbacks_.begin()) {
++list_->active_iterator_count_; ++list_->active_iterator_count_;
} }
Iterator(const Iterator& iter) Iterator(const Iterator& iter)
: list_(iter.list_), : list_(iter.list_), list_iter_(iter.list_iter_) {
list_iter_(iter.list_iter_) {
++list_->active_iterator_count_; ++list_->active_iterator_count_;
} }
@@ -210,9 +206,7 @@ class CallbackListBase {
// Returns an instance of a CallbackListBase::Iterator which can be used // Returns an instance of a CallbackListBase::Iterator which can be used
// to run callbacks. // to run callbacks.
Iterator GetIterator() { Iterator GetIterator() { return Iterator(this); }
return Iterator(this);
}
// Compact the list: remove any entries which were NULLed out during // Compact the list: remove any entries which were NULLed out during
// iteration. // iteration.
@@ -242,7 +236,8 @@ class CallbackListBase {
} // namespace cef_internal } // namespace cef_internal
template <typename Sig> class CallbackList; template <typename Sig>
class CallbackList;
template <> template <>
class CallbackList<void(void)> class CallbackList<void(void)>
@@ -357,7 +352,8 @@ class CallbackList<void(A1, A2, A3, A4)>
template <typename A1, typename A2, typename A3, typename A4, typename A5> template <typename A1, typename A2, typename A3, typename A4, typename A5>
class CallbackList<void(A1, A2, A3, A4, A5)> class CallbackList<void(A1, A2, A3, A4, A5)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5)> > { : public cef_internal::CallbackListBase<
Callback<void(A1, A2, A3, A4, A5)>> {
public: public:
typedef Callback<void(A1, A2, A3, A4, A5)> CallbackType; typedef Callback<void(A1, A2, A3, A4, A5)> CallbackType;
@@ -380,11 +376,15 @@ class CallbackList<void(A1, A2, A3, A4, A5)>
DISALLOW_COPY_AND_ASSIGN(CallbackList); DISALLOW_COPY_AND_ASSIGN(CallbackList);
}; };
template <typename A1, typename A2, typename A3, typename A4, typename A5, template <typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6> typename A6>
class CallbackList<void(A1, A2, A3, A4, A5, A6)> class CallbackList<void(A1, A2, A3, A4, A5, A6)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5, : public cef_internal::CallbackListBase<
A6)> > { Callback<void(A1, A2, A3, A4, A5, A6)>> {
public: public:
typedef Callback<void(A1, A2, A3, A4, A5, A6)> CallbackType; typedef Callback<void(A1, A2, A3, A4, A5, A6)> CallbackType;
@@ -408,11 +408,16 @@ class CallbackList<void(A1, A2, A3, A4, A5, A6)>
DISALLOW_COPY_AND_ASSIGN(CallbackList); DISALLOW_COPY_AND_ASSIGN(CallbackList);
}; };
template <typename A1, typename A2, typename A3, typename A4, typename A5, template <typename A1,
typename A6, typename A7> typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
class CallbackList<void(A1, A2, A3, A4, A5, A6, A7)> class CallbackList<void(A1, A2, A3, A4, A5, A6, A7)>
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5, A6, : public cef_internal::CallbackListBase<
A7)> > { Callback<void(A1, A2, A3, A4, A5, A6, A7)>> {
public: public:
typedef Callback<void(A1, A2, A3, A4, A5, A6, A7)> CallbackType; typedef Callback<void(A1, A2, A3, A4, A5, A6, A7)> CallbackType;

View File

@@ -83,8 +83,8 @@
// updated to match. // updated to match.
#include "include/base/cef_bind.h" #include "include/base/cef_bind.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/base/cef_callback.h"
#include "include/base/cef_logging.h" #include "include/base/cef_logging.h"
#include "include/base/cef_macros.h" #include "include/base/cef_macros.h"
#include "include/base/cef_weak_ptr.h" #include "include/base/cef_weak_ptr.h"
@@ -102,8 +102,7 @@ class CancelableCallback<void(void)> {
// |callback| must not be null. // |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(void)>& callback) explicit CancelableCallback(const base::Callback<void(void)>& callback)
: weak_factory_(this), : weak_factory_(this), callback_(callback) {
callback_(callback) {
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
InitializeForwarder(); InitializeForwarder();
} }
@@ -118,9 +117,7 @@ class CancelableCallback<void(void)> {
} }
// Returns true if the wrapped callback has been cancelled. // Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const { bool IsCancelled() const { return callback_.is_null(); }
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not // Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled. // be null. Outstanding and any previously wrapped callbacks are cancelled.
@@ -137,14 +134,10 @@ class CancelableCallback<void(void)> {
} }
// Returns a callback that can be disabled by calling Cancel(). // Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(void)>& callback() const { const base::Callback<void(void)>& callback() const { return forwarder_; }
return forwarder_;
}
private: private:
void Forward() { void Forward() { callback_.Run(); }
callback_.Run();
}
// Helper method to bind |forwarder_| using a weak pointer from // Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|. // |weak_factory_|.
@@ -172,8 +165,7 @@ class CancelableCallback<void(A1)> {
// |callback| must not be null. // |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(A1)>& callback) explicit CancelableCallback(const base::Callback<void(A1)>& callback)
: weak_factory_(this), : weak_factory_(this), callback_(callback) {
callback_(callback) {
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
InitializeForwarder(); InitializeForwarder();
} }
@@ -188,9 +180,7 @@ class CancelableCallback<void(A1)> {
} }
// Returns true if the wrapped callback has been cancelled. // Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const { bool IsCancelled() const { return callback_.is_null(); }
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not // Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled. // be null. Outstanding and any previously wrapped callbacks are cancelled.
@@ -207,14 +197,10 @@ class CancelableCallback<void(A1)> {
} }
// Returns a callback that can be disabled by calling Cancel(). // Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(A1)>& callback() const { const base::Callback<void(A1)>& callback() const { return forwarder_; }
return forwarder_;
}
private: private:
void Forward(A1 a1) const { void Forward(A1 a1) const { callback_.Run(a1); }
callback_.Run(a1);
}
// Helper method to bind |forwarder_| using a weak pointer from // Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|. // |weak_factory_|.
@@ -242,8 +228,7 @@ class CancelableCallback<void(A1, A2)> {
// |callback| must not be null. // |callback| must not be null.
explicit CancelableCallback(const base::Callback<void(A1, A2)>& callback) explicit CancelableCallback(const base::Callback<void(A1, A2)>& callback)
: weak_factory_(this), : weak_factory_(this), callback_(callback) {
callback_(callback) {
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
InitializeForwarder(); InitializeForwarder();
} }
@@ -258,9 +243,7 @@ class CancelableCallback<void(A1, A2)> {
} }
// Returns true if the wrapped callback has been cancelled. // Returns true if the wrapped callback has been cancelled.
bool IsCancelled() const { bool IsCancelled() const { return callback_.is_null(); }
return callback_.is_null();
}
// Sets |callback| as the closure that may be cancelled. |callback| may not // Sets |callback| as the closure that may be cancelled. |callback| may not
// be null. Outstanding and any previously wrapped callbacks are cancelled. // be null. Outstanding and any previously wrapped callbacks are cancelled.
@@ -277,14 +260,10 @@ class CancelableCallback<void(A1, A2)> {
} }
// Returns a callback that can be disabled by calling Cancel(). // Returns a callback that can be disabled by calling Cancel().
const base::Callback<void(A1, A2)>& callback() const { const base::Callback<void(A1, A2)>& callback() const { return forwarder_; }
return forwarder_;
}
private: private:
void Forward(A1 a1, A2 a2) const { void Forward(A1 a1, A2 a2) const { callback_.Run(a1, a2); }
callback_.Run(a1, a2);
}
// Helper method to bind |forwarder_| using a weak pointer from // Helper method to bind |forwarder_| using a weak pointer from
// |weak_factory_|. // |weak_factory_|.

View File

@@ -125,9 +125,7 @@ class AutoLock {
public: public:
struct AlreadyAcquired {}; struct AlreadyAcquired {};
explicit AutoLock(Lock& lock) : lock_(lock) { explicit AutoLock(Lock& lock) : lock_(lock) { lock_.Acquire(); }
lock_.Acquire();
}
AutoLock(Lock& lock, const AlreadyAcquired&) : lock_(lock) { AutoLock(Lock& lock, const AlreadyAcquired&) : lock_(lock) {
lock_.AssertAcquired(); lock_.AssertAcquired();
@@ -153,9 +151,7 @@ class AutoUnlock {
lock_.Release(); lock_.Release();
} }
~AutoUnlock() { ~AutoUnlock() { lock_.Acquire(); }
lock_.Acquire();
}
private: private:
Lock& lock_; Lock& lock_;

View File

@@ -158,9 +158,9 @@
// updated to match. // updated to match.
#include <cassert> #include <cassert>
#include <string>
#include <cstring> #include <cstring>
#include <sstream> #include <sstream>
#include <string>
#include "include/base/cef_build.h" #include "include/base/cef_build.h"
#include "include/base/cef_macros.h" #include "include/base/cef_macros.h"
@@ -217,16 +217,11 @@ const LogSeverity LOG_DFATAL = LOG_FATAL;
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_DFATAL, \ cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_DFATAL, \
##__VA_ARGS__) ##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_INFO \ #define COMPACT_GOOGLE_LOG_INFO COMPACT_GOOGLE_LOG_EX_INFO(LogMessage)
COMPACT_GOOGLE_LOG_EX_INFO(LogMessage) #define COMPACT_GOOGLE_LOG_WARNING COMPACT_GOOGLE_LOG_EX_WARNING(LogMessage)
#define COMPACT_GOOGLE_LOG_WARNING \ #define COMPACT_GOOGLE_LOG_ERROR COMPACT_GOOGLE_LOG_EX_ERROR(LogMessage)
COMPACT_GOOGLE_LOG_EX_WARNING(LogMessage) #define COMPACT_GOOGLE_LOG_FATAL COMPACT_GOOGLE_LOG_EX_FATAL(LogMessage)
#define COMPACT_GOOGLE_LOG_ERROR \ #define COMPACT_GOOGLE_LOG_DFATAL COMPACT_GOOGLE_LOG_EX_DFATAL(LogMessage)
COMPACT_GOOGLE_LOG_EX_ERROR(LogMessage)
#define COMPACT_GOOGLE_LOG_FATAL \
COMPACT_GOOGLE_LOG_EX_FATAL(LogMessage)
#define COMPACT_GOOGLE_LOG_DFATAL \
COMPACT_GOOGLE_LOG_EX_DFATAL(LogMessage)
#if defined(OS_WIN) #if defined(OS_WIN)
// wingdi.h defines ERROR to be 0. When we call LOG(ERROR), it gets // wingdi.h defines ERROR to be 0. When we call LOG(ERROR), it gets
@@ -291,11 +286,13 @@ const LogSeverity LOG_0 = LOG_ERROR;
#if defined(OS_WIN) #if defined(OS_WIN)
#define VPLOG_STREAM(verbose_level) \ #define VPLOG_STREAM(verbose_level) \
cef::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -verbose_level, \ cef::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -verbose_level, \
::cef::logging::GetLastSystemErrorCode()).stream() ::cef::logging::GetLastSystemErrorCode()) \
.stream()
#elif defined(OS_POSIX) #elif defined(OS_POSIX)
#define VPLOG_STREAM(verbose_level) \ #define VPLOG_STREAM(verbose_level) \
cef::logging::ErrnoLogMessage(__FILE__, __LINE__, -verbose_level, \ cef::logging::ErrnoLogMessage(__FILE__, __LINE__, -verbose_level, \
::cef::logging::GetLastSystemErrorCode()).stream() ::cef::logging::GetLastSystemErrorCode()) \
.stream()
#endif #endif
#define VPLOG(verbose_level) \ #define VPLOG(verbose_level) \
@@ -315,15 +312,16 @@ const LogSeverity LOG_0 = LOG_ERROR;
#if defined(OS_WIN) #if defined(OS_WIN)
#define PLOG_STREAM(severity) \ #define PLOG_STREAM(severity) \
COMPACT_GOOGLE_LOG_EX_##severity(Win32ErrorLogMessage, \ COMPACT_GOOGLE_LOG_EX_##severity(Win32ErrorLogMessage, \
::cef::logging::GetLastSystemErrorCode()).stream() ::cef::logging::GetLastSystemErrorCode()) \
.stream()
#elif defined(OS_POSIX) #elif defined(OS_POSIX)
#define PLOG_STREAM(severity) \ #define PLOG_STREAM(severity) \
COMPACT_GOOGLE_LOG_EX_##severity(ErrnoLogMessage, \ COMPACT_GOOGLE_LOG_EX_##severity(ErrnoLogMessage, \
::cef::logging::GetLastSystemErrorCode()).stream() ::cef::logging::GetLastSystemErrorCode()) \
.stream()
#endif #endif
#define PLOG(severity) \ #define PLOG(severity) LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity))
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity))
#define PLOG_IF(severity, condition) \ #define PLOG_IF(severity, condition) \
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity) && (condition)) LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity) && (condition))
@@ -353,9 +351,8 @@ const LogSeverity LOG_0 = LOG_ERROR;
// TODO(akalin): Rewrite this so that constructs like if (...) // TODO(akalin): Rewrite this so that constructs like if (...)
// CHECK_EQ(...) else { ... } work properly. // CHECK_EQ(...) else { ... } work properly.
#define CHECK_OP(name, op, val1, val2) \ #define CHECK_OP(name, op, val1, val2) \
if (std::string* _result = \ if (std::string* _result = cef::logging::Check##name##Impl( \
cef::logging::Check##name##Impl((val1), (val2), \ (val1), (val2), #val1 " " #op " " #val2)) \
#val1 " " #op " " #val2)) \
cef::logging::LogMessage(__FILE__, __LINE__, _result).stream() cef::logging::LogMessage(__FILE__, __LINE__, _result).stream()
// Build the error message string. This is separate from the "Impl" // Build the error message string. This is separate from the "Impl"
@@ -374,20 +371,25 @@ std::string* MakeCheckOpString(const t1& v1, const t2& v2, const char* names) {
#if !defined(COMPILER_MSVC) #if !defined(COMPILER_MSVC)
// Commonly used instantiations of MakeCheckOpString<>. Explicitly instantiated // Commonly used instantiations of MakeCheckOpString<>. Explicitly instantiated
// in logging.cc. // in logging.cc.
extern template std::string* MakeCheckOpString<int, int>( extern template std::string* MakeCheckOpString<int, int>(const int&,
const int&, const int&, const char* names); const int&,
extern template const char* names);
std::string* MakeCheckOpString<unsigned long, unsigned long>( extern template std::string* MakeCheckOpString<unsigned long, unsigned long>(
const unsigned long&, const unsigned long&, const char* names); const unsigned long&,
extern template const unsigned long&,
std::string* MakeCheckOpString<unsigned long, unsigned int>( const char* names);
const unsigned long&, const unsigned int&, const char* names); extern template std::string* MakeCheckOpString<unsigned long, unsigned int>(
extern template const unsigned long&,
std::string* MakeCheckOpString<unsigned int, unsigned long>( const unsigned int&,
const unsigned int&, const unsigned long&, const char* names); const char* names);
extern template extern template std::string* MakeCheckOpString<unsigned int, unsigned long>(
std::string* MakeCheckOpString<std::string, std::string>( const unsigned int&,
const std::string&, const std::string&, const char* name); const unsigned long&,
const char* names);
extern template std::string* MakeCheckOpString<std::string, std::string>(
const std::string&,
const std::string&,
const char* name);
#endif #endif
// Helper functions for CHECK_OP macro. // Helper functions for CHECK_OP macro.
@@ -398,12 +400,16 @@ std::string* MakeCheckOpString<std::string, std::string>(
template <class t1, class t2> \ template <class t1, class t2> \
inline std::string* Check##name##Impl(const t1& v1, const t2& v2, \ inline std::string* Check##name##Impl(const t1& v1, const t2& v2, \
const char* names) { \ const char* names) { \
if (v1 op v2) return NULL; \ if (v1 op v2) \
else return MakeCheckOpString(v1, v2, names); \ return NULL; \
else \
return MakeCheckOpString(v1, v2, names); \
} \ } \
inline std::string* Check##name##Impl(int v1, int v2, const char* names) { \ inline std::string* Check##name##Impl(int v1, int v2, const char* names) { \
if (v1 op v2) return NULL; \ if (v1 op v2) \
else return MakeCheckOpString(v1, v2, names); \ return NULL; \
else \
return MakeCheckOpString(v1, v2, names); \
} }
DEFINE_CHECK_OP_IMPL(EQ, ==) DEFINE_CHECK_OP_IMPL(EQ, ==)
DEFINE_CHECK_OP_IMPL(NE, !=) DEFINE_CHECK_OP_IMPL(NE, !=)
@@ -471,11 +477,9 @@ enum { DEBUG_MODE = ENABLE_DLOG };
#undef ENABLE_DLOG #undef ENABLE_DLOG
#define DLOG(severity) \ #define DLOG(severity) LAZY_STREAM(LOG_STREAM(severity), DLOG_IS_ON(severity))
LAZY_STREAM(LOG_STREAM(severity), DLOG_IS_ON(severity))
#define DPLOG(severity) \ #define DPLOG(severity) LAZY_STREAM(PLOG_STREAM(severity), DLOG_IS_ON(severity))
LAZY_STREAM(PLOG_STREAM(severity), DLOG_IS_ON(severity))
#define DVLOG(verboselevel) DVLOG_IF(verboselevel, VLOG_IS_ON(verboselevel)) #define DVLOG(verboselevel) DVLOG_IF(verboselevel, VLOG_IS_ON(verboselevel))
@@ -519,8 +523,9 @@ const LogSeverity LOG_DCHECK = LOG_INFO;
if (DCHECK_IS_ON()) \ if (DCHECK_IS_ON()) \
if (std::string* _result = cef::logging::Check##name##Impl( \ if (std::string* _result = cef::logging::Check##name##Impl( \
(val1), (val2), #val1 " " #op " " #val2)) \ (val1), (val2), #val1 " " #op " " #val2)) \
cef::logging::LogMessage(__FILE__, __LINE__, \ cef::logging::LogMessage(__FILE__, __LINE__, ::cef::logging::LOG_DCHECK, \
::cef::logging::LOG_DCHECK, _result).stream() _result) \
.stream()
// Equality/Inequality checks - compare two values, and log a // Equality/Inequality checks - compare two values, and log a
// LOG_DCHECK message including the two values when the result is not // LOG_DCHECK message including the two values when the result is not
@@ -549,8 +554,8 @@ const LogSeverity LOG_DCHECK = LOG_INFO;
#define DCHECK_GT(val1, val2) DCHECK_OP(GT, >, val1, val2) #define DCHECK_GT(val1, val2) DCHECK_OP(GT, >, val1, val2)
#if defined(NDEBUG) && defined(OS_CHROMEOS) #if defined(NDEBUG) && defined(OS_CHROMEOS)
#define NOTREACHED() LOG(ERROR) << "NOTREACHED() hit in " << \ #define NOTREACHED() \
__FUNCTION__ << ". " LOG(ERROR) << "NOTREACHED() hit in " << __FUNCTION__ << ". "
#else #else
#define NOTREACHED() DCHECK(false) #define NOTREACHED() DCHECK(false)
#endif #endif
@@ -577,7 +582,9 @@ class LogMessage {
LogMessage(const char* file, int line, std::string* result); LogMessage(const char* file, int line, std::string* result);
// Used for DCHECK_EQ(), etc. Takes ownership of the given string. // Used for DCHECK_EQ(), etc. Takes ownership of the given string.
LogMessage(const char* file, int line, LogSeverity severity, LogMessage(const char* file,
int line,
LogSeverity severity,
std::string* result); std::string* result);
~LogMessage(); ~LogMessage();
@@ -739,7 +746,8 @@ inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
#elif NOTIMPLEMENTED_POLICY == 4 #elif NOTIMPLEMENTED_POLICY == 4
#define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG #define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG
#elif NOTIMPLEMENTED_POLICY == 5 #elif NOTIMPLEMENTED_POLICY == 5
#define NOTIMPLEMENTED() do {\ #define NOTIMPLEMENTED() \
do { \
static bool logged_once = false; \ static bool logged_once = false; \
LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG; \ LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG; \
logged_once = true; \ logged_once = true; \

View File

@@ -126,14 +126,13 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
namespace cef { namespace cef {
template <bool> template <bool>
struct CompileAssert { struct CompileAssert {};
};
} // namespace cef } // namespace cef
#define COMPILE_ASSERT(expr, msg) \ #define COMPILE_ASSERT(expr, msg) \
typedef cef::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] \ typedef cef::CompileAssert<(bool(expr))> \
ALLOW_UNUSED_TYPE msg[bool(expr) ? 1 : -1] ALLOW_UNUSED_TYPE
// Implementation details of COMPILE_ASSERT: // Implementation details of COMPILE_ASSERT:
// //
@@ -182,13 +181,12 @@ struct CompileAssert {
#endif // !USING_CHROMIUM_INCLUDES #endif // !USING_CHROMIUM_INCLUDES
#if !defined(ALLOW_THIS_IN_INITIALIZER_LIST) #if !defined(MSVC_PUSH_DISABLE_WARNING) && defined(COMPILER_MSVC)
#if defined(COMPILER_MSVC)
// MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled. // MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled.
// The warning remains disabled until popped by MSVC_POP_WARNING. // The warning remains disabled until popped by MSVC_POP_WARNING.
#define MSVC_PUSH_DISABLE_WARNING(n) __pragma(warning(push)) \ #define MSVC_PUSH_DISABLE_WARNING(n) \
__pragma(warning(disable:n)) __pragma(warning(push)) __pragma(warning(disable : n))
// MSVC_PUSH_WARNING_LEVEL pushes |n| as the global warning level. The level // MSVC_PUSH_WARNING_LEVEL pushes |n| as the global warning level. The level
// remains in effect until popped by MSVC_POP_WARNING(). Use 0 to disable all // remains in effect until popped by MSVC_POP_WARNING(). Use 0 to disable all
@@ -198,6 +196,10 @@ struct CompileAssert {
// Pop effects of innermost MSVC_PUSH_* macro. // Pop effects of innermost MSVC_PUSH_* macro.
#define MSVC_POP_WARNING() __pragma(warning(pop)) #define MSVC_POP_WARNING() __pragma(warning(pop))
#endif // !defined(MSVC_PUSH_DISABLE_WARNING) && defined(COMPILER_MSVC)
#if !defined(ALLOW_THIS_IN_INITIALIZER_LIST)
#if defined(COMPILER_MSVC)
// Allows |this| to be passed as an argument in constructor initializer lists. // Allows |this| to be passed as an argument in constructor initializer lists.
// This uses push/pop instead of the seemingly simpler suppress feature to avoid // This uses push/pop instead of the seemingly simpler suppress feature to avoid
// having the warning be disabled for more than just |code|. // having the warning be disabled for more than just |code|.
@@ -207,13 +209,11 @@ struct CompileAssert {
// //
// Compiler warning C4355: 'this': used in base member initializer list: // Compiler warning C4355: 'this': used in base member initializer list:
// http://msdn.microsoft.com/en-us/library/3c594ae3(VS.80).aspx // http://msdn.microsoft.com/en-us/library/3c594ae3(VS.80).aspx
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) MSVC_PUSH_DISABLE_WARNING(4355) \ #define ALLOW_THIS_IN_INITIALIZER_LIST(code) \
code \ MSVC_PUSH_DISABLE_WARNING(4355) \
MSVC_POP_WARNING() code MSVC_POP_WARNING()
#else // !COMPILER_MSVC #else // !COMPILER_MSVC
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) code #define ALLOW_THIS_IN_INITIALIZER_LIST(code) code
#endif // !COMPILER_MSVC #endif // !COMPILER_MSVC
#endif // !ALLOW_THIS_IN_INITIALIZER_LIST #endif // !ALLOW_THIS_IN_INITIALIZER_LIST

View File

@@ -248,10 +248,12 @@
}; \ }; \
type(type&); \ type(type&); \
void operator=(type&); \ void operator=(type&); \
\
public: \ public: \
operator rvalue_type() { return rvalue_type(this); } \ operator rvalue_type() { return rvalue_type(this); } \
type Pass() { return type(rvalue_type(this)); } \ type Pass() { return type(rvalue_type(this)); } \
typedef void MoveOnlyTypeForCPP03; \ typedef void MoveOnlyTypeForCPP03; \
\
private: private:
#endif // !USING_CHROMIUM_INCLUDES #endif // !USING_CHROMIUM_INCLUDES

View File

@@ -69,21 +69,14 @@ class PlatformThreadRef {
public: public:
typedef cef_platform_thread_handle_t RefType; typedef cef_platform_thread_handle_t RefType;
PlatformThreadRef() PlatformThreadRef() : id_(0) {}
: id_(0) {
}
explicit PlatformThreadRef(RefType id) explicit PlatformThreadRef(RefType id) : id_(id) {}
: id_(id) {
}
bool operator==(PlatformThreadRef other) const { bool operator==(PlatformThreadRef other) const { return id_ == other.id_; }
return id_ == other.id_;
} bool is_null() const { return id_ == 0; }
bool is_null() const {
return id_ == 0;
}
private: private:
RefType id_; RefType id_;
}; };

View File

@@ -65,7 +65,8 @@ class RefCountedBase {
RefCountedBase() RefCountedBase()
: ref_count_(0) : ref_count_(0)
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
, in_dtor_(false) ,
in_dtor_(false)
#endif #endif
{ {
} }
@@ -76,7 +77,6 @@ class RefCountedBase {
#endif #endif
} }
void AddRef() const { void AddRef() const {
// TODO(maruel): Add back once it doesn't assert 500 times/sec. // TODO(maruel): Add back once it doesn't assert 500 times/sec.
// Current thread books the critical section "AddRelease" // Current thread books the critical section "AddRelease"
@@ -160,9 +160,7 @@ class RefCounted : public cef_subtle::RefCountedBase {
public: public:
RefCounted() {} RefCounted() {}
void AddRef() const { void AddRef() const { cef_subtle::RefCountedBase::AddRef(); }
cef_subtle::RefCountedBase::AddRef();
}
void Release() const { void Release() const {
if (cef_subtle::RefCountedBase::Release()) { if (cef_subtle::RefCountedBase::Release()) {
@@ -178,7 +176,8 @@ class RefCounted : public cef_subtle::RefCountedBase {
}; };
// Forward declaration. // Forward declaration.
template <class T, typename Traits> class RefCountedThreadSafe; template <class T, typename Traits>
class RefCountedThreadSafe;
// Default traits for RefCountedThreadSafe<T>. Deletes the object when its ref // Default traits for RefCountedThreadSafe<T>. Deletes the object when its ref
// count reaches 0. Overload to delete it on a different thread etc. // count reaches 0. Overload to delete it on a different thread etc.
@@ -188,8 +187,8 @@ struct DefaultRefCountedThreadSafeTraits {
// Delete through RefCountedThreadSafe to make child classes only need to be // Delete through RefCountedThreadSafe to make child classes only need to be
// friend with RefCountedThreadSafe instead of this struct, which is an // friend with RefCountedThreadSafe instead of this struct, which is an
// implementation detail. // implementation detail.
RefCountedThreadSafe<T, RefCountedThreadSafe<T, DefaultRefCountedThreadSafeTraits>::DeleteInternal(
DefaultRefCountedThreadSafeTraits>::DeleteInternal(x); x);
} }
}; };
@@ -210,9 +209,7 @@ class RefCountedThreadSafe : public cef_subtle::RefCountedThreadSafeBase {
public: public:
RefCountedThreadSafe() {} RefCountedThreadSafe() {}
void AddRef() const { void AddRef() const { cef_subtle::RefCountedThreadSafeBase::AddRef(); }
cef_subtle::RefCountedThreadSafeBase::AddRef();
}
void Release() const { void Release() const {
if (cef_subtle::RefCountedThreadSafeBase::Release()) { if (cef_subtle::RefCountedThreadSafeBase::Release()) {
@@ -303,8 +300,7 @@ class scoped_refptr {
public: public:
typedef T element_type; typedef T element_type;
scoped_refptr() : ptr_(NULL) { scoped_refptr() : ptr_(NULL) {}
}
scoped_refptr(T* p) : ptr_(p) { scoped_refptr(T* p) : ptr_(p) {
if (ptr_) if (ptr_)
@@ -364,9 +360,7 @@ class scoped_refptr {
*pp = p; *pp = p;
} }
void swap(scoped_refptr<T>& r) { void swap(scoped_refptr<T>& r) { swap(&r.ptr_); }
swap(&r.ptr_);
}
protected: protected:
T* ptr_; T* ptr_;

View File

@@ -154,7 +154,8 @@ class RefCountedThreadSafeBase;
template <class T> template <class T>
struct DefaultDeleter { struct DefaultDeleter {
DefaultDeleter() {} DefaultDeleter() {}
template <typename U> DefaultDeleter(const DefaultDeleter<U>& other) { template <typename U>
DefaultDeleter(const DefaultDeleter<U>& other) {
// IMPLEMENTATION NOTE: C++11 20.7.1.1.2p2 only provides this constructor // IMPLEMENTATION NOTE: C++11 20.7.1.1.2p2 only provides this constructor
// if U* is implicitly convertible to T* and U is not an array type. // if U* is implicitly convertible to T* and U is not an array type.
// //
@@ -194,7 +195,8 @@ struct DefaultDeleter<T[]> {
// References: // References:
// C++98 [expr.delete]p3 // C++98 [expr.delete]p3
// http://cplusplus.github.com/LWG/lwg-defects.html#938 // http://cplusplus.github.com/LWG/lwg-defects.html#938
template <typename U> void operator()(U* array) const; template <typename U>
void operator()(U* array) const;
}; };
template <class T, int n> template <class T, int n>
@@ -209,18 +211,18 @@ struct DefaultDeleter<T[n]> {
// scoped_ptr<int, base::FreeDeleter> foo_ptr( // scoped_ptr<int, base::FreeDeleter> foo_ptr(
// static_cast<int*>(malloc(sizeof(int)))); // static_cast<int*>(malloc(sizeof(int))));
struct FreeDeleter { struct FreeDeleter {
inline void operator()(void* ptr) const { inline void operator()(void* ptr) const { free(ptr); }
free(ptr);
}
}; };
namespace cef_internal { namespace cef_internal {
template <typename T> struct IsNotRefCounted { template <typename T>
struct IsNotRefCounted {
enum { enum {
value = !base::is_convertible<T*, base::subtle::RefCountedBase*>::value && value =
!base::is_convertible<T*, base::subtle::RefCountedThreadSafeBase*>:: !base::is_convertible<T*, base::subtle::RefCountedBase*>::value &&
value !base::is_convertible<T*,
base::subtle::RefCountedThreadSafeBase*>::value
}; };
}; };
@@ -309,7 +311,8 @@ class scoped_ptr_impl {
private: private:
// Needed to allow type-converting constructor. // Needed to allow type-converting constructor.
template <typename U, typename V> friend class scoped_ptr_impl; template <typename U, typename V>
friend class scoped_ptr_impl;
// Use the empty base class optimization to allow us to have a D // Use the empty base class optimization to allow us to have a D
// member, while avoiding any space overhead for it when D is an // member, while avoiding any space overhead for it when D is an
@@ -443,18 +446,14 @@ class scoped_ptr {
bool operator!=(const element_type* p) const { return impl_.get() != p; } bool operator!=(const element_type* p) const { return impl_.get() != p; }
// Swap two scoped pointers. // Swap two scoped pointers.
void swap(scoped_ptr& p2) { void swap(scoped_ptr& p2) { impl_.swap(p2.impl_); }
impl_.swap(p2.impl_);
}
// Release a pointer. // Release a pointer.
// The return value is the current pointer held by this object. // The return value is the current pointer held by this object.
// If this object holds a NULL pointer, the return value is NULL. // If this object holds a NULL pointer, the return value is NULL.
// After this operation, this object will hold a NULL pointer, // After this operation, this object will hold a NULL pointer,
// and will not own the object any more. // and will not own the object any more.
element_type* release() WARN_UNUSED_RESULT { element_type* release() WARN_UNUSED_RESULT { return impl_.release(); }
return impl_.release();
}
// C++98 doesn't support functions templates with default parameters which // C++98 doesn't support functions templates with default parameters which
// makes it hard to write a PassAs() that understands converting the deleter // makes it hard to write a PassAs() that understands converting the deleter
@@ -469,7 +468,8 @@ class scoped_ptr {
private: private:
// Needed to reach into |impl_| in the constructor. // Needed to reach into |impl_| in the constructor.
template <typename U, typename V> friend class scoped_ptr; template <typename U, typename V>
friend class scoped_ptr;
base::cef_internal::scoped_ptr_impl<element_type, deleter_type> impl_; base::cef_internal::scoped_ptr_impl<element_type, deleter_type> impl_;
// Forbidden for API compatibility with std::unique_ptr. // Forbidden for API compatibility with std::unique_ptr.
@@ -479,8 +479,10 @@ class scoped_ptr {
// doesn't make sense, and if U == T, it still doesn't make sense // doesn't make sense, and if U == T, it still doesn't make sense
// because you should never have the same object owned by two different // because you should never have the same object owned by two different
// scoped_ptrs. // scoped_ptrs.
template <class U> bool operator==(scoped_ptr<U> const& p2) const; template <class U>
template <class U> bool operator!=(scoped_ptr<U> const& p2) const; bool operator==(scoped_ptr<U> const& p2) const;
template <class U>
bool operator!=(scoped_ptr<U> const& p2) const;
}; };
template <class T, class D> template <class T, class D>
@@ -553,18 +555,14 @@ class scoped_ptr<T[], D> {
bool operator!=(element_type* array) const { return impl_.get() != array; } bool operator!=(element_type* array) const { return impl_.get() != array; }
// Swap two scoped pointers. // Swap two scoped pointers.
void swap(scoped_ptr& p2) { void swap(scoped_ptr& p2) { impl_.swap(p2.impl_); }
impl_.swap(p2.impl_);
}
// Release a pointer. // Release a pointer.
// The return value is the current pointer held by this object. // The return value is the current pointer held by this object.
// If this object holds a NULL pointer, the return value is NULL. // If this object holds a NULL pointer, the return value is NULL.
// After this operation, this object will hold a NULL pointer, // After this operation, this object will hold a NULL pointer,
// and will not own the object any more. // and will not own the object any more.
element_type* release() WARN_UNUSED_RESULT { element_type* release() WARN_UNUSED_RESULT { return impl_.release(); }
return impl_.release();
}
private: private:
// Force element_type to be a complete type. // Force element_type to be a complete type.
@@ -578,20 +576,24 @@ class scoped_ptr<T[], D> {
// private and has no definition. This is disabled because it is not safe to // private and has no definition. This is disabled because it is not safe to
// call delete[] on an array whose static type does not match its dynamic // call delete[] on an array whose static type does not match its dynamic
// type. // type.
template <typename U> explicit scoped_ptr(U* array); template <typename U>
explicit scoped_ptr(U* array);
explicit scoped_ptr(int disallow_construction_from_null); explicit scoped_ptr(int disallow_construction_from_null);
// Disable reset() from any type other than element_type*, for the same // Disable reset() from any type other than element_type*, for the same
// reasons as the constructor above. // reasons as the constructor above.
template <typename U> void reset(U* array); template <typename U>
void reset(U* array);
void reset(int disallow_reset_from_null); void reset(int disallow_reset_from_null);
// Forbid comparison of scoped_ptr types. If U != T, it totally // Forbid comparison of scoped_ptr types. If U != T, it totally
// doesn't make sense, and if U == T, it still doesn't make sense // doesn't make sense, and if U == T, it still doesn't make sense
// because you should never have the same object owned by two different // because you should never have the same object owned by two different
// scoped_ptrs. // scoped_ptrs.
template <class U> bool operator==(scoped_ptr<U> const& p2) const; template <class U>
template <class U> bool operator!=(scoped_ptr<U> const& p2) const; bool operator==(scoped_ptr<U> const& p2) const;
template <class U>
bool operator!=(scoped_ptr<U> const& p2) const;
}; };
// Free functions // Free functions

View File

@@ -112,26 +112,19 @@ struct string16_char_traits {
typedef mbstate_t state_type; typedef mbstate_t state_type;
typedef std::fpos<state_type> pos_type; typedef std::fpos<state_type> pos_type;
static void assign(char_type& c1, const char_type& c2) { static void assign(char_type& c1, const char_type& c2) { c1 = c2; }
c1 = c2;
}
static bool eq(const char_type& c1, const char_type& c2) { static bool eq(const char_type& c1, const char_type& c2) { return c1 == c2; }
return c1 == c2; static bool lt(const char_type& c1, const char_type& c2) { return c1 < c2; }
}
static bool lt(const char_type& c1, const char_type& c2) {
return c1 < c2;
}
static int compare(const char_type* s1, const char_type* s2, size_t n) { static int compare(const char_type* s1, const char_type* s2, size_t n) {
return c16memcmp(s1, s2, n); return c16memcmp(s1, s2, n);
} }
static size_t length(const char_type* s) { static size_t length(const char_type* s) { return c16len(s); }
return c16len(s);
}
static const char_type* find(const char_type* s, size_t n, static const char_type* find(const char_type* s,
size_t n,
const char_type& a) { const char_type& a) {
return c16memchr(s, a, n); return c16memchr(s, a, n);
} }
@@ -152,21 +145,15 @@ struct string16_char_traits {
return eq_int_type(c, eof()) ? 0 : c; return eq_int_type(c, eof()) ? 0 : c;
} }
static char_type to_char_type(const int_type& c) { static char_type to_char_type(const int_type& c) { return char_type(c); }
return char_type(c);
}
static int_type to_int_type(const char_type& c) { static int_type to_int_type(const char_type& c) { return int_type(c); }
return int_type(c);
}
static bool eq_int_type(const int_type& c1, const int_type& c2) { static bool eq_int_type(const int_type& c1, const int_type& c2) {
return c1 == c2; return c1 == c2;
} }
static int_type eof() { static int_type eof() { return static_cast<int_type>(EOF); }
return static_cast<int_type>(EOF);
}
}; };
typedef std::basic_string<char16, base::string16_char_traits> string16; typedef std::basic_string<char16, base::string16_char_traits> string16;
@@ -217,8 +204,8 @@ extern void PrintTo(const string16& str, std::ostream* out);
// //
// TODO(mark): File this bug with Apple and update this note with a bug number. // TODO(mark): File this bug with Apple and update this note with a bug number.
extern template extern template class std::basic_string<base::char16,
class std::basic_string<base::char16, base::string16_char_traits>; base::string16_char_traits>;
#endif // WCHAR_T_IS_UTF32 #endif // WCHAR_T_IS_UTF32

View File

@@ -60,13 +60,16 @@ struct integral_constant {
typedef integral_constant<T, v> type; typedef integral_constant<T, v> type;
}; };
template <class T, T v> const T integral_constant<T, v>::value; template <class T, T v>
const T integral_constant<T, v>::value;
typedef integral_constant<bool, true> true_type; typedef integral_constant<bool, true> true_type;
typedef integral_constant<bool, false> false_type; typedef integral_constant<bool, false> false_type;
template <class T> struct is_pointer : false_type {}; template <class T>
template <class T> struct is_pointer<T*> : true_type {}; struct is_pointer : false_type {};
template <class T>
struct is_pointer<T*> : true_type {};
// Member function pointer detection up to four params. Add more as needed // Member function pointer detection up to four params. Add more as needed
// below. This is built-in to C++ 11, and we can remove this when we switch. // below. This is built-in to C++ 11, and we can remove this when we switch.
@@ -93,30 +96,49 @@ struct is_member_function_pointer<R(Z::*)(A, B, C)> : true_type {};
template <typename R, typename Z, typename A, typename B, typename C> template <typename R, typename Z, typename A, typename B, typename C>
struct is_member_function_pointer<R (Z::*)(A, B, C) const> : true_type {}; struct is_member_function_pointer<R (Z::*)(A, B, C) const> : true_type {};
template <typename R, typename Z, typename A, typename B, typename C, template <typename R,
typename Z,
typename A,
typename B,
typename C,
typename D> typename D>
struct is_member_function_pointer<R (Z::*)(A, B, C, D)> : true_type {}; struct is_member_function_pointer<R (Z::*)(A, B, C, D)> : true_type {};
template <typename R, typename Z, typename A, typename B, typename C, template <typename R,
typename Z,
typename A,
typename B,
typename C,
typename D> typename D>
struct is_member_function_pointer<R (Z::*)(A, B, C, D) const> : true_type {}; struct is_member_function_pointer<R (Z::*)(A, B, C, D) const> : true_type {};
template <class T, class U>
struct is_same : public false_type {};
template <class T>
struct is_same<T, T> : true_type {};
template <class T, class U> struct is_same : public false_type {}; template <class>
template <class T> struct is_same<T,T> : true_type {}; struct is_array : public false_type {};
template <class T, size_t n>
struct is_array<T[n]> : public true_type {};
template <class T>
struct is_array<T[]> : public true_type {};
template<class> struct is_array : public false_type {}; template <class T>
template<class T, size_t n> struct is_array<T[n]> : public true_type {}; struct is_non_const_reference : false_type {};
template<class T> struct is_array<T[]> : public true_type {}; template <class T>
struct is_non_const_reference<T&> : true_type {};
template <class T>
struct is_non_const_reference<const T&> : false_type {};
template <class T> struct is_non_const_reference : false_type {}; template <class T>
template <class T> struct is_non_const_reference<T&> : true_type {}; struct is_const : false_type {};
template <class T> struct is_non_const_reference<const T&> : false_type {}; template <class T>
struct is_const<const T> : true_type {};
template <class T> struct is_const : false_type {}; template <class T>
template <class T> struct is_const<const T> : true_type {}; struct is_void : false_type {};
template <>
template <class T> struct is_void : false_type {}; struct is_void<void> : true_type {};
template <> struct is_void<void> : true_type {};
namespace cef_internal { namespace cef_internal {
@@ -169,21 +191,21 @@ struct is_convertible
: integral_constant<bool, : integral_constant<bool,
sizeof(cef_internal::ConvertHelper::Test<To>( sizeof(cef_internal::ConvertHelper::Test<To>(
cef_internal::ConvertHelper::Create<From>())) == cef_internal::ConvertHelper::Create<From>())) ==
sizeof(cef_internal::YesType)> { sizeof(cef_internal::YesType)> {};
};
template <typename T> template <typename T>
struct is_class struct is_class
: integral_constant<bool, : integral_constant<bool,
sizeof(cef_internal::IsClassHelper::Test<T>(0)) == sizeof(cef_internal::IsClassHelper::Test<T>(0)) ==
sizeof(cef_internal::YesType)> { sizeof(cef_internal::YesType)> {};
};
template <bool B, class T = void> template <bool B, class T = void>
struct enable_if {}; struct enable_if {};
template <class T> template <class T>
struct enable_if<true, T> { typedef T type; }; struct enable_if<true, T> {
typedef T type;
};
} // namespace base } // namespace base

View File

@@ -58,7 +58,6 @@
#define ENABLE_THREAD_CHECKER 0 #define ENABLE_THREAD_CHECKER 0
#endif #endif
namespace base { namespace base {
namespace cef_internal { namespace cef_internal {
@@ -69,9 +68,7 @@ namespace cef_internal {
// right version for your build configuration. // right version for your build configuration.
class ThreadCheckerDoNothing { class ThreadCheckerDoNothing {
public: public:
bool CalledOnValidThread() const { bool CalledOnValidThread() const { return true; }
return true;
}
void DetachFromThread() {} void DetachFromThread() {}
}; };
@@ -110,11 +107,9 @@ class ThreadCheckerDoNothing {
// //
// In Release mode, CalledOnValidThread will always return true. // In Release mode, CalledOnValidThread will always return true.
#if ENABLE_THREAD_CHECKER #if ENABLE_THREAD_CHECKER
class ThreadChecker : public cef_internal::ThreadCheckerImpl { class ThreadChecker : public cef_internal::ThreadCheckerImpl {};
};
#else #else
class ThreadChecker : public cef_internal::ThreadCheckerDoNothing { class ThreadChecker : public cef_internal::ThreadCheckerDoNothing {};
};
#endif // ENABLE_THREAD_CHECKER #endif // ENABLE_THREAD_CHECKER
#undef ENABLE_THREAD_CHECKER #undef ENABLE_THREAD_CHECKER

View File

@@ -139,13 +139,11 @@
// DFAKE_MUTEX(shareable_section_); // DFAKE_MUTEX(shareable_section_);
// }; // };
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
// Defines a class member that acts like a mutex. It is used only as a // Defines a class member that acts like a mutex. It is used only as a
// verification tool. // verification tool.
#define DFAKE_MUTEX(obj) \ #define DFAKE_MUTEX(obj) mutable base::ThreadCollisionWarner obj
mutable base::ThreadCollisionWarner obj
// Asserts the call is never called simultaneously in two threads. Used at // Asserts the call is never called simultaneously in two threads. Used at
// member function scope. // member function scope.
#define DFAKE_SCOPED_LOCK(obj) \ #define DFAKE_SCOPED_LOCK(obj) \
@@ -187,13 +185,9 @@ class ThreadCollisionWarner {
public: public:
// The parameter asserter is there only for test purpose // The parameter asserter is there only for test purpose
explicit ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter()) explicit ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
: valid_thread_id_(0), : valid_thread_id_(0), counter_(0), asserter_(asserter) {}
counter_(0),
asserter_(asserter) {}
~ThreadCollisionWarner() { ~ThreadCollisionWarner() { delete asserter_; }
delete asserter_;
}
// This class is meant to be used through the macro // This class is meant to be used through the macro
// DFAKE_SCOPED_LOCK_THREAD_LOCKED // DFAKE_SCOPED_LOCK_THREAD_LOCKED
@@ -202,8 +196,7 @@ class ThreadCollisionWarner {
// from one thread // from one thread
class Check { class Check {
public: public:
explicit Check(ThreadCollisionWarner* warner) explicit Check(ThreadCollisionWarner* warner) : warner_(warner) {
: warner_(warner) {
warner_->EnterSelf(); warner_->EnterSelf();
} }
@@ -219,14 +212,11 @@ class ThreadCollisionWarner {
// DFAKE_SCOPED_LOCK // DFAKE_SCOPED_LOCK
class ScopedCheck { class ScopedCheck {
public: public:
explicit ScopedCheck(ThreadCollisionWarner* warner) explicit ScopedCheck(ThreadCollisionWarner* warner) : warner_(warner) {
: warner_(warner) {
warner_->Enter(); warner_->Enter();
} }
~ScopedCheck() { ~ScopedCheck() { warner_->Leave(); }
warner_->Leave();
}
private: private:
ThreadCollisionWarner* warner_; ThreadCollisionWarner* warner_;
@@ -243,9 +233,7 @@ class ThreadCollisionWarner {
warner_->EnterSelf(); warner_->EnterSelf();
} }
~ScopedRecursiveCheck() { ~ScopedRecursiveCheck() { warner_->Leave(); }
warner_->Leave();
}
private: private:
ThreadCollisionWarner* warner_; ThreadCollisionWarner* warner_;

View File

@@ -166,26 +166,23 @@
#define TRACE_EVENT1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT1(category, name, arg1_name, arg1_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false); \ cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false); \
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
#define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, \ #define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \
arg2_val) \ cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
cef_trace_event_begin(category, name, arg1_name, arg1_val, \ arg2_val, false); \
arg2_name, arg2_val, false); \
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
// Implementation detail: trace event macros create temporary variable names. // Implementation detail: trace event macros create temporary variable names.
// These macros give each temporary variable a unique name based on the line // These macros give each temporary variable a unique name based on the line
// number to prevent name collisions. // number to prevent name collisions.
#define CEF_INTERNAL_TRACE_EVENT_UID3(a,b) \ #define CEF_INTERNAL_TRACE_EVENT_UID3(a, b) cef_trace_event_unique_##a##b
cef_trace_event_unique_##a##b #define CEF_INTERNAL_TRACE_EVENT_UID2(a, b) CEF_INTERNAL_TRACE_EVENT_UID3(a, b)
#define CEF_INTERNAL_TRACE_EVENT_UID2(a,b) \
CEF_INTERNAL_TRACE_EVENT_UID3(a,b)
#define CEF_INTERNAL_TRACE_EVENT_UID(name_prefix) \ #define CEF_INTERNAL_TRACE_EVENT_UID(name_prefix) \
CEF_INTERNAL_TRACE_EVENT_UID2(name_prefix, __LINE__) CEF_INTERNAL_TRACE_EVENT_UID2(name_prefix, __LINE__)
// Implementation detail: internal macro to end end event when the scope ends. // Implementation detail: internal macro to end end event when the scope ends.
#define CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) \ #define CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) \
cef_trace_event::CefTraceEndOnScopeClose \ cef_trace_event::CefTraceEndOnScopeClose CEF_INTERNAL_TRACE_EVENT_UID( \
CEF_INTERNAL_TRACE_EVENT_UID(profileScope)(category, name) profileScope)(category, name)
// Records a single event called "name" immediately, with 0, 1 or 2 // Records a single event called "name" immediately, with 0, 1 or 2
// associated arguments. If the category is not enabled, then this // associated arguments. If the category is not enabled, then this
@@ -196,8 +193,8 @@
cef_trace_event_instant(category, name, NULL, 0, NULL, 0, false) cef_trace_event_instant(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0, false) cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, \ #define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_name, arg2_val) \ arg2_val) \
cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, false) arg2_val, false)
#define TRACE_EVENT_COPY_INSTANT0(category, name) \ #define TRACE_EVENT_COPY_INSTANT0(category, name) \
@@ -218,8 +215,8 @@
cef_trace_event_begin(category, name, NULL, 0, NULL, 0, false) cef_trace_event_begin(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_BEGIN1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_BEGIN1(category, name, arg1_name, arg1_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false) cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, \ #define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_name, arg2_val) \ arg2_val) \
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, false) arg2_val, false)
#define TRACE_EVENT_COPY_BEGIN0(category, name) \ #define TRACE_EVENT_COPY_BEGIN0(category, name) \
@@ -239,16 +236,16 @@
cef_trace_event_end(category, name, NULL, 0, NULL, 0, false) cef_trace_event_end(category, name, NULL, 0, NULL, 0, false)
#define TRACE_EVENT_END1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_END1(category, name, arg1_name, arg1_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, false) cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, false)
#define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, \ #define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_name, arg2_val) \ arg2_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, false) arg2_val, false)
#define TRACE_EVENT_COPY_END0(category, name) \ #define TRACE_EVENT_COPY_END0(category, name) \
cef_trace_event_end(category, name, NULL, 0, NULL, 0, true) cef_trace_event_end(category, name, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_END1(category, name, arg1_name, arg1_val) \ #define TRACE_EVENT_COPY_END1(category, name, arg1_name, arg1_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, true) cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, true)
#define TRACE_EVENT_COPY_END2(category, name, arg1_name, arg1_val, \ #define TRACE_EVENT_COPY_END2(category, name, arg1_name, arg1_val, arg2_name, \
arg2_name, arg2_val) \ arg2_val) \
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, true) arg2_val, true)
@@ -266,8 +263,8 @@
// values as a stacked-bar chart. // values as a stacked-bar chart.
// - category and name strings must have application lifetime (statics or // - category and name strings must have application lifetime (statics or
// literals). They may not include " chars. // literals). They may not include " chars.
#define TRACE_COUNTER2(category, name, value1_name, value1_val, \ #define TRACE_COUNTER2(category, name, value1_name, value1_val, value2_name, \
value2_name, value2_val) \ value2_val) \
cef_trace_counter(category, name, value1_name, value1_val, value2_name, \ cef_trace_counter(category, name, value1_name, value1_val, value2_name, \
value2_val, false) value2_val, false)
#define TRACE_COPY_COUNTER2(category, name, value1_name, value1_val, \ #define TRACE_COPY_COUNTER2(category, name, value1_name, value1_val, \
@@ -301,12 +298,11 @@
value2_name, value2_val) \ value2_name, value2_val) \
cef_trace_counter_id(category, name, id, value1_name, value1_val, \ cef_trace_counter_id(category, name, id, value1_name, value1_val, \
value2_name, value2_val, false) value2_name, value2_val, false)
#define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, \ #define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, value1_val, \
value1_val, value2_name, value2_val) \ value2_name, value2_val) \
cef_trace_counter_id(category, name, id, value1_name, value1_val, \ cef_trace_counter_id(category, name, id, value1_name, value1_val, \
value2_name, value2_val, true) value2_name, value2_val, true)
// Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2 // Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2
// associated arguments. If the category is not enabled, then this // associated arguments. If the category is not enabled, then this
// does nothing. // does nothing.
@@ -334,12 +330,11 @@
arg2_name, arg2_val, false) arg2_name, arg2_val, false)
#define TRACE_EVENT_COPY_ASYNC_BEGIN0(category, name, id) \ #define TRACE_EVENT_COPY_ASYNC_BEGIN0(category, name, id) \
cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0, true) cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, \ #define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
arg1_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, \ cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, \
0, true) 0, true)
#define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, \ #define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
arg1_val, arg2_name, arg2_val) \ arg2_name, arg2_val) \
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \ cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val, true) arg2_name, arg2_val, true)
@@ -351,14 +346,14 @@
// ASYNC_STEP_PAST events. // ASYNC_STEP_PAST events.
#define TRACE_EVENT_ASYNC_STEP_INTO0(category, name, id, step) \ #define TRACE_EVENT_ASYNC_STEP_INTO0(category, name, id, step) \
cef_trace_event_async_step_into(category, name, id, step, NULL, 0, false) cef_trace_event_async_step_into(category, name, id, step, NULL, 0, false)
#define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, \ #define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
arg1_name, arg1_val) \ arg1_val) \
cef_trace_event_async_step_into(category, name, id, step, arg1_name, \ cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
arg1_val, false) arg1_val, false)
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO0(category, name, id, step) \ #define TRACE_EVENT_COPY_ASYNC_STEP_INTO0(category, name, id, step) \
cef_trace_event_async_step_into(category, name, id, step, NULL, 0, true) cef_trace_event_async_step_into(category, name, id, step, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO1(category, name, id, step, \ #define TRACE_EVENT_COPY_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
arg1_name, arg1_val) \ arg1_val) \
cef_trace_event_async_step_into(category, name, id, step, arg1_name, \ cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
arg1_val, true) arg1_val, true)
@@ -370,14 +365,14 @@
// ASYNC_STEP_INTO events. // ASYNC_STEP_INTO events.
#define TRACE_EVENT_ASYNC_STEP_PAST0(category, name, id, step) \ #define TRACE_EVENT_ASYNC_STEP_PAST0(category, name, id, step) \
cef_trace_event_async_step_past(category, name, id, step, NULL, 0, false) cef_trace_event_async_step_past(category, name, id, step, NULL, 0, false)
#define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, \ #define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
arg1_name, arg1_val) \ arg1_val) \
cef_trace_event_async_step_past(category, name, id, step, arg1_name, \ cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
arg1_val, false) arg1_val, false)
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST0(category, name, id, step) \ #define TRACE_EVENT_COPY_ASYNC_STEP_PAST0(category, name, id, step) \
cef_trace_event_async_step_past(category, name, id, step, NULL, 0, true) cef_trace_event_async_step_past(category, name, id, step, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST1(category, name, id, step, \ #define TRACE_EVENT_COPY_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
arg1_name, arg1_val) \ arg1_val) \
cef_trace_event_async_step_past(category, name, id, step, arg1_name, \ cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
arg1_val, true) arg1_val, true)
@@ -394,12 +389,11 @@
arg2_name, arg2_val, false) arg2_name, arg2_val, false)
#define TRACE_EVENT_COPY_ASYNC_END0(category, name, id) \ #define TRACE_EVENT_COPY_ASYNC_END0(category, name, id) \
cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0, true) cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0, true)
#define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, \ #define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
arg1_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0, \ cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0, \
true) true)
#define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, \ #define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
arg1_val, arg2_name, arg2_val) \ arg2_name, arg2_val) \
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \ cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \
arg2_name, arg2_val, true) arg2_name, arg2_val, true)
@@ -409,8 +403,7 @@ namespace cef_trace_event {
class CefTraceEndOnScopeClose { class CefTraceEndOnScopeClose {
public: public:
CefTraceEndOnScopeClose(const char* category, const char* name) CefTraceEndOnScopeClose(const char* category, const char* name)
: category_(category), name_(name) { : category_(category), name_(name) {}
}
~CefTraceEndOnScopeClose() { ~CefTraceEndOnScopeClose() {
cef_trace_event_end(category_, name_, NULL, 0, NULL, 0, false); cef_trace_event_end(category_, name_, NULL, 0, NULL, 0, false);
} }

File diff suppressed because it is too large Load Diff

View File

@@ -117,8 +117,10 @@
namespace base { namespace base {
template <typename T> class SupportsWeakPtr; template <typename T>
template <typename T> class WeakPtr; class SupportsWeakPtr;
template <typename T>
class WeakPtr;
namespace cef_internal { namespace cef_internal {
// These classes are part of the WeakPtr implementation. // These classes are part of the WeakPtr implementation.
@@ -164,9 +166,7 @@ class WeakReferenceOwner {
WeakReference GetRef() const; WeakReference GetRef() const;
bool HasRefs() const { bool HasRefs() const { return flag_.get() && !flag_->HasOneRef(); }
return flag_.get() && !flag_->HasOneRef();
}
void Invalidate(); void Invalidate();
@@ -200,8 +200,8 @@ class SupportsWeakPtrBase {
// function that makes calling this easier. // function that makes calling this easier.
template <typename Derived> template <typename Derived>
static WeakPtr<Derived> StaticAsWeakPtr(Derived* t) { static WeakPtr<Derived> StaticAsWeakPtr(Derived* t) {
typedef typedef is_convertible<Derived, cef_internal::SupportsWeakPtrBase&>
is_convertible<Derived, cef_internal::SupportsWeakPtrBase&> convertible; convertible;
COMPILE_ASSERT(convertible::value, COMPILE_ASSERT(convertible::value,
AsWeakPtr_argument_inherits_from_SupportsWeakPtr); AsWeakPtr_argument_inherits_from_SupportsWeakPtr);
return AsWeakPtrImpl<Derived>(t, *t); return AsWeakPtrImpl<Derived>(t, *t);
@@ -212,8 +212,8 @@ class SupportsWeakPtrBase {
// which is an instance of SupportsWeakPtr<Base>. We can then safely // which is an instance of SupportsWeakPtr<Base>. We can then safely
// static_cast the Base* to a Derived*. // static_cast the Base* to a Derived*.
template <typename Derived, typename Base> template <typename Derived, typename Base>
static WeakPtr<Derived> AsWeakPtrImpl( static WeakPtr<Derived> AsWeakPtrImpl(Derived* t,
Derived* t, const SupportsWeakPtr<Base>&) { const SupportsWeakPtr<Base>&) {
WeakPtr<Base> ptr = t->Base::AsWeakPtr(); WeakPtr<Base> ptr = t->Base::AsWeakPtr();
return WeakPtr<Derived>(ptr.ref_, static_cast<Derived*>(ptr.ptr_)); return WeakPtr<Derived>(ptr.ref_, static_cast<Derived*>(ptr.ptr_));
} }
@@ -221,7 +221,8 @@ class SupportsWeakPtrBase {
} // namespace cef_internal } // namespace cef_internal
template <typename T> class WeakPtrFactory; template <typename T>
class WeakPtrFactory;
// The WeakPtr class holds a weak reference to |T*|. // The WeakPtr class holds a weak reference to |T*|.
// //
@@ -239,14 +240,12 @@ template <typename T> class WeakPtrFactory;
template <typename T> template <typename T>
class WeakPtr : public cef_internal::WeakPtrBase { class WeakPtr : public cef_internal::WeakPtrBase {
public: public:
WeakPtr() : ptr_(NULL) { WeakPtr() : ptr_(NULL) {}
}
// Allow conversion from U to T provided U "is a" T. Note that this // Allow conversion from U to T provided U "is a" T. Note that this
// is separate from the (implicit) copy constructor. // is separate from the (implicit) copy constructor.
template <typename U> template <typename U>
WeakPtr(const WeakPtr<U>& other) : WeakPtrBase(other), ptr_(other.ptr_) { WeakPtr(const WeakPtr<U>& other) : WeakPtrBase(other), ptr_(other.ptr_) {}
}
T* get() const { return ref_.is_valid() ? ptr_ : NULL; } T* get() const { return ref_.is_valid() ? ptr_ : NULL; }
@@ -280,18 +279,19 @@ class WeakPtr : public cef_internal::WeakPtrBase {
private: private:
// Explicitly declare comparison operators as required by the bool // Explicitly declare comparison operators as required by the bool
// trick, but keep them private. // trick, but keep them private.
template <class U> bool operator==(WeakPtr<U> const&) const; template <class U>
template <class U> bool operator!=(WeakPtr<U> const&) const; bool operator==(WeakPtr<U> const&) const;
template <class U>
bool operator!=(WeakPtr<U> const&) const;
friend class cef_internal::SupportsWeakPtrBase; friend class cef_internal::SupportsWeakPtrBase;
template <typename U> friend class WeakPtr; template <typename U>
friend class WeakPtr;
friend class SupportsWeakPtr<T>; friend class SupportsWeakPtr<T>;
friend class WeakPtrFactory<T>; friend class WeakPtrFactory<T>;
WeakPtr(const cef_internal::WeakReference& ref, T* ptr) WeakPtr(const cef_internal::WeakReference& ref, T* ptr)
: WeakPtrBase(ref), : WeakPtrBase(ref), ptr_(ptr) {}
ptr_(ptr) {
}
// This pointer is only valid when ref_.is_valid() is true. Otherwise, its // This pointer is only valid when ref_.is_valid() is true. Otherwise, its
// value is undefined (as opposed to NULL). // value is undefined (as opposed to NULL).
@@ -306,12 +306,9 @@ class WeakPtr : public cef_internal::WeakPtrBase {
template <class T> template <class T>
class WeakPtrFactory { class WeakPtrFactory {
public: public:
explicit WeakPtrFactory(T* ptr) : ptr_(ptr) { explicit WeakPtrFactory(T* ptr) : ptr_(ptr) {}
}
~WeakPtrFactory() { ~WeakPtrFactory() { ptr_ = NULL; }
ptr_ = NULL;
}
WeakPtr<T> GetWeakPtr() { WeakPtr<T> GetWeakPtr() {
DCHECK(ptr_); DCHECK(ptr_);

View File

@@ -103,7 +103,8 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
// reloop = 0 // reloop = 0
// if (prev_value != old_value) // if (prev_value != old_value)
// reloop = STREX(ptr, new_value) // reloop = STREX(ptr, new_value)
__asm__ __volatile__(" ldrex %0, [%3]\n" __asm__ __volatile__(
" ldrex %0, [%3]\n"
" mov %1, #0\n" " mov %1, #0\n"
" cmp %0, %4\n" " cmp %0, %4\n"
#ifdef __thumb2__ #ifdef __thumb2__
@@ -143,7 +144,8 @@ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
// value += increment // value += increment
// reloop = STREX(ptr, value) // reloop = STREX(ptr, value)
// //
__asm__ __volatile__(" ldrex %0, [%3]\n" __asm__ __volatile__(
" ldrex %0, [%3]\n"
" add %0, %0, %4\n" " add %0, %0, %4\n"
" strex %1, %0, [%3]\n" " strex %1, %0, [%3]\n"
: "=&r"(value), "=&r"(reloop), "+m"(*ptr) : "=&r"(value), "=&r"(reloop), "+m"(*ptr)
@@ -171,7 +173,8 @@ inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
do { do {
// old_value = LDREX(ptr) // old_value = LDREX(ptr)
// reloop = STREX(ptr, new_value) // reloop = STREX(ptr, new_value)
__asm__ __volatile__(" ldrex %0, [%3]\n" __asm__ __volatile__(
" ldrex %0, [%3]\n"
" strex %1, %4, [%3]\n" " strex %1, %4, [%3]\n"
: "=&r"(old_value), "=&r"(reloop), "+m"(*ptr) : "=&r"(old_value), "=&r"(reloop), "+m"(*ptr)
: "r"(ptr), "r"(new_value) : "r"(ptr), "r"(new_value)
@@ -301,7 +304,9 @@ inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
*ptr = value; *ptr = value;
} }
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { return *ptr; } inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
return *ptr;
}
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) { inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
Atomic32 value = *ptr; Atomic32 value = *ptr;

View File

@@ -52,26 +52,26 @@ namespace subtle {
inline AtomicWord NoBarrier_CompareAndSwap(volatile AtomicWord* ptr, inline AtomicWord NoBarrier_CompareAndSwap(volatile AtomicWord* ptr,
AtomicWord old_value, AtomicWord old_value,
AtomicWord new_value) { AtomicWord new_value) {
return NoBarrier_CompareAndSwap( return NoBarrier_CompareAndSwap(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), old_value, new_value); old_value, new_value);
} }
inline AtomicWord NoBarrier_AtomicExchange(volatile AtomicWord* ptr, inline AtomicWord NoBarrier_AtomicExchange(volatile AtomicWord* ptr,
AtomicWord new_value) { AtomicWord new_value) {
return NoBarrier_AtomicExchange( return NoBarrier_AtomicExchange(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), new_value); new_value);
} }
inline AtomicWord NoBarrier_AtomicIncrement(volatile AtomicWord* ptr, inline AtomicWord NoBarrier_AtomicIncrement(volatile AtomicWord* ptr,
AtomicWord increment) { AtomicWord increment) {
return NoBarrier_AtomicIncrement( return NoBarrier_AtomicIncrement(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), increment); increment);
} }
inline AtomicWord Barrier_AtomicIncrement(volatile AtomicWord* ptr, inline AtomicWord Barrier_AtomicIncrement(volatile AtomicWord* ptr,
AtomicWord increment) { AtomicWord increment) {
return Barrier_AtomicIncrement( return Barrier_AtomicIncrement(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), increment); increment);
} }
inline AtomicWord Acquire_CompareAndSwap(volatile AtomicWord* ptr, inline AtomicWord Acquire_CompareAndSwap(volatile AtomicWord* ptr,
@@ -89,23 +89,21 @@ inline AtomicWord Release_CompareAndSwap(volatile AtomicWord* ptr,
} }
inline void NoBarrier_Store(volatile AtomicWord* ptr, AtomicWord value) { inline void NoBarrier_Store(volatile AtomicWord* ptr, AtomicWord value) {
NoBarrier_Store( NoBarrier_Store(reinterpret_cast<volatile Atomic32*>(ptr), value);
reinterpret_cast<volatile Atomic32*>(ptr), value);
} }
inline void Acquire_Store(volatile AtomicWord* ptr, AtomicWord value) { inline void Acquire_Store(volatile AtomicWord* ptr, AtomicWord value) {
return base::subtle::Acquire_Store( return base::subtle::Acquire_Store(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), value); value);
} }
inline void Release_Store(volatile AtomicWord* ptr, AtomicWord value) { inline void Release_Store(volatile AtomicWord* ptr, AtomicWord value) {
return base::subtle::Release_Store( return base::subtle::Release_Store(reinterpret_cast<volatile Atomic32*>(ptr),
reinterpret_cast<volatile Atomic32*>(ptr), value); value);
} }
inline AtomicWord NoBarrier_Load(volatile const AtomicWord* ptr) { inline AtomicWord NoBarrier_Load(volatile const AtomicWord* ptr) {
return NoBarrier_Load( return NoBarrier_Load(reinterpret_cast<volatile const Atomic32*>(ptr));
reinterpret_cast<volatile const Atomic32*>(ptr));
} }
inline AtomicWord Acquire_Load(volatile const AtomicWord* ptr) { inline AtomicWord Acquire_Load(volatile const AtomicWord* ptr) {

View File

@@ -41,8 +41,7 @@ struct AtomicOps_x86CPUFeatureStruct {
bool has_amd_lock_mb_bug; // Processor has AMD memory-barrier bug; do lfence bool has_amd_lock_mb_bug; // Processor has AMD memory-barrier bug; do lfence
// after acquire compare-and-swap. // after acquire compare-and-swap.
}; };
extern struct AtomicOps_x86CPUFeatureStruct extern struct AtomicOps_x86CPUFeatureStruct AtomicOps_Internalx86CPUFeatures;
AtomicOps_Internalx86CPUFeatures;
#define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory") #define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
@@ -76,7 +75,8 @@ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
Atomic32 temp = increment; Atomic32 temp = increment;
__asm__ __volatile__("lock; xaddl %0,%1" __asm__ __volatile__("lock; xaddl %0,%1"
: "+r"(temp), "+m"(*ptr) : "+r"(temp), "+m"(*ptr)
: : "memory"); :
: "memory");
// temp now holds the old value of *ptr // temp now holds the old value of *ptr
return temp + increment; return temp + increment;
} }
@@ -86,7 +86,8 @@ inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
Atomic32 temp = increment; Atomic32 temp = increment;
__asm__ __volatile__("lock; xaddl %0,%1" __asm__ __volatile__("lock; xaddl %0,%1"
: "+r"(temp), "+m"(*ptr) : "+r"(temp), "+m"(*ptr)
: : "memory"); :
: "memory");
// temp now holds the old value of *ptr // temp now holds the old value of *ptr
if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) { if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
__asm__ __volatile__("lfence" : : : "memory"); __asm__ __volatile__("lfence" : : : "memory");
@@ -174,7 +175,8 @@ inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
Atomic64 temp = increment; Atomic64 temp = increment;
__asm__ __volatile__("lock; xaddq %0,%1" __asm__ __volatile__("lock; xaddq %0,%1"
: "+r"(temp), "+m"(*ptr) : "+r"(temp), "+m"(*ptr)
: : "memory"); :
: "memory");
// temp now contains the previous value of *ptr // temp now contains the previous value of *ptr
return temp + increment; return temp + increment;
} }
@@ -184,7 +186,8 @@ inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
Atomic64 temp = increment; Atomic64 temp = increment;
__asm__ __volatile__("lock; xaddq %0,%1" __asm__ __volatile__("lock; xaddq %0,%1"
: "+r"(temp), "+m"(*ptr) : "+r"(temp), "+m"(*ptr)
: : "memory"); :
: "memory");
// temp now contains the previous value of *ptr // temp now contains the previous value of *ptr
if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) { if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
__asm__ __volatile__("lfence" : : : "memory"); __asm__ __volatile__("lfence" : : : "memory");

View File

@@ -55,25 +55,23 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
Atomic32 old_value, Atomic32 old_value,
Atomic32 new_value) { Atomic32 new_value) {
LONG result = _InterlockedCompareExchange( LONG result = _InterlockedCompareExchange(
reinterpret_cast<volatile LONG*>(ptr), reinterpret_cast<volatile LONG*>(ptr), static_cast<LONG>(new_value),
static_cast<LONG>(new_value),
static_cast<LONG>(old_value)); static_cast<LONG>(old_value));
return static_cast<Atomic32>(result); return static_cast<Atomic32>(result);
} }
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
Atomic32 new_value) { Atomic32 new_value) {
LONG result = _InterlockedExchange( LONG result = _InterlockedExchange(reinterpret_cast<volatile LONG*>(ptr),
reinterpret_cast<volatile LONG*>(ptr),
static_cast<LONG>(new_value)); static_cast<LONG>(new_value));
return static_cast<Atomic32>(result); return static_cast<Atomic32>(result);
} }
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
Atomic32 increment) { Atomic32 increment) {
return _InterlockedExchangeAdd( return _InterlockedExchangeAdd(reinterpret_cast<volatile LONG*>(ptr),
reinterpret_cast<volatile LONG*>(ptr), static_cast<LONG>(increment)) +
static_cast<LONG>(increment)) + increment; increment;
} }
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
@@ -151,17 +149,17 @@ inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
Atomic64 new_value) { Atomic64 new_value) {
PVOID result = InterlockedExchangePointer( PVOID result =
reinterpret_cast<volatile PVOID*>(ptr), InterlockedExchangePointer(reinterpret_cast<volatile PVOID*>(ptr),
reinterpret_cast<PVOID>(new_value)); reinterpret_cast<PVOID>(new_value));
return reinterpret_cast<Atomic64>(result); return reinterpret_cast<Atomic64>(result);
} }
inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
Atomic64 increment) { Atomic64 increment) {
return InterlockedExchangeAdd64( return InterlockedExchangeAdd64(reinterpret_cast<volatile LONGLONG*>(ptr),
reinterpret_cast<volatile LONGLONG*>(ptr), static_cast<LONGLONG>(increment)) +
static_cast<LONGLONG>(increment)) + increment; increment;
} }
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
@@ -215,7 +213,6 @@ inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
return NoBarrier_CompareAndSwap(ptr, old_value, new_value); return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
} }
#endif // defined(_WIN64) #endif // defined(_WIN64)
} // namespace base::subtle } // namespace base::subtle

File diff suppressed because it is too large Load Diff

View File

@@ -52,13 +52,9 @@ class RunnableAdapter<R(__stdcall *)()> {
public: public:
typedef R(RunType)(); typedef R(RunType)();
explicit RunnableAdapter(R(__stdcall *function)()) explicit RunnableAdapter(R(__stdcall* function)()) : function_(function) {}
: function_(function) {
}
R Run() { R Run() { return function_(); }
return function_();
}
private: private:
R(__stdcall* function_)(); R(__stdcall* function_)();
@@ -70,13 +66,9 @@ class RunnableAdapter<R(__fastcall *)()> {
public: public:
typedef R(RunType)(); typedef R(RunType)();
explicit RunnableAdapter(R(__fastcall *function)()) explicit RunnableAdapter(R(__fastcall* function)()) : function_(function) {}
: function_(function) {
}
R Run() { R Run() { return function_(); }
return function_();
}
private: private:
R(__fastcall* function_)(); R(__fastcall* function_)();
@@ -88,9 +80,7 @@ class RunnableAdapter<R(__stdcall *)(A1)> {
public: public:
typedef R(RunType)(A1); typedef R(RunType)(A1);
explicit RunnableAdapter(R(__stdcall *function)(A1)) explicit RunnableAdapter(R(__stdcall* function)(A1)) : function_(function) {}
: function_(function) {
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1) { R Run(typename CallbackParamTraits<A1>::ForwardType a1) {
return function_(a1); return function_(a1);
@@ -106,9 +96,7 @@ class RunnableAdapter<R(__fastcall *)(A1)> {
public: public:
typedef R(RunType)(A1); typedef R(RunType)(A1);
explicit RunnableAdapter(R(__fastcall *function)(A1)) explicit RunnableAdapter(R(__fastcall* function)(A1)) : function_(function) {}
: function_(function) {
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1) { R Run(typename CallbackParamTraits<A1>::ForwardType a1) {
return function_(a1); return function_(a1);
@@ -125,8 +113,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2)> {
typedef R(RunType)(A1, A2); typedef R(RunType)(A1, A2);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2) { typename CallbackParamTraits<A2>::ForwardType a2) {
@@ -144,8 +131,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2)> {
typedef R(RunType)(A1, A2); typedef R(RunType)(A1, A2);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2) { typename CallbackParamTraits<A2>::ForwardType a2) {
@@ -163,8 +149,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3)> {
typedef R(RunType)(A1, A2, A3); typedef R(RunType)(A1, A2, A3);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -183,8 +168,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3)> {
typedef R(RunType)(A1, A2, A3); typedef R(RunType)(A1, A2, A3);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -203,8 +187,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4)> {
typedef R(RunType)(A1, A2, A3, A4); typedef R(RunType)(A1, A2, A3, A4);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -224,8 +207,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4)> {
typedef R(RunType)(A1, A2, A3, A4); typedef R(RunType)(A1, A2, A3, A4);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -239,15 +221,18 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4)> {
}; };
// __stdcall Function: Arity 5. // __stdcall Function: Arity 5.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5> typename A5>
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5)> { class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5); typedef R(RunType)(A1, A2, A3, A4, A5);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -262,15 +247,18 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5)> {
}; };
// __fastcall Function: Arity 5. // __fastcall Function: Arity 5.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5> typename A5>
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5)> { class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5); typedef R(RunType)(A1, A2, A3, A4, A5);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -285,15 +273,19 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4, A5)> {
}; };
// __stdcall Function: Arity 6. // __stdcall Function: Arity 6.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6> typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6)> { class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6); typedef R(RunType)(A1, A2, A3, A4, A5, A6);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -309,15 +301,19 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5, A6)> {
}; };
// __fastcall Function: Arity 6. // __fastcall Function: Arity 6.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6> typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6)> { class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6); typedef R(RunType)(A1, A2, A3, A4, A5, A6);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -333,15 +329,20 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4, A5, A6)> {
}; };
// __stdcall Function: Arity 7. // __stdcall Function: Arity 7.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6, typename A7> typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6, A7)> { class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6, A7)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7); typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6, A7)) explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6, A7))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,
@@ -358,15 +359,20 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5, A6, A7)> {
}; };
// __fastcall Function: Arity 7. // __fastcall Function: Arity 7.
template <typename R, typename A1, typename A2, typename A3, typename A4, template <typename R,
typename A5, typename A6, typename A7> typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6, A7)> { class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6, A7)> {
public: public:
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7); typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6, A7)) explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6, A7))
: function_(function) { : function_(function) {}
}
R Run(typename CallbackParamTraits<A1>::ForwardType a1, R Run(typename CallbackParamTraits<A1>::ForwardType a1,
typename CallbackParamTraits<A2>::ForwardType a2, typename CallbackParamTraits<A2>::ForwardType a2,

View File

@@ -115,15 +115,16 @@ class CallbackBase {
// A helper template to determine if given type is non-const move-only-type, // A helper template to determine if given type is non-const move-only-type,
// i.e. if a value of the given type should be passed via .Pass() in a // i.e. if a value of the given type should be passed via .Pass() in a
// destructive way. // destructive way.
template <typename T> struct IsMoveOnlyType { template <typename T>
struct IsMoveOnlyType {
template <typename U> template <typename U>
static YesType Test(const typename U::MoveOnlyTypeForCPP03*); static YesType Test(const typename U::MoveOnlyTypeForCPP03*);
template <typename U> template <typename U>
static NoType Test(...); static NoType Test(...);
static const bool value = sizeof(Test<T>(0)) == sizeof(YesType) && static const bool value =
!is_const<T>::value; sizeof(Test<T>(0)) == sizeof(YesType) && !is_const<T>::value;
}; };
// This is a typetraits object that's used to take an argument type, and // This is a typetraits object that's used to take an argument type, and

View File

@@ -51,9 +51,7 @@ namespace cef_internal {
template <typename T> template <typename T>
struct NeedsScopedRefptrButGetsRawPtr { struct NeedsScopedRefptrButGetsRawPtr {
#if defined(OS_WIN) #if defined(OS_WIN)
enum { enum { value = base::false_type::value };
value = base::false_type::value
};
#else #else
enum { enum {
// Human readable translation: you needed to be a scoped_refptr if you are a // Human readable translation: you needed to be a scoped_refptr if you are a
@@ -83,68 +81,97 @@ struct ParamsUseScopedRefptrCorrectly<Tuple1<A> > {
template <typename A, typename B> template <typename A, typename B>
struct ParamsUseScopedRefptrCorrectly<Tuple2<A, B>> { struct ParamsUseScopedRefptrCorrectly<Tuple2<A, B>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
NeedsScopedRefptrButGetsRawPtr<B>::value) }; value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value)
};
}; };
template <typename A, typename B, typename C> template <typename A, typename B, typename C>
struct ParamsUseScopedRefptrCorrectly<Tuple3<A, B, C>> { struct ParamsUseScopedRefptrCorrectly<Tuple3<A, B, C>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value) }; NeedsScopedRefptrButGetsRawPtr<C>::value)
};
}; };
template <typename A, typename B, typename C, typename D> template <typename A, typename B, typename C, typename D>
struct ParamsUseScopedRefptrCorrectly<Tuple4<A, B, C, D>> { struct ParamsUseScopedRefptrCorrectly<Tuple4<A, B, C, D>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value || NeedsScopedRefptrButGetsRawPtr<C>::value ||
NeedsScopedRefptrButGetsRawPtr<D>::value) }; NeedsScopedRefptrButGetsRawPtr<D>::value)
};
}; };
template <typename A, typename B, typename C, typename D, typename E> template <typename A, typename B, typename C, typename D, typename E>
struct ParamsUseScopedRefptrCorrectly<Tuple5<A, B, C, D, E>> { struct ParamsUseScopedRefptrCorrectly<Tuple5<A, B, C, D, E>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value || NeedsScopedRefptrButGetsRawPtr<C>::value ||
NeedsScopedRefptrButGetsRawPtr<D>::value || NeedsScopedRefptrButGetsRawPtr<D>::value ||
NeedsScopedRefptrButGetsRawPtr<E>::value) }; NeedsScopedRefptrButGetsRawPtr<E>::value)
};
}; };
template <typename A, typename B, typename C, typename D, typename E, template <typename A,
typename B,
typename C,
typename D,
typename E,
typename F> typename F>
struct ParamsUseScopedRefptrCorrectly<Tuple6<A, B, C, D, E, F>> { struct ParamsUseScopedRefptrCorrectly<Tuple6<A, B, C, D, E, F>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value || NeedsScopedRefptrButGetsRawPtr<C>::value ||
NeedsScopedRefptrButGetsRawPtr<D>::value || NeedsScopedRefptrButGetsRawPtr<D>::value ||
NeedsScopedRefptrButGetsRawPtr<E>::value || NeedsScopedRefptrButGetsRawPtr<E>::value ||
NeedsScopedRefptrButGetsRawPtr<F>::value) }; NeedsScopedRefptrButGetsRawPtr<F>::value)
};
}; };
template <typename A, typename B, typename C, typename D, typename E, template <typename A,
typename F, typename G> typename B,
typename C,
typename D,
typename E,
typename F,
typename G>
struct ParamsUseScopedRefptrCorrectly<Tuple7<A, B, C, D, E, F, G>> { struct ParamsUseScopedRefptrCorrectly<Tuple7<A, B, C, D, E, F, G>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value || NeedsScopedRefptrButGetsRawPtr<C>::value ||
NeedsScopedRefptrButGetsRawPtr<D>::value || NeedsScopedRefptrButGetsRawPtr<D>::value ||
NeedsScopedRefptrButGetsRawPtr<E>::value || NeedsScopedRefptrButGetsRawPtr<E>::value ||
NeedsScopedRefptrButGetsRawPtr<F>::value || NeedsScopedRefptrButGetsRawPtr<F>::value ||
NeedsScopedRefptrButGetsRawPtr<G>::value) }; NeedsScopedRefptrButGetsRawPtr<G>::value)
};
}; };
template <typename A, typename B, typename C, typename D, typename E, template <typename A,
typename F, typename G, typename H> typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H>
struct ParamsUseScopedRefptrCorrectly<Tuple8<A, B, C, D, E, F, G, H>> { struct ParamsUseScopedRefptrCorrectly<Tuple8<A, B, C, D, E, F, G, H>> {
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value || enum {
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
NeedsScopedRefptrButGetsRawPtr<B>::value || NeedsScopedRefptrButGetsRawPtr<B>::value ||
NeedsScopedRefptrButGetsRawPtr<C>::value || NeedsScopedRefptrButGetsRawPtr<C>::value ||
NeedsScopedRefptrButGetsRawPtr<D>::value || NeedsScopedRefptrButGetsRawPtr<D>::value ||
NeedsScopedRefptrButGetsRawPtr<E>::value || NeedsScopedRefptrButGetsRawPtr<E>::value ||
NeedsScopedRefptrButGetsRawPtr<F>::value || NeedsScopedRefptrButGetsRawPtr<F>::value ||
NeedsScopedRefptrButGetsRawPtr<G>::value || NeedsScopedRefptrButGetsRawPtr<G>::value ||
NeedsScopedRefptrButGetsRawPtr<H>::value) }; NeedsScopedRefptrButGetsRawPtr<H>::value)
};
}; };
} // namespace cef_internal } // namespace cef_internal

View File

@@ -0,0 +1,81 @@
// Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool and should not edited
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=3e20b926af7550a1dc4000bfdf261332222a64b8$
//
#ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
#pragma once
#include "include/capi/cef_values_capi.h"
#ifdef __cplusplus
extern "C" {
#endif
///
// Implement this structure to receive accessibility notification when
// accessibility events have been registered. The functions of this structure
// will be called on the UI thread.
///
typedef struct _cef_accessibility_handler_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Called after renderer process sends accessibility tree changes to the
// browser process.
///
void(CEF_CALLBACK* on_accessibility_tree_change)(
struct _cef_accessibility_handler_t* self,
struct _cef_value_t* value);
///
// Called after renderer process sends accessibility location changes to the
// browser process.
///
void(CEF_CALLBACK* on_accessibility_location_change)(
struct _cef_accessibility_handler_t* self,
struct _cef_value_t* value);
} cef_accessibility_handler_t;
#ifdef __cplusplus
}
#endif
#endif // CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ca069c86d9b09fb6f939ce72682e15ce95571ead$
//
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
@@ -73,7 +75,8 @@ typedef struct _cef_app_t {
// in undefined behavior including crashes. // in undefined behavior including crashes.
/// ///
void(CEF_CALLBACK* on_before_command_line_processing)( void(CEF_CALLBACK* on_before_command_line_processing)(
struct _cef_app_t* self, const cef_string_t* process_type, struct _cef_app_t* self,
const cef_string_t* process_type,
struct _cef_command_line_t* command_line); struct _cef_command_line_t* command_line);
/// ///
@@ -82,7 +85,8 @@ typedef struct _cef_app_t {
// each process and the registered schemes should be the same across all // each process and the registered schemes should be the same across all
// processes. // processes.
/// ///
void (CEF_CALLBACK *on_register_custom_schemes)(struct _cef_app_t* self, void(CEF_CALLBACK* on_register_custom_schemes)(
struct _cef_app_t* self,
struct _cef_scheme_registrar_t* registrar); struct _cef_scheme_registrar_t* registrar);
/// ///
@@ -109,7 +113,6 @@ typedef struct _cef_app_t {
CEF_CALLBACK* get_render_process_handler)(struct _cef_app_t* self); CEF_CALLBACK* get_render_process_handler)(struct _cef_app_t* self);
} cef_app_t; } cef_app_t;
/// ///
// This function should be called from the application entry point function to // This function should be called from the application entry point function to
// execute a secondary process. It can be used to run secondary processes from // execute a secondary process. It can be used to run secondary processes from
@@ -123,7 +126,8 @@ typedef struct _cef_app_t {
// cef_sandbox_win.h for details). // cef_sandbox_win.h for details).
/// ///
CEF_EXPORT int cef_execute_process(const struct _cef_main_args_t* args, CEF_EXPORT int cef_execute_process(const struct _cef_main_args_t* args,
cef_app_t* application, void* windows_sandbox_info); cef_app_t* application,
void* windows_sandbox_info);
/// ///
// This function should be called on the main application thread to initialize // This function should be called on the main application thread to initialize
@@ -133,7 +137,8 @@ CEF_EXPORT int cef_execute_process(const struct _cef_main_args_t* args,
// be NULL (see cef_sandbox_win.h for details). // be NULL (see cef_sandbox_win.h for details).
/// ///
CEF_EXPORT int cef_initialize(const struct _cef_main_args_t* args, CEF_EXPORT int cef_initialize(const struct _cef_main_args_t* args,
const struct _cef_settings_t* settings, cef_app_t* application, const struct _cef_settings_t* settings,
cef_app_t* application,
void* windows_sandbox_info); void* windows_sandbox_info);
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=899e57614c5810d61b61d182ed823cfbd193b4d4$
//
#ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure used for asynchronous continuation of authentication // Callback structure used for asynchronous continuation of authentication
// requests. // requests.
@@ -59,7 +60,8 @@ typedef struct _cef_auth_callback_t {
// Continue the authentication request. // Continue the authentication request.
/// ///
void(CEF_CALLBACK* cont)(struct _cef_auth_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_auth_callback_t* self,
const cef_string_t* username, const cef_string_t* password); const cef_string_t* username,
const cef_string_t* password);
/// ///
// Cancel the authentication request. // Cancel the authentication request.
@@ -67,7 +69,6 @@ typedef struct _cef_auth_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_auth_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_auth_callback_t* self);
} cef_auth_callback_t; } cef_auth_callback_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_
@@ -72,7 +71,6 @@ typedef struct _cef_base_ref_counted_t {
int(CEF_CALLBACK* has_one_ref)(struct _cef_base_ref_counted_t* self); int(CEF_CALLBACK* has_one_ref)(struct _cef_base_ref_counted_t* self);
} cef_base_ref_counted_t; } cef_base_ref_counted_t;
/// ///
// All scoped framework structures must include this structure first. // All scoped framework structures must include this structure first.
/// ///
@@ -89,16 +87,14 @@ typedef struct _cef_base_scoped_t {
} cef_base_scoped_t; } cef_base_scoped_t;
// Check that the structure |s|, which is defined with a size_t member at the // Check that the structure |s|, which is defined with a size_t member at the
// top, is large enough to contain the specified member |f|. // top, is large enough to contain the specified member |f|.
#define CEF_MEMBER_EXISTS(s, f) \ #define CEF_MEMBER_EXISTS(s, f) \
((intptr_t)&((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= \ ((intptr_t) & \
*reinterpret_cast<size_t*>(s)) ((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= *reinterpret_cast<size_t*>(s))
#define CEF_MEMBER_MISSING(s, f) (!CEF_MEMBER_EXISTS(s, f) || !((s)->f)) #define CEF_MEMBER_MISSING(s, f) (!CEF_MEMBER_EXISTS(s, f) || !((s)->f))
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ff3ebc51ed5743aabac0be94caf2edeedbd413b7$
//
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
@@ -113,7 +115,8 @@ typedef struct _cef_browser_t {
void(CEF_CALLBACK* stop_load)(struct _cef_browser_t* self); void(CEF_CALLBACK* stop_load)(struct _cef_browser_t* self);
/// ///
// Returns the globally unique identifier for this browser. // Returns the globally unique identifier for this browser. This value is also
// used as the tabId for extension APIs.
/// ///
int(CEF_CALLBACK* get_identifier)(struct _cef_browser_t* self); int(CEF_CALLBACK* get_identifier)(struct _cef_browser_t* self);
@@ -150,7 +153,8 @@ typedef struct _cef_browser_t {
// Returns the frame with the specified identifier, or NULL if not found. // Returns the frame with the specified identifier, or NULL if not found.
/// ///
struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)( struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)(
struct _cef_browser_t* self, int64 identifier); struct _cef_browser_t* self,
int64 identifier);
/// ///
// Returns the frame with the specified name, or NULL if not found. // Returns the frame with the specified name, or NULL if not found.
@@ -167,7 +171,8 @@ typedef struct _cef_browser_t {
// Returns the identifiers of all existing frames. // Returns the identifiers of all existing frames.
/// ///
void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self, void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self,
size_t* identifiersCount, int64* identifiers); size_t* identifiersCount,
int64* identifiers);
/// ///
// Returns the names of all existing frames. // Returns the names of all existing frames.
@@ -179,12 +184,12 @@ typedef struct _cef_browser_t {
// Send a message to the specified |target_process|. Returns true (1) if the // Send a message to the specified |target_process|. Returns true (1) if the
// message was sent successfully. // message was sent successfully.
/// ///
int (CEF_CALLBACK *send_process_message)(struct _cef_browser_t* self, int(CEF_CALLBACK* send_process_message)(
struct _cef_browser_t* self,
cef_process_id_t target_process, cef_process_id_t target_process,
struct _cef_process_message_t* message); struct _cef_process_message_t* message);
} cef_browser_t; } cef_browser_t;
/// ///
// Callback structure for cef_browser_host_t::RunFileDialog. The functions of // Callback structure for cef_browser_host_t::RunFileDialog. The functions of
// this structure will be called on the browser process UI thread. // this structure will be called on the browser process UI thread.
@@ -203,11 +208,11 @@ typedef struct _cef_run_file_dialog_callback_t {
// dialog mode. If the selection was cancelled |file_paths| will be NULL. // dialog mode. If the selection was cancelled |file_paths| will be NULL.
/// ///
void(CEF_CALLBACK* on_file_dialog_dismissed)( void(CEF_CALLBACK* on_file_dialog_dismissed)(
struct _cef_run_file_dialog_callback_t* self, int selected_accept_filter, struct _cef_run_file_dialog_callback_t* self,
int selected_accept_filter,
cef_string_list_t file_paths); cef_string_list_t file_paths);
} cef_run_file_dialog_callback_t; } cef_run_file_dialog_callback_t;
/// ///
// Callback structure for cef_browser_host_t::GetNavigationEntries. The // Callback structure for cef_browser_host_t::GetNavigationEntries. The
// functions of this structure will be called on the browser process UI thread. // functions of this structure will be called on the browser process UI thread.
@@ -226,11 +231,12 @@ typedef struct _cef_navigation_entry_visitor_t {
// the total number of entries. // the total number of entries.
/// ///
int(CEF_CALLBACK* visit)(struct _cef_navigation_entry_visitor_t* self, int(CEF_CALLBACK* visit)(struct _cef_navigation_entry_visitor_t* self,
struct _cef_navigation_entry_t* entry, int current, int index, struct _cef_navigation_entry_t* entry,
int current,
int index,
int total); int total);
} cef_navigation_entry_visitor_t; } cef_navigation_entry_visitor_t;
/// ///
// Callback structure for cef_browser_host_t::PrintToPDF. The functions of this // Callback structure for cef_browser_host_t::PrintToPDF. The functions of this
// structure will be called on the browser process UI thread. // structure will be called on the browser process UI thread.
@@ -247,11 +253,11 @@ typedef struct _cef_pdf_print_callback_t {
// successfully or false (0) otherwise. // successfully or false (0) otherwise.
/// ///
void(CEF_CALLBACK* on_pdf_print_finished)( void(CEF_CALLBACK* on_pdf_print_finished)(
struct _cef_pdf_print_callback_t* self, const cef_string_t* path, struct _cef_pdf_print_callback_t* self,
const cef_string_t* path,
int ok); int ok);
} cef_pdf_print_callback_t; } cef_pdf_print_callback_t;
/// ///
// Callback structure for cef_browser_host_t::DownloadImage. The functions of // Callback structure for cef_browser_host_t::DownloadImage. The functions of
// this structure will be called on the browser process UI thread. // this structure will be called on the browser process UI thread.
@@ -270,11 +276,11 @@ typedef struct _cef_download_image_callback_t {
/// ///
void(CEF_CALLBACK* on_download_image_finished)( void(CEF_CALLBACK* on_download_image_finished)(
struct _cef_download_image_callback_t* self, struct _cef_download_image_callback_t* self,
const cef_string_t* image_url, int http_status_code, const cef_string_t* image_url,
int http_status_code,
struct _cef_image_t* image); struct _cef_image_t* image);
} cef_download_image_callback_t; } cef_download_image_callback_t;
/// ///
// Structure used to represent the browser process aspects of a browser window. // Structure used to represent the browser process aspects of a browser window.
// The functions of this structure can only be called in the browser process. // The functions of this structure can only be called in the browser process.
@@ -385,9 +391,12 @@ typedef struct _cef_browser_host_t {
// dismissed or immediately if another dialog is already pending. The dialog // dismissed or immediately if another dialog is already pending. The dialog
// will be initiated asynchronously on the UI thread. // will be initiated asynchronously on the UI thread.
/// ///
void (CEF_CALLBACK *run_file_dialog)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* run_file_dialog)(
cef_file_dialog_mode_t mode, const cef_string_t* title, struct _cef_browser_host_t* self,
const cef_string_t* default_file_path, cef_string_list_t accept_filters, cef_file_dialog_mode_t mode,
const cef_string_t* title,
const cef_string_t* default_file_path,
cef_string_list_t accept_filters,
int selected_accept_filter, int selected_accept_filter,
struct _cef_run_file_dialog_callback_t* callback); struct _cef_run_file_dialog_callback_t* callback);
@@ -409,9 +418,13 @@ typedef struct _cef_browser_host_t {
// unlimited. If |bypass_cache| is true (1) then |image_url| is requested from // unlimited. If |bypass_cache| is true (1) then |image_url| is requested from
// the server even if it is present in the browser cache. // the server even if it is present in the browser cache.
/// ///
void (CEF_CALLBACK *download_image)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* download_image)(
const cef_string_t* image_url, int is_favicon, uint32 max_image_size, struct _cef_browser_host_t* self,
int bypass_cache, struct _cef_download_image_callback_t* callback); const cef_string_t* image_url,
int is_favicon,
uint32 max_image_size,
int bypass_cache,
struct _cef_download_image_callback_t* callback);
/// ///
// Print the current browser contents. // Print the current browser contents.
@@ -424,21 +437,28 @@ typedef struct _cef_browser_host_t {
// |path| when done. For PDF printing to work on Linux you must implement the // |path| when done. For PDF printing to work on Linux you must implement the
// cef_print_handler_t::GetPdfPaperSize function. // cef_print_handler_t::GetPdfPaperSize function.
/// ///
void (CEF_CALLBACK *print_to_pdf)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* print_to_pdf)(
struct _cef_browser_host_t* self,
const cef_string_t* path, const cef_string_t* path,
const struct _cef_pdf_print_settings_t* settings, const struct _cef_pdf_print_settings_t* settings,
struct _cef_pdf_print_callback_t* callback); struct _cef_pdf_print_callback_t* callback);
/// ///
// Search for |searchText|. |identifier| can be used to have multiple searches // Search for |searchText|. |identifier| must be a unique ID and these IDs
// running simultaniously. |forward| indicates whether to search forward or // must strictly increase so that newer requests always have greater IDs than
// backward within the page. |matchCase| indicates whether the search should // older requests. If |identifier| is zero or less than the previous ID value
// be case-sensitive. |findNext| indicates whether this is the first request // then it will be automatically assigned a new valid ID. |forward| indicates
// or a follow-up. The cef_find_handler_t instance, if any, returned via // whether to search forward or backward within the page. |matchCase|
// cef_client_t::GetFindHandler will be called to report find results. // indicates whether the search should be case-sensitive. |findNext| indicates
// whether this is the first request or a follow-up. The cef_find_handler_t
// instance, if any, returned via cef_client_t::GetFindHandler will be called
// to report find results.
/// ///
void (CEF_CALLBACK *find)(struct _cef_browser_host_t* self, int identifier, void(CEF_CALLBACK* find)(struct _cef_browser_host_t* self,
const cef_string_t* searchText, int forward, int matchCase, int identifier,
const cef_string_t* searchText,
int forward,
int matchCase,
int findNext); int findNext);
/// ///
@@ -456,7 +476,8 @@ typedef struct _cef_browser_host_t {
// inspected. The |windowInfo| parameter will be ignored if this browser is // inspected. The |windowInfo| parameter will be ignored if this browser is
// wrapped in a cef_browser_view_t. // wrapped in a cef_browser_view_t.
/// ///
void (CEF_CALLBACK *show_dev_tools)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* show_dev_tools)(
struct _cef_browser_host_t* self,
const struct _cef_window_info_t* windowInfo, const struct _cef_window_info_t* windowInfo,
struct _cef_client_t* client, struct _cef_client_t* client,
const struct _cef_browser_settings_t* settings, const struct _cef_browser_settings_t* settings,
@@ -479,14 +500,17 @@ typedef struct _cef_browser_host_t {
// navigation entry will be sent, otherwise all navigation entries will be // navigation entry will be sent, otherwise all navigation entries will be
// sent. // sent.
/// ///
void (CEF_CALLBACK *get_navigation_entries)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* get_navigation_entries)(
struct _cef_navigation_entry_visitor_t* visitor, int current_only); struct _cef_browser_host_t* self,
struct _cef_navigation_entry_visitor_t* visitor,
int current_only);
/// ///
// Set whether mouse cursor change is disabled. // Set whether mouse cursor change is disabled.
/// ///
void(CEF_CALLBACK* set_mouse_cursor_change_disabled)( void(CEF_CALLBACK* set_mouse_cursor_change_disabled)(
struct _cef_browser_host_t* self, int disabled); struct _cef_browser_host_t* self,
int disabled);
/// ///
// Returns true (1) if mouse cursor change is disabled. // Returns true (1) if mouse cursor change is disabled.
@@ -557,16 +581,21 @@ typedef struct _cef_browser_host_t {
// Send a mouse click event to the browser. The |x| and |y| coordinates are // Send a mouse click event to the browser. The |x| and |y| coordinates are
// relative to the upper-left corner of the view. // relative to the upper-left corner of the view.
/// ///
void (CEF_CALLBACK *send_mouse_click_event)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* send_mouse_click_event)(
const struct _cef_mouse_event_t* event, cef_mouse_button_type_t type, struct _cef_browser_host_t* self,
int mouseUp, int clickCount); const struct _cef_mouse_event_t* event,
cef_mouse_button_type_t type,
int mouseUp,
int clickCount);
/// ///
// Send a mouse move event to the browser. The |x| and |y| coordinates are // Send a mouse move event to the browser. The |x| and |y| coordinates are
// relative to the upper-left corner of the view. // relative to the upper-left corner of the view.
/// ///
void (CEF_CALLBACK *send_mouse_move_event)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* send_mouse_move_event)(
const struct _cef_mouse_event_t* event, int mouseLeave); struct _cef_browser_host_t* self,
const struct _cef_mouse_event_t* event,
int mouseLeave);
/// ///
// Send a mouse wheel event to the browser. The |x| and |y| coordinates are // Send a mouse wheel event to the browser. The |x| and |y| coordinates are
@@ -575,8 +604,11 @@ typedef struct _cef_browser_host_t {
// In order to scroll inside select popups with window rendering disabled // In order to scroll inside select popups with window rendering disabled
// cef_render_handler_t::GetScreenPoint should be implemented properly. // cef_render_handler_t::GetScreenPoint should be implemented properly.
/// ///
void (CEF_CALLBACK *send_mouse_wheel_event)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* send_mouse_wheel_event)(
const struct _cef_mouse_event_t* event, int deltaX, int deltaY); struct _cef_browser_host_t* self,
const struct _cef_mouse_event_t* event,
int deltaX,
int deltaY);
/// ///
// Send a focus event to the browser. // Send a focus event to the browser.
@@ -587,8 +619,7 @@ typedef struct _cef_browser_host_t {
/// ///
// Send a capture lost event to the browser. // Send a capture lost event to the browser.
/// ///
void (CEF_CALLBACK *send_capture_lost_event)( void(CEF_CALLBACK* send_capture_lost_event)(struct _cef_browser_host_t* self);
struct _cef_browser_host_t* self);
/// ///
// Notify the browser that the window hosting it is about to be moved or // Notify the browser that the window hosting it is about to be moved or
@@ -615,7 +646,8 @@ typedef struct _cef_browser_host_t {
// set at browser creation via cef_browser_tSettings.windowless_frame_rate. // set at browser creation via cef_browser_tSettings.windowless_frame_rate.
/// ///
void(CEF_CALLBACK* set_windowless_frame_rate)( void(CEF_CALLBACK* set_windowless_frame_rate)(
struct _cef_browser_host_t* self, int frame_rate); struct _cef_browser_host_t* self,
int frame_rate);
/// ///
// Begins a new composition or updates the existing composition. Blink has a // Begins a new composition or updates the existing composition. Blink has a
@@ -640,8 +672,10 @@ typedef struct _cef_browser_host_t {
// //
// This function is only used when window rendering is disabled. // This function is only used when window rendering is disabled.
/// ///
void (CEF_CALLBACK *ime_set_composition)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* ime_set_composition)(
const cef_string_t* text, size_t underlinesCount, struct _cef_browser_host_t* self,
const cef_string_t* text,
size_t underlinesCount,
cef_composition_underline_t const* underlines, cef_composition_underline_t const* underlines,
const cef_range_t* replacement_range, const cef_range_t* replacement_range,
const cef_range_t* selection_range); const cef_range_t* selection_range);
@@ -656,7 +690,8 @@ typedef struct _cef_browser_host_t {
// used when window rendering is disabled. // used when window rendering is disabled.
/// ///
void(CEF_CALLBACK* ime_commit_text)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* ime_commit_text)(struct _cef_browser_host_t* self,
const cef_string_t* text, const cef_range_t* replacement_range, const cef_string_t* text,
const cef_range_t* replacement_range,
int relative_cursor_pos); int relative_cursor_pos);
/// ///
@@ -666,7 +701,8 @@ typedef struct _cef_browser_host_t {
// function is only used when window rendering is disabled. // function is only used when window rendering is disabled.
/// ///
void(CEF_CALLBACK* ime_finish_composing_text)( void(CEF_CALLBACK* ime_finish_composing_text)(
struct _cef_browser_host_t* self, int keep_selection); struct _cef_browser_host_t* self,
int keep_selection);
/// ///
// Cancels the existing composition and discards the composition node contents // Cancels the existing composition and discards the composition node contents
@@ -684,7 +720,8 @@ typedef struct _cef_browser_host_t {
// cef_render_handler_t::StartDragging). This function is only used when // cef_render_handler_t::StartDragging). This function is only used when
// window rendering is disabled. // window rendering is disabled.
/// ///
void (CEF_CALLBACK *drag_target_drag_enter)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* drag_target_drag_enter)(
struct _cef_browser_host_t* self,
struct _cef_drag_data_t* drag_data, struct _cef_drag_data_t* drag_data,
const struct _cef_mouse_event_t* event, const struct _cef_mouse_event_t* event,
cef_drag_operations_mask_t allowed_ops); cef_drag_operations_mask_t allowed_ops);
@@ -695,7 +732,8 @@ typedef struct _cef_browser_host_t {
// DragTargetDragLeave/DragTargetDrop). This function is only used when window // DragTargetDragLeave/DragTargetDrop). This function is only used when window
// rendering is disabled. // rendering is disabled.
/// ///
void (CEF_CALLBACK *drag_target_drag_over)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* drag_target_drag_over)(
struct _cef_browser_host_t* self,
const struct _cef_mouse_event_t* event, const struct _cef_mouse_event_t* event,
cef_drag_operations_mask_t allowed_ops); cef_drag_operations_mask_t allowed_ops);
@@ -726,7 +764,9 @@ typedef struct _cef_browser_host_t {
// disabled. // disabled.
/// ///
void(CEF_CALLBACK* drag_source_ended_at)(struct _cef_browser_host_t* self, void(CEF_CALLBACK* drag_source_ended_at)(struct _cef_browser_host_t* self,
int x, int y, cef_drag_operations_mask_t op); int x,
int y,
cef_drag_operations_mask_t op);
/// ///
// Call this function when the drag operation started by a // Call this function when the drag operation started by a
@@ -745,8 +785,59 @@ typedef struct _cef_browser_host_t {
/// ///
struct _cef_navigation_entry_t*(CEF_CALLBACK* get_visible_navigation_entry)( struct _cef_navigation_entry_t*(CEF_CALLBACK* get_visible_navigation_entry)(
struct _cef_browser_host_t* self); struct _cef_browser_host_t* self);
} cef_browser_host_t;
///
// Set accessibility state for all frames. |accessibility_state| may be
// default, enabled or disabled. If |accessibility_state| is STATE_DEFAULT
// then accessibility will be disabled by default and the state may be further
// controlled with the "force-renderer-accessibility" and "disable-renderer-
// accessibility" command-line switches. If |accessibility_state| is
// STATE_ENABLED then accessibility will be enabled. If |accessibility_state|
// is STATE_DISABLED then accessibility will be completely disabled.
//
// For windowed browsers accessibility will be enabled in Complete mode (which
// corresponds to kAccessibilityModeComplete in Chromium). In this mode all
// platform accessibility objects will be created and managed by Chromium's
// internal implementation. The client needs only to detect the screen reader
// and call this function appropriately. For example, on macOS the client can
// handle the @"AXEnhancedUserStructure" accessibility attribute to detect
// VoiceOver state changes and on Windows the client can handle WM_GETOBJECT
// with OBJID_CLIENT to detect accessibility readers.
//
// For windowless browsers accessibility will be enabled in TreeOnly mode
// (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In
// this mode renderer accessibility is enabled, the full tree is computed, and
// events are passed to CefAccessibiltyHandler, but platform accessibility
// objects are not created. The client may implement platform accessibility
// objects using CefAccessibiltyHandler callbacks if desired.
///
void(CEF_CALLBACK* set_accessibility_state)(struct _cef_browser_host_t* self,
cef_state_t accessibility_state);
///
// Enable notifications of auto resize via
// cef_display_handler_t::OnAutoResize. Notifications are disabled by default.
// |min_size| and |max_size| define the range of allowed sizes.
///
void(CEF_CALLBACK* set_auto_resize_enabled)(struct _cef_browser_host_t* self,
int enabled,
const cef_size_t* min_size,
const cef_size_t* max_size);
///
// Returns the extension hosted in this browser or NULL if no extension is
// hosted. See cef_request_tContext::LoadExtension for details.
///
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
struct _cef_browser_host_t* self);
///
// Returns true (1) if this browser is hosting an extension background script.
// Background hosts do not have a window and are not displayable. See
// cef_request_tContext::LoadExtension for details.
///
int(CEF_CALLBACK* is_background_host)(struct _cef_browser_host_t* self);
} cef_browser_host_t;
/// ///
// Create a new browser window using the window parameters specified by // Create a new browser window using the window parameters specified by
@@ -756,8 +847,10 @@ typedef struct _cef_browser_host_t {
// thread and will not block. // thread and will not block.
/// ///
CEF_EXPORT int cef_browser_host_create_browser( CEF_EXPORT int cef_browser_host_create_browser(
const cef_window_info_t* windowInfo, struct _cef_client_t* client, const cef_window_info_t* windowInfo,
const cef_string_t* url, const struct _cef_browser_settings_t* settings, struct _cef_client_t* client,
const cef_string_t* url,
const struct _cef_browser_settings_t* settings,
struct _cef_request_context_t* request_context); struct _cef_request_context_t* request_context);
/// ///
@@ -766,11 +859,12 @@ CEF_EXPORT int cef_browser_host_create_browser(
// used. This function can only be called on the browser process UI thread. // used. This function can only be called on the browser process UI thread.
/// ///
CEF_EXPORT cef_browser_t* cef_browser_host_create_browser_sync( CEF_EXPORT cef_browser_t* cef_browser_host_create_browser_sync(
const cef_window_info_t* windowInfo, struct _cef_client_t* client, const cef_window_info_t* windowInfo,
const cef_string_t* url, const struct _cef_browser_settings_t* settings, struct _cef_client_t* client,
const cef_string_t* url,
const struct _cef_browser_settings_t* settings,
struct _cef_request_context_t* request_context); struct _cef_request_context_t* request_context);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=437eae6454931ccf2687f60f8050fcf216966e09$
//
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
@@ -47,7 +49,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to implement browser process callbacks. The functions of this // Structure used to implement browser process callbacks. The functions of this
// structure will be called on the browser process main thread unless otherwise // structure will be called on the browser process main thread unless otherwise
@@ -109,10 +110,10 @@ typedef struct _cef_browser_process_handler_t {
// cancelled. // cancelled.
/// ///
void(CEF_CALLBACK* on_schedule_message_pump_work)( void(CEF_CALLBACK* on_schedule_message_pump_work)(
struct _cef_browser_process_handler_t* self, int64 delay_ms); struct _cef_browser_process_handler_t* self,
int64 delay_ms);
} cef_browser_process_handler_t; } cef_browser_process_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=41c1f253d23f062f96debd7184f3b5e5dac03a89$
//
#ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Generic callback structure used for asynchronous continuation. // Generic callback structure used for asynchronous continuation.
/// ///
@@ -65,7 +66,6 @@ typedef struct _cef_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_callback_t* self);
} cef_callback_t; } cef_callback_t;
/// ///
// Generic callback structure used for asynchronous completion. // Generic callback structure used for asynchronous completion.
/// ///
@@ -81,7 +81,6 @@ typedef struct _cef_completion_callback_t {
void(CEF_CALLBACK* on_complete)(struct _cef_completion_callback_t* self); void(CEF_CALLBACK* on_complete)(struct _cef_completion_callback_t* self);
} cef_completion_callback_t; } cef_completion_callback_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=2a93a2e7a17c81d39ad1b8c1c1aa93d5d90b1100$
//
#ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
@@ -59,7 +61,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to provide handler implementations. // Implement this structure to provide handler implementations.
/// ///
@@ -163,12 +164,13 @@ typedef struct _cef_client_t {
// (1) if the message was handled or false (0) otherwise. Do not keep a // (1) if the message was handled or false (0) otherwise. Do not keep a
// reference to or attempt to access the message outside of this callback. // reference to or attempt to access the message outside of this callback.
/// ///
int (CEF_CALLBACK *on_process_message_received)(struct _cef_client_t* self, int(CEF_CALLBACK* on_process_message_received)(
struct _cef_browser_t* browser, cef_process_id_t source_process, struct _cef_client_t* self,
struct _cef_browser_t* browser,
cef_process_id_t source_process,
struct _cef_process_message_t* message); struct _cef_process_message_t* message);
} cef_client_t; } cef_client_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=4e9afcf5b6d90535ea4b98c3493e242244373f9e$
//
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to create and/or parse command line arguments. Arguments with // Structure used to create and/or parse command line arguments. Arguments with
// '--', '-' and, on Windows, '/' prefixes are considered switches. Switches // '--', '-' and, on Windows, '/' prefixes are considered switches. Switches
@@ -85,7 +86,8 @@ typedef struct _cef_command_line_t {
// supported on non-Windows platforms. // supported on non-Windows platforms.
/// ///
void(CEF_CALLBACK* init_from_argv)(struct _cef_command_line_t* self, void(CEF_CALLBACK* init_from_argv)(struct _cef_command_line_t* self,
int argc, const char* const* argv); int argc,
const char* const* argv);
/// ///
// Initialize the command line with the string returned by calling // Initialize the command line with the string returned by calling
@@ -145,7 +147,8 @@ typedef struct _cef_command_line_t {
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_switch_value)( cef_string_userfree_t(CEF_CALLBACK* get_switch_value)(
struct _cef_command_line_t* self, const cef_string_t* name); struct _cef_command_line_t* self,
const cef_string_t* name);
/// ///
// Returns the map of switch names and values. If a switch has no value an // Returns the map of switch names and values. If a switch has no value an
@@ -164,8 +167,8 @@ typedef struct _cef_command_line_t {
/// ///
// Add a switch with the specified value to the end of the command line. // Add a switch with the specified value to the end of the command line.
/// ///
void (CEF_CALLBACK *append_switch_with_value)( void(CEF_CALLBACK* append_switch_with_value)(struct _cef_command_line_t* self,
struct _cef_command_line_t* self, const cef_string_t* name, const cef_string_t* name,
const cef_string_t* value); const cef_string_t* value);
/// ///
@@ -193,7 +196,6 @@ typedef struct _cef_command_line_t {
const cef_string_t* wrapper); const cef_string_t* wrapper);
} cef_command_line_t; } cef_command_line_t;
/// ///
// Create a new cef_command_line_t instance. // Create a new cef_command_line_t instance.
/// ///
@@ -205,7 +207,6 @@ CEF_EXPORT cef_command_line_t* cef_command_line_create();
/// ///
CEF_EXPORT cef_command_line_t* cef_command_line_get_global(); CEF_EXPORT cef_command_line_t* cef_command_line_get_global();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=fdd4de9c81a7b01a94aee020b2c314e519cd8e55$
//
#ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
@@ -63,7 +65,8 @@ typedef struct _cef_run_context_menu_callback_t {
// |event_flags|. // |event_flags|.
/// ///
void(CEF_CALLBACK* cont)(struct _cef_run_context_menu_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_run_context_menu_callback_t* self,
int command_id, cef_event_flags_t event_flags); int command_id,
cef_event_flags_t event_flags);
/// ///
// Cancel context menu display. // Cancel context menu display.
@@ -71,7 +74,6 @@ typedef struct _cef_run_context_menu_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_run_context_menu_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_run_context_menu_callback_t* self);
} cef_run_context_menu_callback_t; } cef_run_context_menu_callback_t;
/// ///
// Implement this structure to handle context menu events. The functions of this // Implement this structure to handle context menu events. The functions of this
// structure will be called on the UI thread. // structure will be called on the UI thread.
@@ -90,8 +92,10 @@ typedef struct _cef_context_menu_handler_t {
// |model| outside of this callback. // |model| outside of this callback.
/// ///
void(CEF_CALLBACK* on_before_context_menu)( void(CEF_CALLBACK* on_before_context_menu)(
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser, struct _cef_context_menu_handler_t* self,
struct _cef_frame_t* frame, struct _cef_context_menu_params_t* params, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_context_menu_params_t* params,
struct _cef_menu_model_t* model); struct _cef_menu_model_t* model);
/// ///
@@ -102,8 +106,10 @@ typedef struct _cef_context_menu_handler_t {
// selected command ID. For default display return false (0). Do not keep // selected command ID. For default display return false (0). Do not keep
// references to |params| or |model| outside of this callback. // references to |params| or |model| outside of this callback.
/// ///
int (CEF_CALLBACK *run_context_menu)(struct _cef_context_menu_handler_t* self, int(CEF_CALLBACK* run_context_menu)(
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_context_menu_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_context_menu_params_t* params, struct _cef_context_menu_params_t* params,
struct _cef_menu_model_t* model, struct _cef_menu_model_t* model,
struct _cef_run_context_menu_callback_t* callback); struct _cef_run_context_menu_callback_t* callback);
@@ -118,20 +124,23 @@ typedef struct _cef_context_menu_handler_t {
// this callback. // this callback.
/// ///
int(CEF_CALLBACK* on_context_menu_command)( int(CEF_CALLBACK* on_context_menu_command)(
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser, struct _cef_context_menu_handler_t* self,
struct _cef_frame_t* frame, struct _cef_context_menu_params_t* params, struct _cef_browser_t* browser,
int command_id, cef_event_flags_t event_flags); struct _cef_frame_t* frame,
struct _cef_context_menu_params_t* params,
int command_id,
cef_event_flags_t event_flags);
/// ///
// Called when the context menu is dismissed irregardless of whether the menu // Called when the context menu is dismissed irregardless of whether the menu
// was NULL or a command was selected. // was NULL or a command was selected.
/// ///
void(CEF_CALLBACK* on_context_menu_dismissed)( void(CEF_CALLBACK* on_context_menu_dismissed)(
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser, struct _cef_context_menu_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_frame_t* frame); struct _cef_frame_t* frame);
} cef_context_menu_handler_t; } cef_context_menu_handler_t;
/// ///
// Provides information about the context menu state. The ethods of this // Provides information about the context menu state. The ethods of this
// structure can only be accessed on browser process the UI thread. // structure can only be accessed on browser process the UI thread.
@@ -257,7 +266,8 @@ typedef struct _cef_context_menu_params_t {
// is one. // is one.
/// ///
int(CEF_CALLBACK* get_dictionary_suggestions)( int(CEF_CALLBACK* get_dictionary_suggestions)(
struct _cef_context_menu_params_t* self, cef_string_list_t suggestions); struct _cef_context_menu_params_t* self,
cef_string_list_t suggestions);
/// ///
// Returns true (1) if the context menu was invoked on an editable node. // Returns true (1) if the context menu was invoked on an editable node.
@@ -291,7 +301,6 @@ typedef struct _cef_context_menu_params_t {
int(CEF_CALLBACK* is_pepper_menu)(struct _cef_context_menu_params_t* self); int(CEF_CALLBACK* is_pepper_menu)(struct _cef_context_menu_params_t* self);
} cef_context_menu_params_t; } cef_context_menu_params_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=e0605a0c9918e225b9282b6d5e6138a7d697945b$
//
#ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
@@ -65,8 +67,10 @@ typedef struct _cef_cookie_manager_t {
// NULL it will be executed asnychronously on the IO thread after the change // NULL it will be executed asnychronously on the IO thread after the change
// has been applied. Must be called before any cookies are accessed. // has been applied. Must be called before any cookies are accessed.
/// ///
void (CEF_CALLBACK *set_supported_schemes)(struct _cef_cookie_manager_t* self, void(CEF_CALLBACK* set_supported_schemes)(
cef_string_list_t schemes, struct _cef_completion_callback_t* callback); struct _cef_cookie_manager_t* self,
cef_string_list_t schemes,
struct _cef_completion_callback_t* callback);
/// ///
// Visit all cookies on the IO thread. The returned cookies are ordered by // Visit all cookies on the IO thread. The returned cookies are ordered by
@@ -84,7 +88,8 @@ typedef struct _cef_cookie_manager_t {
// Returns false (0) if cookies cannot be accessed. // Returns false (0) if cookies cannot be accessed.
/// ///
int(CEF_CALLBACK* visit_url_cookies)(struct _cef_cookie_manager_t* self, int(CEF_CALLBACK* visit_url_cookies)(struct _cef_cookie_manager_t* self,
const cef_string_t* url, int includeHttpOnly, const cef_string_t* url,
int includeHttpOnly,
struct _cef_cookie_visitor_t* visitor); struct _cef_cookie_visitor_t* visitor);
/// ///
@@ -97,7 +102,8 @@ typedef struct _cef_cookie_manager_t {
// false (0) if an invalid URL is specified or if cookies cannot be accessed. // false (0) if an invalid URL is specified or if cookies cannot be accessed.
/// ///
int(CEF_CALLBACK* set_cookie)(struct _cef_cookie_manager_t* self, int(CEF_CALLBACK* set_cookie)(struct _cef_cookie_manager_t* self,
const cef_string_t* url, const struct _cef_cookie_t* cookie, const cef_string_t* url,
const struct _cef_cookie_t* cookie,
struct _cef_set_cookie_callback_t* callback); struct _cef_set_cookie_callback_t* callback);
/// ///
@@ -111,8 +117,10 @@ typedef struct _cef_cookie_manager_t {
// or if cookies cannot be accessed. Cookies can alternately be deleted using // or if cookies cannot be accessed. Cookies can alternately be deleted using
// the Visit*Cookies() functions. // the Visit*Cookies() functions.
/// ///
int (CEF_CALLBACK *delete_cookies)(struct _cef_cookie_manager_t* self, int(CEF_CALLBACK* delete_cookies)(
const cef_string_t* url, const cef_string_t* cookie_name, struct _cef_cookie_manager_t* self,
const cef_string_t* url,
const cef_string_t* cookie_name,
struct _cef_delete_cookies_callback_t* callback); struct _cef_delete_cookies_callback_t* callback);
/// ///
@@ -125,8 +133,10 @@ typedef struct _cef_cookie_manager_t {
// asnychronously on the IO thread after the manager's storage has been // asnychronously on the IO thread after the manager's storage has been
// initialized. Returns false (0) if cookies cannot be accessed. // initialized. Returns false (0) if cookies cannot be accessed.
/// ///
int (CEF_CALLBACK *set_storage_path)(struct _cef_cookie_manager_t* self, int(CEF_CALLBACK* set_storage_path)(
const cef_string_t* path, int persist_session_cookies, struct _cef_cookie_manager_t* self,
const cef_string_t* path,
int persist_session_cookies,
struct _cef_completion_callback_t* callback); struct _cef_completion_callback_t* callback);
/// ///
@@ -138,7 +148,6 @@ typedef struct _cef_cookie_manager_t {
struct _cef_completion_callback_t* callback); struct _cef_completion_callback_t* callback);
} cef_cookie_manager_t; } cef_cookie_manager_t;
/// ///
// Returns the global cookie manager. By default data will be stored at // Returns the global cookie manager. By default data will be stored at
// CefSettings.cache_path if specified or in memory otherwise. If |callback| is // CefSettings.cache_path if specified or in memory otherwise. If |callback| is
@@ -160,10 +169,10 @@ CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_get_global_manager(
// manager's storage has been initialized. // manager's storage has been initialized.
/// ///
CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_create_manager( CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_create_manager(
const cef_string_t* path, int persist_session_cookies, const cef_string_t* path,
int persist_session_cookies,
struct _cef_completion_callback_t* callback); struct _cef_completion_callback_t* callback);
/// ///
// Structure to implement for visiting cookie values. The functions of this // Structure to implement for visiting cookie values. The functions of this
// structure will always be called on the IO thread. // structure will always be called on the IO thread.
@@ -182,11 +191,12 @@ typedef struct _cef_cookie_visitor_t {
// called if no cookies are found. // called if no cookies are found.
/// ///
int(CEF_CALLBACK* visit)(struct _cef_cookie_visitor_t* self, int(CEF_CALLBACK* visit)(struct _cef_cookie_visitor_t* self,
const struct _cef_cookie_t* cookie, int count, int total, const struct _cef_cookie_t* cookie,
int count,
int total,
int* deleteCookie); int* deleteCookie);
} cef_cookie_visitor_t; } cef_cookie_visitor_t;
/// ///
// Structure to implement to be notified of asynchronous completion via // Structure to implement to be notified of asynchronous completion via
// cef_cookie_manager_t::set_cookie(). // cef_cookie_manager_t::set_cookie().
@@ -205,7 +215,6 @@ typedef struct _cef_set_cookie_callback_t {
int success); int success);
} cef_set_cookie_callback_t; } cef_set_cookie_callback_t;
/// ///
// Structure to implement to be notified of asynchronous completion via // Structure to implement to be notified of asynchronous completion via
// cef_cookie_manager_t::delete_cookies(). // cef_cookie_manager_t::delete_cookies().
@@ -224,7 +233,6 @@ typedef struct _cef_delete_cookies_callback_t {
int num_deleted); int num_deleted);
} cef_delete_cookies_callback_t; } cef_delete_cookies_callback_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=0a8f009404aedce3f63f83864f754df60c36b293$
//
#ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Crash reporting is configured using an INI-style config file named // Crash reporting is configured using an INI-style config file named
// "crash_reporter.cfg". On Windows and Linux this file must be placed next to // "crash_reporter.cfg". On Windows and Linux this file must be placed next to

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ddf4110dadc49faf08ac2744d851511c41ca403f$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure for asynchronous continuation of file dialog requests. // Callback structure for asynchronous continuation of file dialog requests.
/// ///
@@ -63,7 +64,8 @@ typedef struct _cef_file_dialog_callback_t {
// value is treated the same as calling cancel(). // value is treated the same as calling cancel().
/// ///
void(CEF_CALLBACK* cont)(struct _cef_file_dialog_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_file_dialog_callback_t* self,
int selected_accept_filter, cef_string_list_t file_paths); int selected_accept_filter,
cef_string_list_t file_paths);
/// ///
// Cancel the file selection. // Cancel the file selection.
@@ -71,7 +73,6 @@ typedef struct _cef_file_dialog_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_file_dialog_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_file_dialog_callback_t* self);
} cef_file_dialog_callback_t; } cef_file_dialog_callback_t;
/// ///
// Implement this structure to handle dialog events. The functions of this // Implement this structure to handle dialog events. The functions of this
// structure will be called on the browser process UI thread. // structure will be called on the browser process UI thread.
@@ -97,14 +98,17 @@ typedef struct _cef_dialog_handler_t {
// return true (1) and execute |callback| either inline or at a later time. To // return true (1) and execute |callback| either inline or at a later time. To
// display the default dialog return false (0). // display the default dialog return false (0).
/// ///
int (CEF_CALLBACK *on_file_dialog)(struct _cef_dialog_handler_t* self, int(CEF_CALLBACK* on_file_dialog)(
struct _cef_browser_t* browser, cef_file_dialog_mode_t mode, struct _cef_dialog_handler_t* self,
const cef_string_t* title, const cef_string_t* default_file_path, struct _cef_browser_t* browser,
cef_string_list_t accept_filters, int selected_accept_filter, cef_file_dialog_mode_t mode,
const cef_string_t* title,
const cef_string_t* default_file_path,
cef_string_list_t accept_filters,
int selected_accept_filter,
struct _cef_file_dialog_callback_t* callback); struct _cef_file_dialog_callback_t* callback);
} cef_dialog_handler_t; } cef_dialog_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ab31ef5d72b4b1c9809698e5fbbdae21918af713$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to browser display state. // Implement this structure to handle events related to browser display state.
// The functions of this structure will be called on the UI thread. // The functions of this structure will be called on the UI thread.
@@ -61,20 +62,23 @@ typedef struct _cef_display_handler_t {
// Called when a frame's address has changed. // Called when a frame's address has changed.
/// ///
void(CEF_CALLBACK* on_address_change)(struct _cef_display_handler_t* self, void(CEF_CALLBACK* on_address_change)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
const cef_string_t* url); const cef_string_t* url);
/// ///
// Called when the page title changes. // Called when the page title changes.
/// ///
void(CEF_CALLBACK* on_title_change)(struct _cef_display_handler_t* self, void(CEF_CALLBACK* on_title_change)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* title); struct _cef_browser_t* browser,
const cef_string_t* title);
/// ///
// Called when the page icon changes. // Called when the page icon changes.
/// ///
void(CEF_CALLBACK* on_favicon_urlchange)(struct _cef_display_handler_t* self, void(CEF_CALLBACK* on_favicon_urlchange)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, cef_string_list_t icon_urls); struct _cef_browser_t* browser,
cef_string_list_t icon_urls);
/// ///
// Called when web content in the page has toggled fullscreen mode. If // Called when web content in the page has toggled fullscreen mode. If
@@ -84,7 +88,8 @@ typedef struct _cef_display_handler_t {
// responsible for resizing the browser if desired. // responsible for resizing the browser if desired.
/// ///
void(CEF_CALLBACK* on_fullscreen_mode_change)( void(CEF_CALLBACK* on_fullscreen_mode_change)(
struct _cef_display_handler_t* self, struct _cef_browser_t* browser, struct _cef_display_handler_t* self,
struct _cef_browser_t* browser,
int fullscreen); int fullscreen);
/// ///
@@ -96,24 +101,38 @@ typedef struct _cef_display_handler_t {
// for drawing tooltips and the return value is ignored. // for drawing tooltips and the return value is ignored.
/// ///
int(CEF_CALLBACK* on_tooltip)(struct _cef_display_handler_t* self, int(CEF_CALLBACK* on_tooltip)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, cef_string_t* text); struct _cef_browser_t* browser,
cef_string_t* text);
/// ///
// Called when the browser receives a status message. |value| contains the // Called when the browser receives a status message. |value| contains the
// text that will be displayed in the status message. // text that will be displayed in the status message.
/// ///
void(CEF_CALLBACK* on_status_message)(struct _cef_display_handler_t* self, void(CEF_CALLBACK* on_status_message)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* value); struct _cef_browser_t* browser,
const cef_string_t* value);
/// ///
// Called to display a console message. Return true (1) to stop the message // Called to display a console message. Return true (1) to stop the message
// from being output to the console. // from being output to the console.
/// ///
int(CEF_CALLBACK* on_console_message)(struct _cef_display_handler_t* self, int(CEF_CALLBACK* on_console_message)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* message, struct _cef_browser_t* browser,
const cef_string_t* source, int line); cef_log_severity_t level,
} cef_display_handler_t; const cef_string_t* message,
const cef_string_t* source,
int line);
///
// Called when auto-resize is enabled via
// cef_browser_host_t::SetAutoResizeEnabled and the contents have auto-
// resized. |new_size| will be the desired size in view coordinates. Return
// true (1) if the resize was handled or false (0) for default handling.
///
int(CEF_CALLBACK* on_auto_resize)(struct _cef_display_handler_t* self,
struct _cef_browser_t* browser,
const cef_size_t* new_size);
} cef_display_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b9bef5257ecbd1933356fcc02687bf725bff9277$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
@@ -68,7 +70,6 @@ typedef struct _cef_domvisitor_t {
struct _cef_domdocument_t* document); struct _cef_domdocument_t* document);
} cef_domvisitor_t; } cef_domvisitor_t;
/// ///
// Structure used to represent a DOM document. The functions of this structure // Structure used to represent a DOM document. The functions of this structure
// should only be called on the render process main thread thread. // should only be called on the render process main thread thread.
@@ -114,7 +115,8 @@ typedef struct _cef_domdocument_t {
// Returns the document element with the specified ID value. // Returns the document element with the specified ID value.
/// ///
struct _cef_domnode_t*(CEF_CALLBACK* get_element_by_id)( struct _cef_domnode_t*(CEF_CALLBACK* get_element_by_id)(
struct _cef_domdocument_t* self, const cef_string_t* id); struct _cef_domdocument_t* self,
const cef_string_t* id);
/// ///
// Returns the node that currently has keyboard focus. // Returns the node that currently has keyboard focus.
@@ -165,10 +167,10 @@ typedef struct _cef_domdocument_t {
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_complete_url)( cef_string_userfree_t(CEF_CALLBACK* get_complete_url)(
struct _cef_domdocument_t* self, const cef_string_t* partialURL); struct _cef_domdocument_t* self,
const cef_string_t* partialURL);
} cef_domdocument_t; } cef_domdocument_t;
/// ///
// Structure used to represent a DOM node. The functions of this structure // Structure used to represent a DOM node. The functions of this structure
// should only be called on the render process main thread. // should only be called on the render process main thread.
@@ -252,8 +254,7 @@ typedef struct _cef_domnode_t {
/// ///
// Returns the parent node. // Returns the parent node.
/// ///
struct _cef_domnode_t* (CEF_CALLBACK *get_parent)( struct _cef_domnode_t*(CEF_CALLBACK* get_parent)(struct _cef_domnode_t* self);
struct _cef_domnode_t* self);
/// ///
// Returns the previous sibling node. // Returns the previous sibling node.
@@ -284,7 +285,6 @@ typedef struct _cef_domnode_t {
struct _cef_domnode_t*(CEF_CALLBACK* get_last_child)( struct _cef_domnode_t*(CEF_CALLBACK* get_last_child)(
struct _cef_domnode_t* self); struct _cef_domnode_t* self);
// The following functions are valid only for element nodes. // The following functions are valid only for element nodes.
/// ///
@@ -310,7 +310,8 @@ typedef struct _cef_domnode_t {
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_element_attribute)( cef_string_userfree_t(CEF_CALLBACK* get_element_attribute)(
struct _cef_domnode_t* self, const cef_string_t* attrName); struct _cef_domnode_t* self,
const cef_string_t* attrName);
/// ///
// Returns a map of all element attributes. // Returns a map of all element attributes.
@@ -323,7 +324,8 @@ typedef struct _cef_domnode_t {
// on success. // on success.
/// ///
int(CEF_CALLBACK* set_element_attribute)(struct _cef_domnode_t* self, int(CEF_CALLBACK* set_element_attribute)(struct _cef_domnode_t* self,
const cef_string_t* attrName, const cef_string_t* value); const cef_string_t* attrName,
const cef_string_t* value);
/// ///
// Returns the inner text of the element. // Returns the inner text of the element.
@@ -338,7 +340,6 @@ typedef struct _cef_domnode_t {
cef_rect_t(CEF_CALLBACK* get_element_bounds)(struct _cef_domnode_t* self); cef_rect_t(CEF_CALLBACK* get_element_bounds)(struct _cef_domnode_t* self);
} cef_domnode_t; } cef_domnode_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d9cedd8c411dd064eacde55a95d6e05303dea365$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure used to asynchronously continue a download. // Callback structure used to asynchronously continue a download.
/// ///
@@ -63,10 +64,10 @@ typedef struct _cef_before_download_callback_t {
// (1) if you do wish to show the default "Save As" dialog. // (1) if you do wish to show the default "Save As" dialog.
/// ///
void(CEF_CALLBACK* cont)(struct _cef_before_download_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_before_download_callback_t* self,
const cef_string_t* download_path, int show_dialog); const cef_string_t* download_path,
int show_dialog);
} cef_before_download_callback_t; } cef_before_download_callback_t;
/// ///
// Callback structure used to asynchronously cancel a download. // Callback structure used to asynchronously cancel a download.
/// ///
@@ -92,7 +93,6 @@ typedef struct _cef_download_item_callback_t {
void(CEF_CALLBACK* resume)(struct _cef_download_item_callback_t* self); void(CEF_CALLBACK* resume)(struct _cef_download_item_callback_t* self);
} cef_download_item_callback_t; } cef_download_item_callback_t;
/// ///
// Structure used to handle file downloads. The functions of this structure will // Structure used to handle file downloads. The functions of this structure will
// called on the browser process UI thread. // called on the browser process UI thread.
@@ -110,7 +110,8 @@ typedef struct _cef_download_handler_t {
// download if desired. Do not keep a reference to |download_item| outside of // download if desired. Do not keep a reference to |download_item| outside of
// this function. // this function.
/// ///
void (CEF_CALLBACK *on_before_download)(struct _cef_download_handler_t* self, void(CEF_CALLBACK* on_before_download)(
struct _cef_download_handler_t* self,
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
struct _cef_download_item_t* download_item, struct _cef_download_item_t* download_item,
const cef_string_t* suggested_name, const cef_string_t* suggested_name,
@@ -123,13 +124,13 @@ typedef struct _cef_download_handler_t {
// download if desired. Do not keep a reference to |download_item| outside of // download if desired. Do not keep a reference to |download_item| outside of
// this function. // this function.
/// ///
void (CEF_CALLBACK *on_download_updated)(struct _cef_download_handler_t* self, void(CEF_CALLBACK* on_download_updated)(
struct _cef_download_handler_t* self,
struct _cef_browser_t* browser, struct _cef_browser_t* browser,
struct _cef_download_item_t* download_item, struct _cef_download_item_t* download_item,
struct _cef_download_item_callback_t* callback); struct _cef_download_item_callback_t* callback);
} cef_download_handler_t; } cef_download_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c17ff4fd6d85b1db10dce2e1a5dbea5a4b17e4da$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to represent a download item. // Structure used to represent a download item.
/// ///
@@ -154,7 +155,6 @@ typedef struct _cef_download_item_t {
struct _cef_download_item_t* self); struct _cef_download_item_t* self);
} cef_download_item_t; } cef_download_item_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,19 +33,21 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b72ebf98f79f28a18366c037e65e98326d4a350a$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
#pragma once #pragma once
#include "include/capi/cef_base_capi.h" #include "include/capi/cef_base_capi.h"
#include "include/capi/cef_image_capi.h"
#include "include/capi/cef_stream_capi.h" #include "include/capi/cef_stream_capi.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to represent drag data. The functions of this structure may be // Structure used to represent drag data. The functions of this structure may be
// called on any thread. // called on any thread.
@@ -194,16 +196,31 @@ typedef struct _cef_drag_data_t {
// Add a file that is being dragged into the webview. // Add a file that is being dragged into the webview.
/// ///
void(CEF_CALLBACK* add_file)(struct _cef_drag_data_t* self, void(CEF_CALLBACK* add_file)(struct _cef_drag_data_t* self,
const cef_string_t* path, const cef_string_t* display_name); const cef_string_t* path,
} cef_drag_data_t; const cef_string_t* display_name);
///
// Get the image representation of drag data. May return NULL if no image
// representation is available.
///
struct _cef_image_t*(CEF_CALLBACK* get_image)(struct _cef_drag_data_t* self);
///
// Get the image hotspot (drag start location relative to image dimensions).
///
cef_point_t(CEF_CALLBACK* get_image_hotspot)(struct _cef_drag_data_t* self);
///
// Returns true (1) if an image representation of drag data is available.
///
int(CEF_CALLBACK* has_image)(struct _cef_drag_data_t* self);
} cef_drag_data_t;
/// ///
// Create a new cef_drag_data_t object. // Create a new cef_drag_data_t object.
/// ///
CEF_EXPORT cef_drag_data_t* cef_drag_data_create(); CEF_EXPORT cef_drag_data_t* cef_drag_data_create();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=88d9a33295e7fb7238bcb18b25d12906ba4cb791$
//
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to dragging. The functions // Implement this structure to handle events related to dragging. The functions
// of this structure will be called on the UI thread. // of this structure will be called on the UI thread.
@@ -64,7 +65,8 @@ typedef struct _cef_drag_handler_t {
// to cancel the drag event. // to cancel the drag event.
/// ///
int(CEF_CALLBACK* on_drag_enter)(struct _cef_drag_handler_t* self, int(CEF_CALLBACK* on_drag_enter)(struct _cef_drag_handler_t* self,
struct _cef_browser_t* browser, struct _cef_drag_data_t* dragData, struct _cef_browser_t* browser,
struct _cef_drag_data_t* dragData,
cef_drag_operations_mask_t mask); cef_drag_operations_mask_t mask);
/// ///
@@ -75,11 +77,12 @@ typedef struct _cef_drag_handler_t {
// this function will be called with an NULL vector. // this function will be called with an NULL vector.
/// ///
void(CEF_CALLBACK* on_draggable_regions_changed)( void(CEF_CALLBACK* on_draggable_regions_changed)(
struct _cef_drag_handler_t* self, struct _cef_browser_t* browser, struct _cef_drag_handler_t* self,
size_t regionsCount, cef_draggable_region_t const* regions); struct _cef_browser_t* browser,
size_t regionsCount,
cef_draggable_region_t const* regions);
} cef_drag_handler_t; } cef_drag_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -0,0 +1,130 @@
// Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool and should not edited
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=b681f766235613cce8a09617e7ffb76fee5545a2$
//
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
#pragma once
#include "include/capi/cef_base_capi.h"
#include "include/capi/cef_values_capi.h"
#ifdef __cplusplus
extern "C" {
#endif
struct _cef_extension_handler_t;
struct _cef_request_context_t;
///
// Object representing an extension. Methods may be called on any thread unless
// otherwise indicated.
///
typedef struct _cef_extension_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Returns the unique extension identifier. This is calculated based on the
// extension public key, if available, or on the extension path. See
// https://developer.chrome.com/extensions/manifest/key for details.
///
// The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_identifier)(
struct _cef_extension_t* self);
///
// Returns the absolute path to the extension directory on disk. This value
// will be prefixed with PK_DIR_RESOURCES if a relative path was passed to
// cef_request_tContext::LoadExtension.
///
// The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_path)(struct _cef_extension_t* self);
///
// Returns the extension manifest contents as a cef_dictionary_value_t object.
// See https://developer.chrome.com/extensions/manifest for details.
///
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_manifest)(
struct _cef_extension_t* self);
///
// Returns true (1) if this object is the same extension as |that| object.
// Extensions are considered the same if identifier, path and loader context
// match.
///
int(CEF_CALLBACK* is_same)(struct _cef_extension_t* self,
struct _cef_extension_t* that);
///
// Returns the handler for this extension. Will return NULL for internal
// extensions or if no handler was passed to
// cef_request_tContext::LoadExtension.
///
struct _cef_extension_handler_t*(CEF_CALLBACK* get_handler)(
struct _cef_extension_t* self);
///
// Returns the request context that loaded this extension. Will return NULL
// for internal extensions or if the extension has been unloaded. See the
// cef_request_tContext::LoadExtension documentation for more information
// about loader contexts. Must be called on the browser process UI thread.
///
struct _cef_request_context_t*(CEF_CALLBACK* get_loader_context)(
struct _cef_extension_t* self);
///
// Returns true (1) if this extension is currently loaded. Must be called on
// the browser process UI thread.
///
int(CEF_CALLBACK* is_loaded)(struct _cef_extension_t* self);
///
// Unload this extension if it is not an internal extension and is currently
// loaded. Will result in a call to
// cef_extension_tHandler::OnExtensionUnloaded on success.
///
void(CEF_CALLBACK* unload)(struct _cef_extension_t* self);
} cef_extension_t;
#ifdef __cplusplus
}
#endif
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_

View File

@@ -0,0 +1,210 @@
// Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool and should not edited
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=9ce34129b7058aaba2e2f77cd63e3edb23e70bb7$
//
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
#pragma once
#include "include/capi/cef_base_capi.h"
#include "include/capi/cef_browser_capi.h"
#include "include/capi/cef_extension_capi.h"
#include "include/capi/cef_stream_capi.h"
#ifdef __cplusplus
extern "C" {
#endif
struct _cef_client_t;
///
// Callback structure used for asynchronous continuation of
// cef_extension_tHandler::GetExtensionResource.
///
typedef struct _cef_get_extension_resource_callback_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Continue the request. Read the resource contents from |stream|.
///
void(CEF_CALLBACK* cont)(struct _cef_get_extension_resource_callback_t* self,
struct _cef_stream_reader_t* stream);
///
// Cancel the request.
///
void(CEF_CALLBACK* cancel)(
struct _cef_get_extension_resource_callback_t* self);
} cef_get_extension_resource_callback_t;
///
// Implement this structure to handle events related to browser extensions. The
// functions of this structure will be called on the UI thread. See
// cef_request_tContext::LoadExtension for information about extension loading.
///
typedef struct _cef_extension_handler_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Called if the cef_request_tContext::LoadExtension request fails. |result|
// will be the error code.
///
void(CEF_CALLBACK* on_extension_load_failed)(
struct _cef_extension_handler_t* self,
cef_errorcode_t result);
///
// Called if the cef_request_tContext::LoadExtension request succeeds.
// |extension| is the loaded extension.
///
void(CEF_CALLBACK* on_extension_loaded)(struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension);
///
// Called after the cef_extension_t::Unload request has completed.
///
void(CEF_CALLBACK* on_extension_unloaded)(
struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension);
///
// Called when an extension needs a browser to host a background script
// specified via the "background" manifest key. The browser will have no
// visible window and cannot be displayed. |extension| is the extension that
// is loading the background script. |url| is an internally generated
// reference to an HTML page that will be used to load the background script
// via a <script> src attribute. To allow creation of the browser optionally
// modify |client| and |settings| and return false (0). To cancel creation of
// the browser (and consequently cancel load of the background script) return
// true (1). Successful creation will be indicated by a call to
// cef_life_span_handler_t::OnAfterCreated, and
// cef_browser_host_t::IsBackgroundHost will return true (1) for the resulting
// browser. See https://developer.chrome.com/extensions/event_pages for more
// information about extension background script usage.
///
int(CEF_CALLBACK* on_before_background_browser)(
struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension,
const cef_string_t* url,
struct _cef_client_t** client,
struct _cef_browser_settings_t* settings);
///
// Called when an extension API (e.g. chrome.tabs.create) requests creation of
// a new browser. |extension| and |browser| are the source of the API call.
// |active_browser| may optionally be specified via the windowId property or
// returned via the get_active_browser() callback and provides the default
// |client| and |settings| values for the new browser. |index| is the position
// value optionally specified via the index property. |url| is the URL that
// will be loaded in the browser. |active| is true (1) if the new browser
// should be active when opened. To allow creation of the browser optionally
// modify |windowInfo|, |client| and |settings| and return false (0). To
// cancel creation of the browser return true (1). Successful creation will be
// indicated by a call to cef_life_span_handler_t::OnAfterCreated. Any
// modifications to |windowInfo| will be ignored if |active_browser| is
// wrapped in a cef_browser_view_t.
///
int(CEF_CALLBACK* on_before_browser)(
struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension,
struct _cef_browser_t* browser,
struct _cef_browser_t* active_browser,
int index,
const cef_string_t* url,
int active,
struct _cef_window_info_t* windowInfo,
struct _cef_client_t** client,
struct _cef_browser_settings_t* settings);
///
// Called when no tabId is specified to an extension API call that accepts a
// tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the
// source of the API call. Return the browser that will be acted on by the API
// call or return NULL to act on |browser|. The returned browser must share
// the same cef_request_tContext as |browser|. Incognito browsers should not
// be considered unless the source extension has incognito access enabled, in
// which case |include_incognito| will be true (1).
///
struct _cef_browser_t*(CEF_CALLBACK* get_active_browser)(
struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension,
struct _cef_browser_t* browser,
int include_incognito);
///
// Called when the tabId associated with |target_browser| is specified to an
// extension API call that accepts a tabId parameter (e.g. chrome.tabs.*).
// |extension| and |browser| are the source of the API call. Return true (1)
// to allow access of false (0) to deny access. Access to incognito browsers
// should not be allowed unless the source extension has incognito access
// enabled, in which case |include_incognito| will be true (1).
///
int(CEF_CALLBACK* can_access_browser)(struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension,
struct _cef_browser_t* browser,
int include_incognito,
struct _cef_browser_t* target_browser);
///
// Called to retrieve an extension resource that would normally be loaded from
// disk (e.g. if a file parameter is specified to chrome.tabs.executeScript).
// |extension| and |browser| are the source of the resource request. |file| is
// the requested relative file path. To handle the resource request return
// true (1) and execute |callback| either synchronously or asynchronously. For
// the default behavior which reads the resource from the extension directory
// on disk return false (0). Localization substitutions will not be applied to
// resources handled via this function.
///
int(CEF_CALLBACK* get_extension_resource)(
struct _cef_extension_handler_t* self,
struct _cef_extension_t* extension,
struct _cef_browser_t* browser,
const cef_string_t* file,
struct _cef_get_extension_resource_callback_t* callback);
} cef_extension_handler_t;
#ifdef __cplusplus
}
#endif
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=51f4b75a01dbf07fda0eb4bdbbe7a7f3d3b13bdb$
//
#ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Creates a directory and all parent directories if they don't already exist. // Creates a directory and all parent directories if they don't already exist.
// Returns true (1) on successful creation or if the directory already exists. // Returns true (1) on successful creation or if the directory already exists.
@@ -82,7 +83,8 @@ CEF_EXPORT int cef_create_new_temp_directory(const cef_string_t* prefix,
// or IO threads is not allowed. // or IO threads is not allowed.
/// ///
CEF_EXPORT int cef_create_temp_directory_in_directory( CEF_EXPORT int cef_create_temp_directory_in_directory(
const cef_string_t* base_dir, const cef_string_t* prefix, const cef_string_t* base_dir,
const cef_string_t* prefix,
cef_string_t* new_dir); cef_string_t* new_dir);
/// ///
@@ -109,7 +111,18 @@ CEF_EXPORT int cef_delete_file(const cef_string_t* path, int recursive);
// or IO threads is not allowed. // or IO threads is not allowed.
/// ///
CEF_EXPORT int cef_zip_directory(const cef_string_t* src_dir, CEF_EXPORT int cef_zip_directory(const cef_string_t* src_dir,
const cef_string_t* dest_file, int include_hidden_files); const cef_string_t* dest_file,
int include_hidden_files);
///
// Loads the existing "Certificate Revocation Lists" file that is managed by
// Google Chrome. This file can generally be found in Chrome's User Data
// directory (e.g. "C:\Users\[User]\AppData\Local\Google\Chrome\User Data\" on
// Windows) and is updated periodically by Chrome's component updater service.
// Must be called in the browser process after the context has been initialized.
// See https://dev.chromium.org/Home/chromium-security/crlsets for background.
///
CEF_EXPORT void cef_load_crlsets_file(const cef_string_t* path);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=200ff1e9b7fac8d0eda63bbbaec68225570bc099$
//
#ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to find results. The // Implement this structure to handle events related to find results. The
// functions of this structure will be called on the UI thread. // functions of this structure will be called on the UI thread.
@@ -65,12 +66,14 @@ typedef struct _cef_find_handler_t {
// this is the last find notification. // this is the last find notification.
/// ///
void(CEF_CALLBACK* on_find_result)(struct _cef_find_handler_t* self, void(CEF_CALLBACK* on_find_result)(struct _cef_find_handler_t* self,
struct _cef_browser_t* browser, int identifier, int count, struct _cef_browser_t* browser,
const cef_rect_t* selectionRect, int activeMatchOrdinal, int identifier,
int count,
const cef_rect_t* selectionRect,
int activeMatchOrdinal,
int finalUpdate); int finalUpdate);
} cef_find_handler_t; } cef_find_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=365c6d4385b860543225e086dc973609fbfdedc8$
//
#ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
@@ -47,7 +49,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to focus. The functions of // Implement this structure to handle events related to focus. The functions of
// this structure will be called on the UI thread. // this structure will be called on the UI thread.
@@ -65,7 +66,8 @@ typedef struct _cef_focus_handler_t {
// false (0) if the browser is giving focus to the previous component. // false (0) if the browser is giving focus to the previous component.
/// ///
void(CEF_CALLBACK* on_take_focus)(struct _cef_focus_handler_t* self, void(CEF_CALLBACK* on_take_focus)(struct _cef_focus_handler_t* self,
struct _cef_browser_t* browser, int next); struct _cef_browser_t* browser,
int next);
/// ///
// Called when the browser component is requesting focus. |source| indicates // Called when the browser component is requesting focus. |source| indicates
@@ -73,7 +75,8 @@ typedef struct _cef_focus_handler_t {
// focus to be set or true (1) to cancel setting the focus. // focus to be set or true (1) to cancel setting the focus.
/// ///
int(CEF_CALLBACK* on_set_focus)(struct _cef_focus_handler_t* self, int(CEF_CALLBACK* on_set_focus)(struct _cef_focus_handler_t* self,
struct _cef_browser_t* browser, cef_focus_source_t source); struct _cef_browser_t* browser,
cef_focus_source_t source);
/// ///
// Called when the browser component has received focus. // Called when the browser component has received focus.
@@ -82,7 +85,6 @@ typedef struct _cef_focus_handler_t {
struct _cef_browser_t* browser); struct _cef_browser_t* browser);
} cef_focus_handler_t; } cef_focus_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=9495bafa6c18cf4a250f4933c39fb2c4597e4212$
//
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
@@ -142,7 +144,8 @@ typedef struct _cef_frame_t {
// link clicks and web security restrictions may not behave as expected. // link clicks and web security restrictions may not behave as expected.
/// ///
void(CEF_CALLBACK* load_string)(struct _cef_frame_t* self, void(CEF_CALLBACK* load_string)(struct _cef_frame_t* self,
const cef_string_t* string_val, const cef_string_t* url); const cef_string_t* string_val,
const cef_string_t* url);
/// ///
// Execute a string of JavaScript code in this frame. The |script_url| // Execute a string of JavaScript code in this frame. The |script_url|
@@ -152,7 +155,8 @@ typedef struct _cef_frame_t {
// reporting. // reporting.
/// ///
void(CEF_CALLBACK* execute_java_script)(struct _cef_frame_t* self, void(CEF_CALLBACK* execute_java_script)(struct _cef_frame_t* self,
const cef_string_t* code, const cef_string_t* script_url, const cef_string_t* code,
const cef_string_t* script_url,
int start_line); int start_line);
/// ///
@@ -213,7 +217,6 @@ typedef struct _cef_frame_t {
struct _cef_domvisitor_t* visitor); struct _cef_domvisitor_t* visitor);
} cef_frame_t; } cef_frame_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=2af1552c0d2dada94c325be8249bfd889b22ca58$
//
#ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to receive geolocation updates. The functions of // Implement this structure to receive geolocation updates. The functions of
// this structure will be called on the browser process UI thread. // this structure will be called on the browser process UI thread.
@@ -64,7 +65,6 @@ typedef struct _cef_get_geolocation_callback_t {
const struct _cef_geoposition_t* position); const struct _cef_geoposition_t* position);
} cef_get_geolocation_callback_t; } cef_get_geolocation_callback_t;
/// ///
// Request a one-time geolocation update. This function bypasses any user // Request a one-time geolocation update. This function bypasses any user
// permission checks so should only be used by code that is allowed to access // permission checks so should only be used by code that is allowed to access

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=33573a1b0f1caa917899c087b9febe83c2cfd41f$
//
#ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure used for asynchronous continuation of geolocation // Callback structure used for asynchronous continuation of geolocation
// permission requests. // permission requests.
@@ -59,11 +60,9 @@ typedef struct _cef_geolocation_callback_t {
/// ///
// Call to allow or deny geolocation access. // Call to allow or deny geolocation access.
/// ///
void (CEF_CALLBACK *cont)(struct _cef_geolocation_callback_t* self, void(CEF_CALLBACK* cont)(struct _cef_geolocation_callback_t* self, int allow);
int allow);
} cef_geolocation_callback_t; } cef_geolocation_callback_t;
/// ///
// Implement this structure to handle events related to geolocation permission // Implement this structure to handle events related to geolocation permission
// requests. The functions of this structure will be called on the browser // requests. The functions of this structure will be called on the browser
@@ -84,8 +83,10 @@ typedef struct _cef_geolocation_handler_t {
// request immediately. // request immediately.
/// ///
int(CEF_CALLBACK* on_request_geolocation_permission)( int(CEF_CALLBACK* on_request_geolocation_permission)(
struct _cef_geolocation_handler_t* self, struct _cef_browser_t* browser, struct _cef_geolocation_handler_t* self,
const cef_string_t* requesting_url, int request_id, struct _cef_browser_t* browser,
const cef_string_t* requesting_url,
int request_id,
struct _cef_geolocation_callback_t* callback); struct _cef_geolocation_callback_t* callback);
/// ///
@@ -93,11 +94,11 @@ typedef struct _cef_geolocation_handler_t {
// unique ID for the permission request. // unique ID for the permission request.
/// ///
void(CEF_CALLBACK* on_cancel_geolocation_permission)( void(CEF_CALLBACK* on_cancel_geolocation_permission)(
struct _cef_geolocation_handler_t* self, struct _cef_browser_t* browser, struct _cef_geolocation_handler_t* self,
struct _cef_browser_t* browser,
int request_id); int request_id);
} cef_geolocation_handler_t; } cef_geolocation_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=7e5e6dfee8fe6c6bc17b8d58d3e5ddfa8537e2c5$
//
#ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Container for a single image represented at different scale factors. All // Container for a single image represented at different scale factors. All
// image representations should be the same size in density independent pixel // image representations should be the same size in density independent pixel
@@ -79,9 +80,13 @@ typedef struct _cef_image_t {
// pixel data and should be |pixel_width| x |pixel_height| x 4 bytes in size. // pixel data and should be |pixel_width| x |pixel_height| x 4 bytes in size.
// |color_type| and |alpha_type| values specify the pixel format. // |color_type| and |alpha_type| values specify the pixel format.
/// ///
int (CEF_CALLBACK *add_bitmap)(struct _cef_image_t* self, float scale_factor, int(CEF_CALLBACK* add_bitmap)(struct _cef_image_t* self,
int pixel_width, int pixel_height, cef_color_type_t color_type, float scale_factor,
cef_alpha_type_t alpha_type, const void* pixel_data, int pixel_width,
int pixel_height,
cef_color_type_t color_type,
cef_alpha_type_t alpha_type,
const void* pixel_data,
size_t pixel_data_size); size_t pixel_data_size);
/// ///
@@ -89,16 +94,20 @@ typedef struct _cef_image_t {
// data of size |png_data_size|. Any alpha transparency in the PNG data will // data of size |png_data_size|. Any alpha transparency in the PNG data will
// be maintained. // be maintained.
/// ///
int (CEF_CALLBACK *add_png)(struct _cef_image_t* self, float scale_factor, int(CEF_CALLBACK* add_png)(struct _cef_image_t* self,
const void* png_data, size_t png_data_size); float scale_factor,
const void* png_data,
size_t png_data_size);
/// ///
// Create a JPEG image representation for |scale_factor|. |jpeg_data| is the // Create a JPEG image representation for |scale_factor|. |jpeg_data| is the
// image data of size |jpeg_data_size|. The JPEG format does not support // image data of size |jpeg_data_size|. The JPEG format does not support
// transparency so the alpha byte will be set to 0xFF for all pixels. // transparency so the alpha byte will be set to 0xFF for all pixels.
/// ///
int (CEF_CALLBACK *add_jpeg)(struct _cef_image_t* self, float scale_factor, int(CEF_CALLBACK* add_jpeg)(struct _cef_image_t* self,
const void* jpeg_data, size_t jpeg_data_size); float scale_factor,
const void* jpeg_data,
size_t jpeg_data_size);
/// ///
// Returns the image width in density independent pixel (DIP) units. // Returns the image width in density independent pixel (DIP) units.
@@ -130,7 +139,9 @@ typedef struct _cef_image_t {
// size in pixel coordinates. Returns true (1) on success. // size in pixel coordinates. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* get_representation_info)(struct _cef_image_t* self, int(CEF_CALLBACK* get_representation_info)(struct _cef_image_t* self,
float scale_factor, float* actual_scale_factor, int* pixel_width, float scale_factor,
float* actual_scale_factor,
int* pixel_width,
int* pixel_height); int* pixel_height);
/// ///
@@ -142,9 +153,12 @@ typedef struct _cef_image_t {
// on failure. // on failure.
/// ///
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_bitmap)( struct _cef_binary_value_t*(CEF_CALLBACK* get_as_bitmap)(
struct _cef_image_t* self, float scale_factor, struct _cef_image_t* self,
cef_color_type_t color_type, cef_alpha_type_t alpha_type, float scale_factor,
int* pixel_width, int* pixel_height); cef_color_type_t color_type,
cef_alpha_type_t alpha_type,
int* pixel_width,
int* pixel_height);
/// ///
// Returns the PNG representation that most closely matches |scale_factor|. If // Returns the PNG representation that most closely matches |scale_factor|. If
@@ -155,8 +169,11 @@ typedef struct _cef_image_t {
// failure. // failure.
/// ///
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_png)( struct _cef_binary_value_t*(CEF_CALLBACK* get_as_png)(
struct _cef_image_t* self, float scale_factor, int with_transparency, struct _cef_image_t* self,
int* pixel_width, int* pixel_height); float scale_factor,
int with_transparency,
int* pixel_width,
int* pixel_height);
/// ///
// Returns the JPEG representation that most closely matches |scale_factor|. // Returns the JPEG representation that most closely matches |scale_factor|.
@@ -168,18 +185,19 @@ typedef struct _cef_image_t {
// failure. // failure.
/// ///
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_jpeg)( struct _cef_binary_value_t*(CEF_CALLBACK* get_as_jpeg)(
struct _cef_image_t* self, float scale_factor, int quality, struct _cef_image_t* self,
int* pixel_width, int* pixel_height); float scale_factor,
int quality,
int* pixel_width,
int* pixel_height);
} cef_image_t; } cef_image_t;
/// ///
// Create a new cef_image_t. It will initially be NULL. Use the Add*() functions // Create a new cef_image_t. It will initially be NULL. Use the Add*() functions
// to add representations at different scale factors. // to add representations at different scale factors.
/// ///
CEF_EXPORT cef_image_t* cef_image_create(); CEF_EXPORT cef_image_t* cef_image_create();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=f4cd52053981d473b0a5be80d04bd8239d831d46$
//
#ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure used for asynchronous continuation of JavaScript dialog // Callback structure used for asynchronous continuation of JavaScript dialog
// requests. // requests.
@@ -60,11 +61,11 @@ typedef struct _cef_jsdialog_callback_t {
// Continue the JS dialog request. Set |success| to true (1) if the OK button // Continue the JS dialog request. Set |success| to true (1) if the OK button
// was pressed. The |user_input| value should be specified for prompt dialogs. // was pressed. The |user_input| value should be specified for prompt dialogs.
/// ///
void (CEF_CALLBACK *cont)(struct _cef_jsdialog_callback_t* self, int success, void(CEF_CALLBACK* cont)(struct _cef_jsdialog_callback_t* self,
int success,
const cef_string_t* user_input); const cef_string_t* user_input);
} cef_jsdialog_callback_t; } cef_jsdialog_callback_t;
/// ///
// Implement this structure to handle events related to JavaScript dialogs. The // Implement this structure to handle events related to JavaScript dialogs. The
// functions of this structure will be called on the UI thread. // functions of this structure will be called on the UI thread.
@@ -93,10 +94,13 @@ typedef struct _cef_jsdialog_handler_t {
// dismissed. // dismissed.
/// ///
int(CEF_CALLBACK* on_jsdialog)(struct _cef_jsdialog_handler_t* self, int(CEF_CALLBACK* on_jsdialog)(struct _cef_jsdialog_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* origin_url, struct _cef_browser_t* browser,
cef_jsdialog_type_t dialog_type, const cef_string_t* message_text, const cef_string_t* origin_url,
cef_jsdialog_type_t dialog_type,
const cef_string_t* message_text,
const cef_string_t* default_prompt_text, const cef_string_t* default_prompt_text,
struct _cef_jsdialog_callback_t* callback, int* suppress_message); struct _cef_jsdialog_callback_t* callback,
int* suppress_message);
/// ///
// Called to run a dialog asking the user if they want to leave a page. Return // Called to run a dialog asking the user if they want to leave a page. Return
@@ -107,8 +111,10 @@ typedef struct _cef_jsdialog_handler_t {
// dialog is dismissed. // dialog is dismissed.
/// ///
int(CEF_CALLBACK* on_before_unload_dialog)( int(CEF_CALLBACK* on_before_unload_dialog)(
struct _cef_jsdialog_handler_t* self, struct _cef_browser_t* browser, struct _cef_jsdialog_handler_t* self,
const cef_string_t* message_text, int is_reload, struct _cef_browser_t* browser,
const cef_string_t* message_text,
int is_reload,
struct _cef_jsdialog_callback_t* callback); struct _cef_jsdialog_callback_t* callback);
/// ///
@@ -117,7 +123,8 @@ typedef struct _cef_jsdialog_handler_t {
// dialogs are currently pending. // dialogs are currently pending.
/// ///
void(CEF_CALLBACK* on_reset_dialog_state)( void(CEF_CALLBACK* on_reset_dialog_state)(
struct _cef_jsdialog_handler_t* self, struct _cef_browser_t* browser); struct _cef_jsdialog_handler_t* self,
struct _cef_browser_t* browser);
/// ///
// Called when the default implementation dialog is closed. // Called when the default implementation dialog is closed.
@@ -126,7 +133,6 @@ typedef struct _cef_jsdialog_handler_t {
struct _cef_browser_t* browser); struct _cef_browser_t* browser);
} cef_jsdialog_handler_t; } cef_jsdialog_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=7efb9ec2ee02bb511c1d0363b8c4d235a6170cad$
//
#ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to keyboard input. The // Implement this structure to handle events related to keyboard input. The
// functions of this structure will be called on the UI thread. // functions of this structure will be called on the UI thread.
@@ -64,8 +65,10 @@ typedef struct _cef_keyboard_handler_t {
// shortcut set |is_keyboard_shortcut| to true (1) and return false (0). // shortcut set |is_keyboard_shortcut| to true (1) and return false (0).
/// ///
int(CEF_CALLBACK* on_pre_key_event)(struct _cef_keyboard_handler_t* self, int(CEF_CALLBACK* on_pre_key_event)(struct _cef_keyboard_handler_t* self,
struct _cef_browser_t* browser, const struct _cef_key_event_t* event, struct _cef_browser_t* browser,
cef_event_handle_t os_event, int* is_keyboard_shortcut); const struct _cef_key_event_t* event,
cef_event_handle_t os_event,
int* is_keyboard_shortcut);
/// ///
// Called after the renderer and JavaScript in the page has had a chance to // Called after the renderer and JavaScript in the page has had a chance to
@@ -74,11 +77,11 @@ typedef struct _cef_keyboard_handler_t {
// if the keyboard event was handled or false (0) otherwise. // if the keyboard event was handled or false (0) otherwise.
/// ///
int(CEF_CALLBACK* on_key_event)(struct _cef_keyboard_handler_t* self, int(CEF_CALLBACK* on_key_event)(struct _cef_keyboard_handler_t* self,
struct _cef_browser_t* browser, const struct _cef_key_event_t* event, struct _cef_browser_t* browser,
const struct _cef_key_event_t* event,
cef_event_handle_t os_event); cef_event_handle_t os_event);
} cef_keyboard_handler_t; } cef_keyboard_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=eca8f0216a3430fad8ff3714a0ef65ed27e02f0e$
//
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
@@ -59,7 +61,7 @@ typedef struct _cef_life_span_handler_t {
cef_base_ref_counted_t base; cef_base_ref_counted_t base;
/// ///
// Called on the IO thread before a new popup browser is created. The // Called on the UI thread before a new popup browser is created. The
// |browser| and |frame| values represent the source of the popup request. The // |browser| and |frame| values represent the source of the popup request. The
// |target_url| and |target_frame_name| values indicate where the popup // |target_url| and |target_frame_name| values indicate where the popup
// browser should navigate and may be NULL if not specified with the request. // browser should navigate and may be NULL if not specified with the request.
@@ -76,15 +78,23 @@ typedef struct _cef_life_span_handler_t {
// is set to false (0) the new browser will not be scriptable and may not be // is set to false (0) the new browser will not be scriptable and may not be
// hosted in the same renderer process as the source browser. Any // hosted in the same renderer process as the source browser. Any
// modifications to |windowInfo| will be ignored if the parent browser is // modifications to |windowInfo| will be ignored if the parent browser is
// wrapped in a cef_browser_view_t. // wrapped in a cef_browser_view_t. Popup browser creation will be canceled if
// the parent browser is destroyed before the popup browser creation completes
// (indicated by a call to OnAfterCreated for the popup browser).
/// ///
int (CEF_CALLBACK *on_before_popup)(struct _cef_life_span_handler_t* self, int(CEF_CALLBACK* on_before_popup)(
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_life_span_handler_t* self,
const cef_string_t* target_url, const cef_string_t* target_frame_name, struct _cef_browser_t* browser,
cef_window_open_disposition_t target_disposition, int user_gesture, struct _cef_frame_t* frame,
const cef_string_t* target_url,
const cef_string_t* target_frame_name,
cef_window_open_disposition_t target_disposition,
int user_gesture,
const struct _cef_popup_features_t* popupFeatures, const struct _cef_popup_features_t* popupFeatures,
struct _cef_window_info_t* windowInfo, struct _cef_client_t** client, struct _cef_window_info_t* windowInfo,
struct _cef_browser_settings_t* settings, int* no_javascript_access); struct _cef_client_t** client,
struct _cef_browser_settings_t* settings,
int* no_javascript_access);
/// ///
// Called after a new browser is created. This callback will be the first // Called after a new browser is created. This callback will be the first
@@ -196,7 +206,6 @@ typedef struct _cef_life_span_handler_t {
struct _cef_browser_t* browser); struct _cef_browser_t* browser);
} cef_life_span_handler_t; } cef_life_span_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=94b07e1d76b57fbd125f0cc8d78298ff119f1822$
//
#ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events related to browser load status. The // Implement this structure to handle events related to browser load status. The
// functions of this structure will be called on the browser process UI thread // functions of this structure will be called on the browser process UI thread
@@ -66,7 +67,9 @@ typedef struct _cef_load_handler_t {
// calls to OnLoadError and/or OnLoadEnd. // calls to OnLoadError and/or OnLoadEnd.
/// ///
void(CEF_CALLBACK* on_loading_state_change)(struct _cef_load_handler_t* self, void(CEF_CALLBACK* on_loading_state_change)(struct _cef_load_handler_t* self,
struct _cef_browser_t* browser, int isLoading, int canGoBack, struct _cef_browser_t* browser,
int isLoading,
int canGoBack,
int canGoForward); int canGoForward);
/// ///
@@ -82,7 +85,8 @@ typedef struct _cef_load_handler_t {
// overall browser load status use OnLoadingStateChange instead. // overall browser load status use OnLoadingStateChange instead.
/// ///
void(CEF_CALLBACK* on_load_start)(struct _cef_load_handler_t* self, void(CEF_CALLBACK* on_load_start)(struct _cef_load_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
cef_transition_type_t transition_type); cef_transition_type_t transition_type);
/// ///
@@ -96,7 +100,8 @@ typedef struct _cef_load_handler_t {
// instead. // instead.
/// ///
void(CEF_CALLBACK* on_load_end)(struct _cef_load_handler_t* self, void(CEF_CALLBACK* on_load_end)(struct _cef_load_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
int httpStatusCode); int httpStatusCode);
/// ///
@@ -107,12 +112,13 @@ typedef struct _cef_load_handler_t {
// net\base\net_error_list.h for complete descriptions of the error codes. // net\base\net_error_list.h for complete descriptions of the error codes.
/// ///
void(CEF_CALLBACK* on_load_error)(struct _cef_load_handler_t* self, void(CEF_CALLBACK* on_load_error)(struct _cef_load_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
cef_errorcode_t errorCode, const cef_string_t* errorText, struct _cef_frame_t* frame,
cef_errorcode_t errorCode,
const cef_string_t* errorText,
const cef_string_t* failedUrl); const cef_string_t* failedUrl);
} cef_load_handler_t; } cef_load_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=c86c5964cd093de8913b092db47d9e820a169ae8$
//
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Supports creation and modification of menus. See cef_menu_id_t for the // Supports creation and modification of menus. See cef_menu_id_t for the
// command ids that have default implementations. All user-defined command ids // command ids that have default implementations. All user-defined command ids
@@ -81,27 +82,32 @@ typedef struct _cef_menu_model_t {
/// ///
// Add an item to the menu. Returns true (1) on success. // Add an item to the menu. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *add_item)(struct _cef_menu_model_t* self, int command_id, int(CEF_CALLBACK* add_item)(struct _cef_menu_model_t* self,
int command_id,
const cef_string_t* label); const cef_string_t* label);
/// ///
// Add a check item to the menu. Returns true (1) on success. // Add a check item to the menu. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* add_check_item)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* add_check_item)(struct _cef_menu_model_t* self,
int command_id, const cef_string_t* label); int command_id,
const cef_string_t* label);
/// ///
// Add a radio item to the menu. Only a single item with the specified // Add a radio item to the menu. Only a single item with the specified
// |group_id| can be checked at a time. Returns true (1) on success. // |group_id| can be checked at a time. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* add_radio_item)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* add_radio_item)(struct _cef_menu_model_t* self,
int command_id, const cef_string_t* label, int group_id); int command_id,
const cef_string_t* label,
int group_id);
/// ///
// Add a sub-menu to the menu. The new sub-menu is returned. // Add a sub-menu to the menu. The new sub-menu is returned.
/// ///
struct _cef_menu_model_t*(CEF_CALLBACK* add_sub_menu)( struct _cef_menu_model_t*(CEF_CALLBACK* add_sub_menu)(
struct _cef_menu_model_t* self, int command_id, struct _cef_menu_model_t* self,
int command_id,
const cef_string_t* label); const cef_string_t* label);
/// ///
@@ -115,15 +121,19 @@ typedef struct _cef_menu_model_t {
// Insert an item in the menu at the specified |index|. Returns true (1) on // Insert an item in the menu at the specified |index|. Returns true (1) on
// success. // success.
/// ///
int (CEF_CALLBACK *insert_item_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* insert_item_at)(struct _cef_menu_model_t* self,
int command_id, const cef_string_t* label); int index,
int command_id,
const cef_string_t* label);
/// ///
// Insert a check item in the menu at the specified |index|. Returns true (1) // Insert a check item in the menu at the specified |index|. Returns true (1)
// on success. // on success.
/// ///
int(CEF_CALLBACK* insert_check_item_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* insert_check_item_at)(struct _cef_menu_model_t* self,
int index, int command_id, const cef_string_t* label); int index,
int command_id,
const cef_string_t* label);
/// ///
// Insert a radio item in the menu at the specified |index|. Only a single // Insert a radio item in the menu at the specified |index|. Only a single
@@ -131,14 +141,19 @@ typedef struct _cef_menu_model_t {
// (1) on success. // (1) on success.
/// ///
int(CEF_CALLBACK* insert_radio_item_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* insert_radio_item_at)(struct _cef_menu_model_t* self,
int index, int command_id, const cef_string_t* label, int group_id); int index,
int command_id,
const cef_string_t* label,
int group_id);
/// ///
// Insert a sub-menu in the menu at the specified |index|. The new sub-menu is // Insert a sub-menu in the menu at the specified |index|. The new sub-menu is
// returned. // returned.
/// ///
struct _cef_menu_model_t*(CEF_CALLBACK* insert_sub_menu_at)( struct _cef_menu_model_t*(CEF_CALLBACK* insert_sub_menu_at)(
struct _cef_menu_model_t* self, int index, int command_id, struct _cef_menu_model_t* self,
int index,
int command_id,
const cef_string_t* label); const cef_string_t* label);
/// ///
@@ -170,33 +185,36 @@ typedef struct _cef_menu_model_t {
// Sets the command id at the specified |index|. Returns true (1) on success. // Sets the command id at the specified |index|. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* set_command_id_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_command_id_at)(struct _cef_menu_model_t* self,
int index, int command_id); int index,
int command_id);
/// ///
// Returns the label for the specified |command_id| or NULL if not found. // Returns the label for the specified |command_id| or NULL if not found.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t (CEF_CALLBACK *get_label)( cef_string_userfree_t(CEF_CALLBACK* get_label)(struct _cef_menu_model_t* self,
struct _cef_menu_model_t* self, int command_id); int command_id);
/// ///
// Returns the label at the specified |index| or NULL if not found due to // Returns the label at the specified |index| or NULL if not found due to
// invalid range or the index being a separator. // invalid range or the index being a separator.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t (CEF_CALLBACK *get_label_at)( cef_string_userfree_t(
struct _cef_menu_model_t* self, int index); CEF_CALLBACK* get_label_at)(struct _cef_menu_model_t* self, int index);
/// ///
// Sets the label for the specified |command_id|. Returns true (1) on success. // Sets the label for the specified |command_id|. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *set_label)(struct _cef_menu_model_t* self, int command_id, int(CEF_CALLBACK* set_label)(struct _cef_menu_model_t* self,
int command_id,
const cef_string_t* label); const cef_string_t* label);
/// ///
// Set the label at the specified |index|. Returns true (1) on success. // Set the label at the specified |index|. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *set_label_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_label_at)(struct _cef_menu_model_t* self,
int index,
const cef_string_t* label); const cef_string_t* label);
/// ///
@@ -208,8 +226,8 @@ typedef struct _cef_menu_model_t {
/// ///
// Returns the item type at the specified |index|. // Returns the item type at the specified |index|.
/// ///
cef_menu_item_type_t (CEF_CALLBACK *get_type_at)( cef_menu_item_type_t(
struct _cef_menu_model_t* self, int index); CEF_CALLBACK* get_type_at)(struct _cef_menu_model_t* self, int index);
/// ///
// Returns the group id for the specified |command_id| or -1 if invalid. // Returns the group id for the specified |command_id| or -1 if invalid.
@@ -220,39 +238,40 @@ typedef struct _cef_menu_model_t {
/// ///
// Returns the group id at the specified |index| or -1 if invalid. // Returns the group id at the specified |index| or -1 if invalid.
/// ///
int (CEF_CALLBACK *get_group_id_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* get_group_id_at)(struct _cef_menu_model_t* self, int index);
int index);
/// ///
// Sets the group id for the specified |command_id|. Returns true (1) on // Sets the group id for the specified |command_id|. Returns true (1) on
// success. // success.
/// ///
int(CEF_CALLBACK* set_group_id)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_group_id)(struct _cef_menu_model_t* self,
int command_id, int group_id); int command_id,
int group_id);
/// ///
// Sets the group id at the specified |index|. Returns true (1) on success. // Sets the group id at the specified |index|. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *set_group_id_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_group_id_at)(struct _cef_menu_model_t* self,
int index,
int group_id); int group_id);
/// ///
// Returns the submenu for the specified |command_id| or NULL if invalid. // Returns the submenu for the specified |command_id| or NULL if invalid.
/// ///
struct _cef_menu_model_t*(CEF_CALLBACK* get_sub_menu)( struct _cef_menu_model_t*(CEF_CALLBACK* get_sub_menu)(
struct _cef_menu_model_t* self, int command_id); struct _cef_menu_model_t* self,
int command_id);
/// ///
// Returns the submenu at the specified |index| or NULL if invalid. // Returns the submenu at the specified |index| or NULL if invalid.
/// ///
struct _cef_menu_model_t* (CEF_CALLBACK *get_sub_menu_at)( struct _cef_menu_model_t*(
struct _cef_menu_model_t* self, int index); CEF_CALLBACK* get_sub_menu_at)(struct _cef_menu_model_t* self, int index);
/// ///
// Returns true (1) if the specified |command_id| is visible. // Returns true (1) if the specified |command_id| is visible.
/// ///
int (CEF_CALLBACK *is_visible)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* is_visible)(struct _cef_menu_model_t* self, int command_id);
int command_id);
/// ///
// Returns true (1) if the specified |index| is visible. // Returns true (1) if the specified |index| is visible.
@@ -264,20 +283,21 @@ typedef struct _cef_menu_model_t {
// success. // success.
/// ///
int(CEF_CALLBACK* set_visible)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_visible)(struct _cef_menu_model_t* self,
int command_id, int visible); int command_id,
int visible);
/// ///
// Change the visibility at the specified |index|. Returns true (1) on // Change the visibility at the specified |index|. Returns true (1) on
// success. // success.
/// ///
int (CEF_CALLBACK *set_visible_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_visible_at)(struct _cef_menu_model_t* self,
int index,
int visible); int visible);
/// ///
// Returns true (1) if the specified |command_id| is enabled. // Returns true (1) if the specified |command_id| is enabled.
/// ///
int (CEF_CALLBACK *is_enabled)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* is_enabled)(struct _cef_menu_model_t* self, int command_id);
int command_id);
/// ///
// Returns true (1) if the specified |index| is enabled. // Returns true (1) if the specified |index| is enabled.
@@ -289,21 +309,22 @@ typedef struct _cef_menu_model_t {
// on success. // on success.
/// ///
int(CEF_CALLBACK* set_enabled)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_enabled)(struct _cef_menu_model_t* self,
int command_id, int enabled); int command_id,
int enabled);
/// ///
// Change the enabled status at the specified |index|. Returns true (1) on // Change the enabled status at the specified |index|. Returns true (1) on
// success. // success.
/// ///
int (CEF_CALLBACK *set_enabled_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_enabled_at)(struct _cef_menu_model_t* self,
int index,
int enabled); int enabled);
/// ///
// Returns true (1) if the specified |command_id| is checked. Only applies to // Returns true (1) if the specified |command_id| is checked. Only applies to
// check and radio items. // check and radio items.
/// ///
int (CEF_CALLBACK *is_checked)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* is_checked)(struct _cef_menu_model_t* self, int command_id);
int command_id);
/// ///
// Returns true (1) if the specified |index| is checked. Only applies to check // Returns true (1) if the specified |index| is checked. Only applies to check
@@ -316,13 +337,15 @@ typedef struct _cef_menu_model_t {
// Returns true (1) on success. // Returns true (1) on success.
/// ///
int(CEF_CALLBACK* set_checked)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_checked)(struct _cef_menu_model_t* self,
int command_id, int checked); int command_id,
int checked);
/// ///
// Check the specified |index|. Only applies to check and radio items. Returns // Check the specified |index|. Only applies to check and radio items. Returns
// true (1) on success. // true (1) on success.
/// ///
int (CEF_CALLBACK *set_checked_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_checked_at)(struct _cef_menu_model_t* self,
int index,
int checked); int checked);
/// ///
@@ -344,7 +367,10 @@ typedef struct _cef_menu_model_t {
// be any virtual key or character value. Returns true (1) on success. // be any virtual key or character value. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* set_accelerator)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_accelerator)(struct _cef_menu_model_t* self,
int command_id, int key_code, int shift_pressed, int ctrl_pressed, int command_id,
int key_code,
int shift_pressed,
int ctrl_pressed,
int alt_pressed); int alt_pressed);
/// ///
@@ -352,7 +378,10 @@ typedef struct _cef_menu_model_t {
// any virtual key or character value. Returns true (1) on success. // any virtual key or character value. Returns true (1) on success.
/// ///
int(CEF_CALLBACK* set_accelerator_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_accelerator_at)(struct _cef_menu_model_t* self,
int index, int key_code, int shift_pressed, int ctrl_pressed, int index,
int key_code,
int shift_pressed,
int ctrl_pressed,
int alt_pressed); int alt_pressed);
/// ///
@@ -374,7 +403,10 @@ typedef struct _cef_menu_model_t {
// true (1) on success. // true (1) on success.
/// ///
int(CEF_CALLBACK* get_accelerator)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* get_accelerator)(struct _cef_menu_model_t* self,
int command_id, int* key_code, int* shift_pressed, int* ctrl_pressed, int command_id,
int* key_code,
int* shift_pressed,
int* ctrl_pressed,
int* alt_pressed); int* alt_pressed);
/// ///
@@ -382,7 +414,10 @@ typedef struct _cef_menu_model_t {
// (1) on success. // (1) on success.
/// ///
int(CEF_CALLBACK* get_accelerator_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* get_accelerator_at)(struct _cef_menu_model_t* self,
int index, int* key_code, int* shift_pressed, int* ctrl_pressed, int index,
int* key_code,
int* shift_pressed,
int* ctrl_pressed,
int* alt_pressed); int* alt_pressed);
/// ///
@@ -391,8 +426,10 @@ typedef struct _cef_menu_model_t {
// color or default color is set for |color_type| then the system color will // color or default color is set for |color_type| then the system color will
// be used. Returns true (1) on success. // be used. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *set_color)(struct _cef_menu_model_t* self, int command_id, int(CEF_CALLBACK* set_color)(struct _cef_menu_model_t* self,
cef_menu_color_type_t color_type, cef_color_t color); int command_id,
cef_menu_color_type_t color_type,
cef_color_t color);
/// ///
// Set the explicit color for |command_id| and |index| to |color|. Specify a // Set the explicit color for |command_id| and |index| to |color|. Specify a
@@ -401,16 +438,20 @@ typedef struct _cef_menu_model_t {
// set. If no explicit color or default color is set for |color_type| then the // set. If no explicit color or default color is set for |color_type| then the
// system color will be used. Returns true (1) on success. // system color will be used. Returns true (1) on success.
/// ///
int (CEF_CALLBACK *set_color_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* set_color_at)(struct _cef_menu_model_t* self,
cef_menu_color_type_t color_type, cef_color_t color); int index,
cef_menu_color_type_t color_type,
cef_color_t color);
/// ///
// Returns in |color| the color that was explicitly set for |command_id| and // Returns in |color| the color that was explicitly set for |command_id| and
// |color_type|. If a color was not set then 0 will be returned in |color|. // |color_type|. If a color was not set then 0 will be returned in |color|.
// Returns true (1) on success. // Returns true (1) on success.
/// ///
int (CEF_CALLBACK *get_color)(struct _cef_menu_model_t* self, int command_id, int(CEF_CALLBACK* get_color)(struct _cef_menu_model_t* self,
cef_menu_color_type_t color_type, cef_color_t* color); int command_id,
cef_menu_color_type_t color_type,
cef_color_t* color);
/// ///
// Returns in |color| the color that was explicitly set for |command_id| and // Returns in |color| the color that was explicitly set for |command_id| and
@@ -418,8 +459,10 @@ typedef struct _cef_menu_model_t {
// |color|. If a color was not set then 0 will be returned in |color|. Returns // |color|. If a color was not set then 0 will be returned in |color|. Returns
// true (1) on success. // true (1) on success.
/// ///
int (CEF_CALLBACK *get_color_at)(struct _cef_menu_model_t* self, int index, int(CEF_CALLBACK* get_color_at)(struct _cef_menu_model_t* self,
cef_menu_color_type_t color_type, cef_color_t* color); int index,
cef_menu_color_type_t color_type,
cef_color_t* color);
/// ///
// Sets the font list for the specified |command_id|. If |font_list| is NULL // Sets the font list for the specified |command_id|. If |font_list| is NULL
@@ -434,7 +477,8 @@ typedef struct _cef_menu_model_t {
// Bold Italic 14px" - "Arial, 14px" // Bold Italic 14px" - "Arial, 14px"
/// ///
int(CEF_CALLBACK* set_font_list)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_font_list)(struct _cef_menu_model_t* self,
int command_id, const cef_string_t* font_list); int command_id,
const cef_string_t* font_list);
/// ///
// Sets the font list for the specified |index|. Specify an |index| value of // Sets the font list for the specified |index|. Specify an |index| value of
@@ -450,17 +494,16 @@ typedef struct _cef_menu_model_t {
// Bold Italic 14px" - "Arial, 14px" // Bold Italic 14px" - "Arial, 14px"
/// ///
int(CEF_CALLBACK* set_font_list_at)(struct _cef_menu_model_t* self, int(CEF_CALLBACK* set_font_list_at)(struct _cef_menu_model_t* self,
int index, const cef_string_t* font_list); int index,
const cef_string_t* font_list);
} cef_menu_model_t; } cef_menu_model_t;
/// ///
// Create a new MenuModel with the specified |delegate|. // Create a new MenuModel with the specified |delegate|.
/// ///
CEF_EXPORT cef_menu_model_t* cef_menu_model_create( CEF_EXPORT cef_menu_model_t* cef_menu_model_create(
struct _cef_menu_model_delegate_t* delegate); struct _cef_menu_model_delegate_t* delegate);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d390abde0e3eb8ac8d80d16cbf638d297866b853$
//
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
@@ -62,7 +64,8 @@ typedef struct _cef_menu_model_delegate_t {
// |event_flags|. // |event_flags|.
/// ///
void(CEF_CALLBACK* execute_command)(struct _cef_menu_model_delegate_t* self, void(CEF_CALLBACK* execute_command)(struct _cef_menu_model_delegate_t* self,
struct _cef_menu_model_t* menu_model, int command_id, struct _cef_menu_model_t* menu_model,
int command_id,
cef_event_flags_t event_flags); cef_event_flags_t event_flags);
/// ///
@@ -71,7 +74,8 @@ typedef struct _cef_menu_model_delegate_t {
/// ///
void(CEF_CALLBACK* mouse_outside_menu)( void(CEF_CALLBACK* mouse_outside_menu)(
struct _cef_menu_model_delegate_t* self, struct _cef_menu_model_delegate_t* self,
struct _cef_menu_model_t* menu_model, const cef_point_t* screen_point); struct _cef_menu_model_t* menu_model,
const cef_point_t* screen_point);
/// ///
// Called on unhandled open submenu keyboard commands. |is_rtl| will be true // Called on unhandled open submenu keyboard commands. |is_rtl| will be true
@@ -79,7 +83,8 @@ typedef struct _cef_menu_model_delegate_t {
/// ///
void(CEF_CALLBACK* unhandled_open_submenu)( void(CEF_CALLBACK* unhandled_open_submenu)(
struct _cef_menu_model_delegate_t* self, struct _cef_menu_model_delegate_t* self,
struct _cef_menu_model_t* menu_model, int is_rtl); struct _cef_menu_model_t* menu_model,
int is_rtl);
/// ///
// Called on unhandled close submenu keyboard commands. |is_rtl| will be true // Called on unhandled close submenu keyboard commands. |is_rtl| will be true
@@ -87,7 +92,8 @@ typedef struct _cef_menu_model_delegate_t {
/// ///
void(CEF_CALLBACK* unhandled_close_submenu)( void(CEF_CALLBACK* unhandled_close_submenu)(
struct _cef_menu_model_delegate_t* self, struct _cef_menu_model_delegate_t* self,
struct _cef_menu_model_t* menu_model, int is_rtl); struct _cef_menu_model_t* menu_model,
int is_rtl);
/// ///
// The menu is about to show. // The menu is about to show.
@@ -106,10 +112,10 @@ typedef struct _cef_menu_model_delegate_t {
// modified. // modified.
/// ///
int(CEF_CALLBACK* format_label)(struct _cef_menu_model_delegate_t* self, int(CEF_CALLBACK* format_label)(struct _cef_menu_model_delegate_t* self,
struct _cef_menu_model_t* menu_model, cef_string_t* label); struct _cef_menu_model_t* menu_model,
cef_string_t* label);
} cef_menu_model_delegate_t; } cef_menu_model_delegate_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=e844a5ea18cdcee85faa937d5f2715452eb19d12$
//
#ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to represent an entry in navigation history. // Structure used to represent an entry in navigation history.
/// ///
@@ -115,8 +116,7 @@ typedef struct _cef_navigation_entry_t {
// response. May be 0 if the response has not yet been received or if the // response. May be 0 if the response has not yet been received or if the
// navigation has not yet completed. // navigation has not yet completed.
/// ///
int (CEF_CALLBACK *get_http_status_code)( int(CEF_CALLBACK* get_http_status_code)(struct _cef_navigation_entry_t* self);
struct _cef_navigation_entry_t* self);
/// ///
// Returns the SSL information for this navigation entry. // Returns the SSL information for this navigation entry.
@@ -125,7 +125,6 @@ typedef struct _cef_navigation_entry_t {
struct _cef_navigation_entry_t* self); struct _cef_navigation_entry_t* self);
} cef_navigation_entry_t; } cef_navigation_entry_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=8aa93dd5092138e1cbc66c512624be41de71c1d3$
//
#ifndef CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Add an entry to the cross-origin access whitelist. // Add an entry to the cross-origin access whitelist.
// //
@@ -82,16 +83,20 @@ extern "C" {
// |source_origin| is invalid or the whitelist cannot be accessed. // |source_origin| is invalid or the whitelist cannot be accessed.
/// ///
CEF_EXPORT int cef_add_cross_origin_whitelist_entry( CEF_EXPORT int cef_add_cross_origin_whitelist_entry(
const cef_string_t* source_origin, const cef_string_t* target_protocol, const cef_string_t* source_origin,
const cef_string_t* target_domain, int allow_target_subdomains); const cef_string_t* target_protocol,
const cef_string_t* target_domain,
int allow_target_subdomains);
/// ///
// Remove an entry from the cross-origin access whitelist. Returns false (0) if // Remove an entry from the cross-origin access whitelist. Returns false (0) if
// |source_origin| is invalid or the whitelist cannot be accessed. // |source_origin| is invalid or the whitelist cannot be accessed.
/// ///
CEF_EXPORT int cef_remove_cross_origin_whitelist_entry( CEF_EXPORT int cef_remove_cross_origin_whitelist_entry(
const cef_string_t* source_origin, const cef_string_t* target_protocol, const cef_string_t* source_origin,
const cef_string_t* target_domain, int allow_target_subdomains); const cef_string_t* target_protocol,
const cef_string_t* target_domain,
int allow_target_subdomains);
/// ///
// Remove all entries from the cross-origin access whitelist. Returns false (0) // Remove all entries from the cross-origin access whitelist. Returns false (0)

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=9f1c8c065c1604c5d09435e0869b45fd3f51aa31$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Parse the specified |url| into its component parts. Returns false (0) if the // Parse the specified |url| into its component parts. Returns false (0) if the
// URL is NULL or invalid. // URL is NULL or invalid.
@@ -71,16 +72,16 @@ CEF_EXPORT int cef_create_url(const struct _cef_urlparts_t* parts,
// for URLs which will be parsed or sent to other applications. // for URLs which will be parsed or sent to other applications.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
CEF_EXPORT cef_string_userfree_t cef_format_url_for_security_display( CEF_EXPORT cef_string_userfree_t
const cef_string_t* origin_url); cef_format_url_for_security_display(const cef_string_t* origin_url);
/// ///
// Returns the mime type for the specified file extension or an NULL string if // Returns the mime type for the specified file extension or an NULL string if
// unknown. // unknown.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
CEF_EXPORT cef_string_userfree_t cef_get_mime_type( CEF_EXPORT cef_string_userfree_t
const cef_string_t* extension); cef_get_mime_type(const cef_string_t* extension);
/// ///
// Get the extensions associated with the given mime type. This should be passed // Get the extensions associated with the given mime type. This should be passed
@@ -126,14 +127,17 @@ CEF_EXPORT cef_string_userfree_t cef_uriencode(const cef_string_t* text,
// supports further customization the decoding process. // supports further customization the decoding process.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
CEF_EXPORT cef_string_userfree_t cef_uridecode(const cef_string_t* text, CEF_EXPORT cef_string_userfree_t
int convert_to_utf8, cef_uri_unescape_rule_t unescape_rule); cef_uridecode(const cef_string_t* text,
int convert_to_utf8,
cef_uri_unescape_rule_t unescape_rule);
/// ///
// Parses the specified |json_string| and returns a dictionary or list // Parses the specified |json_string| and returns a dictionary or list
// representation. If JSON parsing fails this function returns NULL. // representation. If JSON parsing fails this function returns NULL.
/// ///
CEF_EXPORT struct _cef_value_t* cef_parse_json(const cef_string_t* json_string, CEF_EXPORT struct _cef_value_t* cef_parse_json(
const cef_string_t* json_string,
cef_json_parser_options_t options); cef_json_parser_options_t options);
/// ///
@@ -143,8 +147,10 @@ CEF_EXPORT struct _cef_value_t* cef_parse_json(const cef_string_t* json_string,
// formatted error message respectively. // formatted error message respectively.
/// ///
CEF_EXPORT struct _cef_value_t* cef_parse_jsonand_return_error( CEF_EXPORT struct _cef_value_t* cef_parse_jsonand_return_error(
const cef_string_t* json_string, cef_json_parser_options_t options, const cef_string_t* json_string,
cef_json_parser_error_t* error_code_out, cef_string_t* error_msg_out); cef_json_parser_options_t options,
cef_json_parser_error_t* error_code_out,
cef_string_t* error_msg_out);
/// ///
// Generates a JSON string from the specified root |node| which should be a // Generates a JSON string from the specified root |node| which should be a
@@ -152,8 +158,8 @@ CEF_EXPORT struct _cef_value_t* cef_parse_jsonand_return_error(
// requires exclusive access to |node| including any underlying data. // requires exclusive access to |node| including any underlying data.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
CEF_EXPORT cef_string_userfree_t cef_write_json(struct _cef_value_t* node, CEF_EXPORT cef_string_userfree_t
cef_json_writer_options_t options); cef_write_json(struct _cef_value_t* node, cef_json_writer_options_t options);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=9d02d9da5fb643fd5dfe46e12e535da7d2e874c7$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Retrieve the path associated with the specified |key|. Returns true (1) on // Retrieve the path associated with the specified |key|. Returns true (1) on
// success. Can be called on any thread in the browser process. // success. Can be called on any thread in the browser process.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=e063de969dd9903ca0265346818bbbaa52f5446b$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure for asynchronous continuation of print dialog requests. // Callback structure for asynchronous continuation of print dialog requests.
/// ///
@@ -68,7 +69,6 @@ typedef struct _cef_print_dialog_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_print_dialog_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_print_dialog_callback_t* self);
} cef_print_dialog_callback_t; } cef_print_dialog_callback_t;
/// ///
// Callback structure for asynchronous continuation of print job requests. // Callback structure for asynchronous continuation of print job requests.
/// ///
@@ -84,10 +84,10 @@ typedef struct _cef_print_job_callback_t {
void(CEF_CALLBACK* cont)(struct _cef_print_job_callback_t* self); void(CEF_CALLBACK* cont)(struct _cef_print_job_callback_t* self);
} cef_print_job_callback_t; } cef_print_job_callback_t;
/// ///
// Implement this structure to handle printing on Linux. The functions of this // Implement this structure to handle printing on Linux. Each browser will have
// structure will be called on the browser process UI thread. // only one print job in progress at a time. The functions of this structure
// will be called on the browser process UI thread.
/// ///
typedef struct _cef_print_handler_t { typedef struct _cef_print_handler_t {
/// ///
@@ -110,15 +110,20 @@ typedef struct _cef_print_handler_t {
// reference to |settings| outside of this callback. // reference to |settings| outside of this callback.
/// ///
void(CEF_CALLBACK* on_print_settings)(struct _cef_print_handler_t* self, void(CEF_CALLBACK* on_print_settings)(struct _cef_print_handler_t* self,
struct _cef_print_settings_t* settings, int get_defaults); struct _cef_browser_t* browser,
struct _cef_print_settings_t* settings,
int get_defaults);
/// ///
// Show the print dialog. Execute |callback| once the dialog is dismissed. // Show the print dialog. Execute |callback| once the dialog is dismissed.
// Return true (1) if the dialog will be displayed or false (0) to cancel the // Return true (1) if the dialog will be displayed or false (0) to cancel the
// printing immediately. // printing immediately.
/// ///
int (CEF_CALLBACK *on_print_dialog)(struct _cef_print_handler_t* self, int(CEF_CALLBACK* on_print_dialog)(
int has_selection, struct _cef_print_dialog_callback_t* callback); struct _cef_print_handler_t* self,
struct _cef_browser_t* browser,
int has_selection,
struct _cef_print_dialog_callback_t* callback);
/// ///
// Send the print job to the printer. Execute |callback| once the job is // Send the print job to the printer. Execute |callback| once the job is
@@ -126,23 +131,26 @@ typedef struct _cef_print_handler_t {
// the job immediately. // the job immediately.
/// ///
int(CEF_CALLBACK* on_print_job)(struct _cef_print_handler_t* self, int(CEF_CALLBACK* on_print_job)(struct _cef_print_handler_t* self,
const cef_string_t* document_name, const cef_string_t* pdf_file_path, struct _cef_browser_t* browser,
const cef_string_t* document_name,
const cef_string_t* pdf_file_path,
struct _cef_print_job_callback_t* callback); struct _cef_print_job_callback_t* callback);
/// ///
// Reset client state related to printing. // Reset client state related to printing.
/// ///
void (CEF_CALLBACK *on_print_reset)(struct _cef_print_handler_t* self); void(CEF_CALLBACK* on_print_reset)(struct _cef_print_handler_t* self,
struct _cef_browser_t* browser);
/// ///
// Return the PDF paper size in device units. Used in combination with // Return the PDF paper size in device units. Used in combination with
// cef_browser_host_t::print_to_pdf(). // cef_browser_host_t::print_to_pdf().
/// ///
cef_size_t(CEF_CALLBACK* get_pdf_paper_size)( cef_size_t(CEF_CALLBACK* get_pdf_paper_size)(
struct _cef_print_handler_t* self, int device_units_per_inch); struct _cef_print_handler_t* self,
int device_units_per_inch);
} cef_print_handler_t; } cef_print_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=593308c65c50c7f6bd890541426806a9bf07a00b$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure representing print settings. // Structure representing print settings.
/// ///
@@ -121,7 +122,8 @@ typedef struct _cef_print_settings_t {
// Set the page ranges. // Set the page ranges.
/// ///
void(CEF_CALLBACK* set_page_ranges)(struct _cef_print_settings_t* self, void(CEF_CALLBACK* set_page_ranges)(struct _cef_print_settings_t* self,
size_t rangesCount, cef_range_t const* ranges); size_t rangesCount,
cef_range_t const* ranges);
/// ///
// Returns the number of page ranges that currently exist. // Returns the number of page ranges that currently exist.
@@ -133,7 +135,8 @@ typedef struct _cef_print_settings_t {
// Retrieve the page ranges. // Retrieve the page ranges.
/// ///
void(CEF_CALLBACK* get_page_ranges)(struct _cef_print_settings_t* self, void(CEF_CALLBACK* get_page_ranges)(struct _cef_print_settings_t* self,
size_t* rangesCount, cef_range_t* ranges); size_t* rangesCount,
cef_range_t* ranges);
/// ///
// Set whether only the selection will be printed. // Set whether only the selection will be printed.
@@ -193,13 +196,11 @@ typedef struct _cef_print_settings_t {
struct _cef_print_settings_t* self); struct _cef_print_settings_t* self);
} cef_print_settings_t; } cef_print_settings_t;
/// ///
// Create a new cef_print_settings_t object. // Create a new cef_print_settings_t object.
/// ///
CEF_EXPORT cef_print_settings_t* cef_print_settings_create(); CEF_EXPORT cef_print_settings_t* cef_print_settings_create();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5f8cd4eb4e6215cb0f6161b916dc51197e345204$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
@@ -45,7 +47,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure representing a message. Can be used on any process and thread. // Structure representing a message. Can be used on any process and thread.
/// ///
@@ -87,14 +88,12 @@ typedef struct _cef_process_message_t {
struct _cef_process_message_t* self); struct _cef_process_message_t* self);
} cef_process_message_t; } cef_process_message_t;
/// ///
// Create a new cef_process_message_t object with the specified name. // Create a new cef_process_message_t object with the specified name.
/// ///
CEF_EXPORT cef_process_message_t* cef_process_message_create( CEF_EXPORT cef_process_message_t* cef_process_message_create(
const cef_string_t* name); const cef_string_t* name);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=aa003bb87d891baa8c79742dadcac6fe75f32737$
//
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Launches the process specified via |command_line|. Returns true (1) upon // Launches the process specified via |command_line|. Returns true (1) upon
// success. Must be called on the browser process TID_PROCESS_LAUNCHER thread. // success. Must be called on the browser process TID_PROCESS_LAUNCHER thread.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,11 +33,14 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=3fb1034cb02cfeddcaf02d8fde0dec5b8a18f416$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
#pragma once #pragma once
#include "include/capi/cef_accessibility_handler_capi.h"
#include "include/capi/cef_base_capi.h" #include "include/capi/cef_base_capi.h"
#include "include/capi/cef_browser_capi.h" #include "include/capi/cef_browser_capi.h"
#include "include/capi/cef_drag_data_capi.h" #include "include/capi/cef_drag_data_capi.h"
@@ -46,7 +49,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to handle events when window rendering is disabled. // Implement this structure to handle events when window rendering is disabled.
// The functions of this structure will be called on the UI thread. // The functions of this structure will be called on the UI thread.
@@ -57,26 +59,38 @@ typedef struct _cef_render_handler_t {
/// ///
cef_base_ref_counted_t base; cef_base_ref_counted_t base;
///
// Return the handler for accessibility notifications. If no handler is
// provided the default implementation will be used.
///
struct _cef_accessibility_handler_t*(CEF_CALLBACK* get_accessibility_handler)(
struct _cef_render_handler_t* self);
/// ///
// Called to retrieve the root window rectangle in screen coordinates. Return // Called to retrieve the root window rectangle in screen coordinates. Return
// true (1) if the rectangle was provided. // true (1) if the rectangle was provided.
/// ///
int(CEF_CALLBACK* get_root_screen_rect)(struct _cef_render_handler_t* self, int(CEF_CALLBACK* get_root_screen_rect)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, cef_rect_t* rect); struct _cef_browser_t* browser,
cef_rect_t* rect);
/// ///
// Called to retrieve the view rectangle which is relative to screen // Called to retrieve the view rectangle which is relative to screen
// coordinates. Return true (1) if the rectangle was provided. // coordinates. Return true (1) if the rectangle was provided.
/// ///
int(CEF_CALLBACK* get_view_rect)(struct _cef_render_handler_t* self, int(CEF_CALLBACK* get_view_rect)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, cef_rect_t* rect); struct _cef_browser_t* browser,
cef_rect_t* rect);
/// ///
// Called to retrieve the translation from view coordinates to actual screen // Called to retrieve the translation from view coordinates to actual screen
// coordinates. Return true (1) if the screen coordinates were provided. // coordinates. Return true (1) if the screen coordinates were provided.
/// ///
int(CEF_CALLBACK* get_screen_point)(struct _cef_render_handler_t* self, int(CEF_CALLBACK* get_screen_point)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, int viewX, int viewY, int* screenX, struct _cef_browser_t* browser,
int viewX,
int viewY,
int* screenX,
int* screenY); int* screenY);
/// ///
@@ -89,21 +103,24 @@ typedef struct _cef_render_handler_t {
// drawn correctly. // drawn correctly.
/// ///
int(CEF_CALLBACK* get_screen_info)(struct _cef_render_handler_t* self, int(CEF_CALLBACK* get_screen_info)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, struct _cef_screen_info_t* screen_info); struct _cef_browser_t* browser,
struct _cef_screen_info_t* screen_info);
/// ///
// Called when the browser wants to show or hide the popup widget. The popup // Called when the browser wants to show or hide the popup widget. The popup
// should be shown if |show| is true (1) and hidden if |show| is false (0). // should be shown if |show| is true (1) and hidden if |show| is false (0).
/// ///
void(CEF_CALLBACK* on_popup_show)(struct _cef_render_handler_t* self, void(CEF_CALLBACK* on_popup_show)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, int show); struct _cef_browser_t* browser,
int show);
/// ///
// Called when the browser wants to move or resize the popup widget. |rect| // Called when the browser wants to move or resize the popup widget. |rect|
// contains the new location and size in view coordinates. // contains the new location and size in view coordinates.
/// ///
void(CEF_CALLBACK* on_popup_size)(struct _cef_render_handler_t* self, void(CEF_CALLBACK* on_popup_size)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, const cef_rect_t* rect); struct _cef_browser_t* browser,
const cef_rect_t* rect);
/// ///
// Called when an element should be painted. Pixel values passed to this // Called when an element should be painted. Pixel values passed to this
@@ -116,16 +133,22 @@ typedef struct _cef_render_handler_t {
// upper-left origin. // upper-left origin.
/// ///
void(CEF_CALLBACK* on_paint)(struct _cef_render_handler_t* self, void(CEF_CALLBACK* on_paint)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, cef_paint_element_type_t type, struct _cef_browser_t* browser,
size_t dirtyRectsCount, cef_rect_t const* dirtyRects, const void* buffer, cef_paint_element_type_t type,
int width, int height); size_t dirtyRectsCount,
cef_rect_t const* dirtyRects,
const void* buffer,
int width,
int height);
/// ///
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then // Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
// |custom_cursor_info| will be populated with the custom cursor information. // |custom_cursor_info| will be populated with the custom cursor information.
/// ///
void (CEF_CALLBACK *on_cursor_change)(struct _cef_render_handler_t* self, void(CEF_CALLBACK* on_cursor_change)(
struct _cef_browser_t* browser, cef_cursor_handle_t cursor, struct _cef_render_handler_t* self,
struct _cef_browser_t* browser,
cef_cursor_handle_t cursor,
cef_cursor_type_t type, cef_cursor_type_t type,
const struct _cef_cursor_info_t* custom_cursor_info); const struct _cef_cursor_info_t* custom_cursor_info);
@@ -144,8 +167,11 @@ typedef struct _cef_render_handler_t {
// operation has ended. // operation has ended.
/// ///
int(CEF_CALLBACK* start_dragging)(struct _cef_render_handler_t* self, int(CEF_CALLBACK* start_dragging)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, struct _cef_drag_data_t* drag_data, struct _cef_browser_t* browser,
cef_drag_operations_mask_t allowed_ops, int x, int y); struct _cef_drag_data_t* drag_data,
cef_drag_operations_mask_t allowed_ops,
int x,
int y);
/// ///
// Called when the web view wants to update the mouse cursor during a drag & // Called when the web view wants to update the mouse cursor during a drag &
@@ -153,14 +179,17 @@ typedef struct _cef_render_handler_t {
// copy, link). // copy, link).
/// ///
void(CEF_CALLBACK* update_drag_cursor)(struct _cef_render_handler_t* self, void(CEF_CALLBACK* update_drag_cursor)(struct _cef_render_handler_t* self,
struct _cef_browser_t* browser, cef_drag_operations_mask_t operation); struct _cef_browser_t* browser,
cef_drag_operations_mask_t operation);
/// ///
// Called when the scroll offset has changed. // Called when the scroll offset has changed.
/// ///
void(CEF_CALLBACK* on_scroll_offset_changed)( void(CEF_CALLBACK* on_scroll_offset_changed)(
struct _cef_render_handler_t* self, struct _cef_browser_t* browser, struct _cef_render_handler_t* self,
double x, double y); struct _cef_browser_t* browser,
double x,
double y);
/// ///
// Called when the IME composition range has changed. |selected_range| is the // Called when the IME composition range has changed. |selected_range| is the
@@ -168,12 +197,13 @@ typedef struct _cef_render_handler_t {
// bounds of each character in view coordinates. // bounds of each character in view coordinates.
/// ///
void(CEF_CALLBACK* on_ime_composition_range_changed)( void(CEF_CALLBACK* on_ime_composition_range_changed)(
struct _cef_render_handler_t* self, struct _cef_browser_t* browser, struct _cef_render_handler_t* self,
const cef_range_t* selected_range, size_t character_boundsCount, struct _cef_browser_t* browser,
const cef_range_t* selected_range,
size_t character_boundsCount,
cef_rect_t const* character_bounds); cef_rect_t const* character_bounds);
} cef_render_handler_t; } cef_render_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=44b61ca19efaae0a664d6d502d550755fbf326fa$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
@@ -51,7 +53,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to implement render process callbacks. The functions of this // Structure used to implement render process callbacks. The functions of this
// structure will be called on the render process main thread (TID_RENDERER) // structure will be called on the render process main thread (TID_RENDERER)
@@ -108,8 +109,10 @@ typedef struct _cef_render_process_handler_t {
/// ///
int(CEF_CALLBACK* on_before_navigation)( int(CEF_CALLBACK* on_before_navigation)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_request_t* request, cef_navigation_type_t navigation_type, struct _cef_frame_t* frame,
struct _cef_request_t* request,
cef_navigation_type_t navigation_type,
int is_redirect); int is_redirect);
/// ///
@@ -122,7 +125,8 @@ typedef struct _cef_render_process_handler_t {
/// ///
void(CEF_CALLBACK* on_context_created)( void(CEF_CALLBACK* on_context_created)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_v8context_t* context); struct _cef_v8context_t* context);
/// ///
@@ -131,7 +135,8 @@ typedef struct _cef_render_process_handler_t {
/// ///
void(CEF_CALLBACK* on_context_released)( void(CEF_CALLBACK* on_context_released)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_v8context_t* context); struct _cef_v8context_t* context);
/// ///
@@ -141,8 +146,10 @@ typedef struct _cef_render_process_handler_t {
/// ///
void(CEF_CALLBACK* on_uncaught_exception)( void(CEF_CALLBACK* on_uncaught_exception)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_v8context_t* context, struct _cef_v8exception_t* exception, struct _cef_frame_t* frame,
struct _cef_v8context_t* context,
struct _cef_v8exception_t* exception,
struct _cef_v8stack_trace_t* stackTrace); struct _cef_v8stack_trace_t* stackTrace);
/// ///
@@ -155,7 +162,8 @@ typedef struct _cef_render_process_handler_t {
/// ///
void(CEF_CALLBACK* on_focused_node_changed)( void(CEF_CALLBACK* on_focused_node_changed)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_domnode_t* node); struct _cef_domnode_t* node);
/// ///
@@ -165,11 +173,11 @@ typedef struct _cef_render_process_handler_t {
/// ///
int(CEF_CALLBACK* on_process_message_received)( int(CEF_CALLBACK* on_process_message_received)(
struct _cef_render_process_handler_t* self, struct _cef_render_process_handler_t* self,
struct _cef_browser_t* browser, cef_process_id_t source_process, struct _cef_browser_t* browser,
cef_process_id_t source_process,
struct _cef_process_message_t* message); struct _cef_process_message_t* message);
} cef_render_process_handler_t; } cef_render_process_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=d7f34d867389c53c384f366e08f958ed724f9b90$
//
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
@@ -93,7 +95,8 @@ typedef struct _cef_request_t {
// ref component will be removed. // ref component will be removed.
/// ///
void(CEF_CALLBACK* set_referrer)(struct _cef_request_t* self, void(CEF_CALLBACK* set_referrer)(struct _cef_request_t* self,
const cef_string_t* referrer_url, cef_referrer_policy_t policy); const cef_string_t* referrer_url,
cef_referrer_policy_t policy);
/// ///
// Get the referrer URL. // Get the referrer URL.
@@ -136,8 +139,10 @@ typedef struct _cef_request_t {
/// ///
// Set all values at one time. // Set all values at one time.
/// ///
void (CEF_CALLBACK *set)(struct _cef_request_t* self, const cef_string_t* url, void(CEF_CALLBACK* set)(struct _cef_request_t* self,
const cef_string_t* method, struct _cef_post_data_t* postData, const cef_string_t* url,
const cef_string_t* method,
struct _cef_post_data_t* postData,
cef_string_multimap_t headerMap); cef_string_multimap_t headerMap);
/// ///
@@ -153,7 +158,7 @@ typedef struct _cef_request_t {
void(CEF_CALLBACK* set_flags)(struct _cef_request_t* self, int flags); void(CEF_CALLBACK* set_flags)(struct _cef_request_t* self, int flags);
/// ///
// Set the URL to the first party for cookies used in combination with // Get the URL to the first party for cookies used in combination with
// cef_urlrequest_t. // cef_urlrequest_t.
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
@@ -161,7 +166,7 @@ typedef struct _cef_request_t {
struct _cef_request_t* self); struct _cef_request_t* self);
/// ///
// Get the URL to the first party for cookies used in combination with // Set the URL to the first party for cookies used in combination with
// cef_urlrequest_t. // cef_urlrequest_t.
/// ///
void(CEF_CALLBACK* set_first_party_for_cookies)(struct _cef_request_t* self, void(CEF_CALLBACK* set_first_party_for_cookies)(struct _cef_request_t* self,
@@ -190,13 +195,11 @@ typedef struct _cef_request_t {
uint64(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self); uint64(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
} cef_request_t; } cef_request_t;
/// ///
// Create a new cef_request_t object. // Create a new cef_request_t object.
/// ///
CEF_EXPORT cef_request_t* cef_request_create(); CEF_EXPORT cef_request_t* cef_request_create();
/// ///
// Structure used to represent post data for a web request. The functions of // Structure used to represent post data for a web request. The functions of
// this structure may be called on any thread. // this structure may be called on any thread.
@@ -229,7 +232,8 @@ typedef struct _cef_post_data_t {
// Retrieve the post data elements. // Retrieve the post data elements.
/// ///
void(CEF_CALLBACK* get_elements)(struct _cef_post_data_t* self, void(CEF_CALLBACK* get_elements)(struct _cef_post_data_t* self,
size_t* elementsCount, struct _cef_post_data_element_t** elements); size_t* elementsCount,
struct _cef_post_data_element_t** elements);
/// ///
// Remove the specified post data element. Returns true (1) if the removal // Remove the specified post data element. Returns true (1) if the removal
@@ -250,13 +254,11 @@ typedef struct _cef_post_data_t {
void(CEF_CALLBACK* remove_elements)(struct _cef_post_data_t* self); void(CEF_CALLBACK* remove_elements)(struct _cef_post_data_t* self);
} cef_post_data_t; } cef_post_data_t;
/// ///
// Create a new cef_post_data_t object. // Create a new cef_post_data_t object.
/// ///
CEF_EXPORT cef_post_data_t* cef_post_data_create(); CEF_EXPORT cef_post_data_t* cef_post_data_create();
/// ///
// Structure used to represent a single element in the request post data. The // Structure used to represent a single element in the request post data. The
// functions of this structure may be called on any thread. // functions of this structure may be called on any thread.
@@ -288,7 +290,8 @@ typedef struct _cef_post_data_element_t {
// copied. // copied.
/// ///
void(CEF_CALLBACK* set_to_bytes)(struct _cef_post_data_element_t* self, void(CEF_CALLBACK* set_to_bytes)(struct _cef_post_data_element_t* self,
size_t size, const void* bytes); size_t size,
const void* bytes);
/// ///
// Return the type of this post data element. // Return the type of this post data element.
@@ -313,16 +316,15 @@ typedef struct _cef_post_data_element_t {
// actually read. // actually read.
/// ///
size_t(CEF_CALLBACK* get_bytes)(struct _cef_post_data_element_t* self, size_t(CEF_CALLBACK* get_bytes)(struct _cef_post_data_element_t* self,
size_t size, void* bytes); size_t size,
void* bytes);
} cef_post_data_element_t; } cef_post_data_element_t;
/// ///
// Create a new cef_post_data_element_t object. // Create a new cef_post_data_element_t object.
/// ///
CEF_EXPORT cef_post_data_element_t* cef_post_data_element_create(); CEF_EXPORT cef_post_data_element_t* cef_post_data_element_create();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=5f6d84d988bab3a600e6fbb6db0523acaeef88b3$
//
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
@@ -40,6 +42,8 @@
#include "include/capi/cef_callback_capi.h" #include "include/capi/cef_callback_capi.h"
#include "include/capi/cef_cookie_capi.h" #include "include/capi/cef_cookie_capi.h"
#include "include/capi/cef_extension_capi.h"
#include "include/capi/cef_extension_handler_capi.h"
#include "include/capi/cef_request_context_handler_capi.h" #include "include/capi/cef_request_context_handler_capi.h"
#include "include/capi/cef_values_capi.h" #include "include/capi/cef_values_capi.h"
@@ -59,16 +63,15 @@ typedef struct _cef_resolve_callback_t {
cef_base_ref_counted_t base; cef_base_ref_counted_t base;
/// ///
// Called after the ResolveHost request has completed. |result| will be the // Called on the UI thread after the ResolveHost request has completed.
// result code. |resolved_ips| will be the list of resolved IP addresses or // |result| will be the result code. |resolved_ips| will be the list of
// NULL if the resolution failed. // resolved IP addresses or NULL if the resolution failed.
/// ///
void (CEF_CALLBACK *on_resolve_completed)( void(CEF_CALLBACK* on_resolve_completed)(struct _cef_resolve_callback_t* self,
struct _cef_resolve_callback_t* self, cef_errorcode_t result, cef_errorcode_t result,
cef_string_list_t resolved_ips); cef_string_list_t resolved_ips);
} cef_resolve_callback_t; } cef_resolve_callback_t;
/// ///
// A request context provides request handling for a set of related browser or // A request context provides request handling for a set of related browser or
// URL request objects. A request context can be specified when creating a new // URL request objects. A request context can be specified when creating a new
@@ -152,7 +155,8 @@ typedef struct _cef_request_context_t {
// may be called on any thread in the browser process. // may be called on any thread in the browser process.
/// ///
int(CEF_CALLBACK* register_scheme_handler_factory)( int(CEF_CALLBACK* register_scheme_handler_factory)(
struct _cef_request_context_t* self, const cef_string_t* scheme_name, struct _cef_request_context_t* self,
const cef_string_t* scheme_name,
const cef_string_t* domain_name, const cef_string_t* domain_name,
struct _cef_scheme_handler_factory_t* factory); struct _cef_scheme_handler_factory_t* factory);
@@ -171,7 +175,8 @@ typedef struct _cef_request_context_t {
// the plugin list cache. // the plugin list cache.
/// ///
void(CEF_CALLBACK* purge_plugin_list_cache)( void(CEF_CALLBACK* purge_plugin_list_cache)(
struct _cef_request_context_t* self, int reload_pages); struct _cef_request_context_t* self,
int reload_pages);
/// ///
// Returns true (1) if a preference with the specified |name| exists. This // Returns true (1) if a preference with the specified |name| exists. This
@@ -188,7 +193,8 @@ typedef struct _cef_request_context_t {
// called on the browser process UI thread. // called on the browser process UI thread.
/// ///
struct _cef_value_t*(CEF_CALLBACK* get_preference)( struct _cef_value_t*(CEF_CALLBACK* get_preference)(
struct _cef_request_context_t* self, const cef_string_t* name); struct _cef_request_context_t* self,
const cef_string_t* name);
/// ///
// Returns all preferences as a dictionary. If |include_defaults| is true (1) // Returns all preferences as a dictionary. If |include_defaults| is true (1)
@@ -199,7 +205,8 @@ typedef struct _cef_request_context_t {
// thread. // thread.
/// ///
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)( struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)(
struct _cef_request_context_t* self, int include_defaults); struct _cef_request_context_t* self,
int include_defaults);
/// ///
// Returns true (1) if the preference with the specified |name| can be // Returns true (1) if the preference with the specified |name| can be
@@ -218,7 +225,8 @@ typedef struct _cef_request_context_t {
// problem. This function must be called on the browser process UI thread. // problem. This function must be called on the browser process UI thread.
/// ///
int(CEF_CALLBACK* set_preference)(struct _cef_request_context_t* self, int(CEF_CALLBACK* set_preference)(struct _cef_request_context_t* self,
const cef_string_t* name, struct _cef_value_t* value, const cef_string_t* name,
struct _cef_value_t* value,
cef_string_t* error); cef_string_t* error);
/// ///
@@ -236,7 +244,7 @@ typedef struct _cef_request_context_t {
/// ///
// Clears all active and idle connections that Chromium currently has. This is // Clears all active and idle connections that Chromium currently has. This is
// only recommended if you have released all other CEF objects but don't yet // only recommended if you have released all other CEF objects but don't yet
// want to call cef_shutdown(). If |callback| is non-NULL it will be executed // want to call Cefshutdown(). If |callback| is non-NULL it will be executed
// on the UI thread after completion. // on the UI thread after completion.
/// ///
void(CEF_CALLBACK* close_all_connections)( void(CEF_CALLBACK* close_all_connections)(
@@ -248,7 +256,8 @@ typedef struct _cef_request_context_t {
// |callback| will be executed on the UI thread after completion. // |callback| will be executed on the UI thread after completion.
/// ///
void(CEF_CALLBACK* resolve_host)(struct _cef_request_context_t* self, void(CEF_CALLBACK* resolve_host)(struct _cef_request_context_t* self,
const cef_string_t* origin, struct _cef_resolve_callback_t* callback); const cef_string_t* origin,
struct _cef_resolve_callback_t* callback);
/// ///
// Attempts to resolve |origin| to a list of associated IP addresses using // Attempts to resolve |origin| to a list of associated IP addresses using
@@ -257,10 +266,99 @@ typedef struct _cef_request_context_t {
// success. This function must be called on the browser process IO thread. // success. This function must be called on the browser process IO thread.
/// ///
cef_errorcode_t(CEF_CALLBACK* resolve_host_cached)( cef_errorcode_t(CEF_CALLBACK* resolve_host_cached)(
struct _cef_request_context_t* self, const cef_string_t* origin, struct _cef_request_context_t* self,
const cef_string_t* origin,
cef_string_list_t resolved_ips); cef_string_list_t resolved_ips);
} cef_request_context_t;
///
// Load an extension.
//
// If extension resources will be read from disk using the default load
// implementation then |root_directory| should be the absolute path to the
// extension resources directory and |manifest| should be NULL. If extension
// resources will be provided by the client (e.g. via cef_request_tHandler
// and/or cef_extension_tHandler) then |root_directory| should be a path
// component unique to the extension (if not absolute this will be internally
// prefixed with the PK_DIR_RESOURCES path) and |manifest| should contain the
// contents that would otherwise be read from the "manifest.json" file on
// disk.
//
// The loaded extension will be accessible in all contexts sharing the same
// storage (HasExtension returns true (1)). However, only the context on which
// this function was called is considered the loader (DidLoadExtension returns
// true (1)) and only the loader will receive cef_request_tContextHandler
// callbacks for the extension.
//
// cef_extension_tHandler::OnExtensionLoaded will be called on load success or
// cef_extension_tHandler::OnExtensionLoadFailed will be called on load
// failure.
//
// If the extension specifies a background script via the "background"
// manifest key then cef_extension_tHandler::OnBeforeBackgroundBrowser will be
// called to create the background browser. See that function for additional
// information about background scripts.
//
// For visible extension views the client application should evaluate the
// manifest to determine the correct extension URL to load and then pass that
// URL to the cef_browser_host_t::CreateBrowser* function after the extension
// has loaded. For example, the client can look for the "browser_action"
// manifest key as documented at
// https://developer.chrome.com/extensions/browserAction. Extension URLs take
// the form "chrome-extension://<extension_id>/<path>".
//
// Browsers that host extensions differ from normal browsers as follows:
// - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit
// chrome://extensions-support for the list of extension APIs currently
// supported by CEF.
// - Main frame navigation to non-extension content is blocked.
// - Pinch-zooming is disabled.
// - CefBrowserHost::GetExtension returns the hosted extension.
// - CefBrowserHost::IsBackgroundHost returns true for background hosts.
//
// See https://developer.chrome.com/extensions for extension implementation
// and usage documentation.
///
void(CEF_CALLBACK* load_extension)(struct _cef_request_context_t* self,
const cef_string_t* root_directory,
struct _cef_dictionary_value_t* manifest,
struct _cef_extension_handler_t* handler);
///
// Returns true (1) if this context was used to load the extension identified
// by |extension_id|. Other contexts sharing the same storage will also have
// access to the extension (see HasExtension). This function must be called on
// the browser process UI thread.
///
int(CEF_CALLBACK* did_load_extension)(struct _cef_request_context_t* self,
const cef_string_t* extension_id);
///
// Returns true (1) if this context has access to the extension identified by
// |extension_id|. This may not be the context that was used to load the
// extension (see DidLoadExtension). This function must be called on the
// browser process UI thread.
///
int(CEF_CALLBACK* has_extension)(struct _cef_request_context_t* self,
const cef_string_t* extension_id);
///
// Retrieve the list of all extensions that this context has access to (see
// HasExtension). |extension_ids| will be populated with the list of extension
// ID values. Returns true (1) on success. This function must be called on the
// browser process UI thread.
///
int(CEF_CALLBACK* get_extensions)(struct _cef_request_context_t* self,
cef_string_list_t extension_ids);
///
// Returns the extension matching |extension_id| or NULL if no matching
// extension is accessible in this context (see HasExtension). This function
// must be called on the browser process UI thread.
///
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
struct _cef_request_context_t* self,
const cef_string_t* extension_id);
} cef_request_context_t;
/// ///
// Returns the global context object. // Returns the global context object.
@@ -283,7 +381,6 @@ CEF_EXPORT cef_request_context_t* cef_create_context_shared(
cef_request_context_t* other, cef_request_context_t* other,
struct _cef_request_context_handler_t* handler); struct _cef_request_context_handler_t* handler);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=52978f64fe2a612c05fc42a91ec53df6ff42079d$
//
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
@@ -46,6 +48,7 @@
extern "C" { extern "C" {
#endif #endif
struct _cef_request_context_t;
/// ///
// Implement this structure to provide handler implementations. The handler // Implement this structure to provide handler implementations. The handler
@@ -58,6 +61,14 @@ typedef struct _cef_request_context_handler_t {
/// ///
cef_base_ref_counted_t base; cef_base_ref_counted_t base;
///
// Called on the browser process UI thread immediately after the request
// context has been initialized.
///
void(CEF_CALLBACK* on_request_context_initialized)(
struct _cef_request_context_handler_t* self,
struct _cef_request_context_t* request_context);
/// ///
// Called on the browser process IO thread to retrieve the cookie manager. If // Called on the browser process IO thread to retrieve the cookie manager. If
// this function returns NULL the default cookie manager retrievable via // this function returns NULL the default cookie manager retrievable via
@@ -87,13 +98,14 @@ typedef struct _cef_request_context_handler_t {
/// ///
int(CEF_CALLBACK* on_before_plugin_load)( int(CEF_CALLBACK* on_before_plugin_load)(
struct _cef_request_context_handler_t* self, struct _cef_request_context_handler_t* self,
const cef_string_t* mime_type, const cef_string_t* plugin_url, const cef_string_t* mime_type,
int is_main_frame, const cef_string_t* top_origin_url, const cef_string_t* plugin_url,
int is_main_frame,
const cef_string_t* top_origin_url,
struct _cef_web_plugin_info_t* plugin_info, struct _cef_web_plugin_info_t* plugin_info,
cef_plugin_policy_t* plugin_policy); cef_plugin_policy_t* plugin_policy);
} cef_request_context_handler_t; } cef_request_context_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=b8b5a62b11dbc48f0733c0522864e4dbda8b4f59$
//
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_REQUEST_HANDLER_CAPI_H_
@@ -53,7 +55,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Callback structure used for asynchronous continuation of url requests. // Callback structure used for asynchronous continuation of url requests.
/// ///
@@ -75,7 +76,6 @@ typedef struct _cef_request_callback_t {
void(CEF_CALLBACK* cancel)(struct _cef_request_callback_t* self); void(CEF_CALLBACK* cancel)(struct _cef_request_callback_t* self);
} cef_request_callback_t; } cef_request_callback_t;
/// ///
// Callback structure used to select a client certificate for authentication. // Callback structure used to select a client certificate for authentication.
/// ///
@@ -94,7 +94,6 @@ typedef struct _cef_select_client_certificate_callback_t {
struct _cef_x509certificate_t* cert); struct _cef_x509certificate_t* cert);
} cef_select_client_certificate_callback_t; } cef_select_client_certificate_callback_t;
/// ///
// Implement this structure to handle events related to browser requests. The // Implement this structure to handle events related to browser requests. The
// functions of this structure will be called on the thread indicated. // functions of this structure will be called on the thread indicated.
@@ -116,8 +115,10 @@ typedef struct _cef_request_handler_t {
// ERR_ABORTED. // ERR_ABORTED.
/// ///
int(CEF_CALLBACK* on_before_browse)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* on_before_browse)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_request_t* request, int is_redirect); struct _cef_frame_t* frame,
struct _cef_request_t* request,
int is_redirect);
/// ///
// Called on the UI thread before OnBeforeBrowse in certain limited cases // Called on the UI thread before OnBeforeBrowse in certain limited cases
@@ -135,10 +136,13 @@ typedef struct _cef_request_handler_t {
// true (1) to cancel the navigation or false (0) to allow the navigation to // true (1) to cancel the navigation or false (0) to allow the navigation to
// proceed in the source browser's top-level frame. // proceed in the source browser's top-level frame.
/// ///
int (CEF_CALLBACK *on_open_urlfrom_tab)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* on_open_urlfrom_tab)(
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_request_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
const cef_string_t* target_url, const cef_string_t* target_url,
cef_window_open_disposition_t target_disposition, int user_gesture); cef_window_open_disposition_t target_disposition,
int user_gesture);
/// ///
// Called on the IO thread before a resource request is loaded. The |request| // Called on the IO thread before a resource request is loaded. The |request|
@@ -149,8 +153,10 @@ typedef struct _cef_request_handler_t {
// //
/// ///
cef_return_value_t(CEF_CALLBACK* on_before_resource_load)( cef_return_value_t(CEF_CALLBACK* on_before_resource_load)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
struct _cef_frame_t* frame, struct _cef_request_t* request, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_request_t* request,
struct _cef_request_callback_t* callback); struct _cef_request_callback_t* callback);
/// ///
@@ -160,8 +166,10 @@ typedef struct _cef_request_handler_t {
// modified in this callback. // modified in this callback.
/// ///
struct _cef_resource_handler_t*(CEF_CALLBACK* get_resource_handler)( struct _cef_resource_handler_t*(CEF_CALLBACK* get_resource_handler)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
struct _cef_frame_t* frame, struct _cef_request_t* request); struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_request_t* request);
/// ///
// Called on the IO thread when a resource load is redirected. The |request| // Called on the IO thread when a resource load is redirected. The |request|
@@ -172,8 +180,10 @@ typedef struct _cef_request_handler_t {
// callback. // callback.
/// ///
void(CEF_CALLBACK* on_resource_redirect)(struct _cef_request_handler_t* self, void(CEF_CALLBACK* on_resource_redirect)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_request_t* request, struct _cef_response_t* response, struct _cef_frame_t* frame,
struct _cef_request_t* request,
struct _cef_response_t* response,
cef_string_t* new_url); cef_string_t* new_url);
/// ///
@@ -183,8 +193,10 @@ typedef struct _cef_request_handler_t {
// The |response| object cannot be modified in this callback. // The |response| object cannot be modified in this callback.
/// ///
int(CEF_CALLBACK* on_resource_response)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* on_resource_response)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
struct _cef_request_t* request, struct _cef_response_t* response); struct _cef_frame_t* frame,
struct _cef_request_t* request,
struct _cef_response_t* response);
/// ///
// Called on the IO thread to optionally filter resource response content. // Called on the IO thread to optionally filter resource response content.
@@ -192,8 +204,10 @@ typedef struct _cef_request_handler_t {
// and cannot be modified in this callback. // and cannot be modified in this callback.
/// ///
struct _cef_response_filter_t*(CEF_CALLBACK* get_resource_response_filter)( struct _cef_response_filter_t*(CEF_CALLBACK* get_resource_response_filter)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
struct _cef_frame_t* frame, struct _cef_request_t* request, struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_request_t* request,
struct _cef_response_t* response); struct _cef_response_t* response);
/// ///
@@ -203,9 +217,12 @@ typedef struct _cef_request_handler_t {
// |received_content_length| is the number of response bytes actually read. // |received_content_length| is the number of response bytes actually read.
/// ///
void(CEF_CALLBACK* on_resource_load_complete)( void(CEF_CALLBACK* on_resource_load_complete)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
struct _cef_frame_t* frame, struct _cef_request_t* request, struct _cef_browser_t* browser,
struct _cef_response_t* response, cef_urlrequest_status_t status, struct _cef_frame_t* frame,
struct _cef_request_t* request,
struct _cef_response_t* response,
cef_urlrequest_status_t status,
int64 received_content_length); int64 received_content_length);
/// ///
@@ -219,10 +236,39 @@ typedef struct _cef_request_handler_t {
// the authentication information is available. Return false (0) to cancel the // the authentication information is available. Return false (0) to cancel the
// request immediately. // request immediately.
/// ///
int (CEF_CALLBACK *get_auth_credentials)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* get_auth_credentials)(
struct _cef_browser_t* browser, struct _cef_frame_t* frame, int isProxy, struct _cef_request_handler_t* self,
const cef_string_t* host, int port, const cef_string_t* realm, struct _cef_browser_t* browser,
const cef_string_t* scheme, struct _cef_auth_callback_t* callback); struct _cef_frame_t* frame,
int isProxy,
const cef_string_t* host,
int port,
const cef_string_t* realm,
const cef_string_t* scheme,
struct _cef_auth_callback_t* callback);
///
// Called on the IO thread before sending a network request with a "Cookie"
// request header. Return true (1) to allow cookies to be included in the
// network request or false (0) to block cookies. The |request| object should
// not be modified in this callback.
///
int(CEF_CALLBACK* can_get_cookies)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_request_t* request);
///
// Called on the IO thread when receiving a network request with a "Set-
// Cookie" response header value represented by |cookie|. Return true (1) to
// allow the cookie to be stored or false (0) to block the cookie. The
// |request| object should not be modified in this callback.
///
int(CEF_CALLBACK* can_set_cookie)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser,
struct _cef_frame_t* frame,
struct _cef_request_t* request,
const struct _cef_cookie_t* cookie);
/// ///
// Called on the IO thread when JavaScript requests a specific storage quota // Called on the IO thread when JavaScript requests a specific storage quota
@@ -234,8 +280,10 @@ typedef struct _cef_request_handler_t {
// immediately. // immediately.
/// ///
int(CEF_CALLBACK* on_quota_request)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* on_quota_request)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* origin_url, struct _cef_browser_t* browser,
int64 new_size, struct _cef_request_callback_t* callback); const cef_string_t* origin_url,
int64 new_size,
struct _cef_request_callback_t* callback);
/// ///
// Called on the UI thread to handle requests for URLs with an unknown // Called on the UI thread to handle requests for URLs with an unknown
@@ -244,9 +292,10 @@ typedef struct _cef_request_handler_t {
// YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR // YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR
// OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION. // OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION.
/// ///
void (CEF_CALLBACK *on_protocol_execution)( void(CEF_CALLBACK* on_protocol_execution)(struct _cef_request_handler_t* self,
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_browser_t* browser,
const cef_string_t* url, int* allow_os_execution); const cef_string_t* url,
int* allow_os_execution);
/// ///
// Called on the UI thread to handle requests for URLs with an invalid SSL // Called on the UI thread to handle requests for URLs with an invalid SSL
@@ -256,9 +305,12 @@ typedef struct _cef_request_handler_t {
// CefSettings.ignore_certificate_errors is set all invalid certificates will // CefSettings.ignore_certificate_errors is set all invalid certificates will
// be accepted without calling this function. // be accepted without calling this function.
/// ///
int (CEF_CALLBACK *on_certificate_error)(struct _cef_request_handler_t* self, int(CEF_CALLBACK* on_certificate_error)(
struct _cef_browser_t* browser, cef_errorcode_t cert_error, struct _cef_request_handler_t* self,
const cef_string_t* request_url, struct _cef_sslinfo_t* ssl_info, struct _cef_browser_t* browser,
cef_errorcode_t cert_error,
const cef_string_t* request_url,
struct _cef_sslinfo_t* ssl_info,
struct _cef_request_callback_t* callback); struct _cef_request_callback_t* callback);
/// ///
@@ -275,8 +327,11 @@ typedef struct _cef_request_handler_t {
// the server trusts. // the server trusts.
/// ///
int(CEF_CALLBACK* on_select_client_certificate)( int(CEF_CALLBACK* on_select_client_certificate)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
int isProxy, const cef_string_t* host, int port, struct _cef_browser_t* browser,
int isProxy,
const cef_string_t* host,
int port,
size_t certificatesCount, size_t certificatesCount,
struct _cef_x509certificate_t* const* certificates, struct _cef_x509certificate_t* const* certificates,
struct _cef_select_client_certificate_callback_t* callback); struct _cef_select_client_certificate_callback_t* callback);
@@ -286,7 +341,8 @@ typedef struct _cef_request_handler_t {
// |plugin_path| is the path of the plugin that crashed. // |plugin_path| is the path of the plugin that crashed.
/// ///
void(CEF_CALLBACK* on_plugin_crashed)(struct _cef_request_handler_t* self, void(CEF_CALLBACK* on_plugin_crashed)(struct _cef_request_handler_t* self,
struct _cef_browser_t* browser, const cef_string_t* plugin_path); struct _cef_browser_t* browser,
const cef_string_t* plugin_path);
/// ///
// Called on the browser process UI thread when the render view associated // Called on the browser process UI thread when the render view associated
@@ -301,11 +357,11 @@ typedef struct _cef_request_handler_t {
// unexpectedly. |status| indicates how the process terminated. // unexpectedly. |status| indicates how the process terminated.
/// ///
void(CEF_CALLBACK* on_render_process_terminated)( void(CEF_CALLBACK* on_render_process_terminated)(
struct _cef_request_handler_t* self, struct _cef_browser_t* browser, struct _cef_request_handler_t* self,
struct _cef_browser_t* browser,
cef_termination_status_t status); cef_termination_status_t status);
} cef_request_handler_t; } cef_request_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=439cc7c4ac7f2178ab0b445ab91df66b6759335f$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used for retrieving resources from the resource bundle (*.pak) // Structure used for retrieving resources from the resource bundle (*.pak)
// files loaded by CEF during startup or via the cef_resource_bundle_tHandler // files loaded by CEF during startup or via the cef_resource_bundle_tHandler
@@ -65,7 +66,8 @@ typedef struct _cef_resource_bundle_t {
/// ///
// The resulting string must be freed by calling cef_string_userfree_free(). // The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_localized_string)( cef_string_userfree_t(CEF_CALLBACK* get_localized_string)(
struct _cef_resource_bundle_t* self, int string_id); struct _cef_resource_bundle_t* self,
int string_id);
/// ///
// Retrieves the contents of the specified scale independent |resource_id|. If // Retrieves the contents of the specified scale independent |resource_id|. If
@@ -76,7 +78,9 @@ typedef struct _cef_resource_bundle_t {
// of valid resource ID values. // of valid resource ID values.
/// ///
int(CEF_CALLBACK* get_data_resource)(struct _cef_resource_bundle_t* self, int(CEF_CALLBACK* get_data_resource)(struct _cef_resource_bundle_t* self,
int resource_id, void** data, size_t* data_size); int resource_id,
void** data,
size_t* data_size);
/// ///
// Retrieves the contents of the specified |resource_id| nearest the scale // Retrieves the contents of the specified |resource_id| nearest the scale
@@ -89,17 +93,18 @@ typedef struct _cef_resource_bundle_t {
// of valid resource ID values. // of valid resource ID values.
/// ///
int(CEF_CALLBACK* get_data_resource_for_scale)( int(CEF_CALLBACK* get_data_resource_for_scale)(
struct _cef_resource_bundle_t* self, int resource_id, struct _cef_resource_bundle_t* self,
cef_scale_factor_t scale_factor, void** data, size_t* data_size); int resource_id,
cef_scale_factor_t scale_factor,
void** data,
size_t* data_size);
} cef_resource_bundle_t; } cef_resource_bundle_t;
/// ///
// Returns the global resource bundle instance. // Returns the global resource bundle instance.
/// ///
CEF_EXPORT cef_resource_bundle_t* cef_resource_bundle_get_global(); CEF_EXPORT cef_resource_bundle_t* cef_resource_bundle_get_global();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=ce250b3a07931595bbf0028fb56c11b6160f836e$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RESOURCE_BUNDLE_HANDLER_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to implement a custom resource bundle structure. See // Structure used to implement a custom resource bundle structure. See
// CefSettings for additional options related to resource bundle loading. The // CefSettings for additional options related to resource bundle loading. The
@@ -63,7 +64,8 @@ typedef struct _cef_resource_bundle_handler_t {
// cef_pack_strings.h for a listing of valid string ID values. // cef_pack_strings.h for a listing of valid string ID values.
/// ///
int(CEF_CALLBACK* get_localized_string)( int(CEF_CALLBACK* get_localized_string)(
struct _cef_resource_bundle_handler_t* self, int string_id, struct _cef_resource_bundle_handler_t* self,
int string_id,
cef_string_t* string); cef_string_t* string);
/// ///
@@ -75,7 +77,9 @@ typedef struct _cef_resource_bundle_handler_t {
// resource ID values. // resource ID values.
/// ///
int(CEF_CALLBACK* get_data_resource)( int(CEF_CALLBACK* get_data_resource)(
struct _cef_resource_bundle_handler_t* self, int resource_id, void** data, struct _cef_resource_bundle_handler_t* self,
int resource_id,
void** data,
size_t* data_size); size_t* data_size);
/// ///
@@ -87,11 +91,13 @@ typedef struct _cef_resource_bundle_handler_t {
// cef_pack_resources.h for a listing of valid resource ID values. // cef_pack_resources.h for a listing of valid resource ID values.
/// ///
int(CEF_CALLBACK* get_data_resource_for_scale)( int(CEF_CALLBACK* get_data_resource_for_scale)(
struct _cef_resource_bundle_handler_t* self, int resource_id, struct _cef_resource_bundle_handler_t* self,
cef_scale_factor_t scale_factor, void** data, size_t* data_size); int resource_id,
cef_scale_factor_t scale_factor,
void** data,
size_t* data_size);
} cef_resource_bundle_handler_t; } cef_resource_bundle_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=64a8d248c8c6c5b17a8ce1bdf79b82e791d87a1a$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RESOURCE_HANDLER_CAPI_H_
@@ -49,7 +51,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to implement a custom request handler structure. The functions // Structure used to implement a custom request handler structure. The functions
// of this structure will always be called on the IO thread. // of this structure will always be called on the IO thread.
@@ -68,7 +69,8 @@ typedef struct _cef_resource_handler_t {
// request return false (0). // request return false (0).
/// ///
int(CEF_CALLBACK* process_request)(struct _cef_resource_handler_t* self, int(CEF_CALLBACK* process_request)(struct _cef_resource_handler_t* self,
struct _cef_request_t* request, struct _cef_callback_t* callback); struct _cef_request_t* request,
struct _cef_callback_t* callback);
/// ///
// Retrieve response header information. If the response length is not known // Retrieve response header information. If the response length is not known
@@ -81,9 +83,10 @@ typedef struct _cef_resource_handler_t {
// URL. If an error occured while setting up the request you can call // URL. If an error occured while setting up the request you can call
// set_error() on |response| to indicate the error condition. // set_error() on |response| to indicate the error condition.
/// ///
void (CEF_CALLBACK *get_response_headers)( void(CEF_CALLBACK* get_response_headers)(struct _cef_resource_handler_t* self,
struct _cef_resource_handler_t* self, struct _cef_response_t* response, struct _cef_response_t* response,
int64* response_length, cef_string_t* redirectUrl); int64* response_length,
cef_string_t* redirectUrl);
/// ///
// Read response data. If data is available immediately copy up to // Read response data. If data is available immediately copy up to
@@ -93,7 +96,9 @@ typedef struct _cef_resource_handler_t {
// data is available. To indicate response completion return false (0). // data is available. To indicate response completion return false (0).
/// ///
int(CEF_CALLBACK* read_response)(struct _cef_resource_handler_t* self, int(CEF_CALLBACK* read_response)(struct _cef_resource_handler_t* self,
void* data_out, int bytes_to_read, int* bytes_read, void* data_out,
int bytes_to_read,
int* bytes_read,
struct _cef_callback_t* callback); struct _cef_callback_t* callback);
/// ///
@@ -117,7 +122,6 @@ typedef struct _cef_resource_handler_t {
void(CEF_CALLBACK* cancel)(struct _cef_resource_handler_t* self); void(CEF_CALLBACK* cancel)(struct _cef_resource_handler_t* self);
} cef_resource_handler_t; } cef_resource_handler_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=561e4711432158fd3da971f3c0240dcf5e8e782a$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RESPONSE_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure used to represent a web response. The functions of this structure // Structure used to represent a web response. The functions of this structure
// may be called on any thread. // may be called on any thread.
@@ -128,13 +129,11 @@ typedef struct _cef_response_t {
cef_string_multimap_t headerMap); cef_string_multimap_t headerMap);
} cef_response_t; } cef_response_t;
/// ///
// Create a new cef_response_t object. // Create a new cef_response_t object.
/// ///
CEF_EXPORT cef_response_t* cef_response_create(); CEF_EXPORT cef_response_t* cef_response_create();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=a0599caa7b458266ace091657d7024453d7ce37a$
//
#ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_RESPONSE_FILTER_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Implement this structure to filter resource response content. The functions // Implement this structure to filter resource response content. The functions
// of this structure will be called on the browser process IO thread. // of this structure will be called on the browser process IO thread.
@@ -93,12 +94,15 @@ typedef struct _cef_response_filter_t {
// Do not keep a reference to the buffers passed to this function. // Do not keep a reference to the buffers passed to this function.
/// ///
cef_response_filter_status_t(CEF_CALLBACK* filter)( cef_response_filter_status_t(CEF_CALLBACK* filter)(
struct _cef_response_filter_t* self, void* data_in, size_t data_in_size, struct _cef_response_filter_t* self,
size_t* data_in_read, void* data_out, size_t data_out_size, void* data_in,
size_t data_in_size,
size_t* data_in_read,
void* data_out,
size_t data_out_size,
size_t* data_out_written); size_t* data_out_written);
} cef_response_filter_t; } cef_response_filter_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=57a50b4c4bee68267ffcf7efebfbe711b62b0f84$
//
#ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_SCHEME_CAPI_H_
@@ -120,12 +122,15 @@ typedef struct _cef_scheme_registrar_t {
// if an error occurs this function will return false (0). // if an error occurs this function will return false (0).
/// ///
int(CEF_CALLBACK* add_custom_scheme)(struct _cef_scheme_registrar_t* self, int(CEF_CALLBACK* add_custom_scheme)(struct _cef_scheme_registrar_t* self,
const cef_string_t* scheme_name, int is_standard, int is_local, const cef_string_t* scheme_name,
int is_display_isolated, int is_secure, int is_cors_enabled, int is_standard,
int is_local,
int is_display_isolated,
int is_secure,
int is_cors_enabled,
int is_csp_bypassing); int is_csp_bypassing);
} cef_scheme_registrar_t; } cef_scheme_registrar_t;
/// ///
// Structure that creates cef_resource_handler_t instances for handling scheme // Structure that creates cef_resource_handler_t instances for handling scheme
// requests. The functions of this structure will always be called on the IO // requests. The functions of this structure will always be called on the IO
@@ -147,11 +152,12 @@ typedef struct _cef_scheme_handler_factory_t {
/// ///
struct _cef_resource_handler_t*(CEF_CALLBACK* create)( struct _cef_resource_handler_t*(CEF_CALLBACK* create)(
struct _cef_scheme_handler_factory_t* self, struct _cef_scheme_handler_factory_t* self,
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser,
const cef_string_t* scheme_name, struct _cef_request_t* request); struct _cef_frame_t* frame,
const cef_string_t* scheme_name,
struct _cef_request_t* request);
} cef_scheme_handler_factory_t; } cef_scheme_handler_factory_t;
/// ///
// Register a scheme handler factory with the global request context. An NULL // Register a scheme handler factory with the global request context. An NULL
// |domain_name| value for a standard scheme will cause the factory to match all // |domain_name| value for a standard scheme will cause the factory to match all
@@ -168,7 +174,8 @@ typedef struct _cef_scheme_handler_factory_t {
// ory(). // ory().
/// ///
CEF_EXPORT int cef_register_scheme_handler_factory( CEF_EXPORT int cef_register_scheme_handler_factory(
const cef_string_t* scheme_name, const cef_string_t* domain_name, const cef_string_t* scheme_name,
const cef_string_t* domain_name,
cef_scheme_handler_factory_t* factory); cef_scheme_handler_factory_t* factory);
/// ///

View File

@@ -0,0 +1,327 @@
// Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool and should not edited
// by hand. See the translator.README.txt file in the tools directory for
// more information.
//
// $hash=0653420628236b2bc16541d65b75742aba4e4613$
//
#ifndef CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_
#pragma once
#include "include/capi/cef_base_capi.h"
#include "include/capi/cef_callback_capi.h"
#include "include/capi/cef_request_capi.h"
#include "include/capi/cef_task_capi.h"
#ifdef __cplusplus
extern "C" {
#endif
struct _cef_server_handler_t;
///
// Structure representing a server that supports HTTP and WebSocket requests.
// Server capacity is limited and is intended to handle only a small number of
// simultaneous connections (e.g. for communicating between applications on
// localhost). The functions of this structure are safe to call from any thread
// in the brower process unless otherwise indicated.
///
typedef struct _cef_server_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Returns the task runner for the dedicated server thread.
///
struct _cef_task_runner_t*(CEF_CALLBACK* get_task_runner)(
struct _cef_server_t* self);
///
// Stop the server and shut down the dedicated server thread. See
// cef_server_handler_t::OnServerCreated documentation for a description of
// server lifespan.
///
void(CEF_CALLBACK* shutdown)(struct _cef_server_t* self);
///
// Returns true (1) if the server is currently running and accepting incoming
// connections. See cef_server_handler_t::OnServerCreated documentation for a
// description of server lifespan. This function must be called on the
// dedicated server thread.
///
int(CEF_CALLBACK* is_running)(struct _cef_server_t* self);
///
// Returns the server address including the port number.
///
// The resulting string must be freed by calling cef_string_userfree_free().
cef_string_userfree_t(CEF_CALLBACK* get_address)(struct _cef_server_t* self);
///
// Returns true (1) if the server currently has a connection. This function
// must be called on the dedicated server thread.
///
int(CEF_CALLBACK* has_connection)(struct _cef_server_t* self);
///
// Returns true (1) if |connection_id| represents a valid connection. This
// function must be called on the dedicated server thread.
///
int(CEF_CALLBACK* is_valid_connection)(struct _cef_server_t* self,
int connection_id);
///
// Send an HTTP 200 "OK" response to the connection identified by
// |connection_id|. |content_type| is the response content type (e.g.
// "text/html"), |data| is the response content, and |data_size| is the size
// of |data| in bytes. The contents of |data| will be copied. The connection
// will be closed automatically after the response is sent.
///
void(CEF_CALLBACK* send_http200response)(struct _cef_server_t* self,
int connection_id,
const cef_string_t* content_type,
const void* data,
size_t data_size);
///
// Send an HTTP 404 "Not Found" response to the connection identified by
// |connection_id|. The connection will be closed automatically after the
// response is sent.
///
void(CEF_CALLBACK* send_http404response)(struct _cef_server_t* self,
int connection_id);
///
// Send an HTTP 500 "Internal Server Error" response to the connection
// identified by |connection_id|. |error_message| is the associated error
// message. The connection will be closed automatically after the response is
// sent.
///
void(CEF_CALLBACK* send_http500response)(struct _cef_server_t* self,
int connection_id,
const cef_string_t* error_message);
///
// Send a custom HTTP response to the connection identified by
// |connection_id|. |response_code| is the HTTP response code sent in the
// status line (e.g. 200), |content_type| is the response content type sent as
// the "Content-Type" header (e.g. "text/html"), |content_length| is the
// expected content length, and |extra_headers| is the map of extra response
// headers. If |content_length| is >= 0 then the "Content-Length" header will
// be sent. If |content_length| is 0 then no content is expected and the
// connection will be closed automatically after the response is sent. If
// |content_length| is < 0 then no "Content-Length" header will be sent and
// the client will continue reading until the connection is closed. Use the
// SendRawData function to send the content, if applicable, and call
// CloseConnection after all content has been sent.
///
void(CEF_CALLBACK* send_http_response)(struct _cef_server_t* self,
int connection_id,
int response_code,
const cef_string_t* content_type,
int64 content_length,
cef_string_multimap_t extra_headers);
///
// Send raw data directly to the connection identified by |connection_id|.
// |data| is the raw data and |data_size| is the size of |data| in bytes. The
// contents of |data| will be copied. No validation of |data| is performed
// internally so the client should be careful to send the amount indicated by
// the "Content-Length" header, if specified. See SendHttpResponse
// documentation for intended usage.
///
void(CEF_CALLBACK* send_raw_data)(struct _cef_server_t* self,
int connection_id,
const void* data,
size_t data_size);
///
// Close the connection identified by |connection_id|. See SendHttpResponse
// documentation for intended usage.
///
void(CEF_CALLBACK* close_connection)(struct _cef_server_t* self,
int connection_id);
///
// Send a WebSocket message to the connection identified by |connection_id|.
// |data| is the response content and |data_size| is the size of |data| in
// bytes. The contents of |data| will be copied. See
// cef_server_handler_t::OnWebSocketRequest documentation for intended usage.
///
void(CEF_CALLBACK* send_web_socket_message)(struct _cef_server_t* self,
int connection_id,
const void* data,
size_t data_size);
} cef_server_t;
///
// Create a new server that binds to |address| and |port|. |address| must be a
// valid IPv4 or IPv6 address (e.g. 127.0.0.1 or ::1) and |port| must be a port
// number outside of the reserved range (e.g. between 1025 and 65535 on most
// platforms). |backlog| is the maximum number of pending connections. A new
// thread will be created for each CreateServer call (the "dedicated server
// thread"). It is therefore recommended to use a different cef_server_handler_t
// instance for each CreateServer call to avoid thread safety issues in the
// cef_server_handler_t implementation. The
// cef_server_handler_t::OnServerCreated function will be called on the
// dedicated server thread to report success or failure. See
// cef_server_handler_t::OnServerCreated documentation for a description of
// server lifespan.
///
CEF_EXPORT void cef_server_create(const cef_string_t* address,
uint16 port,
int backlog,
struct _cef_server_handler_t* handler);
///
// Implement this structure to handle HTTP server requests. A new thread will be
// created for each cef_server_t::CreateServer call (the "dedicated server
// thread"), and the functions of this structure will be called on that thread.
// It is therefore recommended to use a different cef_server_handler_t instance
// for each cef_server_t::CreateServer call to avoid thread safety issues in the
// cef_server_handler_t implementation.
///
typedef struct _cef_server_handler_t {
///
// Base structure.
///
cef_base_ref_counted_t base;
///
// Called when |server| is created. If the server was started successfully
// then cef_server_t::IsRunning will return true (1). The server will continue
// running until cef_server_t::Shutdown is called, after which time
// OnServerDestroyed will be called. If the server failed to start then
// OnServerDestroyed will be called immediately after this function returns.
///
void(CEF_CALLBACK* on_server_created)(struct _cef_server_handler_t* self,
struct _cef_server_t* server);
///
// Called when |server| is destroyed. The server thread will be stopped after
// this function returns. The client should release any references to |server|
// when this function is called. See OnServerCreated documentation for a
// description of server lifespan.
///
void(CEF_CALLBACK* on_server_destroyed)(struct _cef_server_handler_t* self,
struct _cef_server_t* server);
///
// Called when a client connects to |server|. |connection_id| uniquely
// identifies the connection. Each call to this function will have a matching
// call to OnClientDisconnected.
///
void(CEF_CALLBACK* on_client_connected)(struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id);
///
// Called when a client disconnects from |server|. |connection_id| uniquely
// identifies the connection. The client should release any data associated
// with |connection_id| when this function is called and |connection_id|
// should no longer be passed to cef_server_t functions. Disconnects can
// originate from either the client or the server. For example, the server
// will disconnect automatically after a cef_server_t::SendHttpXXXResponse
// function is called.
///
void(CEF_CALLBACK* on_client_disconnected)(struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id);
///
// Called when |server| receives an HTTP request. |connection_id| uniquely
// identifies the connection, |client_address| is the requesting IPv4 or IPv6
// client address including port number, and |request| contains the request
// contents (URL, function, headers and optional POST data). Call cef_server_t
// functions either synchronously or asynchronusly to send a response.
///
void(CEF_CALLBACK* on_http_request)(struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id,
const cef_string_t* client_address,
struct _cef_request_t* request);
///
// Called when |server| receives a WebSocket request. |connection_id| uniquely
// identifies the connection, |client_address| is the requesting IPv4 or IPv6
// client address including port number, and |request| contains the request
// contents (URL, function, headers and optional POST data). Execute
// |callback| either synchronously or asynchronously to accept or decline the
// WebSocket connection. If the request is accepted then OnWebSocketConnected
// will be called after the WebSocket has connected and incoming messages will
// be delivered to the OnWebSocketMessage callback. If the request is declined
// then the client will be disconnected and OnClientDisconnected will be
// called. Call the cef_server_t::SendWebSocketMessage function after
// receiving the OnWebSocketConnected callback to respond with WebSocket
// messages.
///
void(CEF_CALLBACK* on_web_socket_request)(struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id,
const cef_string_t* client_address,
struct _cef_request_t* request,
struct _cef_callback_t* callback);
///
// Called after the client has accepted the WebSocket connection for |server|
// and |connection_id| via the OnWebSocketRequest callback. See
// OnWebSocketRequest documentation for intended usage.
///
void(CEF_CALLBACK* on_web_socket_connected)(
struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id);
///
// Called when |server| receives an WebSocket message. |connection_id|
// uniquely identifies the connection, |data| is the message content and
// |data_size| is the size of |data| in bytes. Do not keep a reference to
// |data| outside of this function. See OnWebSocketRequest documentation for
// intended usage.
///
void(CEF_CALLBACK* on_web_socket_message)(struct _cef_server_handler_t* self,
struct _cef_server_t* server,
int connection_id,
const void* data,
size_t data_size);
} cef_server_handler_t;
#ifdef __cplusplus
}
#endif
#endif // CEF_INCLUDE_CAPI_CEF_SERVER_CAPI_H_

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=3aae2c2e717093121c6236d799cd4d7334cb153c$
//
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_SSL_INFO_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure representing SSL information. // Structure representing SSL information.
/// ///
@@ -60,8 +61,7 @@ typedef struct _cef_sslinfo_t {
// Returns a bitmask containing any and all problems verifying the server // Returns a bitmask containing any and all problems verifying the server
// certificate. // certificate.
/// ///
cef_cert_status_t (CEF_CALLBACK *get_cert_status)( cef_cert_status_t(CEF_CALLBACK* get_cert_status)(struct _cef_sslinfo_t* self);
struct _cef_sslinfo_t* self);
/// ///
// Returns the X.509 certificate. // Returns the X.509 certificate.
@@ -70,7 +70,6 @@ typedef struct _cef_sslinfo_t {
struct _cef_sslinfo_t* self); struct _cef_sslinfo_t* self);
} cef_sslinfo_t; } cef_sslinfo_t;
/// ///
// Returns true (1) if the certificate status has any error, major or minor. // Returns true (1) if the certificate status has any error, major or minor.
/// ///

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=4a448fc89af9db6e12499d3284b2b1309f889cfb$
//
#ifndef CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_SSL_STATUS_CAPI_H_
@@ -46,7 +48,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure representing the SSL information for a navigation entry. // Structure representing the SSL information for a navigation entry.
/// ///
@@ -87,7 +88,6 @@ typedef struct _cef_sslstatus_t {
struct _cef_sslstatus_t* self); struct _cef_sslstatus_t* self);
} cef_sslstatus_t; } cef_sslstatus_t;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. // Copyright (c) 2018 Marshall A. Greenblatt. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
@@ -33,6 +33,8 @@
// by hand. See the translator.README.txt file in the tools directory for // by hand. See the translator.README.txt file in the tools directory for
// more information. // more information.
// //
// $hash=13955a9608af96bba910c2d10c0050fe98c5d8dd$
//
#ifndef CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_ #ifndef CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_
#define CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_ #define CEF_INCLUDE_CAPI_CEF_STREAM_CAPI_H_
@@ -44,7 +46,6 @@
extern "C" { extern "C" {
#endif #endif
/// ///
// Structure the client can implement to provide a custom stream reader. The // Structure the client can implement to provide a custom stream reader. The
// functions of this structure may be called on any thread. // functions of this structure may be called on any thread.
@@ -58,14 +59,17 @@ typedef struct _cef_read_handler_t {
/// ///
// Read raw binary data. // Read raw binary data.
/// ///
size_t (CEF_CALLBACK *read)(struct _cef_read_handler_t* self, void* ptr, size_t(CEF_CALLBACK* read)(struct _cef_read_handler_t* self,
size_t size, size_t n); void* ptr,
size_t size,
size_t n);
/// ///
// Seek to the specified offset position. |whence| may be any one of SEEK_CUR, // Seek to the specified offset position. |whence| may be any one of SEEK_CUR,
// SEEK_END or SEEK_SET. Return zero on success and non-zero on failure. // SEEK_END or SEEK_SET. Return zero on success and non-zero on failure.
/// ///
int (CEF_CALLBACK *seek)(struct _cef_read_handler_t* self, int64 offset, int(CEF_CALLBACK* seek)(struct _cef_read_handler_t* self,
int64 offset,
int whence); int whence);
/// ///
@@ -86,7 +90,6 @@ typedef struct _cef_read_handler_t {
int(CEF_CALLBACK* may_block)(struct _cef_read_handler_t* self); int(CEF_CALLBACK* may_block)(struct _cef_read_handler_t* self);
} cef_read_handler_t; } cef_read_handler_t;
/// ///
// Structure used to read data from a stream. The functions of this structure // Structure used to read data from a stream. The functions of this structure
// may be called on any thread. // may be called on any thread.
@@ -100,14 +103,17 @@ typedef struct _cef_stream_reader_t {
/// ///
// Read raw binary data. // Read raw binary data.
/// ///
size_t (CEF_CALLBACK *read)(struct _cef_stream_reader_t* self, void* ptr, size_t(CEF_CALLBACK* read)(struct _cef_stream_reader_t* self,
size_t size, size_t n); void* ptr,
size_t size,
size_t n);
/// ///
// Seek to the specified offset position. |whence| may be any one of SEEK_CUR, // Seek to the specified offset position. |whence| may be any one of SEEK_CUR,
// SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure. // SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure.
/// ///
int (CEF_CALLBACK *seek)(struct _cef_stream_reader_t* self, int64 offset, int(CEF_CALLBACK* seek)(struct _cef_stream_reader_t* self,
int64 offset,
int whence); int whence);
/// ///
@@ -128,7 +134,6 @@ typedef struct _cef_stream_reader_t {
int(CEF_CALLBACK* may_block)(struct _cef_stream_reader_t* self); int(CEF_CALLBACK* may_block)(struct _cef_stream_reader_t* self);
} cef_stream_reader_t; } cef_stream_reader_t;
/// ///
// Create a new cef_stream_reader_t object from a file. // Create a new cef_stream_reader_t object from a file.
/// ///
@@ -147,7 +152,6 @@ CEF_EXPORT cef_stream_reader_t* cef_stream_reader_create_for_data(void* data,
CEF_EXPORT cef_stream_reader_t* cef_stream_reader_create_for_handler( CEF_EXPORT cef_stream_reader_t* cef_stream_reader_create_for_handler(
cef_read_handler_t* handler); cef_read_handler_t* handler);
/// ///
// Structure the client can implement to provide a custom stream writer. The // Structure the client can implement to provide a custom stream writer. The
// functions of this structure may be called on any thread. // functions of this structure may be called on any thread.
@@ -162,13 +166,16 @@ typedef struct _cef_write_handler_t {
// Write raw binary data. // Write raw binary data.
/// ///
size_t(CEF_CALLBACK* write)(struct _cef_write_handler_t* self, size_t(CEF_CALLBACK* write)(struct _cef_write_handler_t* self,
const void* ptr, size_t size, size_t n); const void* ptr,
size_t size,
size_t n);
/// ///
// Seek to the specified offset position. |whence| may be any one of SEEK_CUR, // Seek to the specified offset position. |whence| may be any one of SEEK_CUR,
// SEEK_END or SEEK_SET. Return zero on success and non-zero on failure. // SEEK_END or SEEK_SET. Return zero on success and non-zero on failure.
/// ///
int (CEF_CALLBACK *seek)(struct _cef_write_handler_t* self, int64 offset, int(CEF_CALLBACK* seek)(struct _cef_write_handler_t* self,
int64 offset,
int whence); int whence);
/// ///
@@ -189,7 +196,6 @@ typedef struct _cef_write_handler_t {
int(CEF_CALLBACK* may_block)(struct _cef_write_handler_t* self); int(CEF_CALLBACK* may_block)(struct _cef_write_handler_t* self);
} cef_write_handler_t; } cef_write_handler_t;
/// ///
// Structure used to write data to a stream. The functions of this structure may // Structure used to write data to a stream. The functions of this structure may
// be called on any thread. // be called on any thread.
@@ -204,13 +210,16 @@ typedef struct _cef_stream_writer_t {
// Write raw binary data. // Write raw binary data.
/// ///
size_t(CEF_CALLBACK* write)(struct _cef_stream_writer_t* self, size_t(CEF_CALLBACK* write)(struct _cef_stream_writer_t* self,
const void* ptr, size_t size, size_t n); const void* ptr,
size_t size,
size_t n);
/// ///
// Seek to the specified offset position. |whence| may be any one of SEEK_CUR, // Seek to the specified offset position. |whence| may be any one of SEEK_CUR,
// SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure. // SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure.
/// ///
int (CEF_CALLBACK *seek)(struct _cef_stream_writer_t* self, int64 offset, int(CEF_CALLBACK* seek)(struct _cef_stream_writer_t* self,
int64 offset,
int whence); int whence);
/// ///
@@ -231,7 +240,6 @@ typedef struct _cef_stream_writer_t {
int(CEF_CALLBACK* may_block)(struct _cef_stream_writer_t* self); int(CEF_CALLBACK* may_block)(struct _cef_stream_writer_t* self);
} cef_stream_writer_t; } cef_stream_writer_t;
/// ///
// Create a new cef_stream_writer_t object for a file. // Create a new cef_stream_writer_t object for a file.
/// ///
@@ -244,7 +252,6 @@ CEF_EXPORT cef_stream_writer_t* cef_stream_writer_create_for_file(
CEF_EXPORT cef_stream_writer_t* cef_stream_writer_create_for_handler( CEF_EXPORT cef_stream_writer_t* cef_stream_writer_create_for_handler(
cef_write_handler_t* handler); cef_write_handler_t* handler);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

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