• 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 OS X.
68    #
69    # Allow customization of the WebView background color.
70    # https://bitbucket.org/chromiumembedded/cef/issues/2345
71    'name': 'webkit_popups_and_background',
72  },
73  {
74    # Give AlloyContentRendererClient access to protected
75    # RuntimeEnabledFeatures methods.
76    'name': 'webkit_runtime_enabled_features',
77  },
78  {
79    # Fix export of UnderlayOpenGLHostingWindow for 64-bit OS X builds.
80    # https://bitbucket.org/chromiumembedded/cef/issues/1051
81    'name': 'underlay_1051',
82  },
83  {
84    # Allow specification of a parent window handle for Widget creation.
85    # https://bitbucket.org/chromiumembedded/cef/issues/180
86    #
87    # Fix multiple handling of WM_MOUSEWHEEL messages on Windows.
88    # https://bitbucket.org/chromiumembedded/cef/issues/1481
89    #
90    # Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
91    # https://bitbucket.org/chromiumembedded/cef/issues/1565
92    #
93    # Fix focus/activation handling and keyboard input on Windows and Linux.
94    # https://bitbucket.org/chromiumembedded/cef/issues/1677
95    # https://bitbucket.org/chromiumembedded/cef/issues/1679
96    # https://bitbucket.org/chromiumembedded/cef/issues/1700
97    #
98    # Support creation of captionless windows with resizable borders.
99    # https://bitbucket.org/chromiumembedded/cef/issues/1749
100    #
101    # Windows: When |params.remove_standard_frame| is true remove WS_CAPTION
102    # and WS_SYSMENU styles. Otherwise Windows 10 enforces a minimum window
103    # width of ~116 units that cannot be overridden.
104    # Linux: Allow creation of activatable menu windows.
105    # Linux: Support CefWindowDelegate::CanResize restriction by specifying
106    # min/max Widget size values.
107    # https://bitbucket.org/chromiumembedded/cef/issues/1947
108    #
109    # Support configuration of RWHVGuest device scale factor.
110    # https://bitbucket.org/chromiumembedded/cef/issues/2078
111    #
112    # Windows: Fix focus assignment when clicking WebView with external parent.
113    # https://bitbucket.org/chromiumembedded/cef/issues/3031
114    'name': 'views_widget',
115  },
116  {
117    # Allow specification of a custom WebContentsView.
118    # https://bitbucket.org/chromiumembedded/cef/issues/1257
119    #
120    # Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
121    # https://bitbucket.org/chromiumembedded/cef/issues/1565
122    #
123    # Add WebContentsObserver::OnFrameFocused.
124    'name': 'web_contents_1257_1565',
125  },
126  {
127    # Support custom RenderWidgetHostViewOSR for MimeHandlerViewGuest and
128    # expose OnGuestAttached/Detached notifications.
129    # https://bitbucket.org/chromiumembedded/cef/issues/1565
130    # https://bitbucket.org/chromiumembedded/cef/issues/2727
131    'name': 'mime_handler_view_guest_1565_2727',
132  },
133  {
134    # Fix drag&drop of combined text and URL data on Linux/Aura.
135    # https://codereview.chromium.org/208313009
136    'name': 'ui_dragdrop_355390',
137  },
138  {
139    # Fix placement of IME window on Windows.
140    # https://bitbucket.org/chromiumembedded/cef/issue/1610
141    'name': 'ime_1610',
142  },
143  {
144    # Split content::ContentMain into the separate steps required by CEF.
145    # https://bugs.chromium.org/p/chromium/issues/detail?id=654986#c17
146    #
147    # Remove DCHECK on Linux when initialized CEF from a non-main thread.
148    # https://bitbucket.org/chromiumembedded/cef/issue/1639
149    #
150    # Fix DiscardableSharedMemoryManager crash on shutdown with multi-threaded
151    # message loop.
152    # https://bitbucket.org/chromiumembedded/cef/issues/2798
153    'name': 'content_main_654986',
154  },
155  {
156    # Fix missing check for defined(ENABLE_THEMES) in
157    # renderer_preferences_util.cc on Linux.
158    # https://bugs.chromium.org/p/chromium/issues/detail?id=545103
159    'name': 'renderer_preferences_util_545103',
160  },
161  {
162    # Expose the FontFamilyCache UserData key.
163    # https://bitbucket.org/chromiumembedded/cef/issues/1501
164    'name': 'font_family_cache_1501',
165  },
166  {
167    # Modify views::View to extend SupportsUserData.
168    # https://bitbucket.org/chromiumembedded/cef/issues/1749
169    #
170    # Don't add TestDesktopScreenX11 dependency on Linux.
171    # Reverts ui_controls_factory_desktop_aurax11.cc changes from
172    # https://codereview.chromium.org/2327623002
173    #
174    # Add InkDropHostView::ink_drop_mode method.
175    # Reverts ink_drop_host_view.h changes from
176    # https://codereview.chromium.org/2723843002
177    #
178    # Add LabelButton::SetFontList method.
179    # Reverts label_button.[cc|h] changes from
180    # https://codereview.chromium.org/2801583002
181    #
182    # Expose callbacks for mouse/keyboard events that trigger menu switching.
183    # Add accelerator display support to Label.
184    # https://bitbucket.org/chromiumembedded/cef/issues/2102
185    'name': 'views_1749_2102',
186  },
187  {
188    # Fix chrome Widevine build on Linux.
189    #
190    # Remove incorrect assertion on Windows/macOS by cherry-picking this commit:
191    # https://chromium.googlesource.com/chromium/src/+/ec992a43e7
192    'name': 'chrome_widevine',
193  },
194  {
195    # Support CEF changes in chrome/browser.
196    'name': 'chrome_browser',
197  },
198  {
199    # Support CEF changes in chrome/renderer.
200    'name': 'chrome_renderer',
201  },
202  {
203    # Changes to support the Chrome runtime in CEF.
204    # https://bitbucket.org/chromiumembedded/cef/issues/2969
205    'name': 'chrome_runtime',
206  },
207  {
208    # Changes to support Chrome runtime integration with CEF Views.
209    # See related documentation in
210    # libcef/browser/chrome/views/chrome_browser_frame.h.
211    # https://bitbucket.org/chromiumembedded/cef/issues/2969
212    'name': 'chrome_runtime_views',
213  },
214  {
215    # Changes to support the Chrome runtime in CEF.
216    # https://bitbucket.org/chromiumembedded/cef/issues/2969
217    'name': 'chrome_browser_browser',
218  },
219  {
220    # Don't initialize ExtensionSystemFactory when extensions are disabled.
221    # https://bitbucket.org/chromiumembedded/cef/issues/2359
222    #
223    # Remove NOTREACHED() in GetContentSettingFromRulesImpl triggered by
224    # NavigationTest.LoadCrossOriginLoadURL with the chrome runtime.
225    'name': 'chrome_browser_content_settings',
226  },
227  {
228    # chrome: Support custom handling of context menus.
229    # https://bitbucket.org/chromiumembedded/cef/issues/2969
230    'name': 'chrome_browser_context_menus',
231  },
232  {
233    # Don't initialize ExtensionSystemFactory when extensions are disabled.
234    # https://bitbucket.org/chromiumembedded/cef/issues/2852
235    'name': 'chrome_browser_themes',
236  },
237  {
238    # Make some methods of ProfileManager virtual.
239    #
240    # Don't create IdentityManager in RendererUpdater.
241    # https://bitbucket.org/chromiumembedded/cef/issues/1917
242    #
243    # chrome: Support CEF incognito Profiles that allow Browser creation.
244    # chrome: Allow CEF to delay OffTheRecordProfileImpl initialization.
245    # https://bitbucket.org/chromiumembedded/cef/issues/2969
246    'name': 'chrome_browser_profiles',
247  },
248  {
249    # chrome: Fix assertion when clicking the incognito profile button.
250    # https://bitbucket.org/chromiumembedded/cef/issues/2969
251    'name': 'chrome_browser_profile_menu',
252  },
253  {
254    # Show the CEF Save As dialog.
255    # https://bitbucket.org/chromiumembedded/cef/issues/2613
256    #
257    # Fix fatal error: 'components/printing/common/print.mojom.h' file not found
258    # From chrome/browser/ui/browser_commands.cc via
259    # chrome/browser/printing/print_view_manager_common.h
260    'name': 'chrome_browser_net_export',
261  },
262  {
263    # Support override of the User-Agent product component when NetworkService
264    # is enabled.
265    # https://bitbucket.org/chromiumembedded/cef/issues/2622
266    'name': 'embedder_product_override',
267  },
268  {
269    # Fix Jumbo/component build dependency issue.
270    'name': 'chrome_browser_safe_browsing',
271  },
272  {
273    # Allow CEF to share Chrome plugin loading code.
274    #
275    # Add BrowserPluginGuest::owner_web_contents() method.
276    'name': 'chrome_plugins',
277  },
278  {
279    # Don't create databases, blob_storage or VideoDecodeStats directories when
280    # cache_path is empty.
281    # https://bitbucket.org/chromiumembedded/cef/issues/2289
282    'name': 'storage_incognito_2289',
283  },
284  {
285    # Fix plugin placeholder blocked message.
286    # https://bitbucket.org/chromiumembedded/cef/issues/2020/
287    'name': 'webview_plugin_2020',
288  },
289  {
290    # Support WebUI by removing dependency on non-NULL IOThread* object.
291    # https://bitbucket.org/chromiumembedded/cef/issues/2037
292    'name': 'webui_2037',
293  },
294  {
295    # Implement breakpad/crashpad customization required by CEF.
296    # https://bitbucket.org/chromiumembedded/cef/issues/1995
297    'name': 'crashpad_1995',
298  },
299  {
300    # Support customization of crash report pruning limits.
301    # https://bugs.chromium.org/p/crashpad/issues/detail?id=142
302    #
303    # Implement better rate-limiting/retry logic.
304    # https://bugs.chromium.org/p/crashpad/issues/detail?id=23
305    'name': 'crashpad_tp_1995',
306  },
307  {
308    # Fix white flash during browser creation.
309    # https://bitbucket.org/chromiumembedded/cef/issues/1984
310    #
311    # Windows: Fix crash during window creation.
312    # https://bugs.chromium.org/p/chromium/issues/detail?id=761389
313    'name': 'rwh_background_color_1984',
314  },
315  {
316    # Pass is_main_frame to PluginServiceFilter::IsPluginAvailable.
317    # https://bitbucket.org/chromiumembedded/cef/issues/2015
318    #
319    # Pass the render process id to PluginServiceFilter::IsPluginAvailable.
320    # https://bugs.chromium.org/p/chromium/issues/detail?id=626728#c15
321    #
322    # Expose RFH via NavigationHandle for retrieval in DidFinishNavigation on
323    # network error.
324    # https://groups.google.com/a/chromium.org/d/msg/chromium-dev/6iAQPx_hwh8/gaTR5f1GAQAJ
325    #
326    # Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue.
327    # https://bugs.chromium.org/p/chromium/issues/detail?id=728195
328    #
329    # Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
330    #
331    # Always return the Chrome product value for DevTools.
332    # https://bitbucket.org/chromiumembedded/cef/issues/2300
333    #
334    # Add new ContentBrowserClient::HandleExternalProtocol variant for use with
335    # the NetworkService.
336    # https://bitbucket.org/chromiumembedded/cef/issues/2622
337    'name': 'content_2015',
338  },
339  {
340    # Pass is_main_frame to PluginServiceFilter::IsPluginAvailable.
341    # https://bitbucket.org/chromiumembedded/cef/issues/2015
342    #
343    # Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
344    'name': 'webkit_plugin_info_2015',
345  },
346  {
347    # Linux: Attach routing IDs to PrintingContext.
348    # https://bitbucket.org/chromiumembedded/cef/issues/2196
349    'name': 'printing_context_2196',
350  },
351  {
352    # Windows: Remove llvmlibthin as the combine_libs.py can't handle those.
353    # https://bitbucket.org/chromiumembedded/cef/issues/2470
354    'name': 'build',
355  },
356  {
357    # Changes necessary to support for chrome extensions. Add a new
358    # ExtensionHost constructor that allows CEF to create the WebContents.
359    # https://bitbucket.org/chromiumembedded/cef/issues/1947
360    #
361    # Don't initialize PrerenderContents object in StreamsPrivateAPI.
362    'name': 'extensions_1947',
363  },
364  {
365    # macOS: Fix undesirable switch to discrete GPU during startup.
366    # https://bitbucket.org/chromiumembedded/cef/issues/2398
367    #
368    # macOS: Rely on symlinks to find the Libraries directory.
369    # https://bugs.chromium.org/p/chromium/issues/detail?id=757974#c23
370    'name': 'mac_gpu',
371  },
372  {
373    # macOS: Make the NativeEventProcessor protocol dependency optional.
374    # https://bitbucket.org/chromiumembedded/cef/issues/2539
375    'name': 'mac_event_observer_2539',
376  },
377  {
378    # macOS: Fix crash when scrolling in OSR mode.
379    # https://bitbucket.org/chromiumembedded/cef/issues/2540
380    'name': 'mac_fling_scheduler_2540',
381  },
382  {
383    # Linux: Use poll instead of select to fix crash during startup.
384    # https://bitbucket.org/chromiumembedded/cef/issues/2466
385    'name': 'linux_poll_2466',
386  },
387  {
388    # Allow ResourceBundle creation/destruction on the main thread and usage on
389    # the UI thread.
390    # https://bitbucket.org/chromiumembedded/cef/issues/2398
391    'name': 'resource_bundle_2512',
392  },
393  {
394    # macOS: Fix crash when showing a select popup with CefDoMessageLoopWork.
395    # https://bitbucket.org/chromiumembedded/cef/issues/2495
396    'name': 'message_pump_mac_2495',
397  },
398  {
399    # Linux: Load binaries from DIR_ASSETS.
400    # https://bitbucket.org/chromiumembedded/cef/issues/1936
401    'name': 'linux_assets_path_1936',
402  },
403  {
404    # Enhancements to NetworkService:
405    # - Add support for calling CookieMonster::SetCookieableSchemes.
406    # - Fix cache directory structure ("C:\temp\cache\cache\Cache" should be
407    #   "C:\temp\cache\Cache").
408    # https://bitbucket.org/chromiumembedded/cef/issues/2622
409    'name': 'services_network_2622',
410  },
411  {
412    # Enhancements to NetworkService:
413    # - Remove the non-nullptr WebContents requirement from
414    #   NetworkServiceClient::OnAuthRequired.
415    # https://bitbucket.org/chromiumembedded/cef/issues/2718
416    #
417    # Fix shutdown crash in InitNetworkContext with multi-threaded message loop.
418    # https://bitbucket.org/chromiumembedded/cef/issues/2985
419    #
420    # Compute correct default quota when cache_path is unspecified.
421    'name': 'services_network_2718',
422  },
423  {
424    # Restore the net::LOAD_DO_NOT_SEND_COOKIES flag to support disabling of
425    # cookie load/save on a per-request basis.
426    # Partially reverts the changes from
427    # https://chromium.googlesource.com/chromium/src/+/25eaa43022
428    'name': 'net_cookie_flags',
429  },
430  {
431    # Restore WebView::SetResizeBackgroundColor() that was removed.
432    # http://crrev.com/3955c9f9eb
433    'name': 'set_resize_background_color',
434  },
435  {
436    # Restore WebUrlLoader Cancel method.
437    # https://chromium-review.googlesource.com/c/chromium/src/+/1617042
438    'name': 'web_url_loader_cancel_1617042',
439  },
440  {
441    # Avoid a shutdown crash with multi-threaded message loop caused by
442    # |g_browser_task_executor->browser_ui_thread_scheduler_| being null when
443    # BrowserTaskExecutor::Shutdown is called via CefContext::FinalizeShutdown.
444    # This crash was introduced by https://crrev.com/5f6212babf.
445    'name': 'browser_scheduler',
446  },
447  {
448    # Avoid a shutdown crash caused by PrefWatcher holding a reference to
449    # |g_browser_process->local_state()|, and the local_state being deleted
450    # before the PrefWatcher object (which is associated with a Profile).
451    # PrefWatcher::Shutdown will now be called from ChromeBrowserProcessStub::
452    # Shutdown for all Profiles before local_state deletion.
453    # This crash was introduced by https://crrev.com/7d032b378c.
454    'name': 'chrome_pref_watcher',
455  },
456  {
457    # Add support for OSR rendering with Viz.
458    # https://bitbucket.org/chromiumembedded/cef/issues/2575
459    'name': 'viz_osr_2575',
460  },
461  {
462    # Changes for print preview support:
463    # - Don't attach unnecessary Chrome-related handlers to constrained window.
464    # - Create file dialogs using the CEF code path.
465    # - Remove unsupported print preview UI options.
466    # - macOS: Fix error: no member named 'kCloudPrinterHandler' in namespace
467    #   'printing::features',
468    # https://bitbucket.org/chromiumembedded/cef/issues/123
469    'name': 'print_preview_123',
470  },
471  {
472    # Remove cef_sandbox dependency on boringssl MD5/SHA1 functions.
473    # https://bitbucket.org/chromiumembedded/cef/issues/2743
474    #
475    # Enable the VS 2015 Update 2 fix when building with the MSVC standard
476    # library.
477    'name': 'base_sandbox_2743',
478  },
479  {
480    # Add RenderWidgetHostImpl::SetCompositorForFlingScheduler to fix fling
481    # scrolling in OSR mode.
482    # https://bitbucket.org/chromiumembedded/cef/issues/2745
483    'name': 'osr_fling_2745',
484  },
485  {
486    # Windows: Build targets as C++17 to avoid export of std::is_integral
487    # templates in cef_sandbox that should be inlined.
488    # https://bitbucket.org/chromiumembedded/cef/issues/2819
489    'name': 'win_cpp17_msvc_sandbox_2819',
490  },
491  {
492    # libxml access is now limited to targets audited by the Security Team.
493    # https://chromium-review.googlesource.com/c/chromium/src/+/1884750
494    'name': 'libxml_visibility',
495  },
496  {
497    # Fix unbound AssociatedRemote error in SetBackgroundOpaque.
498    # https://bugs.chromium.org/p/chromium/issues/detail?id=1070713
499    'name': 'renderer_host_1070713',
500  },
501  {
502    # Allow the loading of non-standard non-local WebSafe custom schemes in
503    # iframes.
504    # https://bugs.chromium.org/p/chromium/issues/detail?id=1081397#c9
505    #
506    # Fix crash in NavigationRequest::GetOriginForURLLoaderFactory() when
507    # navigating to an unregistered (e.g. non-standard) scheme.
508    # https://bitbucket.org/chromiumembedded/cef/issues/3105
509    'name': 'browser_security_policy_1081397',
510  },
511  {
512    # Linux: Fix undefined symbol: ResourceMapper::MapToJavaDrawableId in
513    # ChromePageInfoClient::GetJavaResourceId.
514    # https://bugs.chromium.org/p/chromium/issues/detail?id=1099927
515    'name': 'linux_chrome_page_info_1099927',
516  },
517  {
518    # Fix build errors with enable_background_mode=false.
519    # https://bugs.chromium.org/p/chromium/issues/detail?id=1100085
520    #
521    # Changes to support the Chrome runtime in CEF (app_controller_mac.mm).
522    # https://bitbucket.org/chromiumembedded/cef/issues/2969
523    'name': 'chrome_browser_background_mode_1100085',
524  },
525  {
526    # Windows: Fix cef_sandbox compile error due to missing include.
527    # Fixed by the below change in more recent Chromium versions.
528    # https://bugs.chromium.org/p/chromium/issues/detail?id=1049498#c14
529    'name': 'base_string_piece_1049498',
530  },
531  {
532    # Linux: Fix Sharesheet undefined symbol error.
533    # https://bugs.chromium.org/p/chromium/issues/detail?id=1123388
534    'name': 'chrome_browser_sharesheet_1123388',
535  },
536  {
537    # Linux: Fix ATK assertion error when generating ARM build config.
538    # https://bugs.chromium.org/p/chromium/issues/detail?id=1123214
539    'name': 'linux_atk_1123214',
540  }
541]
542