mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-04-25 16:08:45 +02:00
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.*
434 lines
15 KiB
INI
434 lines
15 KiB
INI
# 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 = [
|
|
{
|
|
# Necessary for grit integration.
|
|
'name': 'gritsettings',
|
|
},
|
|
{
|
|
# 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
|
|
'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',
|
|
},
|
|
{
|
|
# Enable popups in offscreen rendering on OS X.
|
|
#
|
|
# Allow customization of the WebView background color.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/2345
|
|
'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
|
|
#
|
|
# Fix multiple handling of WM_MOUSEWHEEL messages on Windows.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1481
|
|
#
|
|
# 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
|
|
#
|
|
# 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
|
|
'name': 'views_widget_180_1481_1565_1677_1749',
|
|
},
|
|
{
|
|
# Allow specification of a custom WebContentsView.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1257
|
|
#
|
|
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1565
|
|
'name': 'web_contents_1257_1565',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Make URLRequest::set_is_pending() public so that it can be called from
|
|
# CefRequestInterceptor::MaybeInterceptResponse().
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1327
|
|
'name': 'net_urlrequest_1327',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Enable support for print header and footer.
|
|
# https://bitbucket.org/chromiumembedded/cef/issue/1478
|
|
#
|
|
# Fix printing of PDF documents via PrintToPDF.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1565
|
|
#
|
|
# Revert ENABLE_PRINT_PREVIEW changes from the following changeset.
|
|
# https://codereview.chromium.org/1556463003
|
|
#
|
|
# Add ENABLE_CEF checks in chrome/browser/ui.
|
|
'name': 'print_header_footer_1478_1565',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Fix crash while printing on Windows by properly initializing V8 in the PDF
|
|
# module.
|
|
# https://bugs.chromium.org/p/chromium/issues/detail?id=549365#c17
|
|
'name': 'pdfium_print_549365',
|
|
'path': 'third_party/pdfium/',
|
|
},
|
|
{
|
|
# Enable support for filtering resource responses.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/515
|
|
'name': 'net_filter_515',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Expose ui::Compositor via BrowserCompositorMac for OSR.
|
|
'name': 'browser_compositor_mac',
|
|
},
|
|
{
|
|
# Fix chrome Widevine build on Linux.
|
|
'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',
|
|
},
|
|
{
|
|
# Make some methods of ProfileManager virtual.
|
|
'name': 'chrome_browser_profiles',
|
|
},
|
|
{
|
|
# Support direct access to NetExportFileWriter via BrowserProcess instead
|
|
# of adding a dependency on SystemNetworkContextManager (see
|
|
# https://crrev.com/6ed14d99e9).
|
|
# TODO(cef): Consider removing this once we support NetworkService.
|
|
#
|
|
# Show the CEF Save As dialog.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/2613
|
|
'name': 'chrome_browser_net_export',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Support an option to enable/disable net security expiration.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1994
|
|
'name': 'net_security_expiration_1994',
|
|
},
|
|
{
|
|
# 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.
|
|
#
|
|
# 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',
|
|
},
|
|
{
|
|
# Support rendering to a hardware GL/D3D texture/surface provided by the client
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/1006
|
|
'name': 'external_textures_1006',
|
|
},
|
|
{
|
|
# 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',
|
|
},
|
|
{
|
|
# Enhancements to NetworkService:
|
|
# - Add support for calling CookieMonster::SetCookieableSchemes.
|
|
# https://bitbucket.org/chromiumembedded/cef/issues/2622
|
|
'name': 'services_network_2622',
|
|
},
|
|
{
|
|
# Windows: Revert base::Value change which breaks cef_sandbox build.
|
|
# https://bugs.chromium.org/p/chromium/issues/detail?id=646113#c173
|
|
'name': 'base_value_646113',
|
|
},
|
|
{
|
|
# Restore WebView::SetResizeBackgroundColor() that was removed.
|
|
# http://crrev.com/3955c9f9eb
|
|
'name': 'set_resize_background_color',
|
|
},
|
|
{
|
|
# Remove requirement that enforces component builds
|
|
# http://crrev.com/567d828446
|
|
'name': 'remove_component_build_check',
|
|
}
|
|
]
|