cef/patch/patch.cfg

488 lines
18 KiB
INI
Raw Normal View History

# Patch configuration file. See the README.txt file in the patch directory for
# information on how this configuration is used.
#
# Each dictionary entry in the "patches" map represents a single patch file.
# Supported key/value pairs are as follows:
#
# - 'name' Required. The name of the patch file without the .patch
# extension that will be read from the patches subdirectory.
# - 'path' Optional. The repository root for the patch file. Defaults to
# the Chromium "src" root. All patch file contents must be
# relative to this repository root.
# - 'condition' Optional. The patch file will only be applied if an environment
# variable with this name exists.
#
# Each entry should also include a comment linking to the code review or bug
# report that the patch relates to.
patches = [
{
2016-06-23 19:42:00 +02:00
# Necessary for grit integration.
'name': 'gritsettings',
},
2016-06-23 19:42:00 +02:00
{
# Necessary for GN integration.
#
# Move chrome target locales output to a chrome/ directory to avoid
# conflicts with the CEF configuration.
#
# Support custom VS toolchain on Windows.
# https://bugs.chromium.org/p/chromium/issues/detail?id=623342
#
# Write environment.* files with the correct SDK version on Windows.
# https://bugs.chromium.org/p/chromium/issues/detail?id=634788
#
# Windows: Add cc_wrapper support for sccache builds.
# https://bitbucket.org/chromiumembedded/cef/issues/2432
2016-06-23 19:42:00 +02:00
'name': 'gn_config',
},
{
# Support component builds (GN is_component_build=true).
# https://bitbucket.org/chromiumembedded/cef/issues/1617
#
# Export GetUnicodeCharacterFromXKeySym and XKeySymToDomKey
# to fix component builds.
# https://bitbucket.org/chromiumembedded/cef/issues/2587
'name': 'component_build',
},
{
# Revert change on Windows that removes MessageLoop::os_modal_loop().
# https://codereview.chromium.org/1992243003
#
# Revert change that removes MessageLoopForUI constructor.
# https://chromium-review.googlesource.com/751322
#
# Add MessageLoop::ReleasePump to fix crashes during shutdown with multi-
# threaded message loop mode.
# https://bitbucket.org/chromiumembedded/cef/issues/2362
'name': 'message_loop',
},
{
# Add builtin trace event categories for CEF.
# Required due to https://crrev.com/331266377d.
'name': 'trace_event',
},
Implement off-screen rendering support using delegated rendering (issue #1257). This implementation supports both GPU compositing and software compositing (used when GPU is not supported or when passing `--disable-gpu --disable-gpu-compositing` command-line flags). GPU-accelerated features (WebGL and 3D CSS) that did not work with the previous off-screen rendering implementation do work with this implementation when GPU support is available. Rendering now operates on a per-frame basis. The frame rate is configurable via CefBrowserSettings.windowless_frame_rate up to a maximum of 60fps (potentially limited by how fast the system can generate new frames). CEF generates a bitmap from the compositor backing and passes it to CefRenderHandler::OnPaint. The previous CefRenderHandler/CefBrowserHost API for off-screen rendering has been restored mostly as-is with some minor changes: - CefBrowserHost::Invalidate no longer accepts a CefRect region argument. Instead of invalidating a specific region it now triggers generation of a new frame. - The |dirtyRects| argument to CefRenderHandler::OnPaint will now always be a single CefRect representing the whole view (frame) size. Previously, invalidated regions were listed separately. - Linux: CefBrowserHost::SendKeyEvent now expects X11 event information instead of GTK event information. See cefclient for an example of converting GTK events to the necessary format. - Sizes passed to the CefRenderHandler OnPaint and OnPopupSize methods are now already DPI scaled. Previously, the client had to perform DPI scaling. - Includes drag&drop implementation from issue #1032. - Includes unit test fixes from issue #1245. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1751 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-01 00:30:29 +02:00
{
# Enable popups in offscreen rendering on OS X.
#
# Allow customization of the WebView background color.
# https://bitbucket.org/chromiumembedded/cef/issues/2345
Implement off-screen rendering support using delegated rendering (issue #1257). This implementation supports both GPU compositing and software compositing (used when GPU is not supported or when passing `--disable-gpu --disable-gpu-compositing` command-line flags). GPU-accelerated features (WebGL and 3D CSS) that did not work with the previous off-screen rendering implementation do work with this implementation when GPU support is available. Rendering now operates on a per-frame basis. The frame rate is configurable via CefBrowserSettings.windowless_frame_rate up to a maximum of 60fps (potentially limited by how fast the system can generate new frames). CEF generates a bitmap from the compositor backing and passes it to CefRenderHandler::OnPaint. The previous CefRenderHandler/CefBrowserHost API for off-screen rendering has been restored mostly as-is with some minor changes: - CefBrowserHost::Invalidate no longer accepts a CefRect region argument. Instead of invalidating a specific region it now triggers generation of a new frame. - The |dirtyRects| argument to CefRenderHandler::OnPaint will now always be a single CefRect representing the whole view (frame) size. Previously, invalidated regions were listed separately. - Linux: CefBrowserHost::SendKeyEvent now expects X11 event information instead of GTK event information. See cefclient for an example of converting GTK events to the necessary format. - Sizes passed to the CefRenderHandler OnPaint and OnPopupSize methods are now already DPI scaled. Previously, the client had to perform DPI scaling. - Includes drag&drop implementation from issue #1032. - Includes unit test fixes from issue #1245. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1751 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-01 00:30:29 +02:00
'name': 'webkit_popups',
},
{
# Fix export of UnderlayOpenGLHostingWindow for 64-bit OS X builds.
# https://bitbucket.org/chromiumembedded/cef/issues/1051
'name': 'underlay_1051',
},
{
# Allow specification of a parent window handle for Widget creation.
# https://bitbucket.org/chromiumembedded/cef/issues/180
Implement Views framework on Windows and Linux (issue #1749). - Add Views header files in a new include/views directory. - Add initial top-level window (CefWindow), control (CefBrowserView, CefLabelButton, CefMenuButton, CefPanel, CefScrollView, CefTextfield) and layout (CefBoxLayout, CefFlowLayout) support. See libcef/browser/views/view_impl.h comments for implementation details. - Add Views example usage in cefclient and cefsimple and Views unit tests in cef_unittests. Pass the `--use-views` command-line flag to cefclient, cefsimple and cef_unittests to run using the Views framework instead of platform APIs. For cefclient and cefsimple this will create the browser window and all related functionality using the Views framework. For cef_unittests this will run all tests (except OSR tests) in a Views-based browser window. Views- specific unit tests (`--gtest_filter=Views*`) will be run even if the the `--use-views` flag is not specified. - Pass the `--hide-frame` command-line flag to cefclient to demo a frameless Views-based browser window. - Pass the `--hide-controls` command-line flag to cefclient to demo a browser window without top controls. This also works in non-Views mode. - Pass the `--enable-high-dpi-support` command-line flag to cef_unittests on Windows to test high-DPI support on a display that supports it. - Add CefImage for reading/writing image file formats. - Add CefBrowser::DownloadImage() for downloading image URLs as a CefImage representation. This is primarily for loading favicons. - Add CefMenuModel::CreateMenuModel() and CefMenuModelDelegate for creating custom menus. This is primarily for use with CefMenuButton. - Add CefBrowser::TryCloseBrowser() helper for closing a browser. Also improve related documentation in cef_life_span_handler.h. - Rename cef_page_range_t to cef_range_t. It is now also used by CefTextfield. - Remove CefLifeSpanHandler::RunModal() which is never called. - Add draggable regions example to cefclient.
2016-01-19 21:09:01 +01:00
#
# Fix multiple handling of WM_MOUSEWHEEL messages on Windows.
# https://bitbucket.org/chromiumembedded/cef/issues/1481
#
2017-02-10 23:44:11 +01:00
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
# https://bitbucket.org/chromiumembedded/cef/issues/1565
#
# Fix focus/activation handling and keyboard input on Windows and Linux.
# https://bitbucket.org/chromiumembedded/cef/issues/1677
# https://bitbucket.org/chromiumembedded/cef/issues/1679
# https://bitbucket.org/chromiumembedded/cef/issues/1700
Implement Views framework on Windows and Linux (issue #1749). - Add Views header files in a new include/views directory. - Add initial top-level window (CefWindow), control (CefBrowserView, CefLabelButton, CefMenuButton, CefPanel, CefScrollView, CefTextfield) and layout (CefBoxLayout, CefFlowLayout) support. See libcef/browser/views/view_impl.h comments for implementation details. - Add Views example usage in cefclient and cefsimple and Views unit tests in cef_unittests. Pass the `--use-views` command-line flag to cefclient, cefsimple and cef_unittests to run using the Views framework instead of platform APIs. For cefclient and cefsimple this will create the browser window and all related functionality using the Views framework. For cef_unittests this will run all tests (except OSR tests) in a Views-based browser window. Views- specific unit tests (`--gtest_filter=Views*`) will be run even if the the `--use-views` flag is not specified. - Pass the `--hide-frame` command-line flag to cefclient to demo a frameless Views-based browser window. - Pass the `--hide-controls` command-line flag to cefclient to demo a browser window without top controls. This also works in non-Views mode. - Pass the `--enable-high-dpi-support` command-line flag to cef_unittests on Windows to test high-DPI support on a display that supports it. - Add CefImage for reading/writing image file formats. - Add CefBrowser::DownloadImage() for downloading image URLs as a CefImage representation. This is primarily for loading favicons. - Add CefMenuModel::CreateMenuModel() and CefMenuModelDelegate for creating custom menus. This is primarily for use with CefMenuButton. - Add CefBrowser::TryCloseBrowser() helper for closing a browser. Also improve related documentation in cef_life_span_handler.h. - Rename cef_page_range_t to cef_range_t. It is now also used by CefTextfield. - Remove CefLifeSpanHandler::RunModal() which is never called. - Add draggable regions example to cefclient.
2016-01-19 21:09:01 +01:00
#
# Support creation of captionless windows with resizable borders.
# https://bitbucket.org/chromiumembedded/cef/issues/1749
#
# Windows: When |params.remove_standard_frame| is true remove WS_CAPTION
# and WS_SYSMENU styles. Otherwise Windows 10 enforces a minimum window
# width of ~116 units that cannot be overridden.
# Linux: Allow creation of activatable menu windows.
# Linux: Support CefWindowDelegate::CanResize restriction by specifying
# min/max Widget size values.
# https://bitbucket.org/chromiumembedded/cef/issues/1947
#
# Support configuration of RWHVGuest device scale factor.
# https://bitbucket.org/chromiumembedded/cef/issues/2078
2017-02-10 23:44:11 +01:00
'name': 'views_widget_180_1481_1565_1677_1749',
},
{
Implement off-screen rendering support using delegated rendering (issue #1257). This implementation supports both GPU compositing and software compositing (used when GPU is not supported or when passing `--disable-gpu --disable-gpu-compositing` command-line flags). GPU-accelerated features (WebGL and 3D CSS) that did not work with the previous off-screen rendering implementation do work with this implementation when GPU support is available. Rendering now operates on a per-frame basis. The frame rate is configurable via CefBrowserSettings.windowless_frame_rate up to a maximum of 60fps (potentially limited by how fast the system can generate new frames). CEF generates a bitmap from the compositor backing and passes it to CefRenderHandler::OnPaint. The previous CefRenderHandler/CefBrowserHost API for off-screen rendering has been restored mostly as-is with some minor changes: - CefBrowserHost::Invalidate no longer accepts a CefRect region argument. Instead of invalidating a specific region it now triggers generation of a new frame. - The |dirtyRects| argument to CefRenderHandler::OnPaint will now always be a single CefRect representing the whole view (frame) size. Previously, invalidated regions were listed separately. - Linux: CefBrowserHost::SendKeyEvent now expects X11 event information instead of GTK event information. See cefclient for an example of converting GTK events to the necessary format. - Sizes passed to the CefRenderHandler OnPaint and OnPopupSize methods are now already DPI scaled. Previously, the client had to perform DPI scaling. - Includes drag&drop implementation from issue #1032. - Includes unit test fixes from issue #1245. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1751 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-01 00:30:29 +02:00
# Allow specification of a custom WebContentsView.
# https://bitbucket.org/chromiumembedded/cef/issues/1257
2017-02-10 23:44:11 +01:00
#
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
# https://bitbucket.org/chromiumembedded/cef/issues/1565
'name': 'web_contents_1257_1565',
},
{
2017-02-10 23:44:11 +01:00
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
# https://bitbucket.org/chromiumembedded/cef/issues/1565
'name': 'browser_plugin_guest_1565',
},
{
# Allow customization of the WebView background color.
# https://bitbucket.org/chromiumembedded/cef/issues/1161
# https://codereview.chromium.org/228603007/
'name': 'prefs_content_1161',
},
{
# Fix drag&drop of combined text and URL data on Linux/Aura.
# https://codereview.chromium.org/208313009
'name': 'ui_dragdrop_355390',
},
{
# Remove NOTREACHED() that is hit when loading Flash in incognito mode.
# https://bitbucket.org/chromiumembedded/cef/issue/1586
'name': 'content_pepper_flash_1586',
},
{
# Fix placement of IME window on Windows.
# https://bitbucket.org/chromiumembedded/cef/issue/1610
'name': 'ime_1610',
},
{
# Split service_manager::Main into the separate steps required by CEF.
# https://bugs.chromium.org/p/chromium/issues/detail?id=654986#c17
#
# Remove DCHECK on Linux when initialized CEF from a non-main thread.
# https://bitbucket.org/chromiumembedded/cef/issue/1639
'name': 'service_manager_654986',
},
{
# Fix missing check for defined(ENABLE_THEMES) in
# renderer_preferences_util.cc on Linux.
# https://bugs.chromium.org/p/chromium/issues/detail?id=545103
'name': 'renderer_preferences_util_545103',
},
{
# Expose the FontFamilyCache UserData key.
# https://bitbucket.org/chromiumembedded/cef/issues/1501
'name': 'font_family_cache_1501',
},
Implement Views framework on Windows and Linux (issue #1749). - Add Views header files in a new include/views directory. - Add initial top-level window (CefWindow), control (CefBrowserView, CefLabelButton, CefMenuButton, CefPanel, CefScrollView, CefTextfield) and layout (CefBoxLayout, CefFlowLayout) support. See libcef/browser/views/view_impl.h comments for implementation details. - Add Views example usage in cefclient and cefsimple and Views unit tests in cef_unittests. Pass the `--use-views` command-line flag to cefclient, cefsimple and cef_unittests to run using the Views framework instead of platform APIs. For cefclient and cefsimple this will create the browser window and all related functionality using the Views framework. For cef_unittests this will run all tests (except OSR tests) in a Views-based browser window. Views- specific unit tests (`--gtest_filter=Views*`) will be run even if the the `--use-views` flag is not specified. - Pass the `--hide-frame` command-line flag to cefclient to demo a frameless Views-based browser window. - Pass the `--hide-controls` command-line flag to cefclient to demo a browser window without top controls. This also works in non-Views mode. - Pass the `--enable-high-dpi-support` command-line flag to cef_unittests on Windows to test high-DPI support on a display that supports it. - Add CefImage for reading/writing image file formats. - Add CefBrowser::DownloadImage() for downloading image URLs as a CefImage representation. This is primarily for loading favicons. - Add CefMenuModel::CreateMenuModel() and CefMenuModelDelegate for creating custom menus. This is primarily for use with CefMenuButton. - Add CefBrowser::TryCloseBrowser() helper for closing a browser. Also improve related documentation in cef_life_span_handler.h. - Rename cef_page_range_t to cef_range_t. It is now also used by CefTextfield. - Remove CefLifeSpanHandler::RunModal() which is never called. - Add draggable regions example to cefclient.
2016-01-19 21:09:01 +01:00
{
# Modify views::View to extend SupportsUserData.
# https://bitbucket.org/chromiumembedded/cef/issues/1749
#
# Don't add TestDesktopScreenX11 dependency on Linux.
# Reverts ui_controls_factory_desktop_aurax11.cc changes from
# https://codereview.chromium.org/2327623002
#
# Add InkDropHostView::ink_drop_mode method.
# Reverts ink_drop_host_view.h changes from
# https://codereview.chromium.org/2723843002
#
# Add LabelButton::SetFontList method.
# Reverts label_button.[cc|h] changes from
# https://codereview.chromium.org/2801583002
#
# Expose callbacks for mouse/keyboard events that trigger menu switching.
# Add accelerator display support to Label.
# https://bitbucket.org/chromiumembedded/cef/issues/2102
'name': 'views_1749_2102',
Implement Views framework on Windows and Linux (issue #1749). - Add Views header files in a new include/views directory. - Add initial top-level window (CefWindow), control (CefBrowserView, CefLabelButton, CefMenuButton, CefPanel, CefScrollView, CefTextfield) and layout (CefBoxLayout, CefFlowLayout) support. See libcef/browser/views/view_impl.h comments for implementation details. - Add Views example usage in cefclient and cefsimple and Views unit tests in cef_unittests. Pass the `--use-views` command-line flag to cefclient, cefsimple and cef_unittests to run using the Views framework instead of platform APIs. For cefclient and cefsimple this will create the browser window and all related functionality using the Views framework. For cef_unittests this will run all tests (except OSR tests) in a Views-based browser window. Views- specific unit tests (`--gtest_filter=Views*`) will be run even if the the `--use-views` flag is not specified. - Pass the `--hide-frame` command-line flag to cefclient to demo a frameless Views-based browser window. - Pass the `--hide-controls` command-line flag to cefclient to demo a browser window without top controls. This also works in non-Views mode. - Pass the `--enable-high-dpi-support` command-line flag to cef_unittests on Windows to test high-DPI support on a display that supports it. - Add CefImage for reading/writing image file formats. - Add CefBrowser::DownloadImage() for downloading image URLs as a CefImage representation. This is primarily for loading favicons. - Add CefMenuModel::CreateMenuModel() and CefMenuModelDelegate for creating custom menus. This is primarily for use with CefMenuButton. - Add CefBrowser::TryCloseBrowser() helper for closing a browser. Also improve related documentation in cef_life_span_handler.h. - Rename cef_page_range_t to cef_range_t. It is now also used by CefTextfield. - Remove CefLifeSpanHandler::RunModal() which is never called. - Add draggable regions example to cefclient.
2016-01-19 21:09:01 +01:00
},
{
# Expose ui::Compositor via BrowserCompositorMac for OSR.
'name': 'browser_compositor_mac',
},
{
# Fix chrome Widevine build on Linux.
#
# Remove incorrect assertion on Windows/macOS by cherry-picking this commit:
# https://chromium.googlesource.com/chromium/src/+/ec992a43e7
'name': 'chrome_widevine',
},
{
# Support CEF changes in chrome/browser.
'name': 'chrome_browser',
},
{
# Support CEF changes in chrome/renderer.
'name': 'chrome_renderer',
},
{
# Don't initialize ExtensionSystemFactory when extensions are disabled.
# https://bitbucket.org/chromiumembedded/cef/issues/2359
'name': 'chrome_browser_content_settings',
},
{
# Don't initialize ExtensionSystemFactory when extensions are disabled.
# https://bitbucket.org/chromiumembedded/cef/issues/2852
'name': 'chrome_browser_themes',
},
{
# Make some methods of ProfileManager virtual.
#
# Don't create IdentityManager in RendererUpdater.
# https://bitbucket.org/chromiumembedded/cef/issues/1917
'name': 'chrome_browser_profiles',
},
{
# Show the CEF Save As dialog.
# https://bitbucket.org/chromiumembedded/cef/issues/2613
#
# Fix fatal error: 'components/printing/common/print.mojom.h' file not found
# From chrome/browser/ui/browser_commands.cc via
# chrome/browser/printing/print_view_manager_common.h
'name': 'chrome_browser_net_export',
},
{
# Support override of the User-Agent product component when NetworkService
# is enabled.
# https://bitbucket.org/chromiumembedded/cef/issues/2622
'name': 'chrome_browser_product_override',
},
{
# Fix Jumbo/component build dependency issue.
'name': 'chrome_browser_safe_browsing',
},
{
# Allow CEF to share Chrome plugin loading code.
'name': 'chrome_plugins',
},
{
# Don't create databases, blob_storage or VideoDecodeStats directories when
# cache_path is empty.
# https://bitbucket.org/chromiumembedded/cef/issues/2289
'name': 'storage_incognito_2289',
},
{
# Fix plugin placeholder blocked message.
# https://bitbucket.org/chromiumembedded/cef/issues/2020/
'name': 'webview_plugin_2020',
},
{
# Support WebUI by removing dependency on non-NULL IOThread* object.
# https://bitbucket.org/chromiumembedded/cef/issues/2037
'name': 'webui_2037',
},
{
# Implement breakpad/crashpad customization required by CEF.
# https://bitbucket.org/chromiumembedded/cef/issues/1995
'name': 'crashpad_1995',
},
{
# Support customization of crash report pruning limits.
# https://bugs.chromium.org/p/crashpad/issues/detail?id=142
#
# Implement better rate-limiting/retry logic.
# https://bugs.chromium.org/p/crashpad/issues/detail?id=23
'name': 'crashpad_tp_1995',
},
{
# Fix white flash during browser creation.
# https://bitbucket.org/chromiumembedded/cef/issues/1984
#
# Windows: Fix crash during window creation.
# https://bugs.chromium.org/p/chromium/issues/detail?id=761389
'name': 'rwh_background_color_1984',
},
{
# Pass is_main_frame to PluginServiceFilter::IsPluginAvailable.
# https://bitbucket.org/chromiumembedded/cef/issues/2015
#
# Pass the render process id to PluginServiceFilter::IsPluginAvailable.
# https://bugs.chromium.org/p/chromium/issues/detail?id=626728#c15
#
# Expose RFH via NavigationHandle for retrieval in DidFinishNavigation on
# network error.
# https://groups.google.com/a/chromium.org/d/msg/chromium-dev/6iAQPx_hwh8/gaTR5f1GAQAJ
#
# Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue.
# https://bugs.chromium.org/p/chromium/issues/detail?id=728195
#
# Add RenderFrameObserver::FrameFocused method.
#
# Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
Implement NetworkService request interception/handling (see issue #2622). Implementation notes: - Chromium change: CookieMonster::SetCookieableSchemes needs to be called immediately after the CookieMonster is created in NetworkContext:: ApplyContextParamsToBuilder. Add a Profile::GetCookieableSchemes method and NetworkContextParams.cookieable_schemes member (set from ProfileNetworkContextService::CreateNetworkContextParams) to support that. - Chromium change: Add a ContentBrowserClient::HandleExternalProtocol variant that exposes additional NetworkService request information. - GetResourceResponseFilter is not yet implemented. API changes: - Resource-related callbacks have been moved from CefRequestHandler to a new CefResourceRequestHandler interface which is returned via the GetResourceRequestHandler method. If the CefRequestHandler declines to handle a resource it can optionally be handled by the CefRequestContextHandler, if any, associated with the loading context. - The OnProtocolExecution callback has been moved from CefRequestHandler to CefResourceRequestHandler and will be called if a custom scheme request is unhandled. - Cookie send/save permission callbacks have been moved from CefRequestHandler and CefResourceHandler to CefResourceRequestHandler. - New methods added to CefResourceHandler that better match NetworkService execution sequence expectations. The old methods are now deprecated. - New methods added to CefRequest and CefResponse. Known behavior changes with the NetworkService implementation: - Modifying the |new_url| parameter in OnResourceRedirect will no longer result in the method being called an additional time (likely a bug in the old implementation). - Modifying the request URL in OnResourceResponse would previously cause a redirect. This behavior is now deprecated because the NetworkService does not support this functionality when using default network loaders. Temporary support has been added in combination with CefResourceHandler usage only. - Other changes to the request object in OnResourceResponse will now cause the request to be restarted. This means that OnBeforeResourceLoad, etc, will be called an additional time with the new request information. - CefResponse::GetMimeType will now be empty for non-200 responses. - Requests using custom schemes can now be handled via CefResourceRequestHandler with the same callback behavior as builtin schemes. - Redirects of custom scheme requests will now be followed as expected. - Default handling of builtin schemes can now be disabled by setting |disable_default_handling| to true in GetResourceRequestHandler. - Unhandled requests (custom scheme or builtin scheme with default handling disabled) will fail with an CefResponse::GetError value of ERR_UNKNOWN_URL_SCHEME. - The CefSchemeHandlerFactory::Create callback will now include cookie headers. To test: - Run `cefclient --enable-network-service`. All resources should load successfully (this tests the transparent proxy capability). - All tests pass with NetworkService disabled. - The following tests pass with NetworkService enabled: - CookieTest.* - FrameTest.* (excluding .*Nav) - NavigationTest.* (excluding .Redirect*) - RequestHandlerTest.* - RequestContextTest.Basic* - RequestContextTest.Popup* - RequestTest.* - ResourceManagerTest.* - ResourceRequestHandlerTest.* (excluding .Filter*) - SchemeHandlerTest.* - StreamResourceHandlerTest.*
2019-04-24 04:50:25 +02:00
#
# Always return the Chrome product value for DevTools.
# https://bitbucket.org/chromiumembedded/cef/issues/2300
#
# Add new ContentBrowserClient::HandleExternalProtocol variant for use with
# the NetworkService.
# https://bitbucket.org/chromiumembedded/cef/issues/2622
'name': 'content_2015',
},
{
# Pass is_main_frame to PluginServiceFilter::IsPluginAvailable.
# https://bitbucket.org/chromiumembedded/cef/issues/2015
#
# Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
'name': 'webkit_plugin_info_2015',
},
{
# Linux: Attach routing IDs to PrintingContext.
# https://bitbucket.org/chromiumembedded/cef/issues/2196
'name': 'printing_context_2196',
},
{
# Linux: Fix 32-bit build fails with ld.gold: internal error in
# get_section_contents, at icf.cc:467
# https://bitbucket.org/chromiumembedded/cef/issues/2256
# Win: remove llvmlibthin as the combine_libs.py can't handle those
# https://bitbucket.org/chromiumembedded/cef/issues/2470
'name': 'build',
},
{
# Linux: Remove GTK build dependency.
# https://bitbucket.org/chromiumembedded/cef/issues/2014
'name': 'linux_gtk_2014',
},
{
# Changes necessary to support for chrome extensions. Add a new
# ExtensionHost constructor that allows CEF to create the WebContents.
# https://bitbucket.org/chromiumembedded/cef/issues/1947
#
# Don't initialize PrerenderContents object in StreamsPrivateAPI.
'name': 'extensions_1947',
},
{
# Don't enable sandbox::MITIGATION_STRICT_HANDLE_CHECKS in WinRT apps.
# https://bitbucket.org/chromiumembedded/cef/issues/2274
'name': 'win_rt_2274',
},
{
# Fix DCHECK running OSRTest.DragDropUpdateCursor.
# https://bugs.chromium.org/p/chromium/issues/detail?id=781966
'name': 'webkit_pointer_event_781966',
},
{
# macOS: Fix undesirable switch to discrete GPU during startup.
# https://bitbucket.org/chromiumembedded/cef/issues/2398
#
# macOS: Rely on symlinks to find the Libraries directory.
# https://bugs.chromium.org/p/chromium/issues/detail?id=757974#c23
'name': 'mac_gpu',
},
{
# macOS: Make the NativeEventProcessor protocol dependency optional.
# https://bitbucket.org/chromiumembedded/cef/issues/2539
'name': 'mac_event_observer_2539',
},
{
# macOS: Fix crash when scrolling in OSR mode.
# https://bitbucket.org/chromiumembedded/cef/issues/2540
'name': 'mac_fling_scheduler_2540',
},
{
# Linux: Use poll instead of select to fix crash during startup.
# https://bitbucket.org/chromiumembedded/cef/issues/2466
'name': 'linux_poll_2466',
},
{
# Allow ResourceBundle creation/destruction on the main thread and usage on
# the UI thread.
# https://bitbucket.org/chromiumembedded/cef/issues/2398
'name': 'resource_bundle_2512',
},
{
# Fix redraw of OSR PDF viewer.
# https://bitbucket.org/chromiumembedded/cef/issues/2507
# Partially reverts changes from https://crrev.com/17771fad93
'name': 'browser_child_frame_2507',
},
{
# macOS: Fix crash when showing a select popup with CefDoMessageLoopWork.
# https://bitbucket.org/chromiumembedded/cef/issues/2495
'name': 'message_pump_mac_2495',
},
{
# Linux: Load binaries from DIR_ASSETS.
# https://bitbucket.org/chromiumembedded/cef/issues/1936
'name': 'linux_assets_path_1936',
},
Implement NetworkService request interception/handling (see issue #2622). Implementation notes: - Chromium change: CookieMonster::SetCookieableSchemes needs to be called immediately after the CookieMonster is created in NetworkContext:: ApplyContextParamsToBuilder. Add a Profile::GetCookieableSchemes method and NetworkContextParams.cookieable_schemes member (set from ProfileNetworkContextService::CreateNetworkContextParams) to support that. - Chromium change: Add a ContentBrowserClient::HandleExternalProtocol variant that exposes additional NetworkService request information. - GetResourceResponseFilter is not yet implemented. API changes: - Resource-related callbacks have been moved from CefRequestHandler to a new CefResourceRequestHandler interface which is returned via the GetResourceRequestHandler method. If the CefRequestHandler declines to handle a resource it can optionally be handled by the CefRequestContextHandler, if any, associated with the loading context. - The OnProtocolExecution callback has been moved from CefRequestHandler to CefResourceRequestHandler and will be called if a custom scheme request is unhandled. - Cookie send/save permission callbacks have been moved from CefRequestHandler and CefResourceHandler to CefResourceRequestHandler. - New methods added to CefResourceHandler that better match NetworkService execution sequence expectations. The old methods are now deprecated. - New methods added to CefRequest and CefResponse. Known behavior changes with the NetworkService implementation: - Modifying the |new_url| parameter in OnResourceRedirect will no longer result in the method being called an additional time (likely a bug in the old implementation). - Modifying the request URL in OnResourceResponse would previously cause a redirect. This behavior is now deprecated because the NetworkService does not support this functionality when using default network loaders. Temporary support has been added in combination with CefResourceHandler usage only. - Other changes to the request object in OnResourceResponse will now cause the request to be restarted. This means that OnBeforeResourceLoad, etc, will be called an additional time with the new request information. - CefResponse::GetMimeType will now be empty for non-200 responses. - Requests using custom schemes can now be handled via CefResourceRequestHandler with the same callback behavior as builtin schemes. - Redirects of custom scheme requests will now be followed as expected. - Default handling of builtin schemes can now be disabled by setting |disable_default_handling| to true in GetResourceRequestHandler. - Unhandled requests (custom scheme or builtin scheme with default handling disabled) will fail with an CefResponse::GetError value of ERR_UNKNOWN_URL_SCHEME. - The CefSchemeHandlerFactory::Create callback will now include cookie headers. To test: - Run `cefclient --enable-network-service`. All resources should load successfully (this tests the transparent proxy capability). - All tests pass with NetworkService disabled. - The following tests pass with NetworkService enabled: - CookieTest.* - FrameTest.* (excluding .*Nav) - NavigationTest.* (excluding .Redirect*) - RequestHandlerTest.* - RequestContextTest.Basic* - RequestContextTest.Popup* - RequestTest.* - ResourceManagerTest.* - ResourceRequestHandlerTest.* (excluding .Filter*) - SchemeHandlerTest.* - StreamResourceHandlerTest.*
2019-04-24 04:50:25 +02:00
{
# Enhancements to NetworkService:
# - Add support for calling CookieMonster::SetCookieableSchemes.
# - Fix cache directory structure ("C:\temp\cache\cache\Cache" should be
# "C:\temp\cache\Cache").
Implement NetworkService request interception/handling (see issue #2622). Implementation notes: - Chromium change: CookieMonster::SetCookieableSchemes needs to be called immediately after the CookieMonster is created in NetworkContext:: ApplyContextParamsToBuilder. Add a Profile::GetCookieableSchemes method and NetworkContextParams.cookieable_schemes member (set from ProfileNetworkContextService::CreateNetworkContextParams) to support that. - Chromium change: Add a ContentBrowserClient::HandleExternalProtocol variant that exposes additional NetworkService request information. - GetResourceResponseFilter is not yet implemented. API changes: - Resource-related callbacks have been moved from CefRequestHandler to a new CefResourceRequestHandler interface which is returned via the GetResourceRequestHandler method. If the CefRequestHandler declines to handle a resource it can optionally be handled by the CefRequestContextHandler, if any, associated with the loading context. - The OnProtocolExecution callback has been moved from CefRequestHandler to CefResourceRequestHandler and will be called if a custom scheme request is unhandled. - Cookie send/save permission callbacks have been moved from CefRequestHandler and CefResourceHandler to CefResourceRequestHandler. - New methods added to CefResourceHandler that better match NetworkService execution sequence expectations. The old methods are now deprecated. - New methods added to CefRequest and CefResponse. Known behavior changes with the NetworkService implementation: - Modifying the |new_url| parameter in OnResourceRedirect will no longer result in the method being called an additional time (likely a bug in the old implementation). - Modifying the request URL in OnResourceResponse would previously cause a redirect. This behavior is now deprecated because the NetworkService does not support this functionality when using default network loaders. Temporary support has been added in combination with CefResourceHandler usage only. - Other changes to the request object in OnResourceResponse will now cause the request to be restarted. This means that OnBeforeResourceLoad, etc, will be called an additional time with the new request information. - CefResponse::GetMimeType will now be empty for non-200 responses. - Requests using custom schemes can now be handled via CefResourceRequestHandler with the same callback behavior as builtin schemes. - Redirects of custom scheme requests will now be followed as expected. - Default handling of builtin schemes can now be disabled by setting |disable_default_handling| to true in GetResourceRequestHandler. - Unhandled requests (custom scheme or builtin scheme with default handling disabled) will fail with an CefResponse::GetError value of ERR_UNKNOWN_URL_SCHEME. - The CefSchemeHandlerFactory::Create callback will now include cookie headers. To test: - Run `cefclient --enable-network-service`. All resources should load successfully (this tests the transparent proxy capability). - All tests pass with NetworkService disabled. - The following tests pass with NetworkService enabled: - CookieTest.* - FrameTest.* (excluding .*Nav) - NavigationTest.* (excluding .Redirect*) - RequestHandlerTest.* - RequestContextTest.Basic* - RequestContextTest.Popup* - RequestTest.* - ResourceManagerTest.* - ResourceRequestHandlerTest.* (excluding .Filter*) - SchemeHandlerTest.* - StreamResourceHandlerTest.*
2019-04-24 04:50:25 +02:00
# https://bitbucket.org/chromiumembedded/cef/issues/2622
'name': 'services_network_2622',
},
{
# Enhancements to NetworkService:
# - Support customization of request_id via SimpleURLLoader.
# - Remove the non-nullptr WebContents requirement from
# NetworkServiceClient::OnAuthRequired.
# https://bitbucket.org/chromiumembedded/cef/issues/2718
#
# Fix shutdown crash in InitNetworkContext with multi-threaded message loop.
# https://bitbucket.org/chromiumembedded/cef/issues/2703
'name': 'services_network_request_id_2718',
},
{
# Windows: Remove the base::Value is_standard_layout assert which will fail
# for the cef_sandbox build, and which is no longer required.
# https://bugs.chromium.org/p/chromium/issues/detail?id=646113#c173
# https://chromium.googlesource.com/chromium/src/+/2f28731c17
'name': 'base_value_646113',
},
{
# Restore WebView::SetResizeBackgroundColor() that was removed.
# http://crrev.com/3955c9f9eb
'name': 'set_resize_background_color',
},
{
# Restore WebUrlLoader Cancel method.
# https://chromium-review.googlesource.com/c/chromium/src/+/1617042
'name': 'web_url_loader_cancel_1617042',
},
{
# Avoid a shutdown crash with multi-threaded message loop caused by
# |g_browser_task_executor->browser_ui_thread_scheduler_| being null when
# BrowserTaskExecutor::Shutdown is called via CefContext::FinalizeShutdown.
# This crash was introduced by https://crrev.com/5f6212babf.
'name': 'browser_scheduler',
},
{
# Avoid a shutdown crash caused by PrefWatcher holding a reference to
# |g_browser_process->local_state()|, and the local_state being deleted
# before the PrefWatcher object (which is associated with a Profile).
# PrefWatcher::Shutdown will now be called from ChromeBrowserProcessStub::
# Shutdown for all Profiles before local_state deletion.
# This crash was introduced by https://crrev.com/7d032b378c.
'name': 'chrome_pref_watcher',
},
{
# Add support for OSR rendering with Viz.
# https://bitbucket.org/chromiumembedded/cef/issues/2575
'name': 'viz_osr_2575',
},
{
# Changes for print preview support:
# - Don't attach unnecessary Chrome-related handlers to constrained window.
# - Create file dialogs using the CEF code path.
# - Remove unsupported print preview UI options.
# https://bitbucket.org/chromiumembedded/cef/issues/123
'name': 'print_preview_123',
},
{
# Remove cef_sandbox dependency on boringssl MD5/SHA1 functions.
# https://bitbucket.org/chromiumembedded/cef/issues/2743
'name': 'base_sandbox_2743',
},
{
# Fix component build error due to ContentServiceManagerMainDelegate not
# being exported.
#
# Fix DiscardableSharedMemoryManager crash on shutdown with multi-threaded
# message loop.
# https://bitbucket.org/chromiumembedded/cef/issues/2798
'name': 'content_app_shutdown_2798',
},
{
# Add RenderWidgetHostImpl::SetCompositorForFlingScheduler to fix fling
# scrolling in OSR mode.
# https://bitbucket.org/chromiumembedded/cef/issues/2745
'name': 'osr_fling_2745',
},
{
# Windows: Fix ImportError: No module named win32file
# https://bugs.chromium.org/p/chromium/issues/detail?id=1033106#c7
'name': 'win_tool_wrapper_1033106',
},
{
# Windows: Build the double_conversion target as C++17 to avoid export of
# std::is_integral templates that should be inlined.
# https://bitbucket.org/chromiumembedded/cef/issues/2819
'name': 'win_double_conversion_2819',
}
]