• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Patch configuration file. See the README.txt file in the patch directory for
2# information on how this configuration is used.
3#
4# Each dictionary entry in the "patches" map represents a single patch file.
5# Supported key/value pairs are as follows:
6#
7# - 'name'       Required. The name of the patch file without the .patch
8#                extension that will be read from the patches subdirectory.
9# - 'path'       Optional. The repository root for the patch file. Defaults to
10#                the Chromium "src" root. All patch file contents must be
11#                relative to this repository root.
12# - 'condition'  Optional. The patch file will only be applied if an environment
13#                variable with this name exists.
14#
15# Each entry should also include a comment linking to the code review or bug
16# report that the patch relates to.
17
18patches = [
19  {
20    # Necessary for grit integration.
21    'name': 'gritsettings',
22  },
23  {
24    # Necessary for GN integration.
25    #
26    # Exclude the //chrome:packed_resources_locales target from the CEF build
27    # due to conflicting outputs with the //cef:repack_locales_pack target.
28    #
29    # Write environment.* files with the correct SDK version on Windows.
30    # https://bugs.chromium.org/p/chromium/issues/detail?id=634788
31    #
32    # Windows: Add cc_wrapper support for sccache builds.
33    # https://bitbucket.org/chromiumembedded/cef/issues/2432
34    'name': 'gn_config',
35  },
36  {
37    # Patches that must be applied after `gclient sync --nohooks` and before
38    # `gclient runhooks`.
39    #
40    # Support custom VS toolchain on Windows.
41    # https://bugs.chromium.org/p/chromium/issues/detail?id=623342
42    'name': 'runhooks',
43  },
44  {
45    # Support component builds (GN is_component_build=true).
46    # https://bitbucket.org/chromiumembedded/cef/issues/1617
47    'name': 'component_build',
48  },
49  {
50    # Revert change on Windows that removes MessageLoop::os_modal_loop().
51    # https://codereview.chromium.org/1992243003
52    #
53    # Revert change that removes MessageLoopForUI constructor.
54    # https://chromium-review.googlesource.com/751322
55    #
56    # Add MessageLoop::ReleasePump to fix crashes during shutdown with multi-
57    # threaded message loop mode.
58    # https://bitbucket.org/chromiumembedded/cef/issues/2362
59    'name': 'message_loop',
60  },
61  {
62    # Add builtin trace event categories for CEF.
63    # Required due to https://crrev.com/331266377d.
64    'name': 'trace_event',
65  },
66  {
67    # Enable popups in offscreen rendering on MacOS.
68    'name': 'webkit_popups',
69  },
70  {
71    # Give AlloyContentRendererClient access to protected
72    # RuntimeEnabledFeatures methods.
73    'name': 'webkit_runtime_enabled_features',
74  },
75  {
76    # Fix export of UnderlayOpenGLHostingWindow for 64-bit MacOS builds.
77    # https://bitbucket.org/chromiumembedded/cef/issues/1051
78    'name': 'underlay_1051',
79  },
80  {
81    # Allow specification of a parent window handle for Widget creation.
82    # https://bitbucket.org/chromiumembedded/cef/issues/180
83    #
84    # Fix multiple handling of WM_MOUSEWHEEL messages on Windows.
85    # https://bitbucket.org/chromiumembedded/cef/issues/1481
86    #
87    # Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
88    # https://bitbucket.org/chromiumembedded/cef/issues/1565
89    #
90    # Fix focus/activation handling and keyboard input on Windows and Linux.
91    # https://bitbucket.org/chromiumembedded/cef/issues/1677
92    # https://bitbucket.org/chromiumembedded/cef/issues/1679
93    # https://bitbucket.org/chromiumembedded/cef/issues/1700
94    #
95    # Support creation of captionless windows with resizable borders.
96    # https://bitbucket.org/chromiumembedded/cef/issues/1749
97    #
98    # Windows: When |params.remove_standard_frame| is true remove WS_CAPTION
99    # and WS_SYSMENU styles. Otherwise Windows 10 enforces a minimum window
100    # width of ~116 units that cannot be overridden.
101    # Linux: Allow creation of activatable menu windows.
102    # Linux: Support CefWindowDelegate::CanResize restriction by specifying
103    # min/max Widget size values.
104    # https://bitbucket.org/chromiumembedded/cef/issues/1947
105    #
106    # Support configuration of RWHVGuest device scale factor.
107    # https://bitbucket.org/chromiumembedded/cef/issues/2078
108    #
109    # Windows: Fix focus assignment when clicking WebView with external parent.
110    # https://bitbucket.org/chromiumembedded/cef/issues/3031
111    #
112    # Fix minimize & fullscreen behavior on initial Widget creation.
113    #
114    # Allow override of RWHVBase::GetNewScreenInfosForUpdate() which is now
115    # required due to https://crrev.com/96938eb36e in order to use
116    # RWHVBase::UpdateScreenInfo() with OSR.
117    'name': 'views_widget',
118  },
119  {
120    # Allow specification of a custom WebContentsView.
121    # https://bitbucket.org/chromiumembedded/cef/issues/1257
122    #
123    # Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
124    # https://bitbucket.org/chromiumembedded/cef/issues/1565
125    #
126    # Add WebContentsObserver::OnFrameFocused.
127    'name': 'web_contents_1257_1565',
128  },
129  {
130    # Support custom RenderWidgetHostViewOSR for MimeHandlerViewGuest and
131    # expose OnGuestAttached/Detached notifications.
132    # https://bitbucket.org/chromiumembedded/cef/issues/1565
133    # https://bitbucket.org/chromiumembedded/cef/issues/2727
134    'name': 'mime_handler_view_guest_1565_2727',
135  },
136  {
137    # Fix drag&drop of combined text and URL data on Linux/Aura.
138    # https://codereview.chromium.org/208313009
139    'name': 'ui_dragdrop_355390',
140  },
141  {
142    # Split content::ContentMain into the separate steps required by CEF.
143    # https://bugs.chromium.org/p/chromium/issues/detail?id=654986#c17
144    #
145    # Remove DCHECK on Linux when initialized CEF from a non-main thread.
146    # https://bitbucket.org/chromiumembedded/cef/issue/1639
147    #
148    # Fix DiscardableSharedMemoryManager crash on shutdown with multi-threaded
149    # message loop.
150    # https://bitbucket.org/chromiumembedded/cef/issues/2798
151    'name': 'content_main_654986',
152  },
153  {
154    # Expose the FontFamilyCache UserData key.
155    # https://bitbucket.org/chromiumembedded/cef/issues/1501
156    'name': 'font_family_cache_1501',
157  },
158  {
159    # Modify views::View to extend SupportsUserData.
160    # https://bitbucket.org/chromiumembedded/cef/issues/1749
161    #
162    # Don't add TestDesktopScreenX11 dependency on Linux.
163    # Reverts ui_controls_factory_desktop_aurax11.cc changes from
164    # https://codereview.chromium.org/2327623002
165    #
166    # Add InkDropHostView::ink_drop_mode method.
167    # Reverts ink_drop_host_view.h changes from
168    # https://codereview.chromium.org/2723843002
169    #
170    # Add LabelButton::SetFontList method.
171    # Reverts label_button.[cc|h] changes from
172    # https://codereview.chromium.org/2801583002
173    #
174    # Expose callbacks for mouse/keyboard events that trigger menu switching.
175    # Add accelerator display support to Label.
176    # https://bitbucket.org/chromiumembedded/cef/issues/2102
177    'name': 'views_1749_2102',
178  },
179  {
180    # Support CEF changes in chrome/browser.
181    'name': 'chrome_browser',
182  },
183  {
184    # Support CEF changes in chrome/renderer.
185    'name': 'chrome_renderer',
186  },
187  {
188    # Changes to support the Chrome runtime in CEF.
189    # https://bitbucket.org/chromiumembedded/cef/issues/2969
190    'name': 'chrome_runtime',
191  },
192  {
193    # Changes to support Chrome runtime integration with CEF Views.
194    # See related documentation in
195    # libcef/browser/chrome/views/chrome_browser_frame.h.
196    # https://bitbucket.org/chromiumembedded/cef/issues/2969
197    'name': 'chrome_runtime_views',
198  },
199  {
200    # Changes to support the Chrome runtime in CEF.
201    # https://bitbucket.org/chromiumembedded/cef/issues/2969
202    'name': 'chrome_browser_browser',
203  },
204  {
205    # Don't initialize ExtensionSystemFactory when extensions are disabled.
206    # https://bitbucket.org/chromiumembedded/cef/issues/2359
207    #
208    # Remove NOTREACHED() in GetContentSettingFromRulesImpl triggered by
209    # NavigationTest.LoadCrossOriginLoadURL with the chrome runtime.
210    'name': 'chrome_browser_content_settings',
211  },
212  {
213    # chrome: Support custom handling of context menus.
214    # https://bitbucket.org/chromiumembedded/cef/issues/2969
215    'name': 'chrome_browser_context_menus',
216  },
217  {
218    # chrome: Support override of ChromeMimeHandlerViewGuestDelegate.
219    # https://bitbucket.org/chromiumembedded/cef/issues/2969
220    'name': 'chrome_browser_extensions',
221  },
222  {
223    # Don't initialize ExtensionSystemFactory when extensions are disabled.
224    # https://bitbucket.org/chromiumembedded/cef/issues/2852
225    'name': 'chrome_browser_themes',
226  },
227  {
228    # Make some methods of ProfileManager virtual.
229    #
230    # Don't create IdentityManager in RendererUpdater.
231    # https://bitbucket.org/chromiumembedded/cef/issues/1917
232    #
233    # chrome: Support CEF incognito Profiles that allow Browser creation.
234    # chrome: Allow CEF to delay OffTheRecordProfileImpl initialization.
235    # https://bitbucket.org/chromiumembedded/cef/issues/2969
236    'name': 'chrome_browser_profiles',
237  },
238  {
239    # chrome: Fix assertion when clicking the incognito profile button.
240    # https://bitbucket.org/chromiumembedded/cef/issues/2969
241    'name': 'chrome_browser_profile_menu',
242  },
243  {
244    # Show the CEF Save As dialog.
245    # https://bitbucket.org/chromiumembedded/cef/issues/2613
246    #
247    # Fix fatal error: 'components/printing/common/print.mojom.h' file not found
248    # From chrome/browser/ui/browser_commands.cc via
249    # chrome/browser/printing/print_view_manager_common.h
250    'name': 'chrome_browser_net_export',
251  },
252  {
253    # Support override of the User-Agent product component when NetworkService
254    # is enabled.
255    # https://bitbucket.org/chromiumembedded/cef/issues/2622
256    'name': 'embedder_product_override',
257  },
258  {
259    # Fix Jumbo/component build dependency issue.
260    'name': 'chrome_browser_safe_browsing',
261  },
262  {
263    # Allow CEF to share Chrome plugin loading code.
264    #
265    # Add BrowserPluginGuest::owner_web_contents() method.
266    'name': 'chrome_plugins',
267  },
268  {
269    # Don't create databases, blob_storage or VideoDecodeStats directories when
270    # cache_path is empty.
271    # https://bitbucket.org/chromiumembedded/cef/issues/2289
272    'name': 'storage_incognito_2289',
273  },
274  {
275    # Fix plugin placeholder blocked message.
276    # https://bitbucket.org/chromiumembedded/cef/issues/2020/
277    'name': 'webview_plugin_2020',
278  },
279  {
280    # Support WebUI by removing dependency on non-NULL IOThread* object.
281    # https://bitbucket.org/chromiumembedded/cef/issues/2037
282    'name': 'webui_2037',
283  },
284  {
285    # Implement breakpad/crashpad customization required by CEF.
286    # https://bitbucket.org/chromiumembedded/cef/issues/1995
287    'name': 'crashpad_1995',
288  },
289  {
290    # Support customization of crash report pruning limits.
291    # https://bugs.chromium.org/p/crashpad/issues/detail?id=142
292    #
293    # Implement better rate-limiting/retry logic.
294    # https://bugs.chromium.org/p/crashpad/issues/detail?id=23
295    'name': 'crashpad_tp_1995',
296  },
297  {
298    # Fix white flash during browser creation.
299    # https://bitbucket.org/chromiumembedded/cef/issues/1984
300    #
301    # Windows: Fix crash during window creation.
302    # https://bugs.chromium.org/p/chromium/issues/detail?id=761389
303    'name': 'rwh_background_color_1984',
304  },
305  {
306    # Expose RFH via NavigationHandle for retrieval in DidFinishNavigation on
307    # network error.
308    # https://groups.google.com/a/chromium.org/d/msg/chromium-dev/6iAQPx_hwh8/gaTR5f1GAQAJ
309    #
310    # Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue.
311    # https://bugs.chromium.org/p/chromium/issues/detail?id=728195
312    #
313    # Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
314    #
315    # Always return the Chrome product value for DevTools.
316    # https://bitbucket.org/chromiumembedded/cef/issues/2300
317    #
318    # Add new ContentBrowserClient::HandleExternalProtocol variant for use with
319    # the NetworkService.
320    # https://bitbucket.org/chromiumembedded/cef/issues/2622
321    #
322    # Change ContentBrowserClient::ConfigureNetworkContextParams return type to
323    # bool to support cancellation of NetworkContext creation during shutdown.
324    # https://bitbucket.org/chromiumembedded/cef/issues/2985
325    'name': 'content_2015',
326  },
327  {
328    # Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
329    'name': 'webkit_plugin_info_2015',
330  },
331  {
332    # Linux: Attach routing IDs to PrintingContext.
333    # https://bitbucket.org/chromiumembedded/cef/issues/2196
334    'name': 'printing_context_2196',
335  },
336  {
337    # Expose the printing::GetRenderFrameHostToUse() method.
338    # https://bitbucket.org/chromiumembedded/cef/issues/3057
339    'name': 'printing_pdf_3047',
340  },
341  {
342    # Windows: Remove llvmlibthin as the combine_libs.py can't handle those.
343    # https://bitbucket.org/chromiumembedded/cef/issues/2470
344    'name': 'build',
345  },
346  {
347    # Changes necessary to support for chrome extensions. Add a new
348    # ExtensionHost constructor that allows CEF to create the WebContents.
349    # https://bitbucket.org/chromiumembedded/cef/issues/1947
350    #
351    # Don't initialize PrerenderContents object in StreamsPrivateAPI.
352    'name': 'extensions_1947',
353  },
354  {
355    # macOS: Fix undesirable switch to discrete GPU during startup.
356    # https://bitbucket.org/chromiumembedded/cef/issues/2398
357    #
358    # macOS: Rely on symlinks to find the Libraries directory.
359    # https://bugs.chromium.org/p/chromium/issues/detail?id=757974#c23
360    'name': 'mac_gpu',
361  },
362  {
363    # macOS: Make the NativeEventProcessor protocol dependency optional.
364    # https://bitbucket.org/chromiumembedded/cef/issues/2539
365    'name': 'mac_event_observer_2539',
366  },
367  {
368    # macOS: Fix crash when scrolling in OSR mode.
369    # https://bitbucket.org/chromiumembedded/cef/issues/2540
370    'name': 'mac_fling_scheduler_2540',
371  },
372  {
373    # Allow ResourceBundle creation/destruction on the main thread and usage on
374    # the UI thread.
375    # https://bitbucket.org/chromiumembedded/cef/issues/2398
376    'name': 'resource_bundle_2512',
377  },
378  {
379    # macOS: Fix crash when showing a select popup with CefDoMessageLoopWork.
380    # https://bitbucket.org/chromiumembedded/cef/issues/2495
381    'name': 'message_pump_mac_2495',
382  },
383  {
384    # Linux: Load binaries from DIR_ASSETS.
385    # https://bitbucket.org/chromiumembedded/cef/issues/1936
386    'name': 'linux_assets_path_1936',
387  },
388  {
389    # Linux: Fix ld.lld: error: relocation R_X86_64_TPOFF32 against
390    # blink::g_thread_specific_ cannot be used with -shared
391    # https://groups.google.com/a/chromium.org/g/blink-dev/c/wx0gZFCY3p4/m/iLBHRi0ZAQAJ
392    'name': 'linux_blink_thread_local',
393  },
394  {
395    # Linux: Avoid usage of chrome::FILE_COMPONENT_WIDEVINE_CDM_HINT.
396    # https://bitbucket.org/chromiumembedded/cef/issues/3149
397    'name': 'linux_chrome_widevine_3149',
398  },
399  {
400    # Enhancements to NetworkService:
401    # - Add support for calling CookieMonster::SetCookieableSchemes.
402    # - Fix cache directory structure ("C:\temp\cache\cache\Cache" should be
403    #   "C:\temp\cache\Cache").
404    # https://bitbucket.org/chromiumembedded/cef/issues/2622
405    'name': 'services_network_2622',
406  },
407  {
408    # Enhancements to NetworkService:
409    # - Remove the non-nullptr WebContents requirement from
410    #   NetworkServiceClient::OnAuthRequired.
411    # https://bitbucket.org/chromiumembedded/cef/issues/2718
412    #
413    # Change ContentBrowserClient::ConfigureNetworkContextParams return type to
414    # bool to support cancellation of NetworkContext creation during shutdown.
415    # https://bitbucket.org/chromiumembedded/cef/issues/2985
416    #
417    # Compute correct default quota when cache_path is unspecified.
418    'name': 'services_network_2718',
419  },
420  {
421    # Restore the net::LOAD_DO_NOT_SEND_COOKIES flag to support disabling of
422    # cookie load/save on a per-request basis.
423    # Partially reverts the changes from
424    # https://chromium.googlesource.com/chromium/src/+/25eaa43022
425    'name': 'net_cookie_flags',
426  },
427  {
428    # Restore WebView::SetResizeBackgroundColor() that was removed.
429    # http://crrev.com/3955c9f9eb
430    'name': 'set_resize_background_color',
431  },
432  {
433    # Restore WebUrlLoader Cancel method.
434    # https://chromium-review.googlesource.com/c/chromium/src/+/1617042
435    'name': 'web_url_loader_cancel_1617042',
436  },
437  {
438    # Avoid a shutdown crash with multi-threaded message loop caused by
439    # |g_browser_task_executor->browser_ui_thread_scheduler_| being null when
440    # BrowserTaskExecutor::Shutdown is called via CefContext::FinalizeShutdown.
441    # This crash was introduced by https://crrev.com/5f6212babf.
442    'name': 'browser_scheduler',
443  },
444  {
445    # Restore access to WebUIControllerFactory::UnregisterFactoryForTesting
446    # which was removed in https://crrev.com/5f183d6636. We can't use
447    # ScopedWebUIControllerFactoryRegistration because it pulls in GTest
448    # dependencies.
449    'name': 'browser_web_ui_controller_factory',
450  },
451  {
452    # Avoid a shutdown crash caused by PrefWatcher holding a reference to
453    # |g_browser_process->local_state()|, and the local_state being deleted
454    # before the PrefWatcher object (which is associated with a Profile).
455    # PrefWatcher::Shutdown will now be called from ChromeBrowserProcessStub::
456    # Shutdown for all Profiles before local_state deletion.
457    # This crash was introduced by https://crrev.com/7d032b378c.
458    'name': 'chrome_pref_watcher',
459  },
460  {
461    # Add support for OSR rendering with Viz.
462    # https://bitbucket.org/chromiumembedded/cef/issues/2575
463    'name': 'viz_osr_2575',
464  },
465  {
466    # Changes for print preview support:
467    # - Don't attach unnecessary Chrome-related handlers to constrained window.
468    # - Create file dialogs using the CEF code path.
469    # - Remove unsupported print preview UI options.
470    # - macOS: Fix error: no member named 'kCloudPrinterHandler' in namespace
471    #   'printing::features',
472    # https://bitbucket.org/chromiumembedded/cef/issues/123
473    'name': 'print_preview_123',
474  },
475  {
476    # Store command-line switch names as lower-case ASCII on all platforms.
477    # https://bitbucket.org/chromiumembedded/cef/issues/1872
478    'name': 'base_command_line_1872',
479  },
480  {
481    # Remove cef_sandbox dependency on boringssl MD5/SHA1 functions.
482    # https://bitbucket.org/chromiumembedded/cef/issues/2743
483    #
484    # Enable the VS 2015 Update 2 fix when building with the MSVC standard
485    # library.
486    'name': 'base_sandbox_2743',
487  },
488  {
489    # Add RenderWidgetHostImpl::SetCompositorForFlingScheduler to fix fling
490    # scrolling in OSR mode.
491    # https://bitbucket.org/chromiumembedded/cef/issues/2745
492    'name': 'osr_fling_2745',
493  },
494  {
495    # Windows: Build targets as C++17 to avoid export of std::is_integral
496    # templates in cef_sandbox that should be inlined.
497    # https://bitbucket.org/chromiumembedded/cef/issues/2819
498    'name': 'win_cpp17_msvc_sandbox_2819',
499  },
500  {
501    # libxml access is now limited to targets audited by the Security Team.
502    # https://chromium-review.googlesource.com/c/chromium/src/+/1884750
503    'name': 'libxml_visibility',
504  },
505  {
506    # Fix unbound AssociatedRemote error in SetBackgroundOpaque.
507    # https://bugs.chromium.org/p/chromium/issues/detail?id=1070713
508    'name': 'renderer_host_1070713',
509  },
510  {
511    # Allow the loading of non-standard non-local WebSafe custom schemes in
512    # iframes.
513    # https://bugs.chromium.org/p/chromium/issues/detail?id=1081397#c9
514    #
515    # Fix crash in NavigationRequest::GetOriginForURLLoaderFactory() when
516    # navigating to an unregistered (e.g. non-standard) scheme.
517    # https://bitbucket.org/chromiumembedded/cef/issues/3105
518    'name': 'browser_security_policy_1081397',
519  },
520  {
521    # Fix build errors with enable_background_mode=false.
522    # https://bugs.chromium.org/p/chromium/issues/detail?id=1100085
523    #
524    # Changes to support the Chrome runtime in CEF (app_controller_mac.mm).
525    # https://bitbucket.org/chromiumembedded/cef/issues/2969
526    'name': 'chrome_browser_background_mode_1100085',
527  },
528  {
529    # Linux: Fix ATK assertion error when generating ARM build config.
530    # https://bugs.chromium.org/p/chromium/issues/detail?id=1123214
531    'name': 'linux_atk_1123214',
532  },
533  {
534    # Linux: Make the //ui/ozone:generate_test_support_constructor_list target
535    # visible to CEF.
536    'name': 'linux_ui_ozone',
537  },
538  {
539    # Windows: Fix crash when |sandbox_info| parameter is nullptr.
540    # https://bitbucket.org/chromiumembedded/cef/issues/3210
541    'name': 'win_sandbox_3210',
542  },
543  {
544    # Remove DCHECK that triggers while loading DevTools resources.
545    # https://bugs.chromium.org/p/chromium/issues/detail?id=1289230
546    'name': 'blink_security_policy_1289230',
547  },
548  {
549    # Add ChromeUntrustedWebUIControllerFactory::GetInstance() method.
550    # https://crrev.com/643a88a591e1fa448c9ee72679498e4288e7a164
551    # https://bitbucket.org/chromiumembedded/cef/issues/3047
552    'name': 'chrome_untrusted_webui_3047',
553  }
554]
555