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