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