Commit Graph

53 Commits

Author SHA1 Message Date
Marshall Greenblatt 07bf5dbacc windows: Configure stack size for executables (fixes issue #3250)
Change the default stack size to 8 MiB for 64-bit and 0.5 MiB for 32-bit.

CEF's main thread needs at least a 1.5 MiB stack size in order to avoid
stack overflow crashes. However, if this is set in the PE file then other
threads get this size as well, leading to address-space exhaustion in 32-bit
CEF. A new CefRunWinMainWithPreferredStackSize function uses fibers to switch
the main thread to a 4 MiB stack (roughly the same effective size as the
64-bit build's 8 MiB stack) before running any other code.

This change additionally moves the existing Windows-only functions
CefSetOSModalLoop and CefEnableHighDPISupport from cef_app.h to cef_win.h.
2022-10-21 14:52:50 -04:00
Marshall Greenblatt 03176b505c cmake: Switch to C++17 language standard (see issue #3362) 2022-07-19 10:09:35 -04:00
Marshall Greenblatt c7ea0c5958 Update to Chromium version 104.0.5112.0 (#1012729)
- Mac: 10.13 is now the minimum required macOS version
2022-06-22 10:56:35 +03:00
Marshall Greenblatt 916360e2e5 Update to Chromium version 102.0.4997.0 (#990845)
- Windows: SDK version 10.0.20348.0 is now required.
- MacOS: SDK version 12.3 (Xcode 13.3) is now required.
- Legacy swiftshader binaries (`swiftshader/*` on Win/Linux and
  `libswiftshader_*.dylib` on MacOS) have been removed (see issue #3176).
2022-04-26 16:32:20 -04:00
Marshall Greenblatt 582e0a0ab7 Distribute binaries for SwANGLE support (fixes issue #3176)
Adds SwANGLE libraries that are required for software rendering on Windows
and Linux. Updates README.txt documentation accordingly.
2021-09-30 21:22:59 +03:00
Marshall Greenblatt 50f627b07e cmake: Windows: Fix ceftests ARM64 unresolved external symbol GetDeviceCaps (see issue #2773, see issue #3140) 2021-06-23 13:27:42 -04:00
Marshall Greenblatt 9efd3dc8ee Fix compile errors with VS2019 v16.9.3 and GCC v7.5.0 (see issue #3140) 2021-06-23 13:00:34 -04:00
Marshall Greenblatt 5d438ced79 cmake: Update to -std=c++14 (see issue #3140) 2021-06-17 20:47:13 -04:00
Marshall Greenblatt 328de502ac Windows: Disable iterator debugging for cef_sandbox builds (fixes issue #3109)
Iterator debugging has been disabled by default (_HAS_ITERATOR_DEBUGGING=0)
for CEF/Chromium builds using clang/LLVM since 2018. Inversely, it is enabled
by default (_ITERATOR_DEBUG_LEVEL=2) for the MSVC Debug build configuration.
In order to minimize configuration-related headaches for MSVC-based clients
we have been building the Debug cef_sandbox.lib with iterator debugging
enabled. Recently, we have identified a number of crashes that may be due to
bugs in current clang/LLVM or MSVC versions but in any case can be resolved by
disabling iterator debugging:

- Crash when loading chrome://sandbox.
- Crash if an application lists libraries that utilize iterators after
  cef_sandbox.lib in the linker order.

To resolve these crashes we will now disable iterator debugging by default
for the cef_sandbox.lib builds. Client applications that link cef_sandbox.lib
will now also need to build with iterator debugging disabled by setting
_HAS_ITERATOR_DEBUGGING=0 or _ITERATOR_DEBUG_LEVEL=0 in their project
configuration (this will be done for you if you use cef_variables.cmake from
the binary distribution).

In addition to the crash fixes mentioned above, this change also:

- Reduces the size of the Debug cef_sandbox.lib by ~10MB.
- May result in faster Debug executables (see https://crbug.com/539996).
2021-04-26 18:19:59 -04:00
Marshall Greenblatt 020ac1b509 Linux: cefclient: Port to GTK3 (see issue #2969)
GTK3 is required by the Chrome runtime. The cefclient off-screen rendering
example no longer works with Ubuntu 16.04. With end-of-life in April 2021
we are dropping support for 16.04 in the near future in any case.
2021-03-01 15:25:09 -05:00
Marshall Greenblatt 8424f166cc Use the same pak files for the Alloy and Chrome runtimes (see issue #2969)
Chrome currently uses chrome_100_percent.pak, chrome_200_percent.pak,
resources.pak and locales/<locale>.pak files. This change adds CEF
resources to those existing pak files and updates the Alloy runtime to
use them instead of the previous CEF-specific pak files (cef.pak,
cef_100_percent.pak, cef_200_percent.pak, cef_extensions.pak,
devtools_resources.pak) which are no longer generated.

The addition of Chrome resources results in an ~16% (~4.1MB) increase in total
combined pak file size vs. the previous CEF-specific pak files. While a size
increase is not ideal for the Alloy runtime, it seems preferable to the
alternative of distributing separate (and partially duplicated) pak files for
each runtime, which would have added ~9.8MB to the total binary distribution
size.
2021-02-28 16:51:37 -05:00
Marshall Greenblatt 9d4f862210 Windows: cmake: Fix unknown arguments error with VS2017 generator 2021-01-21 13:43:44 -05:00
Marshall Greenblatt b798147c33 Windows: Add ARM64 distribution support (see issue #2773)
To generate Windows ARM64 builds set the CEF_ENABLE_ARM64=1 environment
variable and pass the "--arm64-build --build-target=cefsimple" command-line
arguments to automate-git.py. We can't build cefclient.exe for ARM64 due to
missing OpenGL library support so build cefsimple.exe instead.
2021-01-11 13:49:39 -05:00
Marshall Greenblatt 71179da2f6 Mac: Add ARM64 configuration support (see issue #2981)
Requires Xcode 12.2 and the MacOS 11.0 SDK. To generate ARM64 builds set
the CEF_ENABLE_ARM64=1 environment variable and replace all usage of
--x64-build with --arm64-build in script command-line arguments.
2020-12-04 15:43:50 -05:00
Marshall Greenblatt a584bd187b Update to Chromium version 88.0.4324.0 (#827102)
- Mac: Xcode 12.2 and the MacOS 11.0 SDK are now required for building.
- MacOS 10.10 (Yosemite) is no longer supported (see https://crbug.com/1126056).
- Flash is no longer supported (see https://www.chromium.org/flash-roadmap).
2020-12-04 15:43:33 -05:00
Marshall Greenblatt 24c2f2fa38 Update to Chromium version 86.0.4240.0 (#800218)
- CefURLRequest::Create is no longer supported in the renderer process
  (see https://crbug.com/891872). Use CefFrame::CreateURLRequest instead.
- Mac platform definitions have been changed from `MACOSX` to `MAC`
  (see https://crbug.com/1105907) and related CMake macro names have
  been updated. The old `OS_MACOSX` define is still set in code and CMake
  for backwards compatibility.
- Linux ARM build is currently broken (see https://crbug.com/1123214).
2020-09-03 17:44:25 -04:00
Marshall Greenblatt 99d66db930 Windows: cmake: Simplify the MSVC version check 2020-07-23 12:28:45 -04:00
Czarek Tomczak c27fceb7de MacOS: Update target SDK to 10.10 for cmake and tests 2020-07-23 12:12:16 -04:00
Alexander Guettler 71768ea6c3 Update to Chromium version 80.0.3987.0 (#722274) 2020-02-17 13:19:09 -05:00
Marshall Greenblatt c05c3e4065 Windows: cmake: Add VS2019 version 16.4 2020-01-14 16:21:52 +01:00
Marshall Greenblatt b51a4de540 Windows: Fix cef_sandbox.lib link errors (fixes issue #2792) 2019-10-29 17:31:17 -04:00
Marshall Greenblatt 5da1649653 macOS: cmake: Prevent Xcode 11 from doing automatic codesigning. 2019-10-03 11:26:55 +03:00
Marshall Greenblatt ba1b4a41a9 Windows: cmake: Add newer VS versions 2019-10-01 17:10:30 +03:00
Alexander Guettler 46d3a81ba0 Update to Chromium version 77.0.3865.0 (#681094)
- Windows: SDK version 10.0.18362.0 is now required.
2019-09-04 15:13:32 +00:00
Marshall Greenblatt b6b033a52b Windows: cmake: Add additional cef_sandbox link dependencies (fixes issue #2754) 2019-08-30 11:43:58 -04:00
Marshall Greenblatt 98527317a8 Revert "Windows: Add boringssl to cef_sandbox to fix VS2017 link error (fixes issue #2743)"
This reverts commit 2cf916e6d5.

This change causes linker errors with third-party projects using VS2019 that also link openssl.

cef_sandbox.lib(err.obj) : error LNK2005: _ERR_get_error already defined in websockets.lib(mbedtls-client.obj)
cef_sandbox.lib(err.obj) : error LNK2005: _ERR_error_string already defined in websockets.lib(ssl_lib.obj)
cef_sandbox.lib(err.obj) : error LNK2005: _ERR_error_string_n already defined in websockets.lib(ssl_lib.obj)
cef_sandbox.lib(err.obj) : error LNK2005: _ERR_free_strings already defined in websockets.lib(ssl_lib.obj)
2019-08-29 14:53:10 -04:00
Marshall Greenblatt 5574d1c32f Windows: Add boringssl to cef_sandbox to fix VS2017 link error (fixes issue #2743) 2019-08-06 17:20:57 -04:00
Marshall Greenblatt d277dcd5d7 Windows: cmake: Add newer VS versions 2019-06-11 18:12:29 +02:00
Marshall Greenblatt ef06407da6 Windows: Remove d3dcompiler_43.dll
The d3dcompiler_43.dll file was only required on Windows XP, which is no longer
supported.
2019-05-07 15:25:25 -04:00
Tyler Johnson 84a5749f9f Squelch attribute warnings from the GNU compiler (issue #2552) 2019-02-06 20:48:09 +00:00
Zacharias Knudsen c0a7fa392d Linux: cmake: Don't warn about potentially uninstantiated static members. 2019-02-01 21:05:52 +00:00
Marshall Greenblatt 919ae45b0f Windows: Fix sandbox link error with binary distribution (issue #2546) 2018-11-13 13:44:59 -05:00
Marshall Greenblatt 3cdc29aa53 Windows: cmake: Add VS2017 15.8 build support 2018-09-21 11:11:33 +02:00
Marshall Greenblatt dec98a5534 macOS: Add support for and enable the V2 sandbox (issue #2459)
The CEF_USE_SANDBOX define is now used on all platforms.
2018-07-27 22:33:31 -04:00
Marshall Greenblatt fcad76b405 macOS: Load the CEF framework using dlopen instead of direct linking (issue #2459)
This is a prerequisite for using the Chromium V2 sandbox.
2018-07-27 17:36:49 -04:00
Marshall Greenblatt 669e8673ce Linux: cmake: Don't warn about code in comments (issue #2346) 2018-06-27 12:47:39 -04:00
Marshall Greenblatt 4f28c5ffff Windows: cmake: Add VS2017 15.6 & 15.7 build support 2018-06-12 14:40:30 -04:00
Marshall Greenblatt 56bbee8efb cmake: Linux: Add missing binaries (issue #2394) 2018-02-27 15:37:19 -05:00
Tobias Taschner cca0bcc8e0 Windows: cmake: Add CEF_RUNTIME_LIBRARY_FLAG for overriding VS runtime type. 2018-02-22 20:00:09 +00:00
Dan Kegel 6e457d6bb1 - 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 13:53:38 -05:00
Marshall Greenblatt accf1f1613 Windows: cmake: Add VS2017 15.5 build support 2017-12-27 15:50:21 -05:00
Marshall Greenblatt 232a68480e cmake: Add v8_context_snapshot.bin binary file 2017-11-27 12:18:05 -05:00
Marshall Greenblatt bfdc2655ad Windows: Add VS2017.4 build support 2017-11-01 16:27:40 -04:00
Marshall Greenblatt 486e69e23b Windows: Add missing swiftshader binaries to distribution (issue #2291) 2017-10-30 14:49:25 -04: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 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 33b52839c6 cmake: macOS: Add Xcode 8.3 build support (issue #2140) 2017-04-05 13:30:18 -04:00
Marshall Greenblatt 7de882ece3 cmake: Update target platform versions (issue #2109)
- macOS: Allow selection of 10.11 SDK and set target version to 10.9 SDK.
- Windows: Set target version to Windows 7.
2017-02-28 15:26:28 -05:00
Marshall Greenblatt 8fee8ed05d Add unittests target to the binary distribution (issue #1632)
- Move all tests from the top-level directory to tests/.
- Move files shared by cefclient and unittests to tests/shared/.
- Add a fused (single header/source file) version of gtest in
  tests/gtest/ with associated CMake configuration.
- Test-only headers are now exposed in include/test/. Unit test
  targets must define UNIT_TEST in order to access them.
- Replace usage of USING_CEF_SHARED with WRAPPING_CEF_SHARED for
  clarity (only the libcef_dll_wrapper target should define it).
- Remove the RENAME_DIRECTORY CMake macro which is no longer used.
- Remove C++11 usage from unittests sources for compatibility with
  the binary distribution configuration.
- Windows: Fix build errors due to chrome_elf.dll and imm32.lib
  missing from the CMake configuration.
2016-11-18 03:19:17 -05:00
Marshall Greenblatt f94c5a1cb6 Windows: Add /LARGEADDRESSAWARE to CMake configuration (issue #1855) 2016-09-08 16:52:37 -04:00