Commit Graph

2151 Commits

Author SHA1 Message Date
Marshall Greenblatt eea1f6be63 Enable strict site isolation by default (see issue #2498)
This restores the default site isolation mode for Chromium on desktop
platforms. Unit tests have been updated to reflect the new behavior
expectations.

Known behavior changes in CEF are as follows:
- A spare renderer process may be created on initial browser creation or cross-
  origin navigation. This spare process may be used with a future cross-origin
  navigation or discarded on application shutdown. As a result
  CefRenderProcessHandler::OnRenderThreadCreated, which is called shortly after
  renderer process creation, can no longer be used to reliably transfer state
  for the currently in-progress navigation. Unit tests have been updated to use
  the CreateBrowser/OnBeforePopup |extra_info| value for transferring test state
  to CefRenderProcessHandler::OnBrowserCreated which will be called in the
  correct/expected renderer process.
- Cross-origin navigations will again receive a new renderer process, as
  expected. This behavior had briefly regressed in M78 due to the
  ProcessSharingWithDefaultSiteInstances feature becoming enabled by default.
- Cross-origin navigations initiated by calling LoadURL in the renderer process
  will now crash that process with "bad IPC message" reason
  INVALID_INITIATOR_ORIGIN (213). This is a security feature implemented in
  Chromium.
- A DevTools browser created using CefBrowserHost::ShowDevTools will receive
  the same CefRenderProcessHandler::OnBrowserCreated |extra_info| value that was
  set via CreateBrowser/OnBeforePopup for the parent browser.
2019-10-03 17:18:01 +03:00
Marshall Greenblatt 5da1649653 macOS: cmake: Prevent Xcode 11 from doing automatic codesigning. 2019-10-03 11:26:55 +03:00
Marshall Greenblatt c0af145165 Windows: Disable the ARM64 config by default
Set the CEF_ENABLE_ARM64=1 environment variable to enable the ARM64 build if
you have installed the Visual Studio compiler toolchain for ARM64.
2019-10-02 14:54:04 +03:00
Iain Apreotesei@Arm a8283d1cc3 Add Windows ARM64 build support 2019-10-02 11:43:38 +00:00
Marshall Greenblatt cc0530cbf6 Add missing services strings to pak (fixes issue #2764) 2019-10-02 13:56:17 +03:00
Maksim Sisov a8263b1b4f Fix ozone build issues (fixes issue #2748) 2019-10-02 09:47:10 +00:00
Marshall Greenblatt bc5cbcf39b Add Google SafeSearch support with NetworkService (see issue #1917) 2019-10-02 12:33:56 +03:00
Marshall Greenblatt 729b3f0a8f Remove cef_sandbox dependency on boringssl MD5/SHA1 functions (fixes issue #2743) 2019-10-01 17:13:02 +03:00
Marshall Greenblatt 52c24ed061 Windows: Restore missing resources to binary distribution (fixes issue #2771) 2019-10-01 17:10:36 +03:00
Marshall Greenblatt ba1b4a41a9 Windows: cmake: Add newer VS versions 2019-10-01 17:10:30 +03:00
Marshall Greenblatt f8e0797773 Update to Chromium version 78.0.3904.0 (#693954) 2019-10-01 13:55:16 +00:00
Marshall Greenblatt c8b457da38 Remove audio_output_unittest.cc which no longer exists (see issue #2755, see issue #2381) 2019-09-23 18:52:09 +03:00
Marshall Greenblatt e3723dcda5 Revert "Add ability to capture audio output to buffer (see issue #2381)"
This reverts commit 9f41a27e58.

This needs to be reimplemented to support out of process audio (see issue #2755).
2019-09-20 17:23:33 +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 8f0a202e0c Fix folder upload with `input type=file webkitdirectory` (fixes issue #2751) 2019-08-26 15:43:55 -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
Riku Palomäki cfb4309479 Fix gclient_util after depot_tools changes (fixes issue #2736) 2019-08-05 18:01:14 +00:00
Dmitry Azaraev 91f48c5588 Fix missing marshaling for CefSettings::root_cache_path member (fixes issue #2740) 2019-08-05 17:00:09 +00:00
Marshall Greenblatt 67b61c4af9 Remove the old network implementation (see issue #2622)
The `--disable-features=NetworkService` flag is no longer supported.
2019-07-29 17:41:45 -04:00
Marshall Greenblatt ccb06ce3cb Fix crash on DevTools remote debugging of WebWorkers (fixes issue #2605) 2019-07-26 09:47:11 -04:00
Marshall Greenblatt 2d8d064ce8 Fix missing cookie after redirect response with filter (fixes issue #2689, see issue #2622) 2019-07-25 16:50:30 -04:00
Marshall Greenblatt 4c70c67042 Fix option for persisting session cookies (fixes issue #2720, see issue #2622) 2019-07-25 15:27:15 -04:00
Marshall Greenblatt d82624411e Fix C compile error due to unintentional C++ include (fixes issue #2728) 2019-07-25 12:57:11 -04:00
Marshall Greenblatt 1d3b911b16 macOS: Fix alert dialog display (fixes issue #2726) 2019-07-25 12:28:41 -04:00
Rob Sussman c038bf8198 macOS: Support configuration of the main bundle path (fixes issue #2729) 2019-07-25 15:47:46 +00:00
Dmitry Azaraev 30cc80efe3 Fix typo in documentation for CefResourceHandler::Skip 2019-07-25 15:44:23 +00:00
Marshall Greenblatt ea9bd50fca Fix compile error due to 1669c0af (see issue #123) 2019-07-25 09:17:27 -04:00
Marshall Greenblatt 15fc7e58a8 Fix PDF load in <embed> and <object> tags (fixes issue #2727, see issue #2622) 2019-07-24 17:12:00 -04:00
Marshall Greenblatt e57acace0b Fix crash on shutdown with PDF viewer and multi-threaded message loop (fixes issue #2709, see issue #2622)
Requests from the PDF viewer are not associated with a CefBrowser. Consequently,
the InterceptedRequestHandler for those requests will register as an observer of
CefContext destruction. When the browser is closed the InterceptedRequestHandler
is destroyed and an async task is posted to remove/delete the observer on the UI
thread. If CefShutdown is then called the task may execute after shutdown has
started, in which case CONTEXT_STATE_VALID() will return false. We still need to
remove the observer in this case to avoid a use-after-free in
FinishShutdownOnUIThread.
2019-07-23 15:27:38 -04:00
Dmitry Azaraev a697464a33 Fix typo in documentation for cef_settings_t::cache_path. 2019-07-23 19:09:00 +00:00
Marshall Greenblatt 42b259d124 Fix crash when extensions are disabled (fixes issue #2708, see issue #2622) 2019-07-23 12:20:08 -04:00
Marshall Greenblatt 1fd1b320c2 Fix crash when showing views context menu 2019-07-19 21:55:30 -04:00
Ananyo Maiti 1669c0afbd Add print preview support (see issue #123)
Pass the `--enable-print-preview` command-line flag to enable. Currently only
supported on Windows and Linux.
2019-07-19 21:55:30 -04:00
Marshall Greenblatt cf87c88b05 Remove unused GetCompositor method and fix macOS compile error (see issue #2575) 2019-07-18 19:41:47 -04:00
Alwin Esch fafe7a7cfc Update .gitignore to ignore VS and kdevelop project files 2019-07-17 01:10:33 +00:00
Masako Toda 99c27f57b1 Fix redirect of requests with credentials mode 'include' (fixes issue #2699, see issue #2622).
Modifying the URL in OnBeforeResourceLoad causes an internal redirect response.
In cases where the request is cross-origin and credentials mode is 'include'
the redirect response must include the "Access-Control-Allow-Credentials"
header, otherwise the request will be blocked.
2019-07-16 17:43:44 -04:00
Riku Palomäki 367c6eb704 Fix dangling pointers in CefAudioMirrorDestination (fixes issue #2713). 2019-07-16 21:42:39 +00:00
Isaac Devine 1086495096 Fix race with multi-threaded message loop (fixes issue #2668).
Remove the local thread object in favor of setting the ui_thread_ field
directly. This avoids the race between ui_thread_.swap(thread) and
CefUIThread::InitializeBrowserRunner.
2019-07-16 21:42:35 +00:00
Alexander Guettler 17ec55a3b3 Fix dangling pointers in CefScopedArgArray (fixes issue #2704). 2019-07-16 21:42:20 +00:00
Marshall Greenblatt 3f1ebebde5 Add support for GetAuthCredentials (fixes issue #2718, see issue #2622).
When NetworkService is enabled requests created using CefFrame::CreateURLRequest
will call CefRequestHandler::GetAuthCredentials for the associated browser after
calling CefURLRequestClient::GetAuthCredentials if that call returns false.
2019-07-16 16:33:08 -04:00
Alexander Guettler ac2cc54e13 Add initial Viz implementation for OSR (see issue #2575).
The old shared surface implementation has been removed and will need to be
re-implemented using the Viz code path.
2019-07-16 16:33:08 -04:00
Petra Öhlin cc0db5f166 Update to Chromium version 76.0.3809.0 (#665002)
OSR tests will be fixed by a follow-up merge of Viz support (see issue #2575).
2019-07-16 15:34:16 -04:00
Marshall Greenblatt 5892ffc382 Remove POST data after redirect to GET (see issue #2707, see issue #2622).
For 303 redirects all request methods except HEAD are converted to GET as per
the latest http draft. For historical reasons the draft also allows POST
requests to be converted to GETs when following 301/302 redirects. Most major
browsers do this and so shall we. When a request is converted to GET any POST
data should also be removed.

Use 307 redirects instead if you want the request to be repeated using the same
method and POST data.
2019-07-11 16:56:51 -04:00
Marshall Greenblatt 45329d05a5 Fix cross-origin redirect from OnBeforeResourceLoad (fixes issue #2695, see issue #2622).
Modifying the URL in OnBeforeResourceLoad causes an internal redirect response.
In cases where the request is cross-origin (containing a non-null "Origin"
header) the redirect response must include the "Access-Control-Allow-Origin"
header, otherwise the request will be blocked.

This change also fixes a problem where existing request headers would be
discarded if the request was modified in OnBeforeResourceLoad.
2019-06-25 16:54:42 -04:00
Marshall Greenblatt 02a6b3bb38 Fix loading of http(s) sub-resources from custom scheme initiator (fixes issue #2685, see issue #2622).
Determine external request status based on the current URL instead of the
request initiator.
2019-06-25 10:50:33 -04:00
Marshall Greenblatt 732a307c75 Fix CefFrame::GetIdentifier value in the render process (fixes issue #2687, see issue #2498) 2019-06-19 16:55:31 +02:00
Marshall Greenblatt b03a419c6b Fix crash if a pending request is continued after deletion (see issue #2622).
This is a speculative fix for a crash where the pending ResourceRequest appears
to be invalid after the request is continued from SetInitialized.
2019-06-19 15:49:08 +02:00
Marshall Greenblatt ba08c21517 Fix crashes when a request is aborted during initialization (see issue #2622).
Initialization of request objects requires asynchronous hops between the UI and
IO threads. In some cases the browser may be destroyed, the mojo connection may
be aborted, or the ProxyURLLoaderFactory object may be deleted while
initialization is still in progress. This change fixes crashes and adds unit
tests that try to reproduce these conditions.

To test: Run `ceftests --gtest_repeat=50
              --gtest_filter=ResourceRequestHandlerTest.Basic*Abort*`
2019-06-18 16:21:04 +02:00