diff --git a/.editorconfig b/.editorconfig index a8be288b..0b0bf399 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,6 +6,7 @@ charset = utf-8-bom tab_width = 4 indent_size = 4 indent_style = space +insert_final_newline = true csharp_new_line_before_open_brace = all csharp_new_line_before_else = true @@ -13,4 +14,10 @@ csharp_new_line_before_catch = true csharp_new_line_before_finally = true csharp_new_line_before_members_in_object_initializers = true csharp_new_line_before_members_in_anonymous_types = true -csharp_new_line_between_query_expression_clauses = true \ No newline at end of file +csharp_new_line_between_query_expression_clauses = true + +dotnet_style_allow_trailing_comma = true +csharp_wrap_parameters_style = chop_if_long +csharp_wrap_ternary_expr_style = chop_if_long +csharp_wrap_object_and_collection_initializer_style = chop_if_long +csharp_wrap_arguments_style = chop_if_long diff --git a/CefGlue.Avalonia/Platform/AvaloniaOffScreenControlHost.cs b/CefGlue.Avalonia/Platform/AvaloniaOffScreenControlHost.cs index c2142a5b..fe93dad4 100644 --- a/CefGlue.Avalonia/Platform/AvaloniaOffScreenControlHost.cs +++ b/CefGlue.Avalonia/Platform/AvaloniaOffScreenControlHost.cs @@ -184,7 +184,7 @@ private void OnDetachedFromVisualTree(object sender, VisualTreeAttachmentEventAr _previousCursor = null; _currentDragCursor = null; _windowStateChangedObservable?.Dispose(); - VisibilityChanged(false); + VisibilityChanged?.Invoke(false); } private void OnAttachedToVisualTree(object sender, VisualTreeAttachmentEventArgs e) diff --git a/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj b/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj index 298bf60f..d85f89dc 100644 --- a/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj +++ b/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj @@ -8,6 +8,7 @@ osx-x64;osx-arm64;win-x64;win-arm64;linux-x64;linux-arm64 OnOutputUpdated false + app.manifest Configuration=$(Configuration);Platform=$(Platform);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;SelfContained=True;RuntimeIdentifier= True diff --git a/CefGlue.BrowserProcess/JavascriptExecution/JavascriptExecutionEngineRenderSide.cs b/CefGlue.BrowserProcess/JavascriptExecution/JavascriptExecutionEngineRenderSide.cs index 402676b4..51b8034c 100644 --- a/CefGlue.BrowserProcess/JavascriptExecution/JavascriptExecutionEngineRenderSide.cs +++ b/CefGlue.BrowserProcess/JavascriptExecution/JavascriptExecutionEngineRenderSide.cs @@ -35,4 +35,4 @@ private static void HandleJavascriptEvaluation(MessageReceivedEventArgs args) } } } -} \ No newline at end of file +} diff --git a/CefGlue.BrowserProcess/app.manifest b/CefGlue.BrowserProcess/app.manifest new file mode 100644 index 00000000..078d137d --- /dev/null +++ b/CefGlue.BrowserProcess/app.manifest @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CefGlue.Common.Shared/Serialization/Deserializer.cs b/CefGlue.Common.Shared/Serialization/Deserializer.cs index e170827e..2038a5cc 100644 --- a/CefGlue.Common.Shared/Serialization/Deserializer.cs +++ b/CefGlue.Common.Shared/Serialization/Deserializer.cs @@ -227,4 +227,4 @@ private static IDeserializerState CreateNewDeserializerState(Utf8JsonReader read }; } } -} \ No newline at end of file +} diff --git a/CefGlue.Common/BrowserCefApp.cs b/CefGlue.Common/BrowserCefApp.cs index 4bcc74a9..3f293dc4 100644 --- a/CefGlue.Common/BrowserCefApp.cs +++ b/CefGlue.Common/BrowserCefApp.cs @@ -21,18 +21,24 @@ protected override void OnBeforeCommandLineProcessing(string processType, CefCom { if (string.IsNullOrEmpty(processType)) { - if (CefRuntime.Platform == CefRuntimePlatform.Linux) + if (CefRuntime.Platform == CefRuntimePlatform.Linux) { commandLine.AppendSwitch("no-zygote"); } + if (CefRuntimeLoader.IsOSREnabled) { - commandLine.AppendSwitch("disable-gpu", "1"); - commandLine.AppendSwitch("disable-gpu-compositing", "1"); - commandLine.AppendSwitch("enable-begin-frame-scheduling", "1"); - commandLine.AppendSwitch("disable-smooth-scrolling", "1"); + commandLine.AppendSwitch("disable-gpu"); + commandLine.AppendSwitch("disable-gpu-compositing"); + commandLine.AppendSwitch("enable-begin-frame-scheduling"); + commandLine.AppendSwitch("disable-smooth-scrolling"); } - + + // Telemetry to debug + //commandLine.AppendSwitch("disable-features", "NetworkServiceSandbox"); + commandLine.AppendSwitch("log-severity", "verbose"); + commandLine.AppendSwitch("log-file", "C:\\git\\CefGlue\\cef_main_log.txt"); + if (_flags != null) { foreach (var flag in _flags) diff --git a/CefGlue.Common/CefRuntimeLoader.cs b/CefGlue.Common/CefRuntimeLoader.cs index 685ed4a9..e6664926 100644 --- a/CefGlue.Common/CefRuntimeLoader.cs +++ b/CefGlue.Common/CefRuntimeLoader.cs @@ -42,6 +42,8 @@ private static void InternalInitialize(CefSettings settings = null, KeyValuePair switch (CefRuntime.Platform) { case CefRuntimePlatform.Windows: + case CefRuntimePlatform.Linux: + settings.NoSandbox = true; settings.MultiThreadedMessageLoop = true; break; @@ -59,11 +61,6 @@ private static void InternalInitialize(CefSettings settings = null, KeyValuePair settings.FrameworkDirPath = basePath; settings.ResourcesDirPath = resourcesPath; break; - - case CefRuntimePlatform.Linux: - settings.NoSandbox = true; - settings.MultiThreadedMessageLoop = true; - break; } AppDomain.CurrentDomain.ProcessExit += delegate { CefRuntime.Shutdown(); }; @@ -77,18 +74,7 @@ private static void InternalInitialize(CefSettings settings = null, KeyValuePair { exeFileName = "CefGlue"; } - - // Fix crash with youtube https://github.com/chromiumembedded/cef/issues/3643 - { -#if DEBUG - if (CefRuntime.ChromeVersion.Split(".").First() != "120") - { - throw new Exception("Remove this fix block after CEF upgrade"); - } -#endif - flags = (flags ?? []).Append(KeyValuePair.Create("disable-features", "FirstPartySets")).ToArray(); - } - + CefRuntime.Initialize(new CefMainArgs(new[] { exeFileName }), settings, new BrowserCefApp(customSchemes, flags, browserProcessHandler), IntPtr.Zero); if (customSchemes != null) diff --git a/CefGlue.Common/CommonBrowserAdapter.cs b/CefGlue.Common/CommonBrowserAdapter.cs index 5f249930..f359310b 100644 --- a/CefGlue.Common/CommonBrowserAdapter.cs +++ b/CefGlue.Common/CommonBrowserAdapter.cs @@ -232,7 +232,7 @@ public void ExecuteJavaScript(string code, string url, int line) public Task EvaluateJavaScript(string code, string url, int line, string frameName = null, TimeSpan? timeout = null) { - var frame = frameName != null ? _browser?.GetFrame(frameName) : _browser?.GetMainFrame(); + var frame = frameName != null ? _browser?.GetFrameByName(frameName) : _browser?.GetMainFrame(); if (frame != null) { return EvaluateJavaScript(code, url, line, frame, timeout); @@ -254,6 +254,7 @@ public Task EvaluateJavaScript(string code, string url, int line, CefFrame public void ShowDeveloperTools() { var windowInfo = CefWindowInfo.Create(); + windowInfo.RuntimeStyle = CefRuntimeStyle.Chrome; if (CefRuntime.Platform == CefRuntimePlatform.Windows) { diff --git a/CefGlue.Common/Handlers/Handlers.cs b/CefGlue.Common/Handlers/Handlers.cs index 7591b417..6e2c89d1 100644 --- a/CefGlue.Common/Handlers/Handlers.cs +++ b/CefGlue.Common/Handlers/Handlers.cs @@ -117,9 +117,9 @@ internal void HandleBeforeClose(CefBrowser browser) OnBeforeClose(browser); } - internal bool HandleBeforePopup(CefBrowser browser, CefFrame frame, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref bool noJavascriptAccess) + internal bool HandleBeforePopup(CefBrowser browser, CefFrame frame, int popupId, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref bool noJavascriptAccess) { - return OnBeforePopup(browser, frame, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess); + return OnBeforePopup(browser, frame, popupId, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess); } internal void HandleAfterCreated(CefBrowser browser) diff --git a/CefGlue.Common/InternalHandlers/CommonCefLifeSpanHandler.cs b/CefGlue.Common/InternalHandlers/CommonCefLifeSpanHandler.cs index 4960533b..0fcca51d 100644 --- a/CefGlue.Common/InternalHandlers/CommonCefLifeSpanHandler.cs +++ b/CefGlue.Common/InternalHandlers/CommonCefLifeSpanHandler.cs @@ -35,10 +35,10 @@ protected override void OnBeforeClose(CefBrowser browser) } - protected override bool OnBeforePopup(CefBrowser browser, CefFrame frame, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref bool noJavascriptAccess) + protected override bool OnBeforePopup(CefBrowser browser, CefFrame frame, int popupId, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref bool noJavascriptAccess) { - return (_owner.LifeSpanHandler?.HandleBeforePopup(browser, frame, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess) ?? false) || - base.OnBeforePopup(browser, frame, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess); + return (_owner.LifeSpanHandler?.HandleBeforePopup(browser, frame, popupId, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess) ?? false) || + base.OnBeforePopup(browser, frame, popupId, targetUrl, targetFrameName, targetDisposition, userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess); } protected override void OnBeforeDevToolsPopup(CefBrowser browser, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref bool useDefaultWindow) diff --git a/CefGlue.Common/InternalHandlers/CommonCefRenderHandler.cs b/CefGlue.Common/InternalHandlers/CommonCefRenderHandler.cs index 36a0b14b..1a9b0610 100644 --- a/CefGlue.Common/InternalHandlers/CommonCefRenderHandler.cs +++ b/CefGlue.Common/InternalHandlers/CommonCefRenderHandler.cs @@ -56,7 +56,7 @@ protected override void OnPopupSize(CefBrowser browser, CefRectangle rect) _owner.HandlePopupSizeChange(rect); } - protected override void OnAcceleratedPaint(CefBrowser browser, CefPaintElementType type, CefRectangle[] dirtyRects, IntPtr sharedHandle) + protected override void OnAcceleratedPaint(CefBrowser browser, CefPaintElementType type, CefRectangle[] dirtyRects, CefAcceleratedPaintInfo info) { } diff --git a/CefGlue.Demo.Avalonia/BrowserView.axaml.cs b/CefGlue.Demo.Avalonia/BrowserView.axaml.cs index 51cecec4..3a434f73 100644 --- a/CefGlue.Demo.Avalonia/BrowserView.axaml.cs +++ b/CefGlue.Demo.Avalonia/BrowserView.axaml.cs @@ -25,7 +25,8 @@ public BrowserView() var browserWrapper = this.FindControl("browserWrapper"); browser = new AvaloniaCefBrowser(); - browser.Address = "https://www.google.com"; + browser.Address = "https://get.webgl.org/"; + //browser.Address = "https://webglsamples.org/aquarium/aquarium.html"; browser.RegisterJavascriptObject(new BindingTestClass(), "boundBeforeLoadObject"); browser.LoadStart += OnBrowserLoadStart; browser.TitleChanged += OnBrowserTitleChanged; @@ -142,6 +143,7 @@ private class BrowserLifeSpanHandler : LifeSpanHandler protected override bool OnBeforePopup( CefBrowser browser, CefFrame frame, + int popupId, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, diff --git a/CefGlue.Demo.Avalonia/CefGlue.Demo.Avalonia.csproj b/CefGlue.Demo.Avalonia/CefGlue.Demo.Avalonia.csproj index 96af4d77..3a685b0d 100644 --- a/CefGlue.Demo.Avalonia/CefGlue.Demo.Avalonia.csproj +++ b/CefGlue.Demo.Avalonia/CefGlue.Demo.Avalonia.csproj @@ -30,8 +30,9 @@ - + + diff --git a/CefGlue.Demo.Avalonia/MainWindow.axaml.cs b/CefGlue.Demo.Avalonia/MainWindow.axaml.cs index 7762e194..b70a79f0 100644 --- a/CefGlue.Demo.Avalonia/MainWindow.axaml.cs +++ b/CefGlue.Demo.Avalonia/MainWindow.axaml.cs @@ -12,10 +12,6 @@ public partial class MainWindow : Window public MainWindow() { InitializeComponent(); - -#if WINDOWLESS - Title += " - OSR mode"; -#endif } private void InitializeComponent() diff --git a/CefGlue.Demo.Avalonia/Program.cs b/CefGlue.Demo.Avalonia/Program.cs index 232cb58b..5afdc0b1 100644 --- a/CefGlue.Demo.Avalonia/Program.cs +++ b/CefGlue.Demo.Avalonia/Program.cs @@ -16,27 +16,20 @@ static int Main(string[] args) var cachePath = Path.Combine(Path.GetTempPath(), "CefGlue_" + Guid.NewGuid().ToString().Replace("-", null)); AppDomain.CurrentDomain.ProcessExit += delegate { Cleanup(cachePath); }; - AppBuilder.Configure() - .UsePlatformDetect() - .With(new Win32PlatformOptions()) - .AfterSetup(_ => CefRuntimeLoader.Initialize(new CefSettings() { - RootCachePath = cachePath, -#if WINDOWLESS - // its recommended to leave this off (false), since its less performant and can cause more issues - WindowlessRenderingEnabled = true -#else - WindowlessRenderingEnabled = false -#endif - }, - customSchemes: new[] { - new CustomScheme() + .UsePlatformDetect() + .With(new Win32PlatformOptions()) + .AfterSetup(_ => CefRuntimeLoader.Initialize(new CefSettings { + RootCachePath = cachePath, + }, + customSchemes: [ + new CustomScheme { SchemeName = "test", SchemeHandlerFactory = new CustomSchemeHandler() } - })) - .StartWithClassicDesktopLifetime(args); + ])) + .StartWithClassicDesktopLifetime(args); return 0; } diff --git a/CefGlue.Demo.WPF/Program.cs b/CefGlue.Demo.WPF/Program.cs index aa150243..f84b14b0 100644 --- a/CefGlue.Demo.WPF/Program.cs +++ b/CefGlue.Demo.WPF/Program.cs @@ -27,7 +27,7 @@ private static int Main(string[] args) }; CefRuntimeLoader.Initialize(settings); - var app = new Xilium.CefGlue.Demo.WPF.App(); + var app = new App(); app.InitializeComponent(); app.Run(); diff --git a/CefGlue.Interop.Gen/cef_parser.py b/CefGlue.Interop.Gen/cef_parser.py index bb29bf4d..203fc04a 100644 --- a/CefGlue.Interop.Gen/cef_parser.py +++ b/CefGlue.Interop.Gen/cef_parser.py @@ -51,7 +51,7 @@ def get_capi_name(cppname, isclassname, prefix=None): # and the last character was a lower case letter if len(result) > 0 and not chr.isdigit() \ and chr.upper() == chr \ - and not lastchr.upper() == lastchr: + and (lastchr.lower() == lastchr or lastchr.isdigit()): result += '_' result += chr.lower() lastchr = chr diff --git a/CefGlue.Interop.Gen/gen-cef3.sh b/CefGlue.Interop.Gen/gen-cef3.sh old mode 100644 new mode 100755 diff --git a/CefGlue.Interop.Gen/include/base/internal/cef_net_error_list.h b/CefGlue.Interop.Gen/include/base/internal/cef_net_error_list.h index 2e28c884..7bfe72dc 100644 --- a/CefGlue.Interop.Gen/include/base/internal/cef_net_error_list.h +++ b/CefGlue.Interop.Gen/include/base/internal/cef_net_error_list.h @@ -18,7 +18,7 @@ // 300-399 HTTP errors // 400-499 Cache errors // 500-599 ? -// 600-699 FTP errors +// 600-699 // 700-799 Certificate manager errors // 800-899 DNS resolver errors @@ -127,6 +127,13 @@ NET_ERROR(H2_OR_QUIC_REQUIRED, -31) // The request was blocked by CORB or ORB. NET_ERROR(BLOCKED_BY_ORB, -32) +// The request was blocked because it originated from a frame that has disabled +// network access. +NET_ERROR(NETWORK_ACCESS_REVOKED, -33) + +// The request was blocked by fingerprinting protections. +NET_ERROR(BLOCKED_BY_FINGERPRINTING_PROTECTION, -34) + // A connection was closed (corresponding to a TCP FIN). NET_ERROR(CONNECTION_CLOSED, -100) @@ -263,7 +270,7 @@ NET_ERROR(TEMPORARILY_THROTTLED, -139) // received a 302 (temporary redirect) response. The response body might // include a description of why the request failed. // -// TODO(https://crbug.com/928551): This is deprecated and should not be used by +// TODO(crbug.com/40093955): This is deprecated and should not be used by // new code. NET_ERROR(HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT, -140) @@ -790,7 +797,7 @@ NET_ERROR(HTTP2_STREAM_CLOSED, -376) // The server returned a non-2xx HTTP response code. // -// Not that this error is only used by certain APIs that interpret the HTTP +// Note that this error is only used by certain APIs that interpret the HTTP // response itself. URLRequest for instance just passes most non-2xx // response back as success. NET_ERROR(HTTP_RESPONSE_CODE_FAILURE, -379) @@ -817,6 +824,18 @@ NET_ERROR(INCONSISTENT_IP_ADDRESS_SPACE, -383) NET_ERROR(CACHED_IP_ADDRESS_SPACE_BLOCKED_BY_PRIVATE_NETWORK_ACCESS_POLICY, -384) +// The connection is blocked by private network access checks. +NET_ERROR(BLOCKED_BY_PRIVATE_NETWORK_ACCESS_CHECKS, -385) + +// Content decoding failed due to the zstd window size being too big (over 8MB). +NET_ERROR(ZSTD_WINDOW_SIZE_TOO_BIG, -386) + +// The compression dictionary cannot be loaded. +NET_ERROR(DICTIONARY_LOAD_FAILED, -387) + +// The header of dictionary compressed stream does not match the expected value. +NET_ERROR(UNEXPECTED_CONTENT_DICTIONARY_HEADER, -388) + // The cache does not have the requested entry. NET_ERROR(CACHE_MISS, -400) @@ -898,37 +917,13 @@ NET_ERROR(TRUST_TOKEN_OPERATION_FAILED, -506) NET_ERROR(TRUST_TOKEN_OPERATION_SUCCESS_WITHOUT_SENDING_REQUEST, -507) // *** Code -600 is reserved (was FTP_PASV_COMMAND_FAILED). *** - -// A generic error for failed FTP control connection command. -// If possible, please use or add a more specific error code. -NET_ERROR(FTP_FAILED, -601) - -// The server cannot fulfill the request at this point. This is a temporary -// error. -// FTP response code 421. -NET_ERROR(FTP_SERVICE_UNAVAILABLE, -602) - -// The server has aborted the transfer. -// FTP response code 426. -NET_ERROR(FTP_TRANSFER_ABORTED, -603) - -// The file is busy, or some other temporary error condition on opening -// the file. -// FTP response code 450. -NET_ERROR(FTP_FILE_BUSY, -604) - -// Server rejected our command because of syntax errors. -// FTP response codes 500, 501. -NET_ERROR(FTP_SYNTAX_ERROR, -605) - -// Server does not support the command we issued. -// FTP response codes 502, 504. -NET_ERROR(FTP_COMMAND_NOT_SUPPORTED, -606) - -// Server rejected our command because we didn't issue the commands in right -// order. -// FTP response code 503. -NET_ERROR(FTP_BAD_COMMAND_SEQUENCE, -607) +// *** Code -601 is reserved (was FTP_FAILED). *** +// *** Code -602 is reserved (was FTP_SERVICE_UNAVAILABLE). *** +// *** Code -603 is reserved (was FTP_TRANSFER_ABORTED). *** +// *** Code -604 is reserved (was FTP_FILE_BUSY). *** +// *** Code -605 is reserved (was FTP_SYNTAX_ERROR). *** +// *** Code -606 is reserved (was FTP_COMMAND_NOT_SUPPORTED). *** +// *** Code -607 is reserved (was FTP_BAD_COMMAND_SEQUENCE). *** // PKCS #12 import failed due to incorrect password. NET_ERROR(PKCS12_IMPORT_BAD_PASSWORD, -701) @@ -1029,7 +1024,12 @@ NET_ERROR(DNS_REQUEST_CANCELLED, -810) // alpn values of supported protocols, but did not. NET_ERROR(DNS_NO_MATCHING_SUPPORTED_ALPN, -811) -// The compression dictionary cannot be loaded. -NET_ERROR(DICTIONARY_LOAD_FAILED, -812) +// Error -812 was removed +// Error -813 was removed + +// When checking whether secure DNS can be used, the response returned for the +// requested probe record either had no answer or was invalid. +NET_ERROR(DNS_SECURE_PROBE_RECORD_INVALID, -814) -// Error -813 was removed (DICTIONARY_ORIGIN_CHECK_FAILED) +// CAUTION: Before adding errors here, please check the ranges of errors written +// in the top of this file. diff --git a/CefGlue.Interop.Gen/include/cef_api_hash.h b/CefGlue.Interop.Gen/include/cef_api_hash.h index 4d855bac..96efd08a 100644 --- a/CefGlue.Interop.Gen/include/cef_api_hash.h +++ b/CefGlue.Interop.Gen/include/cef_api_hash.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved. +// Copyright (c) 2024 Marshall A. Greenblatt. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -27,45 +27,120 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// --------------------------------------------------------------------------- -// -// This file was generated by the make_api_hash_header.py tool. +// Versions are managed using the version_manager.py tool. For usage details +// see https://bitbucket.org/chromiumembedded/cef/wiki/ApiVersioning.md // -#ifndef CEF_INCLUDE_API_HASH_H_ -#define CEF_INCLUDE_API_HASH_H_ +#ifndef CEF_INCLUDE_CEF_API_HASH_H_ +#define CEF_INCLUDE_CEF_API_HASH_H_ #include "include/internal/cef_export.h" -// The API hash is created by analyzing CEF header files for C API type -// definitions. The hash value will change when header files are modified in a -// way that may cause binary incompatibility with other builds. The universal -// hash value will change if any platform is affected whereas the platform hash -// values will change only if that particular platform is affected. -#define CEF_API_HASH_UNIVERSAL "bbdc07e7c5ed2ae5398efdebdd1ed08801bc91ab" -#if defined(OS_WIN) -#define CEF_API_HASH_PLATFORM "002e3391fd68b0a444dbb6cd1b2a19a4c181d935" -#elif defined(OS_MAC) -#define CEF_API_HASH_PLATFORM "3e4f2433692dc8bb779314dce84b81d81d39d2c2" -#elif defined(OS_LINUX) -#define CEF_API_HASH_PLATFORM "4e707370d08d4639c41e7c8aa8027c4a6090eace" +#if !defined(GENERATING_CEF_API_HASH) +#include "include/cef_api_versions.h" +#endif + +// Experimental CEF API. Experimental API is unversioned, meaning that it is +// excluded (compiled out) when clients explicitly set the CEF_API_VERSION +// value in their project configuration. Experimental API is not back/forward +// compatible with different CEF versions. +#define CEF_API_VERSION_EXPERIMENTAL 999999 + +// Placeholder for the next CEF version currently under development. This is a +// temporary value that must be replaced with the actual next version number +// (output of running `version_manager.py -n`) prior to upstream merge. As an +// added reminder, use of this value will cause version_manager.py to fail when +// computing hashes for explicit API versions. When adding new API consider +// using CEF_API_VERSION_EXPERIMENTAL instead. +#if !defined(CEF_API_VERSION_NEXT) +#define CEF_API_VERSION_NEXT 999998 +#endif + +// Shorter versions of the above for convenience use in comparison macros. +#define CEF_NEXT CEF_API_VERSION_NEXT +#define CEF_EXPERIMENTAL CEF_API_VERSION_EXPERIMENTAL + +// API version that will be compiled client-side. The experimental (unversioned) +// API is selected by default. Clients can set the CEF_API_VERSION value in +// their project configuration to configure an explicit API version. Unlike +// the experimental API, explicit API versions are back/forward compatible with +// a specific range of CEF versions. +#if !defined(CEF_API_VERSION) +#define CEF_API_VERSION CEF_API_VERSION_EXPERIMENTAL +#endif + +#if !defined(GENERATING_CEF_API_HASH) +#if CEF_API_VERSION < CEF_API_VERSION_MIN || \ + (CEF_API_VERSION > CEF_API_VERSION_LAST && CEF_API_VERSION != CEF_NEXT && \ + CEF_API_VERSION != CEF_EXPERIMENTAL) +#error Building with unsupported CEF_API_VERSION value +#endif #endif +#define _CEF_AH_PASTE(a, b) a##_##b +#define _CEF_AH_EVAL(a, b) _CEF_AH_PASTE(a, b) +#define _CEF_AH_DECLARE(version) _CEF_AH_EVAL(CEF_API_HASH, version) + +// API hashes for the selected CEF_API_VERSION. API hashes are created for +// each version by analyzing CEF header files for C API type definitions. The +// hash value will change when header files are modified in a way that may +// cause binary incompatibility with other builds. +#define CEF_API_HASH_PLATFORM _CEF_AH_DECLARE(CEF_API_VERSION) + +#if defined(BUILDING_CEF_SHARED) + +#define _CEF_AV_LT(v) 1 +#define _CEF_AV_GE(v) 1 + +#else // !defined(BUILDING_CEF_SHARED) + +#define _CEF_AV_CMP(v, op) (CEF_API_VERSION op v) + +#define _CEF_AV_LT(v) _CEF_AV_CMP(v, <) +#define _CEF_AV_GE(v) _CEF_AV_CMP(v, >=) + +#endif // !defined(BUILDING_CEF_SHARED) + +/// +/// API was added in the specified version. +/// +#define CEF_API_ADDED(v) _CEF_AV_GE(v) + +/// +/// API was removed in the specified version. +/// +#define CEF_API_REMOVED(v) _CEF_AV_LT(v) + +/// +/// API exists only in the specified version range. +/// +#define CEF_API_RANGE(va, vr) (_CEF_AV_GE(va) && _CEF_AV_LT(vr)) + #ifdef __cplusplus extern "C" { #endif /// -// Returns CEF API hashes for the libcef library. The returned string is owned -// by the library and should not be freed. The |entry| parameter describes which -// hash value will be returned: -// 0 - CEF_API_HASH_PLATFORM -// 1 - CEF_API_HASH_UNIVERSAL -// 2 - CEF_COMMIT_HASH (from cef_version.h) +/// Configures the CEF API version and returns API hashes for the libcef +/// library. The returned string is owned by the library and should not be +/// freed. The |version| parameter should be CEF_API_VERSION and any changes to +/// this value will be ignored after the first call to this method. The |entry| +/// parameter describes which hash value will be returned: +/// +/// 0 - CEF_API_HASH_PLATFORM +/// 1 - CEF_API_HASH_UNIVERSAL (deprecated, same as CEF_API_HASH_PLATFORM) +/// 2 - CEF_COMMIT_HASH (from cef_version.h) +/// +CEF_EXPORT const char* cef_api_hash(int version, int entry); + +/// +/// Returns the CEF API version that was configured by the first call to +/// cef_api_hash(). /// -CEF_EXPORT const char* cef_api_hash(int entry); +CEF_EXPORT int cef_api_version(); #ifdef __cplusplus } #endif -#endif // CEF_INCLUDE_API_HASH_H_ + +#endif // CEF_INCLUDE_CEF_API_HASH_H_ diff --git a/CefGlue.Interop.Gen/include/cef_api_versions.h b/CefGlue.Interop.Gen/include/cef_api_versions.h new file mode 100644 index 00000000..f0e7c97f --- /dev/null +++ b/CefGlue.Interop.Gen/include/cef_api_versions.h @@ -0,0 +1,138 @@ +// Copyright (c) 2025 Marshall A. Greenblatt. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the name Chromium Embedded +// Framework nor the names of its contributors may be used to endorse +// or promote products derived from this software without specific prior +// written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// --------------------------------------------------------------------------- +// +// This file was generated by the make_api_versions_header.py tool. Versions +// are managed using the version_manager.py tool. For usage details see +// https://bitbucket.org/chromiumembedded/cef/wiki/ApiVersioning.md +// + +#ifndef CEF_INCLUDE_CEF_API_VERSIONS_H_ +#define CEF_INCLUDE_CEF_API_VERSIONS_H_ + +#include "include/base/cef_build.h" + +// Added February 21, 2025. +#define CEF_API_VERSION_13300 13300 +#if defined(OS_WIN) +#define CEF_API_HASH_13300 "45d39c3669ba75467e3e609f626c31506c0eae22" +#elif defined(OS_MAC) +#define CEF_API_HASH_13300 "80c0b59ba9dd783aa71fae0aa5f7dad64620e8c9" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13300 "2508f3f0b0e5dfa191036fa6c04f8dcfa18c94b9" +#endif + +// Added February 21, 2025. +#define CEF_API_VERSION_13301 13301 +#if defined(OS_WIN) +#define CEF_API_HASH_13301 "7109702038d51512d35dd2ed77231f9100e38214" +#elif defined(OS_MAC) +#define CEF_API_HASH_13301 "fda40a5df44628cac50a589ff979c0746011591e" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13301 "aa073dd1c586812503ca293c718358460d8c2dd6" +#endif + +// Added February 21, 2025. +#define CEF_API_VERSION_13302 13302 +#if defined(OS_WIN) +#define CEF_API_HASH_13302 "18799961f4461a9cbae2aed89ac04b73ab7c37f3" +#elif defined(OS_MAC) +#define CEF_API_HASH_13302 "4aa24470ba3a4bd9c06bc0e4a201b896394a86b5" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13302 "d5597ebfa30081953425e897209a8387b9584205" +#endif + +// Added February 21, 2025. +#define CEF_API_VERSION_13303 13303 +#if defined(OS_WIN) +#define CEF_API_HASH_13303 "20016fd6a9b87ef4c539cd1f42bf1ca09b6903ca" +#elif defined(OS_MAC) +#define CEF_API_HASH_13303 "f2cdce2b9a4b635c28b5b92c42c35625a937380c" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13303 "f3a696ee30ce1e00490a58df017393c126c89709" +#endif + +// Added February 21, 2025. +#define CEF_API_VERSION_13304 13304 +#if defined(OS_WIN) +#define CEF_API_HASH_13304 "19c014af0082aa901398e006381b6980e4f806e9" +#elif defined(OS_MAC) +#define CEF_API_HASH_13304 "98964c37b8917d83da4b173e22905503d38ad08f" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13304 "f1ababb4ff51ecbf77c481cee3721ef0eca9c8ca" +#endif + +// Added February 21, 2025. +#define CEF_API_VERSION_13400 13400 +#if defined(OS_WIN) +#define CEF_API_HASH_13400 "6ab74b90e88b7397aab9911baac5484f12466eef" +#elif defined(OS_MAC) +#define CEF_API_HASH_13400 "ba5ab71db4f9447f19eb7b1943024981c88064dd" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13400 "ea2106b5bc012c25d735521e0c7fb719d433ea4a" +#endif + +// Added March 10, 2025. +#define CEF_API_VERSION_13401 13401 +#if defined(OS_WIN) +#define CEF_API_HASH_13401 "751255204f006b8b883a8baf552a2da792f8aa44" +#elif defined(OS_MAC) +#define CEF_API_HASH_13401 "b54732b528bc2669481ec0cf17c7b97b033720b9" +#elif defined(OS_LINUX) +#define CEF_API_HASH_13401 "b14bee2c0fd250da67faea421f620b58e5dea9a2" +#endif + +// Next version last updated March 27, 2025. +#define CEF_API_VERSION_999998 999998 +#if defined(OS_WIN) +#define CEF_API_HASH_999998 "751255204f006b8b883a8baf552a2da792f8aa44" +#elif defined(OS_MAC) +#define CEF_API_HASH_999998 "b54732b528bc2669481ec0cf17c7b97b033720b9" +#elif defined(OS_LINUX) +#define CEF_API_HASH_999998 "b14bee2c0fd250da67faea421f620b58e5dea9a2" +#endif + +// Experimental version last updated March 27, 2025. +#define CEF_API_VERSION_999999 999999 +#if defined(OS_WIN) +#define CEF_API_HASH_999999 "eecfe830f6cd5b53c3535d0df414eeb646a11a08" +#elif defined(OS_MAC) +#define CEF_API_HASH_999999 "1527c898b9f1b587db7ed5306a0d9ceab3681328" +#elif defined(OS_LINUX) +#define CEF_API_HASH_999999 "60df773232ebe60153af8eafe027ab822f5371c2" +#endif + +// Oldest supported CEF version. +#define CEF_API_VERSION_MIN CEF_API_VERSION_13300 + +// Newest supported CEF version. +#define CEF_API_VERSION_LAST CEF_API_VERSION_13401 + +#endif // CEF_INCLUDE_CEF_API_VERSIONS_H_ diff --git a/CefGlue.Interop.Gen/include/cef_app.h b/CefGlue.Interop.Gen/include/cef_app.h index f52280cf..4d7a32ac 100644 --- a/CefGlue.Interop.Gen/include/cef_app.h +++ b/CefGlue.Interop.Gen/include/cef_app.h @@ -71,9 +71,9 @@ int CefExecuteProcess(const CefMainArgs& args, /// true if initialization succeeds. Returns false if initialization fails or if /// early exit is desired (for example, due to process singleton relaunch /// behavior). If this function returns false then the application should exit -/// immediately without calling any other CEF functions. The -/// |windows_sandbox_info| parameter is only used on Windows and may be NULL -/// (see cef_sandbox_win.h for details). +/// immediately without calling any other CEF functions except, optionally, +/// CefGetErrorCode. The |windows_sandbox_info| parameter is only used on +/// Windows and may be NULL (see cef_sandbox_win.h for details). /// /*--cef(api_hash_check,optional_param=application, optional_param=windows_sandbox_info)--*/ @@ -82,6 +82,18 @@ bool CefInitialize(const CefMainArgs& args, CefRefPtr application, void* windows_sandbox_info); +/// +/// This function can optionally be called on the main application thread after +/// CefInitialize to retrieve the initialization exit code. When CefInitialize +/// returns true the exit code will be 0 (CEF_RESULT_CODE_NORMAL_EXIT). +/// Otherwise, see cef_resultcode_t for possible exit code values including +/// browser process initialization errors and normal early exit conditions (such +/// as CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED for process singleton +/// relaunch behavior). +/// +/*--cef()--*/ +int CefGetExitCode(); + /// /// This function should be called on the main application thread to shut down /// the CEF browser process before the application exits. Do not call any @@ -162,10 +174,9 @@ class CefApp : public virtual CefBaseRefCounted { CefRawPtr registrar) {} /// - /// Return the handler for resource bundle events. If - /// cef_settings_t.pack_loading_disabled is true a handler must be returned. - /// If no handler is returned resources will be loaded from pack files. This - /// method is called by the browser and render processes on multiple threads. + /// Return the handler for resource bundle events. If no handler is returned + /// resources will be loaded from pack files. This method is called by the + /// browser and render processes on multiple threads. /// /*--cef()--*/ virtual CefRefPtr GetResourceBundleHandler() { diff --git a/CefGlue.Interop.Gen/include/cef_application_mac.h b/CefGlue.Interop.Gen/include/cef_application_mac.h index d4d69e9e..b607acca 100644 --- a/CefGlue.Interop.Gen/include/cef_application_mac.h +++ b/CefGlue.Interop.Gen/include/cef_application_mac.h @@ -45,9 +45,6 @@ // Use the existing CrAppProtocol definition. #import "base/message_loop/message_pump_mac.h" -// Use the existing UnderlayableSurface definition. -#import "ui/base/cocoa/underlay_opengl_hosting_window.h" - // Use the existing empty protocol definitions. #import "base/mac/cocoa_protocols.h" @@ -70,13 +67,6 @@ - (void)setHandlingSendEvent:(BOOL)handlingSendEvent; @end -// Copy of definition from ui/base/cocoa/underlay_opengl_hosting_window.h. -// Common base class for windows that host a OpenGL surface that renders under -// the window. Contains methods relating to hole punching so that the OpenGL -// surface is visible through the window. -@interface UnderlayOpenGLHostingWindow : NSWindow -@end - #endif // USING_CHROMIUM_INCLUDES // All CEF client applications must subclass NSApplication and implement this diff --git a/CefGlue.Interop.Gen/include/cef_base.h b/CefGlue.Interop.Gen/include/cef_base.h index bd8f11ed..72915008 100644 --- a/CefGlue.Interop.Gen/include/cef_base.h +++ b/CefGlue.Interop.Gen/include/cef_base.h @@ -31,8 +31,11 @@ #define CEF_INCLUDE_CEF_BASE_H_ #pragma once -#include "include/base/cef_atomic_ref_count.h" +#if !defined(GENERATING_CEF_API_HASH) #include "include/base/cef_build.h" +#endif + +#include "include/base/cef_atomic_ref_count.h" #include "include/base/cef_macros.h" // Bring in common C++ type definitions used by CEF consumers. @@ -116,6 +119,14 @@ class CefRefCount { /// bool HasAtLeastOneRef() const { return !ref_count_.IsZero(); } + /// + /// Returns the current reference count (with no barriers). This is subtle, + /// and should be used only for debugging. + /// + int SubtleRefCountForDebug() const { + return ref_count_.SubtleRefCountForDebug(); + } + private: mutable base::AtomicRefCount ref_count_{0}; }; diff --git a/CefGlue.Interop.Gen/include/cef_browser.h b/CefGlue.Interop.Gen/include/cef_browser.h index 7ba49858..3301d51a 100644 --- a/CefGlue.Interop.Gen/include/cef_browser.h +++ b/CefGlue.Interop.Gen/include/cef_browser.h @@ -39,6 +39,7 @@ #pragma once #include + #include "include/cef_base.h" #include "include/cef_devtools_message_observer.h" #include "include/cef_drag_data.h" @@ -169,14 +170,15 @@ class CefBrowser : public virtual CefBaseRefCounted { /// /// Returns the frame with the specified identifier, or NULL if not found. /// - /*--cef(capi_name=get_frame_byident)--*/ - virtual CefRefPtr GetFrame(int64_t identifier) = 0; + /*--cef()--*/ + virtual CefRefPtr GetFrameByIdentifier( + const CefString& identifier) = 0; /// /// Returns the frame with the specified name, or NULL if not found. /// /*--cef(optional_param=name)--*/ - virtual CefRefPtr GetFrame(const CefString& name) = 0; + virtual CefRefPtr GetFrameByName(const CefString& name) = 0; /// /// Returns the number of frames that currently exist. @@ -188,7 +190,7 @@ class CefBrowser : public virtual CefBaseRefCounted { /// Returns the identifiers of all existing frames. /// /*--cef(count_func=identifiers:GetFrameCount)--*/ - virtual void GetFrameIdentifiers(std::vector& identifiers) = 0; + virtual void GetFrameIdentifiers(std::vector& identifiers) = 0; /// /// Returns the names of all existing frames. @@ -247,7 +249,7 @@ class CefPdfPrintCallback : public virtual CefBaseRefCounted { /// is the output path. |ok| will be true if the printing completed /// successfully or false otherwise. /// - /*--cef()--*/ + /*--cef(optional_param=path)--*/ virtual void OnPdfPrintFinished(const CefString& path, bool ok) = 0; }; @@ -322,6 +324,12 @@ class CefBrowserHost : public virtual CefBaseRefCounted { CefRefPtr extra_info, CefRefPtr request_context); + /// + /// Returns the browser (if any) with the specified identifier. + /// + /*--cef()--*/ + static CefRefPtr GetBrowserByIdentifier(int browser_id); + /// /// Returns the hosted browser object. /// @@ -329,30 +337,63 @@ class CefBrowserHost : public virtual CefBaseRefCounted { virtual CefRefPtr GetBrowser() = 0; /// - /// Request that the browser close. The JavaScript 'onbeforeunload' event will - /// be fired. If |force_close| is false the event handler, if any, will be - /// allowed to prompt the user and the user can optionally cancel the close. - /// If |force_close| is true the prompt will not be displayed and the close - /// will proceed. Results in a call to CefLifeSpanHandler::DoClose() if the - /// event handler allows the close or if |force_close| is true. See - /// CefLifeSpanHandler::DoClose() documentation for additional usage - /// information. + /// Request that the browser close. Closing a browser is a multi-stage process + /// that may complete either synchronously or asynchronously, and involves + /// callbacks such as CefLifeSpanHandler::DoClose (Alloy style only), + /// CefLifeSpanHandler::OnBeforeClose, and a top-level window close handler + /// such as CefWindowDelegate::CanClose (or platform-specific equivalent). In + /// some cases a close request may be delayed or canceled by the user. Using + /// TryCloseBrowser() instead of CloseBrowser() is recommended for most use + /// cases. See CefLifeSpanHandler::DoClose() documentation for detailed usage + /// and examples. + /// + /// If |force_close| is false then JavaScript unload handlers, if any, may be + /// fired and the close may be delayed or canceled by the user. If + /// |force_close| is true then the user will not be prompted and the close + /// will proceed immediately (possibly asynchronously). If browser close is + /// delayed and not canceled the default behavior is to call the top-level + /// window close handler once the browser is ready to be closed. This default + /// behavior can be changed for Alloy style browsers by implementing + /// CefLifeSpanHandler::DoClose(). IsReadyToBeClosed() can be used to detect + /// mandatory browser close events when customizing close behavior on the + /// browser process UI thread. /// /*--cef()--*/ virtual void CloseBrowser(bool force_close) = 0; /// - /// Helper for closing a browser. Call this method from the top-level window - /// close handler (if any). Internally this calls CloseBrowser(false) if the - /// close has not yet been initiated. This method returns false while the - /// close is pending and true after the close has completed. See - /// CloseBrowser() and CefLifeSpanHandler::DoClose() documentation for - /// additional usage information. This method must be called on the browser - /// process UI thread. + /// Helper for closing a browser. This is similar in behavior to + /// CLoseBrowser(false) but returns a boolean to reflect the immediate close + /// status. Call this method from a top-level window close handler such as + /// CefWindowDelegate::CanClose (or platform-specific equivalent) to request + /// that the browser close, and return the result to indicate if the window + /// close should proceed. Returns false if the close will be delayed + /// (JavaScript unload handlers triggered but still pending) or true if the + /// close will proceed immediately (possibly asynchronously). See + /// CloseBrowser() documentation for additional usage information. This method + /// must be called on the browser process UI thread. /// /*--cef()--*/ virtual bool TryCloseBrowser() = 0; + /// + /// Returns true if the browser is ready to be closed, meaning that the close + /// has already been initiated and that JavaScript unload handlers have + /// already executed or should be ignored. This can be used from a top-level + /// window close handler such as CefWindowDelegate::CanClose (or + /// platform-specific equivalent) to distringuish between potentially + /// cancelable browser close events (like the user clicking the top-level + /// window close button before browser close has started) and mandatory + /// browser close events (like JavaScript `window.close()` or after browser + /// close has started in response to [Try]CloseBrowser()). Not completing the + /// browser close for mandatory close events (when this method returns true) + /// will leave the browser in a partially closed state that interferes with + /// proper functioning. See CloseBrowser() documentation for additional usage + /// information. This method must be called on the browser process UI thread. + /// + /*--cef()--*/ + virtual bool IsReadyToBeClosed() = 0; + /// /// Set whether the browser is focused. /// @@ -377,6 +418,13 @@ class CefBrowserHost : public virtual CefBaseRefCounted { /*--cef()--*/ virtual CefWindowHandle GetOpenerWindowHandle() = 0; + /// + /// Retrieve the unique identifier of the browser that opened this browser. + /// Will return 0 for non-popup browsers. + /// + /*--cef()--*/ + virtual int GetOpenerIdentifier() = 0; + /// /// Returns true if this browser is wrapped in a CefBrowserView. /// @@ -412,8 +460,7 @@ class CefBrowserHost : public virtual CefBaseRefCounted { /// /// Get the default zoom level. This value will be 0.0 by default but can be - /// configured with the Chrome runtime. This method can only be called on the - /// UI thread. + /// configured. This method can only be called on the UI thread. /// /*--cef()--*/ virtual double GetDefaultZoomLevel() = 0; @@ -937,21 +984,6 @@ class CefBrowserHost : public virtual CefBaseRefCounted { const CefSize& min_size, const CefSize& max_size) = 0; - /// - /// Returns the extension hosted in this browser or NULL if no extension is - /// hosted. See CefRequestContext::LoadExtension for details. - /// - /*--cef()--*/ - virtual CefRefPtr GetExtension() = 0; - - /// - /// Returns true if this browser is hosting an extension background script. - /// Background hosts do not have a window and are not displayable. See - /// CefRequestContext::LoadExtension for details. - /// - /*--cef()--*/ - virtual bool IsBackgroundHost() = 0; - /// /// Set whether the browser's audio is muted. /// @@ -977,12 +1009,12 @@ class CefBrowserHost : public virtual CefBaseRefCounted { /// /// Requests the renderer to exit browser fullscreen. In most cases exiting - /// window fullscreen should also exit browser fullscreen. With the Alloy - /// runtime this method should be called in response to a user action such as + /// window fullscreen should also exit browser fullscreen. With Alloy + /// style this method should be called in response to a user action such as /// clicking the green traffic light button on MacOS /// (CefWindowDelegate::OnWindowFullscreenTransition callback) or pressing the - /// "ESC" key (CefKeyboardHandler::OnPreKeyEvent callback). With the Chrome - /// runtime these standard exit actions are handled internally but + /// "ESC" key (CefKeyboardHandler::OnPreKeyEvent callback). With Chrome + /// style these standard exit actions are handled internally but /// new/additional user actions can use this method. Set |will_cause_resize| /// to true if exiting browser fullscreen will cause a view resize. /// @@ -990,22 +1022,44 @@ class CefBrowserHost : public virtual CefBaseRefCounted { virtual void ExitFullscreen(bool will_cause_resize) = 0; /// - /// Returns true if a Chrome command is supported and enabled. Values for - /// |command_id| can be found in the cef_command_ids.h file. This method can - /// only be called on the UI thread. Only used with the Chrome runtime. + /// Returns true if a Chrome command is supported and enabled. Use the + /// cef_id_for_command_id_name() function for version-safe mapping of command + /// IDC names from cef_command_ids.h to version-specific numerical + /// |command_id| values. This method can only be called on the UI thread. Only + /// used with Chrome style. /// /*--cef()--*/ virtual bool CanExecuteChromeCommand(int command_id) = 0; /// - /// Execute a Chrome command. Values for |command_id| can be found in the - /// cef_command_ids.h file. |disposition| provides information about the - /// intended command target. Only used with the Chrome runtime. + /// Execute a Chrome command. Use the cef_id_for_command_id_name() + /// function for version-safe mapping of command IDC names from + /// cef_command_ids.h to version-specific numerical |command_id| values. + /// |disposition| provides information about the intended command target. Only + /// used with Chrome style. /// /*--cef()--*/ virtual void ExecuteChromeCommand( int command_id, cef_window_open_disposition_t disposition) = 0; + + /// + /// Returns true if the render process associated with this browser is + /// currently unresponsive as indicated by a lack of input event processing + /// for at least 15 seconds. To receive associated state change notifications + /// and optionally handle an unresponsive render process implement + /// CefRequestHandler::OnRenderProcessUnresponsive. This method can only be + /// called on the UI thread. + /// + /*--cef()--*/ + virtual bool IsRenderProcessUnresponsive() = 0; + + /// + /// Returns the runtime style for this browser (ALLOY or CHROME). See + /// cef_runtime_style_t documentation for details. + /// + /*--cef(default_retval=CEF_RUNTIME_STYLE_DEFAULT)--*/ + virtual cef_runtime_style_t GetRuntimeStyle() = 0; }; #endif // CEF_INCLUDE_CEF_BROWSER_H_ diff --git a/CefGlue.Interop.Gen/include/cef_browser_process_handler.h b/CefGlue.Interop.Gen/include/cef_browser_process_handler.h index 93daf563..a8d5dc3a 100644 --- a/CefGlue.Interop.Gen/include/cef_browser_process_handler.h +++ b/CefGlue.Interop.Gen/include/cef_browser_process_handler.h @@ -42,6 +42,7 @@ #include "include/cef_client.h" #include "include/cef_command_line.h" #include "include/cef_preference.h" +#include "include/cef_request_context_handler.h" #include "include/cef_values.h" /// @@ -59,8 +60,8 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted { /// If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be /// accessed via CefPreferenceManager::GetGlobalPreferences after /// OnContextInitialized is called. Global preferences are registered a single - /// time at application startup. See related cef_settings_t.cache_path and - /// cef_settings_t.persist_user_preferences configuration. + /// time at application startup. See related cef_settings_t.cache_path + /// configuration. /// /// If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be /// accessed via the CefRequestContext after @@ -68,8 +69,7 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted { /// context preferences are registered each time a new CefRequestContext is /// created. It is intended but not required that all request contexts have /// the same registered preferences. See related - /// cef_request_context_settings_t.cache_path and - /// cef_request_context_settings_t.persist_user_preferences configuration. + /// cef_request_context_settings_t.cache_path configuration. /// /// Do not keep a reference to the |registrar| object. This method is called /// on the browser process UI thread. @@ -139,14 +139,28 @@ class CefBrowserProcessHandler : public virtual CefBaseRefCounted { virtual void OnScheduleMessagePumpWork(int64_t delay_ms) {} /// - /// Return the default client for use with a newly created browser window. If - /// null is returned the browser will be unmanaged (no callbacks will be - /// executed for that browser) and application shutdown will be blocked until - /// the browser window is closed manually. This method is currently only used - /// with the chrome runtime. + /// Return the default client for use with a newly created browser window + /// (CefBrowser object). If null is returned the CefBrowser will be unmanaged + /// (no callbacks will be executed for that CefBrowser) and application + /// shutdown will be blocked until the browser window is closed manually. This + /// method is currently only used with Chrome style when creating new browser + /// windows via Chrome UI. /// /*--cef()--*/ virtual CefRefPtr GetDefaultClient() { return nullptr; } + + /// + /// Return the default handler for use with a new user or incognito profile + /// (CefRequestContext object). If null is returned the CefRequestContext will + /// be unmanaged (no callbacks will be executed for that CefRequestContext). + /// This method is currently only used with Chrome style when creating new + /// browser windows via Chrome UI. + /// + /*--cef()--*/ + virtual CefRefPtr + GetDefaultRequestContextHandler() { + return nullptr; + } }; #endif // CEF_INCLUDE_CEF_BROWSER_PROCESS_HANDLER_H_ diff --git a/CefGlue.Interop.Gen/include/cef_color_ids.h b/CefGlue.Interop.Gen/include/cef_color_ids.h new file mode 100644 index 00000000..d52c8982 --- /dev/null +++ b/CefGlue.Interop.Gen/include/cef_color_ids.h @@ -0,0 +1,1697 @@ +// Copyright (c) 2025 Marshall A. Greenblatt. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the name Chromium Embedded +// Framework nor the names of its contributors may be used to endorse +// or promote products derived from this software without specific prior +// written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// --------------------------------------------------------------------------- +// +// This file is generated by the make_colorids_header.py tool. +// + +#ifndef CEF_INCLUDE_CEF_COLOR_IDS_H_ +#define CEF_INCLUDE_CEF_COLOR_IDS_H_ +#pragma once + +#include "include/base/cef_build.h" + +// Undefine the macros that will be defined in this file. +// This avoids previous definition conflicts with Chromium. +#undef CHROMEOS_ASH_COLOR_IDS +#undef CHROME_COLOR_IDS +#undef CHROME_PLATFORM_SPECIFIC_COLOR_IDS +#undef COLOR_IDS +#undef COMMON_CHROME_COLOR_IDS +#undef COMMON_COMPONENTS_COLOR_IDS +#undef COMPONENTS_COLOR_IDS +#undef CROSS_PLATFORM_COLOR_IDS +#undef PLATFORM_SPECIFIC_COLOR_IDS + +// --------------------------------------------------------------------------- +// From ui/color/color_id.h: + +#define CROSS_PLATFORM_COLOR_IDS \ + /* UI reference color tokens */ \ + /* Use the 3 param macro so CEF_ColorAccent is set to the correct value. */ \ + E_CPONLY(CEF_ColorRefPrimary0, CEF_UiColorsStart, CEF_UiColorsStart) \ + E_CPONLY(CEF_ColorRefPrimary10) \ + E_CPONLY(CEF_ColorRefPrimary20) \ + E_CPONLY(CEF_ColorRefPrimary25) \ + E_CPONLY(CEF_ColorRefPrimary30) \ + E_CPONLY(CEF_ColorRefPrimary40) \ + E_CPONLY(CEF_ColorRefPrimary50) \ + E_CPONLY(CEF_ColorRefPrimary60) \ + E_CPONLY(CEF_ColorRefPrimary70) \ + E_CPONLY(CEF_ColorRefPrimary80) \ + E_CPONLY(CEF_ColorRefPrimary90) \ + E_CPONLY(CEF_ColorRefPrimary95) \ + E_CPONLY(CEF_ColorRefPrimary99) \ + E_CPONLY(CEF_ColorRefPrimary100) \ + E_CPONLY(CEF_ColorRefSecondary0) \ + E_CPONLY(CEF_ColorRefSecondary10) \ + E_CPONLY(CEF_ColorRefSecondary12) \ + E_CPONLY(CEF_ColorRefSecondary15) \ + E_CPONLY(CEF_ColorRefSecondary20) \ + E_CPONLY(CEF_ColorRefSecondary25) \ + E_CPONLY(CEF_ColorRefSecondary30) \ + E_CPONLY(CEF_ColorRefSecondary35) \ + E_CPONLY(CEF_ColorRefSecondary40) \ + E_CPONLY(CEF_ColorRefSecondary50) \ + E_CPONLY(CEF_ColorRefSecondary60) \ + E_CPONLY(CEF_ColorRefSecondary70) \ + E_CPONLY(CEF_ColorRefSecondary80) \ + E_CPONLY(CEF_ColorRefSecondary90) \ + E_CPONLY(CEF_ColorRefSecondary95) \ + E_CPONLY(CEF_ColorRefSecondary99) \ + E_CPONLY(CEF_ColorRefSecondary100) \ + E_CPONLY(CEF_ColorRefTertiary0) \ + E_CPONLY(CEF_ColorRefTertiary10) \ + E_CPONLY(CEF_ColorRefTertiary20) \ + E_CPONLY(CEF_ColorRefTertiary30) \ + E_CPONLY(CEF_ColorRefTertiary40) \ + E_CPONLY(CEF_ColorRefTertiary50) \ + E_CPONLY(CEF_ColorRefTertiary60) \ + E_CPONLY(CEF_ColorRefTertiary70) \ + E_CPONLY(CEF_ColorRefTertiary80) \ + E_CPONLY(CEF_ColorRefTertiary90) \ + E_CPONLY(CEF_ColorRefTertiary95) \ + E_CPONLY(CEF_ColorRefTertiary99) \ + E_CPONLY(CEF_ColorRefTertiary100) \ + E_CPONLY(CEF_ColorRefError0) \ + E_CPONLY(CEF_ColorRefError10) \ + E_CPONLY(CEF_ColorRefError20) \ + E_CPONLY(CEF_ColorRefError30) \ + E_CPONLY(CEF_ColorRefError40) \ + E_CPONLY(CEF_ColorRefError50) \ + E_CPONLY(CEF_ColorRefError60) \ + E_CPONLY(CEF_ColorRefError70) \ + E_CPONLY(CEF_ColorRefError80) \ + E_CPONLY(CEF_ColorRefError90) \ + E_CPONLY(CEF_ColorRefError95) \ + E_CPONLY(CEF_ColorRefError99) \ + E_CPONLY(CEF_ColorRefError100) \ + E_CPONLY(CEF_ColorRefNeutral0) \ + E_CPONLY(CEF_ColorRefNeutral4) \ + E_CPONLY(CEF_ColorRefNeutral6) \ + E_CPONLY(CEF_ColorRefNeutral8) \ + E_CPONLY(CEF_ColorRefNeutral10) \ + E_CPONLY(CEF_ColorRefNeutral12) \ + E_CPONLY(CEF_ColorRefNeutral15) \ + E_CPONLY(CEF_ColorRefNeutral17) \ + E_CPONLY(CEF_ColorRefNeutral20) \ + E_CPONLY(CEF_ColorRefNeutral22) \ + E_CPONLY(CEF_ColorRefNeutral24) \ + E_CPONLY(CEF_ColorRefNeutral25) \ + E_CPONLY(CEF_ColorRefNeutral30) \ + E_CPONLY(CEF_ColorRefNeutral40) \ + E_CPONLY(CEF_ColorRefNeutral50) \ + E_CPONLY(CEF_ColorRefNeutral60) \ + E_CPONLY(CEF_ColorRefNeutral70) \ + E_CPONLY(CEF_ColorRefNeutral80) \ + E_CPONLY(CEF_ColorRefNeutral87) \ + E_CPONLY(CEF_ColorRefNeutral90) \ + E_CPONLY(CEF_ColorRefNeutral92) \ + E_CPONLY(CEF_ColorRefNeutral94) \ + E_CPONLY(CEF_ColorRefNeutral95) \ + E_CPONLY(CEF_ColorRefNeutral96) \ + E_CPONLY(CEF_ColorRefNeutral98) \ + E_CPONLY(CEF_ColorRefNeutral99) \ + E_CPONLY(CEF_ColorRefNeutral100) \ + E_CPONLY(CEF_ColorRefNeutralVariant0) \ + E_CPONLY(CEF_ColorRefNeutralVariant10) \ + E_CPONLY(CEF_ColorRefNeutralVariant15) \ + E_CPONLY(CEF_ColorRefNeutralVariant20) \ + E_CPONLY(CEF_ColorRefNeutralVariant30) \ + E_CPONLY(CEF_ColorRefNeutralVariant40) \ + E_CPONLY(CEF_ColorRefNeutralVariant50) \ + E_CPONLY(CEF_ColorRefNeutralVariant60) \ + E_CPONLY(CEF_ColorRefNeutralVariant70) \ + E_CPONLY(CEF_ColorRefNeutralVariant80) \ + E_CPONLY(CEF_ColorRefNeutralVariant90) \ + E_CPONLY(CEF_ColorRefNeutralVariant95) \ + E_CPONLY(CEF_ColorRefNeutralVariant99) \ + E_CPONLY(CEF_ColorRefNeutralVariant100) \ + \ + /* UI material system color tokens. Id ordering matches UX design spec. */ \ + E_CPONLY(CEF_ColorSysPrimary) \ + E_CPONLY(CEF_ColorSysOnPrimary) \ + E_CPONLY(CEF_ColorSysPrimaryContainer) \ + E_CPONLY(CEF_ColorSysOnPrimaryContainer) \ + /* Secondary. */ \ + E_CPONLY(CEF_ColorSysSecondary) \ + E_CPONLY(CEF_ColorSysOnSecondary) \ + E_CPONLY(CEF_ColorSysSecondaryContainer) \ + E_CPONLY(CEF_ColorSysOnSecondaryContainer) \ + /* Tertiary. */ \ + E_CPONLY(CEF_ColorSysTertiary) \ + E_CPONLY(CEF_ColorSysOnTertiary) \ + E_CPONLY(CEF_ColorSysTertiaryContainer) \ + E_CPONLY(CEF_ColorSysOnTertiaryContainer) \ + /* Error. */ \ + E_CPONLY(CEF_ColorSysError) \ + E_CPONLY(CEF_ColorSysOnError) \ + E_CPONLY(CEF_ColorSysErrorContainer) \ + E_CPONLY(CEF_ColorSysOnErrorContainer) \ + /* Neutral. */ \ + E_CPONLY(CEF_ColorSysOnSurface) \ + E_CPONLY(CEF_ColorSysOnSurfaceVariant) \ + E_CPONLY(CEF_ColorSysOutline) \ + E_CPONLY(CEF_ColorSysSurfaceVariant) \ + /* Constant. */\ + E_CPONLY(CEF_ColorSysBlack) \ + E_CPONLY(CEF_ColorSysWhite) \ + /* Inverse. */ \ + E_CPONLY(CEF_ColorSysInversePrimary) \ + E_CPONLY(CEF_ColorSysInverseOnSurface) \ + E_CPONLY(CEF_ColorSysInverseSurface) \ + E_CPONLY(CEF_ColorSysInverseSurfacePrimary) \ + /* Surfaces. */ \ + E_CPONLY(CEF_ColorSysSurface) \ + E_CPONLY(CEF_ColorSysSurface1) \ + E_CPONLY(CEF_ColorSysSurface2) \ + E_CPONLY(CEF_ColorSysSurface3) \ + E_CPONLY(CEF_ColorSysSurface4) \ + E_CPONLY(CEF_ColorSysSurface5) \ + E_CPONLY(CEF_ColorSysSurfaceNumberedForeground) \ + /* General. */ \ + E_CPONLY(CEF_ColorSysOnSurfaceSecondary) \ + E_CPONLY(CEF_ColorSysOnSurfaceSubtle) \ + E_CPONLY(CEF_ColorSysOnSurfacePrimary) \ + E_CPONLY(CEF_ColorSysOnSurfacePrimaryInactive) \ + E_CPONLY(CEF_ColorSysTonalContainer) \ + E_CPONLY(CEF_ColorSysOnTonalContainer) \ + E_CPONLY(CEF_ColorSysBaseTonalContainer) \ + E_CPONLY(CEF_ColorSysOnBaseTonalContainer) \ + E_CPONLY(CEF_ColorSysTonalOutline) \ + E_CPONLY(CEF_ColorSysNeutralOutline) \ + E_CPONLY(CEF_ColorSysNeutralContainer) \ + E_CPONLY(CEF_ColorSysDivider) \ + /* Chrome surfaces. */ \ + E_CPONLY(CEF_ColorSysBase) \ + E_CPONLY(CEF_ColorSysBaseContainer) \ + E_CPONLY(CEF_ColorSysBaseContainerElevated) \ + E_CPONLY(CEF_ColorSysHeader) \ + E_CPONLY(CEF_ColorSysHeaderInactive) \ + E_CPONLY(CEF_ColorSysHeaderContainer) \ + E_CPONLY(CEF_ColorSysHeaderContainerInactive) \ + E_CPONLY(CEF_ColorSysOnHeaderDivider) \ + E_CPONLY(CEF_ColorSysOnHeaderDividerInactive) \ + E_CPONLY(CEF_ColorSysOnHeaderPrimary) \ + E_CPONLY(CEF_ColorSysOnHeaderPrimaryInactive) \ + /* States. */ \ + E_CPONLY(CEF_ColorSysStateHoverOnProminent) \ + E_CPONLY(CEF_ColorSysStateHoverOnSubtle) \ + E_CPONLY(CEF_ColorSysStateRippleNeutralOnProminent) \ + E_CPONLY(CEF_ColorSysStateRippleNeutralOnSubtle) \ + E_CPONLY(CEF_ColorSysStateRipplePrimary) \ + E_CPONLY(CEF_ColorSysStateFocusRing) \ + E_CPONLY(CEF_ColorSysStateTextHighlight) \ + E_CPONLY(CEF_ColorSysStateOnTextHighlight) \ + E_CPONLY(CEF_ColorSysStateFocusHighlight) \ + E_CPONLY(CEF_ColorSysStateDisabled) \ + E_CPONLY(CEF_ColorSysStateDisabledContainer) \ + E_CPONLY(CEF_ColorSysStateHoverDimBlendProtection) \ + E_CPONLY(CEF_ColorSysStateHoverBrightBlendProtection) \ + E_CPONLY(CEF_ColorSysStateInactiveRing) \ + E_CPONLY(CEF_ColorSysStateScrim) \ + E_CPONLY(CEF_ColorSysStateOnHeaderHover) \ + E_CPONLY(CEF_ColorSysStateHeaderHover) \ + E_CPONLY(CEF_ColorSysStateHeaderHoverInactive) \ + E_CPONLY(CEF_ColorSysStateHeaderSelect) \ + /* Effects. */ \ + E_CPONLY(CEF_ColorSysShadow) \ + E_CPONLY(CEF_ColorSysGradientPrimary) \ + E_CPONLY(CEF_ColorSysGradientTertiary) \ + /* AI. */ \ + E_CPONLY(CEF_ColorSysAiIllustrationShapeSurface1) \ + E_CPONLY(CEF_ColorSysAiIllustrationShapeSurface2) \ + E_CPONLY(CEF_ColorSysAiIllustrationShapeSurfaceGradientStart) \ + E_CPONLY(CEF_ColorSysAiIllustrationShapeSurfaceGradientEnd) \ + /* Experimentation. */ \ + E_CPONLY(CEF_ColorSysOmniboxContainer) \ + /* Deprecated */ \ + E_CPONLY(CEF_ColorSysStateHover) \ + E_CPONLY(CEF_ColorSysStateFocus) \ + E_CPONLY(CEF_ColorSysStatePressed) \ + /* Core color concepts */ \ + /* CEF_ColorAccent is used in color_provider_css_colors_test.ts. */ \ + /* If changing the variable name, the variable name in the test needs to */ \ + /* be changed as well. */ \ + E_CPONLY(CEF_ColorAccent) \ + E_CPONLY(CEF_ColorAccentWithGuaranteedContrastAtopPrimaryBackground) \ + E_CPONLY(CEF_ColorAlertHighSeverity) \ + E_CPONLY(CEF_ColorAlertLowSeverity) \ + E_CPONLY(CEF_ColorAlertMediumSeverityIcon) \ + E_CPONLY(CEF_ColorAlertMediumSeverityText) \ + E_CPONLY(CEF_ColorDisabledForeground) \ + E_CPONLY(CEF_ColorEndpointBackground) \ + E_CPONLY(CEF_ColorEndpointForeground) \ + E_CPONLY(CEF_ColorItemHighlight) \ + E_CPONLY(CEF_ColorItemSelectionBackground) \ + E_CPONLY(CEF_ColorMenuSelectionBackground) \ + E_CPONLY(CEF_ColorMidground) \ + E_CPONLY(CEF_ColorPrimaryBackground) \ + E_CPONLY(CEF_ColorPrimaryForeground) \ + E_CPONLY(CEF_ColorSecondaryForeground) \ + E_CPONLY(CEF_ColorSubtleAccent) \ + E_CPONLY(CEF_ColorSubtleEmphasisBackground) \ + E_CPONLY(CEF_ColorTextSelectionBackground) \ + E_CPONLY(CEF_ColorTextSelectionForeground) \ + \ + /* Further UI element colors */ \ + E_CPONLY(CEF_ColorAppMenuProfileRowBackground) \ + E_CPONLY(CEF_ColorAppMenuProfileRowChipBackground) \ + E_CPONLY(CEF_ColorAppMenuProfileRowChipHovered) \ + E_CPONLY(CEF_ColorAppMenuRowBackgroundHovered) \ + E_CPONLY(CEF_ColorAppMenuUpgradeRowBackground) \ + E_CPONLY(CEF_ColorAppMenuUpgradeRowSubstringForeground) \ + E_CPONLY(CEF_ColorAvatarHeaderArt) \ + E_CPONLY(CEF_ColorAvatarIconGuest) \ + E_CPONLY(CEF_ColorAvatarIconIncognito) \ + E_CPONLY(CEF_ColorBadgeBackground) \ + E_CPONLY(CEF_ColorBadgeForeground) \ + E_CPONLY(CEF_ColorBadgeInCocoaMenuBackground) \ + E_CPONLY(CEF_ColorBadgeInCocoaMenuForeground) \ + E_CPONLY(CEF_ColorBubbleBackground) \ + E_CPONLY(CEF_ColorBubbleBorder) \ + E_CPONLY(CEF_ColorBubbleBorderShadowLarge) \ + E_CPONLY(CEF_ColorBubbleBorderShadowSmall) \ + E_CPONLY(CEF_ColorBubbleFooterBackground) \ + E_CPONLY(CEF_ColorBubbleFooterBorder) \ + E_CPONLY(CEF_ColorButtonFeatureAttentionHighlight) \ + E_CPONLY(CEF_ColorButtonBackground) \ + E_CPONLY(CEF_ColorButtonBackgroundPressed) \ + E_CPONLY(CEF_ColorButtonBackgroundProminent) \ + E_CPONLY(CEF_ColorButtonBackgroundProminentDisabled) \ + E_CPONLY(CEF_ColorButtonBackgroundProminentFocused) \ + E_CPONLY(CEF_ColorButtonBackgroundTonal) \ + E_CPONLY(CEF_ColorButtonBackgroundTonalDisabled) \ + E_CPONLY(CEF_ColorButtonBackgroundTonalFocused) \ + E_CPONLY(CEF_ColorButtonBackgroundWithAttention) \ + E_CPONLY(CEF_ColorButtonBorder) \ + E_CPONLY(CEF_ColorButtonBorderDisabled) \ + E_CPONLY(CEF_ColorButtonForeground) \ + E_CPONLY(CEF_ColorButtonForegroundDisabled) \ + E_CPONLY(CEF_ColorButtonForegroundProminent) \ + E_CPONLY(CEF_ColorButtonForegroundTonal) \ + E_CPONLY(CEF_ColorButtonHoverBackgroundText) \ + E_CPONLY(CEF_ColorMultitaskMenuNudgePulse) \ + E_CPONLY(CEF_ColorCheckboxCheck) \ + E_CPONLY(CEF_ColorCheckboxCheckDisabled) \ + E_CPONLY(CEF_ColorCheckboxContainer) \ + E_CPONLY(CEF_ColorCheckboxContainerDisabled) \ + E_CPONLY(CEF_ColorCheckboxOutline) \ + E_CPONLY(CEF_ColorCheckboxOutlineDisabled) \ + E_CPONLY(CEF_ColorCheckboxForegroundChecked) \ + E_CPONLY(CEF_ColorCheckboxForegroundUnchecked) \ + E_CPONLY(CEF_ColorChipBackgroundHover) \ + E_CPONLY(CEF_ColorChipBackgroundSelected) \ + E_CPONLY(CEF_ColorChipBorder) \ + E_CPONLY(CEF_ColorChipForeground) \ + E_CPONLY(CEF_ColorChipForegroundSelected) \ + E_CPONLY(CEF_ColorChipIcon) \ + E_CPONLY(CEF_ColorChipIconSelected) \ + E_CPONLY(CEF_ColorComboboxBackground) \ + E_CPONLY(CEF_ColorComboboxBackgroundDisabled) \ + E_CPONLY(CEF_ColorComboboxContainerOutline) \ + E_CPONLY(CEF_ColorComboboxInkDropHovered) \ + E_CPONLY(CEF_ColorComboboxInkDropRipple) \ + /* These colors correspond to the system colors defined in */ \ + /* ui::NativeTheme::SystemThemeColor. They are used to support */ \ + /* CSS system colors. */ \ + E_CPONLY(CEF_ColorCssSystemBtnFace) \ + E_CPONLY(CEF_ColorCssSystemBtnText) \ + E_CPONLY(CEF_ColorCssSystemGrayText) \ + E_CPONLY(CEF_ColorCssSystemHighlight) \ + E_CPONLY(CEF_ColorCssSystemHighlightText) \ + E_CPONLY(CEF_ColorCssSystemHotlight) \ + E_CPONLY(CEF_ColorCssSystemMenuHilight) \ + E_CPONLY(CEF_ColorCssSystemScrollbar) \ + E_CPONLY(CEF_ColorCssSystemWindow) \ + E_CPONLY(CEF_ColorCssSystemWindowText) \ + E_CPONLY(CEF_ColorCustomFrameCaptionForeground) \ + E_CPONLY(CEF_ColorDebugBoundsOutline) \ + E_CPONLY(CEF_ColorDebugContentOutline) \ + E_CPONLY(CEF_ColorDialogBackground) \ + E_CPONLY(CEF_ColorDialogForeground) \ + E_CPONLY(CEF_ColorDropdownBackground) \ + E_CPONLY(CEF_ColorDropdownBackgroundSelected) \ + E_CPONLY(CEF_ColorDropdownForeground) \ + E_CPONLY(CEF_ColorDropdownForegroundSelected) \ + E_CPONLY(CEF_ColorFocusableBorderFocused) \ + E_CPONLY(CEF_ColorFocusableBorderUnfocused) \ + E_CPONLY(CEF_ColorFrameActive) \ + E_CPONLY(CEF_ColorFrameActiveUnthemed) \ + E_CPONLY(CEF_ColorFrameCaptionButtonUnfocused) \ + E_CPONLY(CEF_ColorFrameInactive) \ + E_CPONLY(CEF_ColorHelpIconActive) \ + E_CPONLY(CEF_ColorHelpIconInactive) \ + /* These should be refactored into chrome_color_id or removed once the */ \ + /* history clusters side panel is refactored to use shadow parts. */ \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelDivider) \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelDialogBackground) \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelDialogDivider) \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelDialogPrimaryForeground) \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelDialogSecondaryForeground) \ + E_CPONLY(CEF_ColorHistoryClustersSidePanelCardSecondaryForeground) \ + E_CPONLY(CEF_ColorIcon) \ + E_CPONLY(CEF_ColorIconDisabled) \ + E_CPONLY(CEF_ColorIconSecondary) \ + /* This is declared here so src/components/ can access it, but we expect */ \ + /* this to be set in the embedder. */ \ + E_CPONLY(CEF_ColorInfoBarIcon) \ + E_CPONLY(CEF_ColorLabelForeground) \ + E_CPONLY(CEF_ColorLabelForegroundDisabled) \ + E_CPONLY(CEF_ColorLabelForegroundSecondary) \ + E_CPONLY(CEF_ColorLabelSelectionBackground) \ + E_CPONLY(CEF_ColorLabelSelectionForeground) \ + E_CPONLY(CEF_ColorLinkForeground) \ + E_CPONLY(CEF_ColorLinkForegroundDefault) \ + E_CPONLY(CEF_ColorLinkForegroundDisabled) \ + E_CPONLY(CEF_ColorLinkForegroundOnBubbleFooter) \ + E_CPONLY(CEF_ColorLinkForegroundPressed) \ + E_CPONLY(CEF_ColorLinkForegroundPressedDefault) \ + E_CPONLY(CEF_ColorLinkForegroundPressedOnBubbleFooter) \ + E_CPONLY(CEF_ColorListItemFolderIconBackground) \ + E_CPONLY(CEF_ColorListItemFolderIconForeground) \ + E_CPONLY(CEF_ColorListItemUrlFaviconBackground) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleBackgroundDefault) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleButtonBackground) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleButtonIcon) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleButtonIconDisabled) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleForegroundDefault) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleForegroundSecondary) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleCheckbox) \ + E_CPONLY(CEF_ColorLiveCaptionBubbleLink) \ + E_CPONLY(CEF_ColorLoadingGradientBorder) \ + E_CPONLY(CEF_ColorLoadingGradientEnd) \ + E_CPONLY(CEF_ColorLoadingGradientMiddle) \ + E_CPONLY(CEF_ColorLoadingGradientStart) \ + E_CPONLY(CEF_ColorMenuBackground) \ + E_CPONLY(CEF_ColorMenuBorder) \ + E_CPONLY(CEF_ColorMenuButtonBackground) \ + E_CPONLY(CEF_ColorMenuButtonBackgroundSelected) \ + E_CPONLY(CEF_ColorMenuDropmarker) \ + E_CPONLY(CEF_ColorMenuIcon) \ + E_CPONLY(CEF_ColorMenuIconDisabled) \ + E_CPONLY(CEF_ColorMenuIconOnEmphasizedBackground) \ + E_CPONLY(CEF_ColorMenuItemBackgroundAlertedInitial) \ + E_CPONLY(CEF_ColorMenuItemBackgroundAlertedTarget) \ + E_CPONLY(CEF_ColorMenuItemBackgroundHighlighted) \ + E_CPONLY(CEF_ColorMenuItemBackgroundSelected) \ + E_CPONLY(CEF_ColorMenuItemForeground) \ + E_CPONLY(CEF_ColorMenuItemForegroundDisabled) \ + E_CPONLY(CEF_ColorMenuItemForegroundHighlighted) \ + E_CPONLY(CEF_ColorMenuItemForegroundSecondary) \ + E_CPONLY(CEF_ColorMenuItemForegroundSelected) \ + E_CPONLY(CEF_ColorMenuSeparator) \ + E_CPONLY(CEF_ColorNotificationActionsBackground) \ + E_CPONLY(CEF_ColorNotificationBackgroundActive) \ + E_CPONLY(CEF_ColorNotificationBackgroundInactive) \ + E_CPONLY(CEF_ColorNotificationHeaderForeground) \ + E_CPONLY(CEF_ColorNotificationIconBackground) \ + E_CPONLY(CEF_ColorNotificationIconForeground) \ + E_CPONLY(CEF_ColorNotificationImageBackground) \ + E_CPONLY(CEF_ColorNotificationInputBackground) \ + E_CPONLY(CEF_ColorNotificationInputForeground) \ + E_CPONLY(CEF_ColorNotificationInputPlaceholderForeground) \ + E_CPONLY(CEF_ColorOverlayScrollbarFill) \ + E_CPONLY(CEF_ColorOverlayScrollbarFillHovered) \ + E_CPONLY(CEF_ColorOverlayScrollbarStroke) \ + E_CPONLY(CEF_ColorOverlayScrollbarStrokeHovered) \ + E_CPONLY(CEF_ColorProgressBar) \ + E_CPONLY(CEF_ColorProgressBarBackground) \ + E_CPONLY(CEF_ColorProgressBarPaused) \ + E_CPONLY(CEF_ColorRadioButtonForegroundUnchecked) \ + E_CPONLY(CEF_ColorRadioButtonForegroundDisabled) \ + E_CPONLY(CEF_ColorRadioButtonForegroundChecked) \ + E_CPONLY(CEF_ColorSegmentedButtonBorder) \ + E_CPONLY(CEF_ColorSegmentedButtonFocus) \ + E_CPONLY(CEF_ColorSegmentedButtonForegroundChecked) \ + E_CPONLY(CEF_ColorSegmentedButtonForegroundUnchecked) \ + E_CPONLY(CEF_ColorSegmentedButtonHover) \ + E_CPONLY(CEF_ColorSegmentedButtonRipple) \ + E_CPONLY(CEF_ColorSegmentedButtonChecked) \ + E_CPONLY(CEF_ColorSeparator) \ + E_CPONLY(CEF_ColorShadowBase) \ + E_CPONLY(CEF_ColorShadowValueAmbientShadowElevationFour) \ + E_CPONLY(CEF_ColorShadowValueAmbientShadowElevationSixteen) \ + E_CPONLY(CEF_ColorShadowValueAmbientShadowElevationThree) \ + E_CPONLY(CEF_ColorShadowValueAmbientShadowElevationTwelve) \ + E_CPONLY(CEF_ColorShadowValueAmbientShadowElevationTwentyFour) \ + E_CPONLY(CEF_ColorShadowValueKeyShadowElevationFour) \ + E_CPONLY(CEF_ColorShadowValueKeyShadowElevationSixteen) \ + E_CPONLY(CEF_ColorShadowValueKeyShadowElevationThree) \ + E_CPONLY(CEF_ColorShadowValueKeyShadowElevationTwelve) \ + E_CPONLY(CEF_ColorShadowValueKeyShadowElevationTwentyFour) \ + E_CPONLY(CEF_ColorSidePanelComboboxBorder) \ + E_CPONLY(CEF_ColorSidePanelComboboxBackground) \ + E_CPONLY(CEF_ColorSliderThumb) \ + E_CPONLY(CEF_ColorSliderThumbMinimal) \ + E_CPONLY(CEF_ColorSliderTrack) \ + E_CPONLY(CEF_ColorSliderTrackMinimal) \ + E_CPONLY(CEF_ColorSyncInfoBackground) \ + E_CPONLY(CEF_ColorSyncInfoBackgroundError) \ + E_CPONLY(CEF_ColorSyncInfoBackgroundPaused) \ + E_CPONLY(CEF_ColorTabBackgroundHighlighted) \ + E_CPONLY(CEF_ColorTabBackgroundHighlightedFocused) \ + E_CPONLY(CEF_ColorTabBorderSelected) \ + E_CPONLY(CEF_ColorTabContentSeparator) \ + E_CPONLY(CEF_ColorTabForegroundDisabled) \ + E_CPONLY(CEF_ColorTabForeground) \ + E_CPONLY(CEF_ColorTabForegroundSelected) \ + E_CPONLY(CEF_ColorTableBackground) \ + E_CPONLY(CEF_ColorTableBackgroundAlternate) \ + E_CPONLY(CEF_ColorTableBackgroundSelectedFocused) \ + E_CPONLY(CEF_ColorTableBackgroundSelectedUnfocused) \ + E_CPONLY(CEF_ColorTableForeground) \ + E_CPONLY(CEF_ColorTableForegroundSelectedFocused) \ + E_CPONLY(CEF_ColorTableForegroundSelectedUnfocused) \ + E_CPONLY(CEF_ColorTableGroupingIndicator) \ + E_CPONLY(CEF_ColorTableHeaderBackground) \ + E_CPONLY(CEF_ColorTableHeaderForeground) \ + E_CPONLY(CEF_ColorTableHeaderSeparator) \ + E_CPONLY(CEF_ColorTableRowHighlight) \ + E_CPONLY(CEF_ColorSuggestionChipBorder) \ + E_CPONLY(CEF_ColorSuggestionChipIcon) \ + E_CPONLY(CEF_ColorTextfieldBackground) \ + E_CPONLY(CEF_ColorTextfieldBackgroundDisabled) \ + E_CPONLY(CEF_ColorTextfieldFilledBackground) \ + E_CPONLY(CEF_ColorTextfieldFilledForegroundInvalid) \ + E_CPONLY(CEF_ColorTextfieldFilledUnderline) \ + E_CPONLY(CEF_ColorTextfieldFilledUnderlineFocused) \ + E_CPONLY(CEF_ColorTextfieldForeground) \ + E_CPONLY(CEF_ColorTextfieldForegroundDisabled) \ + E_CPONLY(CEF_ColorTextfieldForegroundIcon) \ + E_CPONLY(CEF_ColorTextfieldForegroundLabel) \ + E_CPONLY(CEF_ColorTextfieldForegroundPlaceholderInvalid) \ + E_CPONLY(CEF_ColorTextfieldForegroundPlaceholder) \ + E_CPONLY(CEF_ColorTextfieldHover) \ + E_CPONLY(CEF_ColorTextfieldSelectionBackground) \ + E_CPONLY(CEF_ColorTextfieldSelectionForeground) \ + E_CPONLY(CEF_ColorTextfieldOutline) \ + E_CPONLY(CEF_ColorTextfieldOutlineDisabled) \ + E_CPONLY(CEF_ColorTextfieldOutlineInvalid) \ + E_CPONLY(CEF_ColorThemeColorPickerCheckmarkBackground) \ + E_CPONLY(CEF_ColorThemeColorPickerCheckmarkForeground) \ + E_CPONLY(CEF_ColorThemeColorPickerCustomColorIconBackground) \ + E_CPONLY(CEF_ColorThemeColorPickerHueSliderDialogBackground) \ + E_CPONLY(CEF_ColorThemeColorPickerHueSliderDialogForeground) \ + E_CPONLY(CEF_ColorThemeColorPickerHueSliderDialogIcon) \ + E_CPONLY(CEF_ColorThemeColorPickerHueSliderHandle) \ + E_CPONLY(CEF_ColorThemeColorPickerOptionBackground) \ + E_CPONLY(CEF_ColorThrobber) \ + E_CPONLY(CEF_ColorThrobberPreconnect) \ + E_CPONLY(CEF_ColorToastBackground) \ + E_CPONLY(CEF_ColorToastBackgroundProminent) \ + E_CPONLY(CEF_ColorToastButton) \ + E_CPONLY(CEF_ColorToastForeground) \ + E_CPONLY(CEF_ColorToggleButtonHover) \ + E_CPONLY(CEF_ColorToggleButtonPressed) \ + E_CPONLY(CEF_ColorToggleButtonShadow) \ + E_CPONLY(CEF_ColorToggleButtonThumbOff) \ + E_CPONLY(CEF_ColorToggleButtonThumbOffDisabled) \ + E_CPONLY(CEF_ColorToggleButtonThumbOn) \ + E_CPONLY(CEF_ColorToggleButtonThumbOnDisabled) \ + E_CPONLY(CEF_ColorToggleButtonThumbOnHover) \ + E_CPONLY(CEF_ColorToggleButtonTrackOff) \ + E_CPONLY(CEF_ColorToggleButtonTrackOffDisabled) \ + E_CPONLY(CEF_ColorToggleButtonTrackOn) \ + E_CPONLY(CEF_ColorToggleButtonTrackOnDisabled) \ + E_CPONLY(CEF_ColorToolbarSearchFieldBackground) \ + E_CPONLY(CEF_ColorToolbarSearchFieldBackgroundHover) \ + E_CPONLY(CEF_ColorToolbarSearchFieldBackgroundPressed) \ + E_CPONLY(CEF_ColorToolbarSearchFieldForeground) \ + E_CPONLY(CEF_ColorToolbarSearchFieldForegroundPlaceholder) \ + E_CPONLY(CEF_ColorToolbarSearchFieldIcon) \ + E_CPONLY(CEF_ColorTooltipBackground) \ + E_CPONLY(CEF_ColorTooltipForeground) \ + E_CPONLY(CEF_ColorTreeBackground) \ + E_CPONLY(CEF_ColorTreeNodeBackgroundSelectedFocused) \ + E_CPONLY(CEF_ColorTreeNodeBackgroundSelectedUnfocused) \ + E_CPONLY(CEF_ColorTreeNodeForeground) \ + E_CPONLY(CEF_ColorTreeNodeForegroundSelectedFocused) \ + E_CPONLY(CEF_ColorTreeNodeForegroundSelectedUnfocused) \ + /* These colors are used to paint the controls defined in */ \ + /* ui::NativeThemeBase::ControlColorId. */ \ + E_CPONLY(CEF_ColorWebNativeControlAccent) \ + E_CPONLY(CEF_ColorWebNativeControlAccentDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlAccentHovered) \ + E_CPONLY(CEF_ColorWebNativeControlAccentPressed) \ + E_CPONLY(CEF_ColorWebNativeControlAutoCompleteBackground) \ + E_CPONLY(CEF_ColorWebNativeControlBackground) \ + E_CPONLY(CEF_ColorWebNativeControlBackgroundDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlBorder) \ + E_CPONLY(CEF_ColorWebNativeControlBorderDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlBorderHovered) \ + E_CPONLY(CEF_ColorWebNativeControlBorderPressed) \ + E_CPONLY(CEF_ColorWebNativeControlButtonBorder) \ + E_CPONLY(CEF_ColorWebNativeControlButtonBorderDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlButtonBorderHovered) \ + E_CPONLY(CEF_ColorWebNativeControlButtonBorderPressed) \ + E_CPONLY(CEF_ColorWebNativeControlButtonFill) \ + E_CPONLY(CEF_ColorWebNativeControlButtonFillDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlButtonFillHovered) \ + E_CPONLY(CEF_ColorWebNativeControlButtonFillPressed) \ + E_CPONLY(CEF_ColorWebNativeControlFill) \ + E_CPONLY(CEF_ColorWebNativeControlFillDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlFillHovered) \ + E_CPONLY(CEF_ColorWebNativeControlFillPressed) \ + E_CPONLY(CEF_ColorWebNativeControlLightenLayer) \ + E_CPONLY(CEF_ColorWebNativeControlProgressValue) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarArrowBackgroundHovered) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarArrowBackgroundPressed) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarArrowForeground) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarArrowForegroundPressed) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarCorner) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarThumb) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarThumbHovered) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarThumbInactive) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarThumbOverlayMinimalMode) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarThumbPressed) \ + E_CPONLY(CEF_ColorWebNativeControlScrollbarTrack) \ + E_CPONLY(CEF_ColorWebNativeControlSlider) \ + E_CPONLY(CEF_ColorWebNativeControlSliderDisabled) \ + E_CPONLY(CEF_ColorWebNativeControlSliderHovered) \ + E_CPONLY(CEF_ColorWebNativeControlSliderPressed) \ + E_CPONLY(CEF_ColorWindowBackground) + +#if defined(OS_CHROMEOS) +#define CHROMEOS_ASH_COLOR_IDS \ + /* Colors for illustrations */ \ + E_CPONLY(CEF_ColorNativeColor1) \ + E_CPONLY(CEF_ColorNativeColor1Shade1) \ + E_CPONLY(CEF_ColorNativeColor1Shade2) \ + E_CPONLY(CEF_ColorNativeColor2) \ + E_CPONLY(CEF_ColorNativeColor3) \ + E_CPONLY(CEF_ColorNativeColor4) \ + E_CPONLY(CEF_ColorNativeColor5) \ + E_CPONLY(CEF_ColorNativeColor6) \ + E_CPONLY(CEF_ColorNativeBaseColor) \ + E_CPONLY(CEF_ColorNativeSecondaryColor) \ + E_CPONLY(CEF_ColorNativeOnPrimaryContainerColor) \ + E_CPONLY(CEF_ColorNativeAnalogColor) \ + E_CPONLY(CEF_ColorNativeMutedColor) \ + E_CPONLY(CEF_ColorNativeComplementColor) \ + E_CPONLY(CEF_ColorNativeOnGradientColor) +#define PLATFORM_SPECIFIC_COLOR_IDS \ + CHROMEOS_ASH_COLOR_IDS \ + /* NOTE: Nearly all of the following CrOS color ids will need to be re- */ \ + /* evaluated once CrOS fully supports the color pipeline. */ \ + E_CPONLY(CEF_ColorAshActionLabelFocusRingEdit) \ + E_CPONLY(CEF_ColorAshActionLabelFocusRingError) \ + E_CPONLY(CEF_ColorAshActionLabelFocusRingHover) \ + \ + /* TODO(skau): Remove Compat value when dark/light mode launches. */ \ + E_CPONLY(CEF_ColorAshAppListFocusRingCompat) \ + E_CPONLY(CEF_ColorAshAppListFocusRingNoKeyboard) \ + E_CPONLY(CEF_ColorAshAppListSeparator) \ + E_CPONLY(CEF_ColorAshAppListSeparatorLight) \ + E_CPONLY(CEF_ColorAshArcInputMenuSeparator) \ + E_CPONLY(CEF_ColorAshFocusRing) \ + /* TODO(kylixrd): Determine whether this special color should follow */ \ + /* light/dark mode. Remove if it should equal CEF_ColorAshFocusRing. */ \ + E_CPONLY(CEF_ColorAshInputOverlayFocusRing) \ + E_CPONLY(CEF_ColorAshIconInOobe) \ + \ + /* TODO(crbug/1319917): Remove these when dark light mode is launched. */ \ + E_CPONLY(CEF_ColorAshLightFocusRing) \ + \ + E_CPONLY(CEF_ColorAshOnboardingFocusRing) \ + \ + E_CPONLY(CEF_ColorAshPrivacyIndicatorsBackground) \ + \ + E_CPONLY(CEF_ColorAshSystemUIMenuBackground) \ + E_CPONLY(CEF_ColorAshSystemUIMenuIcon) \ + E_CPONLY(CEF_ColorAshSystemUIMenuItemBackgroundSelected) \ + E_CPONLY(CEF_ColorAshSystemUIMenuSeparator) \ + \ + /* TODO(b/291622042): Delete these colors when Jelly is launched */ \ + E_CPONLY(CEF_ColorHighlightBorderBorder1) \ + E_CPONLY(CEF_ColorHighlightBorderBorder2) \ + E_CPONLY(CEF_ColorHighlightBorderBorder3) \ + E_CPONLY(CEF_ColorHighlightBorderHighlight1) \ + E_CPONLY(CEF_ColorHighlightBorderHighlight2) \ + E_CPONLY(CEF_ColorHighlightBorderHighlight3) \ + \ + E_CPONLY(CEF_ColorCrosSystemHighlight) \ + E_CPONLY(CEF_ColorCrosSystemHighlightBorder) \ + E_CPONLY(CEF_ColorCrosSystemHighlightBorder1) \ + \ + E_CPONLY(CEF_ColorCrosSysPositive) \ + E_CPONLY(CEF_ColorCrosSysComplementVariant) +#elif defined(OS_LINUX) +#define PLATFORM_SPECIFIC_COLOR_IDS \ + E_CPONLY(CEF_ColorNativeButtonBorder)\ + E_CPONLY(CEF_ColorNativeHeaderButtonBorderActive) \ + E_CPONLY(CEF_ColorNativeHeaderButtonBorderInactive) \ + E_CPONLY(CEF_ColorNativeHeaderSeparatorBorderActive) \ + E_CPONLY(CEF_ColorNativeHeaderSeparatorBorderInactive) \ + E_CPONLY(CEF_ColorNativeLabelForeground) \ + E_CPONLY(CEF_ColorNativeTabForegroundInactiveFrameActive) \ + E_CPONLY(CEF_ColorNativeTabForegroundInactiveFrameInactive) \ + E_CPONLY(CEF_ColorNativeTextfieldBorderUnfocused)\ + E_CPONLY(CEF_ColorNativeToolbarBackground) +#elif defined(OS_WIN) +#define PLATFORM_SPECIFIC_COLOR_IDS \ + E_CPONLY(CEF_ColorNative3dDkShadow) \ + E_CPONLY(CEF_ColorNative3dLight) \ + E_CPONLY(CEF_ColorNativeActiveBorder) \ + E_CPONLY(CEF_ColorNativeActiveCaption) \ + E_CPONLY(CEF_ColorNativeAppWorkspace) \ + E_CPONLY(CEF_ColorNativeBackground) \ + E_CPONLY(CEF_ColorNativeBtnFace) \ + E_CPONLY(CEF_ColorNativeBtnHighlight) \ + E_CPONLY(CEF_ColorNativeBtnShadow) \ + E_CPONLY(CEF_ColorNativeBtnText) \ + E_CPONLY(CEF_ColorNativeCaptionText) \ + E_CPONLY(CEF_ColorNativeGradientActiveCaption) \ + E_CPONLY(CEF_ColorNativeGradientInactiveCaption) \ + E_CPONLY(CEF_ColorNativeGrayText) \ + E_CPONLY(CEF_ColorNativeHighlight) \ + E_CPONLY(CEF_ColorNativeHighlightText) \ + E_CPONLY(CEF_ColorNativeHotlight) \ + E_CPONLY(CEF_ColorNativeInactiveBorder) \ + E_CPONLY(CEF_ColorNativeInactiveCaption) \ + E_CPONLY(CEF_ColorNativeInactiveCaptionText) \ + E_CPONLY(CEF_ColorNativeInfoBk) \ + E_CPONLY(CEF_ColorNativeInfoText) \ + E_CPONLY(CEF_ColorNativeMenu) \ + E_CPONLY(CEF_ColorNativeMenuBar) \ + E_CPONLY(CEF_ColorNativeMenuHilight) \ + E_CPONLY(CEF_ColorNativeMenuText) \ + E_CPONLY(CEF_ColorNativeScrollbar) \ + E_CPONLY(CEF_ColorNativeWindow) \ + E_CPONLY(CEF_ColorNativeWindowFrame) \ + E_CPONLY(CEF_ColorNativeWindowText) +#else +#define PLATFORM_SPECIFIC_COLOR_IDS +#endif + +#define COLOR_IDS \ + CROSS_PLATFORM_COLOR_IDS \ + PLATFORM_SPECIFIC_COLOR_IDS + +// --------------------------------------------------------------------------- +// From components/color/color_id.h: + +// Cross-platform IDs should be added here. +#define COMMON_COMPONENTS_COLOR_IDS \ + +#if !defined(OS_MAC) +#define COMPONENTS_COLOR_IDS COMMON_COMPONENTS_COLOR_IDS \ + /* Eyedropper colors. */ \ + E_CPONLY(CEF_ColorEyedropperBoundary) \ + E_CPONLY(CEF_ColorEyedropperCentralPixelInnerRing) \ + E_CPONLY(CEF_ColorEyedropperCentralPixelOuterRing) \ + E_CPONLY(CEF_ColorEyedropperGrid) \ + +#else +#define COMPONENTS_COLOR_IDS COMMON_COMPONENTS_COLOR_IDS +#endif + +// --------------------------------------------------------------------------- +// From chrome/browser/ui/color/chrome_color_id.h: + +#define COMMON_CHROME_COLOR_IDS \ + /* App menu colors. */ \ + /* The CEF_ColorAppMenuHighlightSeverityLow color id is used in */ \ + /* color_provider_css_colors_test.ts. If changing the variable name, the */ \ + /* variable name in the test needs to be changed as well. */ \ + E_CPONLY(CEF_ColorAppMenuHighlightSeverityLow, CEF_ChromeColorsStart, \ + CEF_ChromeColorsStart) \ + E_CPONLY(CEF_ColorAppMenuHighlightSeverityHigh) \ + E_CPONLY(CEF_ColorAppMenuHighlightSeverityMedium) \ + E_CPONLY(CEF_ColorAppMenuHighlightDefault) \ + E_CPONLY(CEF_ColorAppMenuHighlightPrimary) \ + E_CPONLY(CEF_ColorAppMenuExpandedForegroundDefault) \ + E_CPONLY(CEF_ColorAppMenuExpandedForegroundPrimary) \ + E_CPONLY(CEF_ColorAppMenuChipInkDropHover) \ + E_CPONLY(CEF_ColorAppMenuChipInkDropRipple) \ + /* Content settings activity indicators popup dialog colors */ \ + E_CPONLY(CEF_ColorActivityIndicatorForeground) \ + E_CPONLY(CEF_ColorActivityIndicatorSubtitleForeground) \ + /* Avatar colors. */ \ + /* TODO(crbug.com/40259490): Refactor the Avatar Button colors as Profile */ \ + /* Menu Button colors. */ \ + E_CPONLY(CEF_ColorAvatarButtonHighlightDefault) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightNormal) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightSyncError) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightSyncPaused) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightSigninPaused) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightExplicitText) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightIncognito) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightNormalForeground) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightDefaultForeground) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightSyncErrorForeground) \ + E_CPONLY(CEF_ColorAvatarButtonHighlightIncognitoForeground) \ + E_CPONLY(CEF_ColorAvatarButtonIncognitoHover) \ + E_CPONLY(CEF_ColorAvatarButtonNormalRipple) \ + E_CPONLY(CEF_ColorAvatarStrokeLight) \ + E_CPONLY(CEF_ColorAvatarStroke) \ + E_CPONLY(CEF_ColorAvatarFillForContrast) \ + /* Bookmark bar colors. */ \ + E_CPONLY(CEF_ColorBookmarkBarBackground) \ + E_CPONLY(CEF_ColorBookmarkBarForeground) \ + E_CPONLY(CEF_ColorBookmarkBarForegroundDisabled) \ + E_CPONLY(CEF_ColorBookmarkBarSeparator) \ + E_CPONLY(CEF_ColorBookmarkBarSeparatorChromeRefresh) \ + E_CPONLY(CEF_ColorBookmarkButtonIcon) \ + E_CPONLY(CEF_ColorBookmarkDialogTrackPriceIcon) \ + E_CPONLY(CEF_ColorBookmarkDialogProductImageBorder) \ + E_CPONLY(CEF_ColorBookmarkDragImageBackground) \ + E_CPONLY(CEF_ColorBookmarkDragImageCountBackground) \ + E_CPONLY(CEF_ColorBookmarkDragImageCountForeground) \ + E_CPONLY(CEF_ColorBookmarkDragImageForeground) \ + E_CPONLY(CEF_ColorBookmarkDragImageIconBackground) \ + E_CPONLY(CEF_ColorBookmarkFavicon) \ + E_CPONLY(CEF_ColorBookmarkFolderIcon) \ + /* Window caption colors. */ \ + E_CPONLY(CEF_ColorCaptionButtonBackground) \ + /* Captured tab colors. */ \ + E_CPONLY(CEF_ColorCapturedTabContentsBorder) \ + /* Cast dialog colors. */ \ + E_CPONLY(CEF_ColorCastDialogHelpIcon) \ + /* Signin bubble colors. */ \ + E_CPONLY(CEF_ColorChromeSigninBubbleBackground) \ + E_CPONLY(CEF_ColorChromeSigninBubbleInfoBackground) \ + /* Batch Upload colors. */ \ + E_CPONLY(CEF_ColorBatchUploadBackground) \ + E_CPONLY(CEF_ColorBatchUploadDataBackground) \ + E_CPONLY(CEF_ColorBatchUploadDataSeparator) \ + /* Compose colors */ \ + E_CPONLY(CEF_ColorComposeDialogBackground) \ + E_CPONLY(CEF_ColorComposeDialogDivider) \ + E_CPONLY(CEF_ColorComposeDialogError) \ + E_CPONLY(CEF_ColorComposeDialogForegroundSubtle) \ + E_CPONLY(CEF_ColorComposeDialogLink) \ + E_CPONLY(CEF_ColorComposeDialogLogo) \ + E_CPONLY(CEF_ColorComposeDialogResultBackground) \ + E_CPONLY(CEF_ColorComposeDialogResultForeground) \ + E_CPONLY(CEF_ColorComposeDialogResultForegroundWhileLoading) \ + E_CPONLY(CEF_ColorComposeDialogResultIcon) \ + E_CPONLY(CEF_ColorComposeDialogResultContainerScrollbarThumb) \ + E_CPONLY(CEF_ColorComposeDialogScrollbarThumb) \ + E_CPONLY(CEF_ColorComposeDialogTitle) \ + E_CPONLY(CEF_ColorComposeDialogTextarea) \ + E_CPONLY(CEF_ColorComposeDialogTextareaOutline) \ + E_CPONLY(CEF_ColorComposeDialogTextareaPlaceholder) \ + E_CPONLY(CEF_ColorComposeDialogTextareaReadonlyBackground) \ + E_CPONLY(CEF_ColorComposeDialogTextareaReadonlyForeground) \ + E_CPONLY(CEF_ColorComposeDialogTextareaIcon) \ + E_CPONLY(CEF_ColorComposeDialogSelectOptionDisabled) \ + /* Desktop media picker view. */ \ + E_CPONLY(CEF_ColorDesktopMediaPickerDescriptionLabel) \ + /* Desktop media tab list colors. */ \ + E_CPONLY(CEF_ColorDesktopMediaTabListBorder) \ + E_CPONLY(CEF_ColorDesktopMediaTabListPreviewBackground) \ + /* Desktop to iOS promo bubble. */ \ + E_CPONLY(CEF_ColorDesktopToIOSPromoFooterSubtitleLabel) \ + /* Common Download colors. */ \ + E_CPONLY(CEF_ColorDownloadItemIconDangerous) \ + E_CPONLY(CEF_ColorDownloadItemTextDangerous) \ + E_CPONLY(CEF_ColorDownloadItemIconWarning) \ + E_CPONLY(CEF_ColorDownloadItemTextWarning) \ + /* Download bubble colors. */\ + E_CPONLY(CEF_ColorDownloadBubbleInfoBackground) \ + E_CPONLY(CEF_ColorDownloadBubbleInfoIcon) \ + E_CPONLY(CEF_ColorDownloadBubbleRowHover) \ + E_CPONLY(CEF_ColorDownloadBubbleShowAllDownloadsIcon) \ + E_CPONLY(CEF_ColorDownloadBubblePrimaryIcon) \ + /* Download shelf colors. */ \ + E_CPONLY(CEF_ColorDownloadItemForeground) \ + E_CPONLY(CEF_ColorDownloadItemForegroundDangerous) \ + E_CPONLY(CEF_ColorDownloadItemForegroundDisabled) \ + E_CPONLY(CEF_ColorDownloadItemForegroundSafe) \ + E_CPONLY(CEF_ColorDownloadItemProgressRingBackground) \ + E_CPONLY(CEF_ColorDownloadItemProgressRingForeground) \ + E_CPONLY(CEF_ColorDownloadShelfBackground) \ + E_CPONLY(CEF_ColorDownloadShelfButtonBackground) \ + E_CPONLY(CEF_ColorDownloadShelfButtonText) \ + E_CPONLY(CEF_ColorDownloadShelfButtonIcon) \ + E_CPONLY(CEF_ColorDownloadShelfButtonIconDisabled) \ + E_CPONLY(CEF_ColorDownloadShelfContentAreaSeparator) \ + E_CPONLY(CEF_ColorDownloadShelfForeground) \ + E_CPONLY(CEF_ColorDownloadStartedAnimationForeground) \ + E_CPONLY(CEF_ColorDownloadToolbarButtonActive) \ + E_CPONLY(CEF_ColorDownloadToolbarButtonAnimationBackground) \ + E_CPONLY(CEF_ColorDownloadToolbarButtonAnimationForeground) \ + E_CPONLY(CEF_ColorDownloadToolbarButtonInactive) \ + E_CPONLY(CEF_ColorDownloadToolbarButtonRingBackground) \ + /* Extension colors. */ \ + E_CPONLY(CEF_ColorExtensionDialogBackground) \ + E_CPONLY(CEF_ColorExtensionIconBadgeBackgroundDefault) \ + E_CPONLY(CEF_ColorExtensionIconDecorationAmbientShadow) \ + E_CPONLY(CEF_ColorExtensionIconDecorationBackground) \ + E_CPONLY(CEF_ColorExtensionIconDecorationKeyShadow) \ + E_CPONLY(CEF_ColorExtensionMenuIcon) \ + E_CPONLY(CEF_ColorExtensionMenuIconDisabled) \ + E_CPONLY(CEF_ColorExtensionMenuPinButtonIcon) \ + E_CPONLY(CEF_ColorExtensionMenuPinButtonIconDisabled) \ + E_CPONLY(CEF_ColorExtensionsMenuContainerBackground) \ + E_CPONLY(CEF_ColorExtensionsToolbarControlsBackground) \ + E_CPONLY(CEF_ColorExtensionsMenuText) \ + E_CPONLY(CEF_ColorExtensionsMenuSecondaryText) \ + /* Feature Promo bubble colors. */ \ + E_CPONLY(CEF_ColorFeaturePromoBubbleBackground) \ + E_CPONLY(CEF_ColorFeaturePromoBubbleButtonBorder) \ + E_CPONLY(CEF_ColorFeaturePromoBubbleCloseButtonInkDrop) \ + E_CPONLY(CEF_ColorFeaturePromoBubbleDefaultButtonBackground) \ + E_CPONLY(CEF_ColorFeaturePromoBubbleDefaultButtonForeground) \ + E_CPONLY(CEF_ColorFeaturePromoBubbleForeground) \ + E_CPONLY(CEF_ColorFeatureLensPromoBubbleBackground) \ + E_CPONLY(CEF_ColorFeatureLensPromoBubbleForeground) \ + /* Find bar colors. */ \ + E_CPONLY(CEF_ColorFindBarBackground) \ + E_CPONLY(CEF_ColorFindBarButtonIcon) \ + E_CPONLY(CEF_ColorFindBarButtonIconDisabled) \ + E_CPONLY(CEF_ColorFindBarForeground) \ + E_CPONLY(CEF_ColorFindBarMatchCount) \ + /* Flying Indicator colors. */ \ + E_CPONLY(CEF_ColorFlyingIndicatorBackground) \ + E_CPONLY(CEF_ColorFlyingIndicatorForeground) \ + /* Default accessibility focus highlight. */ \ + E_CPONLY(CEF_ColorFocusHighlightDefault) \ + /* Frame caption colors. */ \ + E_CPONLY(CEF_ColorFrameCaptionActive) \ + E_CPONLY(CEF_ColorFrameCaptionInactive) \ + /* History embedding colors. */ \ + E_CPONLY(CEF_ColorHistoryEmbeddingsBackground) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsDivider) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsForeground) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsForegroundSubtle) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsImageBackground) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsImageBackgroundGradientEnd) \ + E_CPONLY(CEF_ColorHistoryEmbeddingsImageBackgroundGradientStart) \ + /* InfoBar colors. */ \ + E_CPONLY(CEF_ColorInfoBarBackground) \ + E_CPONLY(CEF_ColorInfoBarButtonIcon) \ + E_CPONLY(CEF_ColorInfoBarButtonIconDisabled) \ + E_CPONLY(CEF_ColorInfoBarContentAreaSeparator) \ + E_CPONLY(CEF_ColorInfoBarForeground) \ + /* There is also a CEF_ColorInfoBarIcon in /ui/color/color_id.h */ \ + /* Intent Picker colors. */ \ + E_CPONLY(CEF_ColorIntentPickerItemBackgroundHovered) \ + E_CPONLY(CEF_ColorIntentPickerItemBackgroundSelected) \ + /* Hover Button colors */ \ + E_CPONLY(CEF_ColorHoverButtonBackgroundHovered) \ + /* Lens overlay colors. */ \ + E_CPONLY(CEF_ColorLensOverlayToastBackground) \ + E_CPONLY(CEF_ColorLensOverlayToastButtonBorder) \ + E_CPONLY(CEF_ColorLensOverlayToastForeground) \ + /* Location bar colors. */ \ + E_CPONLY(CEF_ColorLocationBarBackground) \ + E_CPONLY(CEF_ColorLocationBarBackgroundHovered) \ + E_CPONLY(CEF_ColorLocationBarBorder) \ + E_CPONLY(CEF_ColorLocationBarBorderOnMismatch) \ + E_CPONLY(CEF_ColorLocationBarBorderOpaque) \ + E_CPONLY(CEF_ColorLocationBarClearAllButtonIcon) \ + E_CPONLY(CEF_ColorLocationBarClearAllButtonIconDisabled) \ + /* Media router colors. */ \ + E_CPONLY(CEF_ColorMediaRouterIconActive) \ + E_CPONLY(CEF_ColorMediaRouterIconWarning) \ + /* New tab button colors. */ \ + E_CPONLY(CEF_ColorNewTabButtonForegroundFrameActive) \ + E_CPONLY(CEF_ColorNewTabButtonForegroundFrameInactive) \ + E_CPONLY(CEF_ColorNewTabButtonBackgroundFrameActive) \ + E_CPONLY(CEF_ColorNewTabButtonBackgroundFrameInactive) \ + E_CPONLY(CEF_ColorNewTabButtonFocusRing) \ + E_CPONLY(CEF_ColorNewTabButtonInkDropFrameActive) \ + E_CPONLY(CEF_ColorNewTabButtonInkDropFrameInactive) \ + E_CPONLY(CEF_ColorTabStripComboButtonSeparator) \ + E_CPONLY(CEF_ColorTabStripControlButtonInkDrop) \ + E_CPONLY(CEF_ColorTabStripControlButtonInkDropRipple) \ + /* New tab button colors for ChromeRefresh.*/ \ + /* TODO (crbug.com/1399942) remove when theming works */ \ + E_CPONLY(CEF_ColorNewTabButtonCRForegroundFrameActive) \ + E_CPONLY(CEF_ColorNewTabButtonCRForegroundFrameInactive) \ + E_CPONLY(CEF_ColorNewTabButtonCRBackgroundFrameActive) \ + E_CPONLY(CEF_ColorNewTabButtonCRBackgroundFrameInactive) \ + /* New Tab Page colors. */ \ + E_CPONLY(CEF_ColorNewTabPageActionButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageActionButtonBorder) \ + E_CPONLY(CEF_ColorNewTabPageActionButtonBorderHovered) \ + E_CPONLY(CEF_ColorNewTabPageActionButtonForeground) \ + E_CPONLY(CEF_ColorNewTabPageActiveBackground) \ + E_CPONLY(CEF_ColorNewTabPageAddShortcutBackground) \ + E_CPONLY(CEF_ColorNewTabPageAddShortcutForeground) \ + E_CPONLY(CEF_ColorNewTabPageAttributionForeground) \ + E_CPONLY(CEF_ColorNewTabPageBackground) \ + E_CPONLY(CEF_ColorNewTabPageBackgroundOverride) \ + E_CPONLY(CEF_ColorNewTabPageBorder) \ + E_CPONLY(CEF_ColorNewTabPageButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageButtonBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageButtonForeground) \ + E_CPONLY(CEF_ColorNewTabPageCartModuleDiscountChipBackground) \ + E_CPONLY(CEF_ColorNewTabPageCartModuleDiscountChipForeground) \ + E_CPONLY(CEF_ColorNewTabPageChipBackground) \ + E_CPONLY(CEF_ColorNewTabPageChipForeground) \ + E_CPONLY(CEF_ColorNewTabPageControlBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageControlBackgroundSelected) \ + E_CPONLY(CEF_ColorNewTabPageDialogBackground) \ + E_CPONLY(CEF_ColorNewTabPageDialogBackgroundActive) \ + E_CPONLY(CEF_ColorNewTabPageDialogBorder) \ + E_CPONLY(CEF_ColorNewTabPageDialogBorderSelected) \ + E_CPONLY(CEF_ColorNewTabPageDialogControlBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageDialogForeground) \ + E_CPONLY(CEF_ColorNewTabPageDialogSecondaryForeground) \ + E_CPONLY(CEF_ColorNewTabPageFirstRunBackground) \ + E_CPONLY(CEF_ColorNewTabPageFocusRing) \ + E_CPONLY(CEF_ColorNewTabPageHeader) \ + E_CPONLY(CEF_ColorNewTabPageHistoryClustersModuleItemBackground) \ + E_CPONLY(CEF_ColorNewTabPagePromoBackground) \ + E_CPONLY(CEF_ColorNewTabPagePromoImageBackground) \ + E_CPONLY(CEF_ColorNewTabPageIconButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageIconButtonBackgroundActive) \ + E_CPONLY(CEF_ColorNewTabPageLink) \ + E_CPONLY(CEF_ColorNewTabPageLogo) \ + E_CPONLY(CEF_ColorNewTabPageLogoUnthemedDark) \ + E_CPONLY(CEF_ColorNewTabPageLogoUnthemedLight) \ + E_CPONLY(CEF_ColorNewTabPageMenuInnerShadow) \ + E_CPONLY(CEF_ColorNewTabPageMenuOuterShadow) \ + E_CPONLY(CEF_ColorNewTabPageMicBorderColor) \ + E_CPONLY(CEF_ColorNewTabPageMicIconColor) \ + E_CPONLY(CEF_ColorNewTabPageModuleControlBorder) \ + E_CPONLY(CEF_ColorNewTabPageModuleContextMenuDivider) \ + E_CPONLY(CEF_ColorNewTabPageModuleBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleCalendarEventTimeStatusBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleCalendarAttachmentScrollbarThumb) \ + E_CPONLY(CEF_ColorNewTabPageModuleCalendarDividerColor) \ + E_CPONLY(CEF_ColorNewTabPageModuleIconBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleElementDivider) \ + E_CPONLY(CEF_ColorNewTabPageModuleIconContainerBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleItemBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleItemBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageModuleScrollButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageModuleScrollButtonBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageMostVisitedForeground) \ + E_CPONLY(CEF_ColorNewTabPageMostVisitedTileBackground) \ + E_CPONLY(CEF_ColorNewTabPageMostVisitedTileBackgroundThemed) \ + E_CPONLY(CEF_ColorNewTabPageMostVisitedTileBackgroundUnthemed) \ + E_CPONLY(CEF_ColorNewTabPageOnThemeForeground) \ + E_CPONLY(CEF_ColorNewTabPageOverlayBackground) \ + E_CPONLY(CEF_ColorNewTabPageOverlayForeground) \ + E_CPONLY(CEF_ColorNewTabPageOverlaySecondaryForeground) \ + E_CPONLY(CEF_ColorNewTabPagePrimaryForeground) \ + E_CPONLY(CEF_ColorNewTabPageSearchBoxBackground) \ + E_CPONLY(CEF_ColorNewTabPageSearchBoxBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageSearchBoxResultsTextDimmedSelected) \ + E_CPONLY(CEF_ColorNewTabPageSecondaryForeground) \ + E_CPONLY(CEF_ColorNewTabPageSectionBorder) \ + E_CPONLY(CEF_ColorNewTabPageSelectedBackground) \ + E_CPONLY(CEF_ColorNewTabPageSelectedBorder) \ + E_CPONLY(CEF_ColorNewTabPageSelectedForeground) \ + E_CPONLY(CEF_ColorNewTabPageTagBackground) \ + E_CPONLY(CEF_ColorNewTabPageText) \ + E_CPONLY(CEF_ColorNewTabPageTextUnthemed) \ + E_CPONLY(CEF_ColorNewTabPageTextLight) \ + E_CPONLY(CEF_ColorNewTabPageWallpaperSearchButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageWallpaperSearchButtonBackgroundHovered) \ + E_CPONLY(CEF_ColorNewTabPageWallpaperSearchButtonForeground) \ + /* New Tab Page Colors for Doodle Share Button. */ \ + E_CPONLY(CEF_ColorNewTabPageDoodleShareButtonBackground) \ + E_CPONLY(CEF_ColorNewTabPageDoodleShareButtonIcon) \ + /* Omnibox colors. */ \ + E_CPONLY(CEF_ColorOmniboxActionIcon) \ + E_CPONLY(CEF_ColorOmniboxActionIconHover) \ + E_CPONLY(CEF_ColorOmniboxAnswerIconGM3Background) \ + E_CPONLY(CEF_ColorOmniboxAnswerIconGM3Foreground) \ + E_CPONLY(CEF_ColorOmniboxBubbleOutline) \ + E_CPONLY(CEF_ColorOmniboxChipInUseActivityIndicatorBackground) \ + E_CPONLY(CEF_ColorOmniboxChipInUseActivityIndicatorForeground) \ + E_CPONLY(CEF_ColorOmniboxChipBackground) \ + E_CPONLY(CEF_ColorOmniboxChipBlockedActivityIndicatorBackground) \ + E_CPONLY(CEF_ColorOmniboxChipBlockedActivityIndicatorForeground) \ + E_CPONLY(CEF_ColorOmniboxChipForegroundLowVisibility) \ + E_CPONLY(CEF_ColorOmniboxChipForegroundNormalVisibility) \ + E_CPONLY(CEF_ColorOmniboxChipInkDropHover) \ + E_CPONLY(CEF_ColorOmniboxChipInkDropRipple) \ + E_CPONLY(CEF_ColorOmniboxChipOnSystemBlockedActivityIndicatorBackground) \ + E_CPONLY(CEF_ColorOmniboxChipOnSystemBlockedActivityIndicatorForeground) \ + E_CPONLY(CEF_ColorOmniboxIconBackground) \ + E_CPONLY(CEF_ColorOmniboxIconBackgroundTonal) \ + E_CPONLY(CEF_ColorOmniboxIconForeground) \ + E_CPONLY(CEF_ColorOmniboxIconForegroundTonal) \ + E_CPONLY(CEF_ColorOmniboxIconHover) \ + E_CPONLY(CEF_ColorOmniboxIconPressed) \ + E_CPONLY(CEF_ColorOmniboxIntentChipBackground) \ + E_CPONLY(CEF_ColorOmniboxIntentChipIcon) \ + E_CPONLY(CEF_ColorOmniboxKeywordSelected) \ + E_CPONLY(CEF_ColorOmniboxKeywordSeparator) \ + E_CPONLY(CEF_ColorOmniboxResultsBackground) \ + E_CPONLY(CEF_ColorOmniboxResultsBackgroundHovered) \ + E_CPONLY(CEF_ColorOmniboxResultsBackgroundSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsBackgroundIPH) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonBorder) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonIcon) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonIconSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDrop) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDropRowHovered) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDropRowSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDropSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDropSelectedRowHovered) \ + E_CPONLY(CEF_ColorOmniboxResultsButtonInkDropSelectedRowSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsChipBackground) \ + E_CPONLY(CEF_ColorOmniboxResultsFocusIndicator) \ + E_CPONLY(CEF_ColorOmniboxResultsIcon) \ + E_CPONLY(CEF_ColorOmniboxResultsIconGM3Background) \ + E_CPONLY(CEF_ColorOmniboxResultsIconSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsStarterPackIcon) \ + E_CPONLY(CEF_ColorOmniboxResultsTextAnswer) \ + E_CPONLY(CEF_ColorOmniboxResultsTextDimmed) \ + E_CPONLY(CEF_ColorOmniboxResultsTextDimmedSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsTextNegative) \ + E_CPONLY(CEF_ColorOmniboxResultsTextNegativeSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsTextPositive) \ + E_CPONLY(CEF_ColorOmniboxResultsTextPositiveSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsTextSecondary) \ + E_CPONLY(CEF_ColorOmniboxResultsTextSecondarySelected) \ + E_CPONLY(CEF_ColorOmniboxResultsTextSelected) \ + E_CPONLY(CEF_ColorOmniboxResultsUrl) \ + E_CPONLY(CEF_ColorOmniboxResultsUrlSelected) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipDangerous) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipDangerousBackground) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipDefault) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipInkDropHover) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipInkDropRipple) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipSecure) \ + E_CPONLY(CEF_ColorOmniboxSecurityChipText) \ + E_CPONLY(CEF_ColorOmniboxSelectionBackground) \ + E_CPONLY(CEF_ColorOmniboxSelectionForeground) \ + E_CPONLY(CEF_ColorOmniboxText) \ + E_CPONLY(CEF_ColorOmniboxTextDimmed) \ + /* Page Info colors */ \ + E_CPONLY(CEF_ColorPageInfoChosenObjectDeleteButtonIcon) \ + E_CPONLY(CEF_ColorPageInfoChosenObjectDeleteButtonIconDisabled) \ + E_CPONLY(CEF_ColorPageInfoForeground) \ + E_CPONLY(CEF_ColorPageInfoSubtitleForeground) \ + E_CPONLY(CEF_ColorPageInfoPermissionBlockedOnSystemLevelDisabled) \ + E_CPONLY(CEF_ColorPageInfoPermissionUsedIcon) \ + /* Payments colors. */ \ + E_CPONLY(CEF_ColorPaymentsFeedbackTipBackground) \ + E_CPONLY(CEF_ColorPaymentsFeedbackTipBorder) \ + E_CPONLY(CEF_ColorPaymentsFeedbackTipForeground) \ + E_CPONLY(CEF_ColorPaymentsFeedbackTipIcon) \ + E_CPONLY(CEF_ColorPaymentsGooglePayLogo) \ + E_CPONLY(CEF_ColorPaymentsPromoCodeBackground) \ + E_CPONLY(CEF_ColorPaymentsPromoCodeForeground) \ + E_CPONLY(CEF_ColorPaymentsPromoCodeForegroundHovered) \ + E_CPONLY(CEF_ColorPaymentsPromoCodeForegroundPressed) \ + E_CPONLY(CEF_ColorPaymentsPromoCodeInkDrop) \ + E_CPONLY(CEF_ColorPaymentsRequestBackArrowButtonIcon) \ + E_CPONLY(CEF_ColorPaymentsRequestBackArrowButtonIconDisabled) \ + E_CPONLY(CEF_ColorPaymentsRequestRowBackgroundHighlighted) \ + /* Permission Prompt colors. */ \ + E_CPONLY(CEF_ColorPermissionPromptRequestText) \ + /* Performance Intervention colors. */ \ + E_CPONLY(CEF_ColorPerformanceInterventionButtonIconActive) \ + E_CPONLY(CEF_ColorPerformanceInterventionButtonIconInactive) \ + /* Picture-in-Picture window colors. */ \ + E_CPONLY(CEF_ColorPipWindowBackToTabButtonBackground) \ + E_CPONLY(CEF_ColorPipWindowBackground) \ + E_CPONLY(CEF_ColorPipWindowControlsBackground) \ + E_CPONLY(CEF_ColorPipWindowTopBarBackground) \ + E_CPONLY(CEF_ColorPipWindowForeground) \ + E_CPONLY(CEF_ColorPipWindowForegroundInactive) \ + E_CPONLY(CEF_ColorPipWindowHangUpButtonForeground) \ + E_CPONLY(CEF_ColorPipWindowScrimFull) \ + E_CPONLY(CEF_ColorPipWindowScrimTopGradientStart) \ + E_CPONLY(CEF_ColorPipWindowScrimTopGradientEnd) \ + E_CPONLY(CEF_ColorPipWindowScrimBottomGradientStart) \ + E_CPONLY(CEF_ColorPipWindowScrimBottomGradientEnd) \ + E_CPONLY(CEF_ColorPipWindowSkipAdButtonBackground) \ + E_CPONLY(CEF_ColorPipWindowSkipAdButtonBorder) \ + /* Product Specifications colors */ \ + E_CPONLY(CEF_ColorProductSpecificationsButtonBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsCitationBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsCitationPopupBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsCitationPopupText) \ + E_CPONLY(CEF_ColorProductSpecificationsCitationPopupTitle) \ + E_CPONLY(CEF_ColorProductSpecificationsComparisonTableListBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsDetailChipBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsDisclosureBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsDisclosureForeground) \ + E_CPONLY(CEF_ColorProductSpecificationsDisclosureGradientEnd) \ + E_CPONLY(CEF_ColorProductSpecificationsDisclosureGradientStart) \ + E_CPONLY(CEF_ColorProductSpecificationsDisclosureSummaryBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsDivider) \ + E_CPONLY(CEF_ColorProductSpecificationsGradientIcon) \ + E_CPONLY(CEF_ColorProductSpecificationsHorizontalCarouselScrollbarThumb) \ + E_CPONLY(CEF_ColorProductSpecificationsIcon) \ + E_CPONLY(CEF_ColorProductSpecificationsIconButtonBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsIconButtonHoveredBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsLink) \ + E_CPONLY(CEF_ColorProductSpecificationsPageBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsSummaryBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsSummaryBackgroundDragging) \ + E_CPONLY(CEF_ColorProductSpecificationsTonalButtonBackground) \ + E_CPONLY(CEF_ColorProductSpecificationsTonalButtonIcon) \ + /* Profile Menu colors. */ \ + E_CPONLY(CEF_ColorProfileMenuBackground) \ + E_CPONLY(CEF_ColorProfileMenuHeaderBackground) \ + E_CPONLY(CEF_ColorProfileMenuIdentityInfoBackground) \ + E_CPONLY(CEF_ColorProfileMenuIdentityInfoTitle) \ + E_CPONLY(CEF_ColorProfileMenuIdentityInfoSubtitle) \ + E_CPONLY(CEF_ColorProfileMenuHeaderLabel) \ + E_CPONLY(CEF_ColorProfileMenuIconButton) \ + E_CPONLY(CEF_ColorProfileMenuIconButtonBackground) \ + E_CPONLY(CEF_ColorProfileMenuIconButtonBackgroundHovered) \ + E_CPONLY(CEF_ColorProfileMenuSyncErrorIcon) \ + E_CPONLY(CEF_ColorProfileMenuSyncIcon) \ + E_CPONLY(CEF_ColorProfileMenuSyncInfoBackground) \ + E_CPONLY(CEF_ColorProfileMenuSyncOffIcon) \ + E_CPONLY(CEF_ColorProfileMenuSyncPausedIcon) \ + /* Profiles colors. */ \ + E_CPONLY(CEF_ColorProfilesReauthDialogBorder) \ + /* PWA colors. */ \ + E_CPONLY(CEF_ColorPwaBackground) \ + E_CPONLY(CEF_ColorPwaMenuButtonIcon) \ + E_CPONLY(CEF_ColorPwaSecurityChipForeground) \ + E_CPONLY(CEF_ColorPwaSecurityChipForegroundDangerous) \ + E_CPONLY(CEF_ColorPwaSecurityChipForegroundPolicyCert) \ + E_CPONLY(CEF_ColorPwaSecurityChipForegroundSecure) \ + E_CPONLY(CEF_ColorPwaTabBarBottomSeparator) \ + E_CPONLY(CEF_ColorPwaTabBarTopSeparator) \ + E_CPONLY(CEF_ColorPwaTheme) \ + E_CPONLY(CEF_ColorPwaToolbarBackground) \ + E_CPONLY(CEF_ColorPwaToolbarButtonIcon) \ + E_CPONLY(CEF_ColorPwaToolbarButtonIconDisabled) \ + /* QR code colors. */ \ + E_CPONLY(CEF_ColorQrCodeBackground) \ + E_CPONLY(CEF_ColorQrCodeBorder) \ + /* Quick Answers colors. */ \ + E_CPONLY(CEF_ColorQuickAnswersReportQueryButtonBackground) \ + E_CPONLY(CEF_ColorQuickAnswersReportQueryButtonForeground) \ + /* Read Anything colors. */ \ + E_CPONLY(CEF_ColorReadAnythingBackground) \ + E_CPONLY(CEF_ColorReadAnythingBackgroundBlue) \ + E_CPONLY(CEF_ColorReadAnythingBackgroundDark) \ + E_CPONLY(CEF_ColorReadAnythingBackgroundLight) \ + E_CPONLY(CEF_ColorReadAnythingBackgroundYellow) \ + E_CPONLY(CEF_ColorReadAnythingCurrentReadAloudHighlight) \ + E_CPONLY(CEF_ColorReadAnythingCurrentReadAloudHighlightBlue) \ + E_CPONLY(CEF_ColorReadAnythingCurrentReadAloudHighlightDark) \ + E_CPONLY(CEF_ColorReadAnythingCurrentReadAloudHighlightLight) \ + E_CPONLY(CEF_ColorReadAnythingCurrentReadAloudHighlightYellow) \ + E_CPONLY(CEF_ColorReadAnythingFocusRingBackground) \ + E_CPONLY(CEF_ColorReadAnythingFocusRingBackgroundBlue) \ + E_CPONLY(CEF_ColorReadAnythingFocusRingBackgroundDark) \ + E_CPONLY(CEF_ColorReadAnythingFocusRingBackgroundLight) \ + E_CPONLY(CEF_ColorReadAnythingFocusRingBackgroundYellow) \ + E_CPONLY(CEF_ColorReadAnythingForeground) \ + E_CPONLY(CEF_ColorReadAnythingForegroundBlue) \ + E_CPONLY(CEF_ColorReadAnythingForegroundDark) \ + E_CPONLY(CEF_ColorReadAnythingForegroundLight) \ + E_CPONLY(CEF_ColorReadAnythingForegroundYellow) \ + E_CPONLY(CEF_ColorReadAnythingSeparator) \ + E_CPONLY(CEF_ColorReadAnythingSeparatorBlue) \ + E_CPONLY(CEF_ColorReadAnythingSeparatorDark) \ + E_CPONLY(CEF_ColorReadAnythingSeparatorLight) \ + E_CPONLY(CEF_ColorReadAnythingSeparatorYellow) \ + E_CPONLY(CEF_ColorReadAnythingDropdownBackground) \ + E_CPONLY(CEF_ColorReadAnythingDropdownBackgroundBlue) \ + E_CPONLY(CEF_ColorReadAnythingDropdownBackgroundDark) \ + E_CPONLY(CEF_ColorReadAnythingDropdownBackgroundLight) \ + E_CPONLY(CEF_ColorReadAnythingDropdownBackgroundYellow) \ + E_CPONLY(CEF_ColorReadAnythingDropdownSelected) \ + E_CPONLY(CEF_ColorReadAnythingDropdownSelectedBlue) \ + E_CPONLY(CEF_ColorReadAnythingDropdownSelectedDark) \ + E_CPONLY(CEF_ColorReadAnythingDropdownSelectedLight) \ + E_CPONLY(CEF_ColorReadAnythingDropdownSelectedYellow) \ + E_CPONLY(CEF_ColorReadAnythingTextSelection) \ + E_CPONLY(CEF_ColorReadAnythingTextSelectionBlue) \ + E_CPONLY(CEF_ColorReadAnythingTextSelectionDark) \ + E_CPONLY(CEF_ColorReadAnythingTextSelectionLight) \ + E_CPONLY(CEF_ColorReadAnythingTextSelectionYellow) \ + E_CPONLY(CEF_ColorReadAnythingLinkDefault) \ + E_CPONLY(CEF_ColorReadAnythingLinkDefaultBlue) \ + E_CPONLY(CEF_ColorReadAnythingLinkDefaultDark) \ + E_CPONLY(CEF_ColorReadAnythingLinkDefaultLight) \ + E_CPONLY(CEF_ColorReadAnythingLinkDefaultYellow) \ + E_CPONLY(CEF_ColorReadAnythingLinkVisited) \ + E_CPONLY(CEF_ColorReadAnythingLinkVisitedBlue) \ + E_CPONLY(CEF_ColorReadAnythingLinkVisitedDark) \ + E_CPONLY(CEF_ColorReadAnythingLinkVisitedLight) \ + E_CPONLY(CEF_ColorReadAnythingLinkVisitedYellow) \ + E_CPONLY(CEF_ColorReadAnythingPreviousReadAloudHighlight) \ + E_CPONLY(CEF_ColorReadAnythingPreviousReadAloudHighlightBlue) \ + E_CPONLY(CEF_ColorReadAnythingPreviousReadAloudHighlightDark) \ + E_CPONLY(CEF_ColorReadAnythingPreviousReadAloudHighlightLight) \ + E_CPONLY(CEF_ColorReadAnythingPreviousReadAloudHighlightYellow) \ + /* Realbox colors. */ \ + E_CPONLY(CEF_ColorSearchboxAnswerIconBackground) \ + E_CPONLY(CEF_ColorSearchboxAnswerIconForeground) \ + E_CPONLY(CEF_ColorSearchboxBackground) \ + E_CPONLY(CEF_ColorSearchboxBackgroundHovered) \ + E_CPONLY(CEF_ColorSearchboxBorder) \ + E_CPONLY(CEF_ColorSearchboxForeground) \ + E_CPONLY(CEF_ColorSearchboxLensVoiceIconBackground) \ + E_CPONLY(CEF_ColorSearchboxPlaceholder) \ + E_CPONLY(CEF_ColorSearchboxResultsActionChip) \ + E_CPONLY(CEF_ColorSearchboxResultsActionChipIcon) \ + E_CPONLY(CEF_ColorSearchboxResultsActionChipFocusOutline) \ + E_CPONLY(CEF_ColorSearchboxResultsBackground) \ + E_CPONLY(CEF_ColorSearchboxResultsBackgroundHovered) \ + E_CPONLY(CEF_ColorSearchboxResultsButtonHover) \ + E_CPONLY(CEF_ColorSearchboxResultsDimSelected) \ + E_CPONLY(CEF_ColorSearchboxResultsFocusIndicator) \ + E_CPONLY(CEF_ColorSearchboxResultsForeground) \ + E_CPONLY(CEF_ColorSearchboxResultsForegroundDimmed) \ + E_CPONLY(CEF_ColorSearchboxResultsIcon) \ + E_CPONLY(CEF_ColorSearchboxResultsIconFocusedOutline) \ + E_CPONLY(CEF_ColorSearchboxResultsIconSelected) \ + E_CPONLY(CEF_ColorSearchboxResultsUrl) \ + E_CPONLY(CEF_ColorSearchboxResultsUrlSelected) \ + E_CPONLY(CEF_ColorSearchboxSearchIconBackground) \ + E_CPONLY(CEF_ColorSearchboxSelectionBackground) \ + E_CPONLY(CEF_ColorSearchboxSelectionForeground) \ + E_CPONLY(CEF_ColorSearchboxShadow) \ + /* The colors used for saved tab group chips on the bookmark bar. */ \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundGrey) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundBlue) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundRed) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundYellow) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundGreen) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundPink) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundPurple) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundCyan) \ + E_CPONLY(CEF_ColorSavedTabGroupForegroundOrange) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineGrey) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineBlue) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineRed) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineYellow) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineGreen) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlinePink) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlinePurple) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineCyan) \ + E_CPONLY(CEF_ColorSavedTabGroupOutlineOrange) \ + /* Screenshot captured bubble colors. */ \ + E_CPONLY(CEF_ColorScreenshotCapturedImageBackground) \ + E_CPONLY(CEF_ColorScreenshotCapturedImageBorder) \ + /* Share-this-tab dialog colors. */ \ + E_CPONLY(CEF_ColorShareThisTabAudioToggleBackground) \ + E_CPONLY(CEF_ColorShareThisTabSourceViewBorder) \ + /* The color used in the Tab Group Sharing Recent Activity dialog */ \ + E_CPONLY(CEF_ColorSharingRecentActivityDialogFaviconContainer) \ + /* Side panel colors. */ \ + E_CPONLY(CEF_ColorSidePanelBackground) \ + E_CPONLY(CEF_ColorSidePanelBadgeBackground) \ + E_CPONLY(CEF_ColorSidePanelBadgeBackgroundUpdated) \ + E_CPONLY(CEF_ColorSidePanelBadgeForeground) \ + E_CPONLY(CEF_ColorSidePanelBadgeForegroundUpdated) \ + E_CPONLY(CEF_ColorSidePanelBookmarksSelectedFolderBackground) \ + E_CPONLY(CEF_ColorSidePanelBookmarksSelectedFolderForeground) \ + E_CPONLY(CEF_ColorSidePanelBookmarksSelectedFolderIcon) \ + E_CPONLY(CEF_ColorSidePanelCardBackground) \ + E_CPONLY(CEF_ColorSidePanelCardPrimaryForeground) \ + E_CPONLY(CEF_ColorSidePanelCardSecondaryForeground) \ + E_CPONLY(CEF_ColorSidePanelCommerceGraphAxis) \ + E_CPONLY(CEF_ColorSidePanelCommerceGraphBubbleBackground) \ + E_CPONLY(CEF_ColorSidePanelCommerceGraphLine) \ + E_CPONLY(CEF_ColorSidePanelContentAreaSeparator) \ + E_CPONLY(CEF_ColorSidePanelContentBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeClassicChromeTileBorder) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeCornerNtpBorder) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeCustomOptionBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeCustomOptionForeground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpActiveTab) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpArrowsAndRefreshButton) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpBorder) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpCaron) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpCaronContainer) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpChromeLogo) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpOmnibox) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeMiniNtpTabStripBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeThemeBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeThemeCheckmarkBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeThemeCheckmarkForeground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeThemeSnapshotBackground) \ + E_CPONLY(CEF_ColorSidePanelCustomizeChromeWebStoreBorder) \ + E_CPONLY(CEF_ColorSidePanelDialogBackground) \ + E_CPONLY(CEF_ColorSidePanelDialogDivider) \ + E_CPONLY(CEF_ColorSidePanelDialogPrimaryForeground) \ + E_CPONLY(CEF_ColorSidePanelDialogSecondaryForeground) \ + E_CPONLY(CEF_ColorSidePanelDivider) \ + E_CPONLY(CEF_ColorSidePanelEditFooterBorder) \ + E_CPONLY(CEF_ColorSidePanelComboboxEntryIcon) \ + E_CPONLY(CEF_ColorSidePanelComboboxEntryTitle) \ + E_CPONLY(CEF_ColorSidePanelEntryIcon) \ + E_CPONLY(CEF_ColorSidePanelEntryDropdownIcon) \ + E_CPONLY(CEF_ColorSidePanelEntryTitle) \ + E_CPONLY(CEF_ColorSidePanelFilterChipBorder) \ + E_CPONLY(CEF_ColorSidePanelFilterChipForeground) \ + E_CPONLY(CEF_ColorSidePanelFilterChipForegroundSelected) \ + E_CPONLY(CEF_ColorSidePanelFilterChipIcon) \ + E_CPONLY(CEF_ColorSidePanelFilterChipIconSelected) \ + E_CPONLY(CEF_ColorSidePanelFilterChipBackgroundHover) \ + E_CPONLY(CEF_ColorSidePanelFilterChipBackgroundSelected) \ + E_CPONLY(CEF_ColorSidePanelHeaderButtonIcon) \ + E_CPONLY(CEF_ColorSidePanelHeaderButtonIconDisabled) \ + E_CPONLY(CEF_ColorSidePanelHoverResizeAreaHandle) \ + E_CPONLY(CEF_ColorSidePanelResizeAreaHandle) \ + E_CPONLY(CEF_ColorSidePanelScrollbarThumb) \ + E_CPONLY(CEF_ColorSidePanelTextfieldBorder) \ + E_CPONLY(CEF_ColorSidePanelWallpaperSearchTileBackground) \ + E_CPONLY(CEF_ColorSidePanelWallpaperSearchErrorButtonBackground) \ + E_CPONLY(CEF_ColorSidePanelWallpaperSearchErrorButtonText) \ + E_CPONLY(CEF_ColorSidePanelWallpaperSearchInspirationDescriptors) \ + /* Star rating view colors. */ \ + E_CPONLY(CEF_ColorStarRatingFullIcon) \ + E_CPONLY(CEF_ColorStarRatingEmptyIcon) \ + /* Status bubble colors. */ \ + E_CPONLY(CEF_ColorStatusBubbleBackgroundFrameActive) \ + E_CPONLY(CEF_ColorStatusBubbleBackgroundFrameInactive) \ + E_CPONLY(CEF_ColorStatusBubbleForegroundFrameActive) \ + E_CPONLY(CEF_ColorStatusBubbleForegroundFrameInactive) \ + E_CPONLY(CEF_ColorStatusBubbleShadow) \ + /* Tab alert colors in tab strip. */ \ + E_CPONLY(CEF_ColorTabAlertAudioPlayingActiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertAudioPlayingActiveFrameInactive) \ + E_CPONLY(CEF_ColorTabAlertAudioPlayingInactiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertAudioPlayingInactiveFrameInactive) \ + E_CPONLY(CEF_ColorTabAlertMediaRecordingActiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertMediaRecordingActiveFrameInactive) \ + E_CPONLY(CEF_ColorTabAlertMediaRecordingInactiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertMediaRecordingInactiveFrameInactive) \ + E_CPONLY(CEF_ColorTabAlertPipPlayingActiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertPipPlayingActiveFrameInactive) \ + E_CPONLY(CEF_ColorTabAlertPipPlayingInactiveFrameActive) \ + E_CPONLY(CEF_ColorTabAlertPipPlayingInactiveFrameInactive) \ + /* Tab alert colors in hover cards */ \ + E_CPONLY(CEF_ColorHoverCardTabAlertMediaRecordingIcon) \ + E_CPONLY(CEF_ColorHoverCardTabAlertPipPlayingIcon) \ + E_CPONLY(CEF_ColorHoverCardTabAlertAudioPlayingIcon) \ + /* Tab colors. */ \ + E_CPONLY(CEF_ColorTabBackgroundActiveFrameActive) \ + E_CPONLY(CEF_ColorTabBackgroundActiveFrameInactive) \ + E_CPONLY(CEF_ColorTabBackgroundInactiveFrameActive) \ + E_CPONLY(CEF_ColorTabBackgroundInactiveFrameInactive) \ + E_CPONLY(CEF_ColorTabBackgroundInactiveHoverFrameActive) \ + E_CPONLY(CEF_ColorTabBackgroundInactiveHoverFrameInactive) \ + E_CPONLY(CEF_ColorTabBackgroundSelectedFrameActive) \ + E_CPONLY(CEF_ColorTabBackgroundSelectedFrameInactive) \ + E_CPONLY(CEF_ColorTabBackgroundSelectedHoverFrameActive) \ + E_CPONLY(CEF_ColorTabBackgroundSelectedHoverFrameInactive) \ + E_CPONLY(CEF_ColorTabCloseButtonFocusRingActive) \ + E_CPONLY(CEF_ColorTabCloseButtonFocusRingInactive) \ + E_CPONLY(CEF_ColorTabDiscardRingFrameActive) \ + E_CPONLY(CEF_ColorTabDiscardRingFrameInactive) \ + E_CPONLY(CEF_ColorTabFocusRingActive) \ + E_CPONLY(CEF_ColorTabFocusRingInactive) \ + E_CPONLY(CEF_ColorTabForegroundActiveFrameActive) \ + E_CPONLY(CEF_ColorTabForegroundActiveFrameInactive) \ + E_CPONLY(CEF_ColorTabForegroundInactiveFrameActive) \ + E_CPONLY(CEF_ColorTabForegroundInactiveFrameInactive) \ + E_CPONLY(CEF_ColorTabDividerFrameActive) \ + E_CPONLY(CEF_ColorTabDividerFrameInactive) \ + E_CPONLY(CEF_ColorTabHoverCardBackground) \ + E_CPONLY(CEF_ColorTabHoverCardForeground) \ + E_CPONLY(CEF_ColorTabHoverCardSecondaryText) \ + /* Tab group bookmark bar colors. */ \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarGrey) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarBlue) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarRed) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarYellow) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarGreen) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarPink) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarPurple) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarCyan) \ + E_CPONLY(CEF_ColorTabGroupBookmarkBarOrange) \ + /* The colors used for tab groups in the context submenu. */ \ + E_CPONLY(CEF_ColorTabGroupContextMenuBlue) \ + E_CPONLY(CEF_ColorTabGroupContextMenuCyan) \ + E_CPONLY(CEF_ColorTabGroupContextMenuGreen) \ + E_CPONLY(CEF_ColorTabGroupContextMenuGrey) \ + E_CPONLY(CEF_ColorTabGroupContextMenuOrange) \ + E_CPONLY(CEF_ColorTabGroupContextMenuPink) \ + E_CPONLY(CEF_ColorTabGroupContextMenuPurple) \ + E_CPONLY(CEF_ColorTabGroupContextMenuRed) \ + E_CPONLY(CEF_ColorTabGroupContextMenuYellow) \ + /* The colors used for tab groups in the bubble dialog view. */ \ + E_CPONLY(CEF_ColorTabGroupDialogGrey) \ + E_CPONLY(CEF_ColorTabGroupDialogBlue) \ + E_CPONLY(CEF_ColorTabGroupDialogRed) \ + E_CPONLY(CEF_ColorTabGroupDialogYellow) \ + E_CPONLY(CEF_ColorTabGroupDialogGreen) \ + E_CPONLY(CEF_ColorTabGroupDialogPink) \ + E_CPONLY(CEF_ColorTabGroupDialogPurple) \ + E_CPONLY(CEF_ColorTabGroupDialogCyan) \ + E_CPONLY(CEF_ColorTabGroupDialogOrange) \ + E_CPONLY(CEF_ColorTabGroupDialogIconEnabled) \ + /* The colors used for tab groups in the tabstrip. */ \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveGrey) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveBlue) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveRed) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveYellow) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveGreen) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActivePink) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActivePurple) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveCyan) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameActiveOrange) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveGrey) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveBlue) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveRed) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveYellow) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveGreen) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactivePink) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactivePurple) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveCyan) \ + E_CPONLY(CEF_ColorTabGroupTabStripFrameInactiveOrange) \ + E_CPONLY(CEF_ColorTabStrokeFrameActive) \ + E_CPONLY(CEF_ColorTabStrokeFrameInactive) \ + E_CPONLY(CEF_ColorTabstripLoadingProgressBackground) \ + E_CPONLY(CEF_ColorTabstripLoadingProgressForeground) \ + E_CPONLY(CEF_ColorTabstripScrollContainerShadow) \ + E_CPONLY(CEF_ColorTabThrobber) \ + E_CPONLY(CEF_ColorTabThrobberPreconnect) \ + /* Tab Search colors */ \ + E_CPONLY(CEF_ColorTabSearchButtonBackground) \ + E_CPONLY(CEF_ColorTabSearchButtonIcon) \ + E_CPONLY(CEF_ColorTabSearchButtonIconBackground) \ + E_CPONLY(CEF_ColorTabSearchBackground) \ + E_CPONLY(CEF_ColorTabSearchButtonCRForegroundFrameActive) \ + E_CPONLY(CEF_ColorTabSearchButtonCRForegroundFrameInactive) \ + E_CPONLY(CEF_ColorTabSearchCardBackground) \ + E_CPONLY(CEF_ColorTabSearchDisabled) \ + E_CPONLY(CEF_ColorTabSearchDisabledContainer) \ + E_CPONLY(CEF_ColorTabSearchDivider) \ + E_CPONLY(CEF_ColorTabSearchFooterBackground) \ + E_CPONLY(CEF_ColorTabSearchImageTabContentBottom) \ + E_CPONLY(CEF_ColorTabSearchImageTabContentTop) \ + E_CPONLY(CEF_ColorTabSearchImageTabText) \ + E_CPONLY(CEF_ColorTabSearchImageWindowFrame) \ + E_CPONLY(CEF_ColorTabSearchMediaIcon) \ + E_CPONLY(CEF_ColorTabSearchMediaRecordingIcon) \ + E_CPONLY(CEF_ColorTabSearchMediaGlicActiveIcon) \ + E_CPONLY(CEF_ColorTabSearchPrimaryForeground) \ + E_CPONLY(CEF_ColorTabSearchSecondaryForeground) \ + E_CPONLY(CEF_ColorTabSearchSelected) \ + E_CPONLY(CEF_ColorTabSearchScrollbarThumb) \ + /* Task Manager colors. */ \ + E_CPONLY(CEF_ColorTaskManagerBackground) \ + E_CPONLY(CEF_ColorTaskManagerTableBackground) \ + E_CPONLY(CEF_ColorTaskManagerTableBackgroundAlternate) \ + E_CPONLY(CEF_ColorTaskManagerTableBackgroundSelectedFocused) \ + E_CPONLY(CEF_ColorTaskManagerTableBackgroundSelectedUnfocused) \ + E_CPONLY(CEF_ColorTaskManagerTableHeaderBackground) \ + E_CPONLY(CEF_ColorTaskManagerSearchBarBackground) \ + E_CPONLY(CEF_ColorTaskManagerSearchBarHoverOn) \ + E_CPONLY(CEF_ColorTaskManagerSearchBarTransparent) \ + E_CPONLY(CEF_ColorTaskManagerSearchBarPlaceholderText) \ + /* Thumbnail tab colors. */ \ + E_CPONLY(CEF_ColorThumbnailTabBackground) \ + E_CPONLY(CEF_ColorThumbnailTabForeground) \ + E_CPONLY(CEF_ColorThumbnailTabStripBackgroundActive) \ + E_CPONLY(CEF_ColorThumbnailTabStripBackgroundInactive) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveGrey) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveBlue) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveRed) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveYellow) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveGreen) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActivePink) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActivePurple) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveCyan) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameActiveOrange) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveGrey) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveBlue) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveRed) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveYellow) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveGreen) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactivePink) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactivePurple) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveCyan) \ + E_CPONLY(CEF_ColorThumbnailTabStripTabGroupFrameInactiveOrange) \ + /* Toolbar colors. */ \ + E_CPONLY(CEF_ColorToolbar) \ + E_CPONLY(CEF_ColorToolbarBackgroundSubtleEmphasis) \ + E_CPONLY(CEF_ColorToolbarBackgroundSubtleEmphasisHovered) \ + E_CPONLY(CEF_ColorToolbarButtonBackgroundHighlightedDefault) \ + E_CPONLY(CEF_ColorToolbarButtonBorder) \ + E_CPONLY(CEF_ColorToolbarButtonIcon) \ + E_CPONLY(CEF_ColorToolbarButtonIconDefault) \ + E_CPONLY(CEF_ColorToolbarButtonIconDisabled) \ + E_CPONLY(CEF_ColorToolbarButtonIconHovered) \ + E_CPONLY(CEF_ColorToolbarButtonIconInactive) \ + E_CPONLY(CEF_ColorToolbarButtonIconPressed) \ + E_CPONLY(CEF_ColorToolbarButtonText) \ + E_CPONLY(CEF_ColorToolbarContentAreaSeparator) \ + E_CPONLY(CEF_ColorToolbarExtensionSeparatorDisabled) \ + E_CPONLY(CEF_ColorToolbarExtensionSeparatorEnabled) \ + E_CPONLY(CEF_ColorToolbarFeaturePromoHighlight) \ + E_CPONLY(CEF_ColorToolbarIconContainerBorder) \ + E_CPONLY(CEF_ColorToolbarInkDrop) \ + E_CPONLY(CEF_ColorToolbarInkDropHover) \ + E_CPONLY(CEF_ColorToolbarInkDropRipple) \ + E_CPONLY(CEF_ColorToolbarSeparator) \ + E_CPONLY(CEF_ColorToolbarActionItemEngaged) \ + E_CPONLY(CEF_ColorToolbarSeparatorDefault) \ + E_CPONLY(CEF_ColorToolbarText) \ + E_CPONLY(CEF_ColorToolbarTextDefault) \ + E_CPONLY(CEF_ColorToolbarTextDisabled) \ + E_CPONLY(CEF_ColorToolbarTextDisabledDefault) \ + E_CPONLY(CEF_ColorToolbarTopSeparatorFrameActive) \ + E_CPONLY(CEF_ColorToolbarTopSeparatorFrameInactive) \ + /* WebAuthn colors. */ \ + E_CPONLY(CEF_ColorWebAuthnHoverButtonForeground) \ + E_CPONLY(CEF_ColorWebAuthnHoverButtonForegroundDisabled) \ + E_CPONLY(CEF_ColorWebAuthnBackArrowButtonIcon) \ + E_CPONLY(CEF_ColorWebAuthnBackArrowButtonIconDisabled) \ + E_CPONLY(CEF_ColorWebAuthnIconColor) \ + E_CPONLY(CEF_ColorWebAuthnIconColorDisabled) \ + E_CPONLY(CEF_ColorWebAuthnPinTextfieldBottomBorder) \ + E_CPONLY(CEF_ColorWebAuthnProgressRingBackground) \ + E_CPONLY(CEF_ColorWebAuthnProgressRingForeground) \ + /* Web contents colors. */ \ + E_CPONLY(CEF_ColorWebContentsBackground) \ + E_CPONLY(CEF_ColorWebContentsBackgroundLetterboxing) \ + /* WebUI Tab Strip colors. */ \ + E_CPONLY(CEF_ColorWebUiTabStripBackground) \ + E_CPONLY(CEF_ColorWebUiTabStripFocusOutline) \ + E_CPONLY(CEF_ColorWebUiTabStripIndicatorCapturing) \ + E_CPONLY(CEF_ColorWebUiTabStripIndicatorPip) \ + E_CPONLY(CEF_ColorWebUiTabStripIndicatorRecording) \ + E_CPONLY(CEF_ColorWebUiTabStripScrollbarThumb) \ + E_CPONLY(CEF_ColorWebUiTabStripTabActiveTitleBackground) \ + E_CPONLY(CEF_ColorWebUiTabStripTabActiveTitleContent) \ + E_CPONLY(CEF_ColorWebUiTabStripTabBackground) \ + E_CPONLY(CEF_ColorWebUiTabStripTabBlocked) \ + E_CPONLY(CEF_ColorWebUiTabStripTabLoadingSpinning) \ + E_CPONLY(CEF_ColorWebUiTabStripTabSeparator) \ + E_CPONLY(CEF_ColorWebUiTabStripTabText) \ + E_CPONLY(CEF_ColorWebUiTabStripTabWaitingSpinning) \ + /* Window control button background colors. */ \ + E_CPONLY(CEF_ColorWindowControlButtonBackgroundActive) \ + E_CPONLY(CEF_ColorWindowControlButtonBackgroundInactive) \ + +#if defined(OS_CHROMEOS) +#define CHROME_PLATFORM_SPECIFIC_COLOR_IDS \ + /* Borealis colors. */ \ + E_CPONLY(CEF_ColorBorealisSplashScreenBackground) \ + E_CPONLY(CEF_ColorBorealisSplashScreenForeground) \ + /* Caption colors. */ \ + E_CPONLY(CEF_ColorCaptionForeground) \ + /* Sharesheet colors. */ \ + E_CPONLY(CEF_ColorSharesheetTargetButtonIconShadow) +#elif defined(OS_WIN) +#define CHROME_PLATFORM_SPECIFIC_COLOR_IDS \ + /* The colors of the 1px border around the window on Windows 10. */ \ + E_CPONLY(CEF_ColorAccentBorderActive) \ + E_CPONLY(CEF_ColorAccentBorderInactive) \ + /* Caption colors. */ \ + E_CPONLY(CEF_ColorCaptionButtonForegroundActive) \ + E_CPONLY(CEF_ColorCaptionButtonForegroundInactive) \ + E_CPONLY(CEF_ColorCaptionCloseButtonBackgroundHovered) \ + E_CPONLY(CEF_ColorCaptionCloseButtonForegroundHovered) \ + E_CPONLY(CEF_ColorCaptionForegroundActive) \ + E_CPONLY(CEF_ColorCaptionForegroundInactive) \ + /* Tab search caption button colors. */ \ + E_CPONLY(CEF_ColorTabSearchCaptionButtonFocusRing) +#else +#define CHROME_PLATFORM_SPECIFIC_COLOR_IDS +#endif // defined(OS_WIN) + +#define CHROME_COLOR_IDS \ + COMMON_CHROME_COLOR_IDS CHROME_PLATFORM_SPECIFIC_COLOR_IDS + +#include "include/base/internal/cef_color_id_macros.inc" + +#ifdef __cplusplus +extern "C" { +#endif + +/// +/// All input, intermediary, and output colors known to CEF/Chromium. +/// Clients can optionally extend this enum with additional values. +/// Clients define enum values from CEF_ChromeColorsEnd. Values named +/// beginning with "CEF_Color" represent the actual colors; the rest are +/// markers. +/// +typedef enum { + CEF_UiColorsStart = 0, + + COLOR_IDS + + CEF_UiColorsEnd, + + CEF_ComponentsColorsStart = CEF_UiColorsEnd, + + COMPONENTS_COLOR_IDS + + CEF_ComponentsColorsEnd, + + CEF_ChromeColorsStart = CEF_ComponentsColorsEnd, + + CHROME_COLOR_IDS + + // Clients must start custom color IDs from this value. + CEF_ChromeColorsEnd, + + // Clients must not assign IDs larger than this value. This is used to + // verify that color IDs and color set IDs are not interchanged. + CEF_UiColorsLast = 0xffff +} cef_color_id_t; + +#ifdef __cplusplus +} +#endif + +// Note that this second include is not redundant. The second inclusion of the +// .inc file serves to undefine the macros the first inclusion defined. +#include "include/base/internal/cef_color_id_macros.inc" + +// Undefine the macros that were defined in this file. +#undef CHROMEOS_ASH_COLOR_IDS +#undef CHROME_COLOR_IDS +#undef CHROME_PLATFORM_SPECIFIC_COLOR_IDS +#undef COLOR_IDS +#undef COMMON_CHROME_COLOR_IDS +#undef COMMON_COMPONENTS_COLOR_IDS +#undef COMPONENTS_COLOR_IDS +#undef CROSS_PLATFORM_COLOR_IDS +#undef PLATFORM_SPECIFIC_COLOR_IDS + +#endif // CEF_INCLUDE_CEF_COLOR_IDS_H_ diff --git a/CefGlue.Interop.Gen/include/cef_command_handler.h b/CefGlue.Interop.Gen/include/cef_command_handler.h index eed05a0a..ea8d59d9 100644 --- a/CefGlue.Interop.Gen/include/cef_command_handler.h +++ b/CefGlue.Interop.Gen/include/cef_command_handler.h @@ -50,12 +50,13 @@ class CefCommandHandler : public virtual CefBaseRefCounted { public: /// /// Called to execute a Chrome command triggered via menu selection or - /// keyboard shortcut. Values for |command_id| can be found in the - /// cef_command_ids.h file. |disposition| provides information about the - /// intended command target. Return true if the command was handled or false - /// for the default implementation. For context menu commands this will be - /// called after CefContextMenuHandler::OnContextMenuCommand. Only used with - /// the Chrome runtime. + /// keyboard shortcut. Use the cef_id_for_command_id_name() + /// function for version-safe mapping of command IDC names from + /// cef_command_ids.h to version-specific numerical |command_id| values. + /// |disposition| provides information about the intended command target. + /// Return true if the command was handled or false for the default + /// implementation. For context menu commands this will be called after + /// CefContextMenuHandler::OnContextMenuCommand. Only used with Chrome style. /// /*--cef()--*/ virtual bool OnChromeCommand(CefRefPtr browser, @@ -65,10 +66,11 @@ class CefCommandHandler : public virtual CefBaseRefCounted { } /// - /// Called to check if a Chrome app menu item should be visible. Values for - /// |command_id| can be found in the cef_command_ids.h file. Only called for - /// menu items that would be visible by default. Only used with the Chrome - /// runtime. + /// Called to check if a Chrome app menu item should be visible. Use the + /// cef_id_for_command_id_name() function for version-safe mapping of command + /// IDC names from cef_command_ids.h to version-specific numerical + /// |command_id| values. Only called for menu items that would be visible by + /// default. Only used with Chrome style. /// /*--cef()--*/ virtual bool IsChromeAppMenuItemVisible(CefRefPtr browser, @@ -77,10 +79,11 @@ class CefCommandHandler : public virtual CefBaseRefCounted { } /// - /// Called to check if a Chrome app menu item should be enabled. Values for - /// |command_id| can be found in the cef_command_ids.h file. Only called for - /// menu items that would be enabled by default. Only used with the Chrome - /// runtime. + /// Called to check if a Chrome app menu item should be enabled. Use the + /// cef_id_for_command_id_name() function for version-safe mapping of command + /// IDC names from cef_command_ids.h to version-specific numerical + /// |command_id| values. Only called for menu items that would be enabled by + /// default. Only used with Chrome style. /// /*--cef()--*/ virtual bool IsChromeAppMenuItemEnabled(CefRefPtr browser, @@ -91,7 +94,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted { /// /// Called during browser creation to check if a Chrome page action icon /// should be visible. Only called for icons that would be visible by default. - /// Only used with the Chrome runtime. + /// Only used with Chrome style. /// /*--cef(optional_param=browser)--*/ virtual bool IsChromePageActionIconVisible( @@ -102,7 +105,7 @@ class CefCommandHandler : public virtual CefBaseRefCounted { /// /// Called during browser creation to check if a Chrome toolbar button /// should be visible. Only called for buttons that would be visible by - /// default. Only used with the Chrome runtime. + /// default. Only used with Chrome style. /// /*--cef(optional_param=browser)--*/ virtual bool IsChromeToolbarButtonVisible( diff --git a/CefGlue.Interop.Gen/include/cef_command_ids.h b/CefGlue.Interop.Gen/include/cef_command_ids.h index f084d8fc..4d9097c5 100644 --- a/CefGlue.Interop.Gen/include/cef_command_ids.h +++ b/CefGlue.Interop.Gen/include/cef_command_ids.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved. +// Copyright (c) 2025 Marshall A. Greenblatt. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -117,11 +117,9 @@ #define IDC_WEBAUTHN 35027 #define IDC_SHARING_HUB 35028 #define IDC_SHARING_HUB_MENU 35029 -#define IDC_VIRTUAL_CARD_MANUAL_FALLBACK 35030 +#define IDC_FILLED_CARD_INFORMATION 35030 #define IDC_SHARING_HUB_SCREENSHOT 35031 #define IDC_VIRTUAL_CARD_ENROLL 35032 -#define IDC_FOLLOW 35033 -#define IDC_UNFOLLOW 35034 #define IDC_SAVE_IBAN_FOR_PAGE 35035 #define IDC_AUTOFILL_MANDATORY_REAUTH 35036 #define IDC_PROFILE_MENU_IN_APP_MENU 35039 @@ -129,6 +127,9 @@ #define IDC_SHOW_PASSWORD_MANAGER 35041 #define IDC_SHOW_PAYMENT_METHODS 35042 #define IDC_SHOW_ADDRESSES 35043 +#define IDC_ORGANIZE_TABS 35044 +#define IDC_CREATE_NEW_TAB_GROUP 35045 +#define IDC_DECLUTTER_TABS 35046 #define IDC_MUTE_TARGET_SITE 35050 #define IDC_PIN_TARGET_TAB 35051 #define IDC_GROUP_TARGET_TAB 35052 @@ -190,8 +191,10 @@ #define IDC_MANAGE_EXTENSIONS 40022 #define IDC_DEV_TOOLS_INSPECT 40023 #define IDC_UPGRADE_DIALOG 40024 +#define IDC_SHOW_HISTORY_CLUSTERS_SIDE_PANEL 40025 #define IDC_PROFILING_ENABLED 40028 #define IDC_BOOKMARKS_MENU 40029 +#define IDC_SAVED_TAB_GROUPS_MENU 40030 #define IDC_EXTENSION_ERRORS 40031 #define IDC_SHOW_SETTINGS_CHANGE_FIRST 40033 #define IDC_SHOW_SETTINGS_CHANGE_LAST 40133 @@ -220,10 +223,8 @@ #define IDC_CLOSE_SIGN_IN_PROMO 40258 #define IDC_SHOW_FULL_URLS 40259 #define IDC_CARET_BROWSING_TOGGLE 40260 -#define IDC_TOGGLE_QUICK_COMMANDS 40261 #define IDC_CHROME_TIPS 40263 #define IDC_CHROME_WHATS_NEW 40264 -#define IDC_LACROS_DATA_MIGRATION 40265 #define IDC_PERFORMANCE 40266 #define IDC_EXTENSIONS_SUBMENU 40267 #define IDC_EXTENSIONS_SUBMENU_MANAGE_EXTENSIONS 40268 @@ -231,11 +232,25 @@ #define IDC_READING_LIST_MENU 40270 #define IDC_READING_LIST_MENU_ADD_TAB 40271 #define IDC_READING_LIST_MENU_SHOW_UI 40272 +#define IDC_SHOW_READING_MODE_SIDE_PANEL 40273 #define IDC_SHOW_BOOKMARK_SIDE_PANEL 40274 -#define IDC_SHOW_SEARCH_COMPANION 40275 #define IDC_SHOW_CHROME_LABS 40276 #define IDC_RECENT_TABS_LOGIN_FOR_DEVICE_TABS 40277 #define IDC_OPEN_RECENT_TAB 40278 +#define IDC_OPEN_SAFETY_HUB 40279 +#define IDC_SAFETY_HUB_SHOW_PASSWORD_CHECKUP 40280 +#define IDC_SAFETY_HUB_MANAGE_EXTENSIONS 40281 +#define IDC_SHOW_GOOGLE_LENS_SHORTCUT 40282 +#define IDC_SHOW_CUSTOMIZE_CHROME_SIDE_PANEL 40283 +#define IDC_SHOW_CUSTOMIZE_CHROME_TOOLBAR 40284 +#define IDC_TASK_MANAGER_APP_MENU 40285 +#define IDC_TASK_MANAGER_SHORTCUT 40286 +#define IDC_TASK_MANAGER_CONTEXT_MENU 40287 +#define IDC_TASK_MANAGER_MAIN_MENU 40288 +#define IDC_COMPARE_MENU 40289 +#define IDC_SHOW_ALL_COMPARISON_TABLES 40290 +#define IDC_ADD_TO_COMPARISON_TABLE_MENU 40291 +#define IDC_CREATE_NEW_COMPARISON_TABLE_WITH_TAB 40292 #define IDC_SPELLCHECK_SUGGESTION_0 41000 #define IDC_SPELLCHECK_SUGGESTION_1 41001 #define IDC_SPELLCHECK_SUGGESTION_2 41002 @@ -276,77 +291,84 @@ #define IDC_CONTENT_CONTEXT_COPYLINKTEXT 50107 #define IDC_CONTENT_CONTEXT_OPENLINKINPROFILE 50108 #define IDC_CONTENT_CONTEXT_OPENLINKBOOKMARKAPP 50109 -#define IDC_CONTENT_CONTEXT_SAVEIMAGEAS 50110 -#define IDC_CONTENT_CONTEXT_COPYIMAGELOCATION 50111 -#define IDC_CONTENT_CONTEXT_COPYIMAGE 50112 -#define IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB 50113 -#define IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE 50114 -#define IDC_CONTENT_CONTEXT_OPEN_ORIGINAL_IMAGE_NEW_TAB 50115 -#define IDC_CONTENT_CONTEXT_LOAD_IMAGE 50116 -#define IDC_CONTENT_CONTEXT_SEARCHLENSFORIMAGE 50117 -#define IDC_CONTENT_CONTEXT_TRANSLATEIMAGEWITHWEB 50118 -#define IDC_CONTENT_CONTEXT_TRANSLATEIMAGEWITHLENS 50119 -#define IDC_CONTENT_CONTEXT_SAVEAVAS 50120 -#define IDC_CONTENT_CONTEXT_COPYAVLOCATION 50121 -#define IDC_CONTENT_CONTEXT_COPYVIDEOFRAME 50122 -#define IDC_CONTENT_CONTEXT_OPENAVNEWTAB 50123 -#define IDC_CONTENT_CONTEXT_PICTUREINPICTURE 50124 -#define IDC_CONTENT_CONTEXT_LOOP 50130 -#define IDC_CONTENT_CONTEXT_CONTROLS 50131 -#define IDC_CONTENT_CONTEXT_ROTATECW 50132 -#define IDC_CONTENT_CONTEXT_ROTATECCW 50133 -#define IDC_CONTENT_CONTEXT_COPY 50140 -#define IDC_CONTENT_CONTEXT_CUT 50141 -#define IDC_CONTENT_CONTEXT_PASTE 50142 -#define IDC_CONTENT_CONTEXT_DELETE 50143 -#define IDC_CONTENT_CONTEXT_UNDO 50144 -#define IDC_CONTENT_CONTEXT_REDO 50145 -#define IDC_CONTENT_CONTEXT_SELECTALL 50146 -#define IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE 50147 -#define IDC_CONTENT_CONTEXT_COPYLINKTOTEXT 50148 -#define IDC_CONTENT_CONTEXT_RESHARELINKTOTEXT 50149 -#define IDC_CONTENT_CONTEXT_REMOVELINKTOTEXT 50150 -#define IDC_CONTENT_CONTEXT_TRANSLATE 50151 -#define IDC_CONTENT_CONTEXT_INSPECTELEMENT 50152 -#define IDC_CONTENT_CONTEXT_VIEWPAGEINFO 50153 -#define IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS 50154 -#define IDC_CONTENT_CONTEXT_LOOK_UP 50155 -#define IDC_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS 50156 -#define IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION 50157 -#define IDC_CONTENT_CONTEXT_SPELLING_TOGGLE 50158 -#define IDC_CONTENT_CONTEXT_OPEN_IN_READING_MODE 50159 -#define IDC_CONTENT_CONTEXT_SAVEPLUGINAS 50160 -#define IDC_CONTENT_CONTEXT_INSPECTBACKGROUNDPAGE 50161 -#define IDC_CONTENT_CONTEXT_RELOAD_PACKAGED_APP 50162 -#define IDC_CONTENT_CONTEXT_RESTART_PACKAGED_APP 50163 -#define IDC_CONTENT_CONTEXT_LENS_REGION_SEARCH 50164 -#define IDC_CONTENT_CONTEXT_WEB_REGION_SEARCH 50165 -#define IDC_CONTENT_CONTEXT_GENERATEPASSWORD 50166 -#define IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN 50167 -#define IDC_CONTENT_CONTEXT_SHOWALLSAVEDPASSWORDS 50168 -#define IDC_CONTENT_CONTEXT_PARTIAL_TRANSLATE 50169 -#define IDC_CONTENT_CONTEXT_RELOADFRAME 50170 -#define IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE 50171 -#define IDC_CONTENT_CONTEXT_VIEWFRAMEINFO 50172 -#define IDC_CONTENT_CONTEXT_ADD_A_NOTE 50175 -#define IDC_CONTENT_CONTEXT_GOTOURL 50180 -#define IDC_CONTENT_CONTEXT_SEARCHWEBFOR 50181 -#define IDC_CONTENT_CONTEXT_SEARCHWEBFORNEWTAB 50182 -#define IDC_CONTENT_CONTEXT_OPEN_WITH1 50190 -#define IDC_CONTENT_CONTEXT_OPEN_WITH2 50191 -#define IDC_CONTENT_CONTEXT_OPEN_WITH3 50192 -#define IDC_CONTENT_CONTEXT_OPEN_WITH4 50193 -#define IDC_CONTENT_CONTEXT_OPEN_WITH5 50194 -#define IDC_CONTENT_CONTEXT_OPEN_WITH6 50195 -#define IDC_CONTENT_CONTEXT_OPEN_WITH7 50196 -#define IDC_CONTENT_CONTEXT_OPEN_WITH8 50197 -#define IDC_CONTENT_CONTEXT_OPEN_WITH9 50198 -#define IDC_CONTENT_CONTEXT_OPEN_WITH10 50199 -#define IDC_CONTENT_CONTEXT_OPEN_WITH11 50200 -#define IDC_CONTENT_CONTEXT_OPEN_WITH12 50201 -#define IDC_CONTENT_CONTEXT_OPEN_WITH13 50202 -#define IDC_CONTENT_CONTEXT_OPEN_WITH14 50203 -#define IDC_CONTENT_CONTEXT_EMOJI 50210 +#define IDC_CONTENT_CONTEXT_OPENLINKPREVIEW 50110 +#define IDC_CONTENT_CONTEXT_SAVEIMAGEAS 50120 +#define IDC_CONTENT_CONTEXT_COPYIMAGELOCATION 50121 +#define IDC_CONTENT_CONTEXT_COPYIMAGE 50122 +#define IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB 50123 +#define IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE 50124 +#define IDC_CONTENT_CONTEXT_OPEN_ORIGINAL_IMAGE_NEW_TAB 50125 +#define IDC_CONTENT_CONTEXT_LOAD_IMAGE 50126 +#define IDC_CONTENT_CONTEXT_SEARCHLENSFORIMAGE 50127 +#define IDC_CONTENT_CONTEXT_SAVEVIDEOFRAMEAS 50130 +#define IDC_CONTENT_CONTEXT_SAVEAVAS 50131 +#define IDC_CONTENT_CONTEXT_COPYAVLOCATION 50132 +#define IDC_CONTENT_CONTEXT_COPYVIDEOFRAME 50133 +#define IDC_CONTENT_CONTEXT_SEARCHLENSFORVIDEOFRAME 50134 +#define IDC_CONTENT_CONTEXT_SEARCHWEBFORVIDEOFRAME 50135 +#define IDC_CONTENT_CONTEXT_OPENAVNEWTAB 50136 +#define IDC_CONTENT_CONTEXT_PICTUREINPICTURE 50137 +#define IDC_CONTENT_CONTEXT_LOOP 50140 +#define IDC_CONTENT_CONTEXT_CONTROLS 50141 +#define IDC_CONTENT_CONTEXT_ROTATECW 50142 +#define IDC_CONTENT_CONTEXT_ROTATECCW 50143 +#define IDC_CONTENT_CONTEXT_COPY 50150 +#define IDC_CONTENT_CONTEXT_CUT 50151 +#define IDC_CONTENT_CONTEXT_PASTE 50152 +#define IDC_CONTENT_CONTEXT_DELETE 50153 +#define IDC_CONTENT_CONTEXT_UNDO 50154 +#define IDC_CONTENT_CONTEXT_REDO 50155 +#define IDC_CONTENT_CONTEXT_SELECTALL 50156 +#define IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE 50157 +#define IDC_CONTENT_CONTEXT_COPYLINKTOTEXT 50158 +#define IDC_CONTENT_CONTEXT_RESHARELINKTOTEXT 50159 +#define IDC_CONTENT_CONTEXT_REMOVELINKTOTEXT 50160 +#define IDC_CONTENT_CONTEXT_TRANSLATE 50161 +#define IDC_CONTENT_CONTEXT_INSPECTELEMENT 50162 +#define IDC_CONTENT_CONTEXT_VIEWPAGEINFO 50163 +#define IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS 50164 +#define IDC_CONTENT_CONTEXT_LOOK_UP 50165 +#define IDC_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS 50166 +#define IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION 50167 +#define IDC_CONTENT_CONTEXT_SPELLING_TOGGLE 50168 +#define IDC_CONTENT_CONTEXT_OPEN_IN_READING_MODE 50169 +#define IDC_CONTENT_CONTEXT_SAVEPLUGINAS 50170 +#define IDC_CONTENT_CONTEXT_INSPECTBACKGROUNDPAGE 50171 +#define IDC_CONTENT_CONTEXT_RELOAD_PACKAGED_APP 50172 +#define IDC_CONTENT_CONTEXT_RESTART_PACKAGED_APP 50173 +#define IDC_CONTENT_CONTEXT_LENS_REGION_SEARCH 50174 +#define IDC_CONTENT_CONTEXT_WEB_REGION_SEARCH 50175 +#define IDC_CONTENT_CONTEXT_GENERATEPASSWORD 50176 +#define IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN 50177 +#define IDC_CONTENT_CONTEXT_SHOWALLSAVEDPASSWORDS 50178 +#define IDC_CONTENT_CONTEXT_PARTIAL_TRANSLATE 50179 +#define IDC_CONTENT_CONTEXT_RELOADFRAME 50180 +#define IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE 50181 +#define IDC_CONTENT_CONTEXT_VIEWFRAMEINFO 50182 +#define IDC_CONTENT_CONTEXT_ADD_A_NOTE 50185 +#define IDC_CONTENT_CONTEXT_GOTOURL 50190 +#define IDC_CONTENT_CONTEXT_SEARCHWEBFOR 50191 +#define IDC_CONTENT_CONTEXT_SEARCHWEBFORNEWTAB 50192 +#define IDC_CONTENT_CONTEXT_LENS_OVERLAY 50193 +#define IDC_CONTENT_CONTEXT_USE_PASSKEY_FROM_ANOTHER_DEVICE 50194 +#define IDC_CONTENT_CONTEXT_OPEN_WITH1 50200 +#define IDC_CONTENT_CONTEXT_OPEN_WITH2 50201 +#define IDC_CONTENT_CONTEXT_OPEN_WITH3 50202 +#define IDC_CONTENT_CONTEXT_OPEN_WITH4 50203 +#define IDC_CONTENT_CONTEXT_OPEN_WITH5 50204 +#define IDC_CONTENT_CONTEXT_OPEN_WITH6 50205 +#define IDC_CONTENT_CONTEXT_OPEN_WITH7 50206 +#define IDC_CONTENT_CONTEXT_OPEN_WITH8 50207 +#define IDC_CONTENT_CONTEXT_OPEN_WITH9 50208 +#define IDC_CONTENT_CONTEXT_OPEN_WITH10 50209 +#define IDC_CONTENT_CONTEXT_OPEN_WITH11 50210 +#define IDC_CONTENT_CONTEXT_OPEN_WITH12 50211 +#define IDC_CONTENT_CONTEXT_OPEN_WITH13 50212 +#define IDC_CONTENT_CONTEXT_OPEN_WITH14 50213 +#define IDC_CONTENT_CONTEXT_EMOJI 50220 +#define IDC_CONTEXT_COMPOSE 50230 +#define IDC_CONTENT_CONTEXT_CLOSE_GLIC 50231 +#define IDC_CONTENT_CONTEXT_RELOAD_GLIC 50232 #define IDC_BOOKMARK_BAR_OPEN_ALL 51000 #define IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW 51001 #define IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO 51002 @@ -368,13 +390,13 @@ #define IDC_BOOKMARK_BAR_UNTRACK_PRICE_FOR_SHOPPING_BOOKMARK 51018 #define IDC_BOOKMARK_BAR_ADD_TO_BOOKMARKS_BAR 51019 #define IDC_BOOKMARK_BAR_REMOVE_FROM_BOOKMARKS_BAR 51020 +#define IDC_BOOKMARK_BAR_TOGGLE_SHOW_TAB_GROUPS 51021 #define IDC_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_SINGLE_DEVICE 51030 #define IDC_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_MULTIPLE_DEVICES 51031 #define IDC_CONTENT_CONTEXT_SHARING_SHARED_CLIPBOARD_SINGLE_DEVICE 51032 #define IDC_CONTENT_CONTEXT_SHARING_SHARED_CLIPBOARD_MULTIPLE_DEVICES 51033 #define IDC_CONTENT_CONTEXT_GENERATE_QR_CODE 51034 #define IDC_CONTENT_CONTEXT_SHARING_SUBMENU 51035 -#define IDC_CONTENT_CLIPBOARD_HISTORY_MENU 51036 #define IDC_CONTENT_PASTE_FROM_CLIPBOARD 51037 #define IDC_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND 51100 #define IDC_MEDIA_ROUTER_ABOUT 51200 @@ -386,6 +408,7 @@ #define IDC_MEDIA_ROUTER_TOGGLE_MEDIA_REMOTING 51208 #define IDC_MEDIA_TOOLBAR_CONTEXT_REPORT_CAST_ISSUE 51209 #define IDC_MEDIA_TOOLBAR_CONTEXT_SHOW_OTHER_SESSIONS 51210 +#define IDC_UPDATE_SIDE_PANEL_PIN_STATE 51211 #define IDC_MEDIA_STREAM_DEVICE_STATUS_TRAY 51300 #define IDC_MEDIA_CONTEXT_MEDIA_STREAM_CAPTURE_LIST_FIRST 51301 #define IDC_MEDIA_CONTEXT_MEDIA_STREAM_CAPTURE_LIST_LAST 51399 @@ -405,20 +428,26 @@ #define IDC_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_TOGGLE_ONCE 52412 #define IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_ANSWER 52413 #define IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_QUERY 52414 -#define IDC_CONTENT_CONTEXT_ORCA 52415 -#define IDC_CONTENT_CONTEXT_RUN_LAYOUT_EXTRACTION 52420 -#define IDC_CONTENT_CONTEXT_PDF_OCR 52421 -#define IDC_CONTENT_CONTEXT_PDF_OCR_ALWAYS 52422 -#define IDC_CONTENT_CONTEXT_PDF_OCR_ONCE 52423 #define IDC_TAB_SEARCH 52500 #define IDC_TAB_SEARCH_CLOSE 52501 #define IDC_DEBUG_TOGGLE_TABLET_MODE 52510 #define IDC_DEBUG_PRINT_VIEW_TREE 52511 #define IDC_DEBUG_PRINT_VIEW_TREE_DETAILS 52512 #define IDC_CONTENT_CONTEXT_AUTOFILL_FEEDBACK 52990 -#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_AUTOCOMPLETE_UNRECOGNIZED 52995 +#define IDC_CONTENT_CONTEXT_AUTOFILL_PREDICTION_IMPROVEMENTS 52993 +#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_PLUS_ADDRESS 52994 +#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_PASSWORDS_SELECT_PASSWORD 52998 +#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_PASSWORDS_IMPORT_PASSWORDS 52999 +#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_PASSWORDS_SUGGEST_PASSWORD 53000 +#define IDC_CONTENT_CONTEXT_AUTOFILL_FALLBACK_PASSWORDS_USE_PASSKEY_FROM_ANOTHER_DEVICE 53002 #define IDC_LIVE_CAPTION 53251 #define IDC_DEVICE_SYSTEM_TRAY_ICON_FIRST 53260 #define IDC_DEVICE_SYSTEM_TRAY_ICON_LAST 53299 +#define IDC_SET_BROWSER_AS_DEFAULT 53300 +#define IDC_GLIC_STATUS_ICON_MENU_SHOW 53310 +#define IDC_GLIC_STATUS_ICON_MENU_CUSTOMIZE_KEYBOARD_SHORTCUT 53311 +#define IDC_GLIC_STATUS_ICON_MENU_REMOVE_ICON 53312 +#define IDC_GLIC_STATUS_ICON_MENU_SETTINGS 53313 +#define IDC_GLIC_STATUS_ICON_MENU_EXIT 53314 #endif // CEF_INCLUDE_CEF_COMMAND_IDS_H_ diff --git a/CefGlue.Interop.Gen/include/cef_command_line.h b/CefGlue.Interop.Gen/include/cef_command_line.h index 9ae6ee64..27691ed4 100644 --- a/CefGlue.Interop.Gen/include/cef_command_line.h +++ b/CefGlue.Interop.Gen/include/cef_command_line.h @@ -40,6 +40,7 @@ #include #include + #include "include/cef_base.h" /// diff --git a/CefGlue.Interop.Gen/include/cef_config.h b/CefGlue.Interop.Gen/include/cef_config.h index d59e6e82..ad5349de 100644 --- a/CefGlue.Interop.Gen/include/cef_config.h +++ b/CefGlue.Interop.Gen/include/cef_config.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Marshall A. Greenblatt. All rights reserved. +// Copyright (c) 2025 Marshall A. Greenblatt. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,6 +35,6 @@ #ifndef CEF_INCLUDE_CEF_CONFIG_H_ #define CEF_INCLUDE_CEF_CONFIG_H_ - +#define CEF_V8_ENABLE_SANDBOX 1 #endif // CEF_INCLUDE_CEF_CONFIG_H_ diff --git a/CefGlue.Interop.Gen/include/cef_cookie.h b/CefGlue.Interop.Gen/include/cef_cookie.h index e3a68207..40570d81 100644 --- a/CefGlue.Interop.Gen/include/cef_cookie.h +++ b/CefGlue.Interop.Gen/include/cef_cookie.h @@ -39,6 +39,7 @@ #pragma once #include + #include "include/cef_base.h" #include "include/cef_callback.h" diff --git a/CefGlue.Interop.Gen/include/cef_dialog_handler.h b/CefGlue.Interop.Gen/include/cef_dialog_handler.h index 30fd3a16..d922885b 100644 --- a/CefGlue.Interop.Gen/include/cef_dialog_handler.h +++ b/CefGlue.Interop.Gen/include/cef_dialog_handler.h @@ -77,21 +77,30 @@ class CefDialogHandler : public virtual CefBaseRefCounted { /// empty to show the default title ("Open" or "Save" depending on the mode). /// |default_file_path| is the path with optional directory and/or file name /// component that should be initially selected in the dialog. - /// |accept_filters| are used to restrict the selectable file types and may - /// any combination of (a) valid lower-cased MIME types (e.g. "text/*" or - /// "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c) - /// combined description and file extension delimited using "|" and ";" (e.g. - /// "Image Types|.png;.gif;.jpg"). To display a custom dialog return true and - /// execute |callback| either inline or at a later time. To display the - /// default dialog return false. + /// |accept_filters| are used to restrict the selectable file types and may be + /// any combination of valid lower-cased MIME types (e.g. "text/*" or + /// "image/*") and individual file extensions (e.g. ".txt" or ".png"). + /// |accept_extensions| provides the semicolon-delimited expansion of MIME + /// types to file extensions (if known, or empty string otherwise). + /// |accept_descriptions| provides the descriptions for MIME types (if known, + /// or empty string otherwise). For example, the "image/*" mime type might + /// have extensions ".png;.jpg;.bmp;..." and description "Image Files". + /// |accept_filters|, |accept_extensions| and |accept_descriptions| will all + /// be the same size. To display a custom dialog return true and execute + /// |callback| either inline or at a later time. To display the default dialog + /// return false. If this method returns false it may be called an additional + /// time for the same dialog (both before and after MIME type expansion). /// /*--cef(optional_param=title,optional_param=default_file_path, - optional_param=accept_filters)--*/ + optional_param=accept_filters,optional_param=accept_extensions, + optional_param=accept_descriptions)--*/ virtual bool OnFileDialog(CefRefPtr browser, FileDialogMode mode, const CefString& title, const CefString& default_file_path, const std::vector& accept_filters, + const std::vector& accept_extensions, + const std::vector& accept_descriptions, CefRefPtr callback) { return false; } diff --git a/CefGlue.Interop.Gen/include/cef_display_handler.h b/CefGlue.Interop.Gen/include/cef_display_handler.h index 3b776b41..79617b77 100644 --- a/CefGlue.Interop.Gen/include/cef_display_handler.h +++ b/CefGlue.Interop.Gen/include/cef_display_handler.h @@ -75,12 +75,12 @@ class CefDisplayHandler : public virtual CefBaseRefCounted { /// Called when web content in the page has toggled fullscreen mode. If /// |fullscreen| is true the content will automatically be sized to fill the /// browser content area. If |fullscreen| is false the content will - /// automatically return to its original size and position. With the Alloy - /// runtime the client is responsible for triggering the fullscreen transition - /// (for example, by calling CefWindow::SetFullscreen when using Views). With - /// the Chrome runtime the fullscreen transition will be triggered - /// automatically. The CefWindowDelegate::OnWindowFullscreenTransition method - /// will be called during the fullscreen transition for notification purposes. + /// automatically return to its original size and position. With Alloy style + /// the client is responsible for triggering the fullscreen transition (for + /// example, by calling CefWindow::SetFullscreen when using Views). With + /// Chrome style the fullscreen transition will be triggered automatically. + /// The CefWindowDelegate::OnWindowFullscreenTransition method will be called + /// during the fullscreen transition for notification purposes. /// /*--cef()--*/ virtual void OnFullscreenModeChange(CefRefPtr browser, diff --git a/CefGlue.Interop.Gen/include/cef_dom.h b/CefGlue.Interop.Gen/include/cef_dom.h index 8ddb8f64..21fa3f4e 100644 --- a/CefGlue.Interop.Gen/include/cef_dom.h +++ b/CefGlue.Interop.Gen/include/cef_dom.h @@ -39,6 +39,7 @@ #pragma once #include + #include "include/cef_base.h" class CefDOMDocument; diff --git a/CefGlue.Interop.Gen/include/cef_download_handler.h b/CefGlue.Interop.Gen/include/cef_download_handler.h index de911b66..64e3a4b3 100644 --- a/CefGlue.Interop.Gen/include/cef_download_handler.h +++ b/CefGlue.Interop.Gen/include/cef_download_handler.h @@ -106,17 +106,19 @@ class CefDownloadHandler : public virtual CefBaseRefCounted { /// /// Called before a download begins. |suggested_name| is the suggested name - /// for the download file. By default the download will be canceled. Execute - /// |callback| either asynchronously or in this method to continue the - /// download if desired. Do not keep a reference to |download_item| outside of - /// this method. + /// for the download file. Return true and execute |callback| either + /// asynchronously or in this method to continue or cancel the download. + /// Return false to proceed with default handling (cancel with Alloy style, + /// download shelf with Chrome style). Do not keep a reference to + /// |download_item| outside of this method. /// /*--cef()--*/ - virtual void OnBeforeDownload( - CefRefPtr browser, - CefRefPtr download_item, - const CefString& suggested_name, - CefRefPtr callback) = 0; + virtual bool OnBeforeDownload(CefRefPtr browser, + CefRefPtr download_item, + const CefString& suggested_name, + CefRefPtr callback) { + return false; + } /// /// Called when a download's status or progress information has been updated. diff --git a/CefGlue.Interop.Gen/include/cef_drag_data.h b/CefGlue.Interop.Gen/include/cef_drag_data.h index 735a64c4..382047b9 100644 --- a/CefGlue.Interop.Gen/include/cef_drag_data.h +++ b/CefGlue.Interop.Gen/include/cef_drag_data.h @@ -39,6 +39,7 @@ #pragma once #include + #include "include/cef_base.h" #include "include/cef_image.h" #include "include/cef_stream.h" diff --git a/CefGlue.Interop.Gen/include/cef_extension.h b/CefGlue.Interop.Gen/include/cef_extension.h deleted file mode 100644 index 5d94192f..00000000 --- a/CefGlue.Interop.Gen/include/cef_extension.h +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the name Chromium Embedded -// Framework nor the names of its contributors may be used to endorse -// or promote products derived from this software without specific prior -// written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// --------------------------------------------------------------------------- -// -// The contents of this file must follow a specific format in order to -// support the CEF translator tool. See the translator.README.txt file in the -// tools directory for more information. -// - -#ifndef CEF_INCLUDE_CEF_EXTENSION_H_ -#define CEF_INCLUDE_CEF_EXTENSION_H_ -#pragma once - -#include "include/cef_base.h" -#include "include/cef_values.h" - -class CefExtensionHandler; -class CefRequestContext; - -/// -/// Object representing an extension. Methods may be called on any thread unless -/// otherwise indicated. -/// -/*--cef(source=library)--*/ -class CefExtension : public CefBaseRefCounted { - public: - /// - /// Returns the unique extension identifier. This is calculated based on the - /// extension public key, if available, or on the extension path. See - /// https://developer.chrome.com/extensions/manifest/key for details. - /// - /*--cef()--*/ - virtual CefString GetIdentifier() = 0; - - /// - /// Returns the absolute path to the extension directory on disk. This value - /// will be prefixed with PK_DIR_RESOURCES if a relative path was passed to - /// CefRequestContext::LoadExtension. - /// - /*--cef()--*/ - virtual CefString GetPath() = 0; - - /// - /// Returns the extension manifest contents as a CefDictionaryValue object. - /// See https://developer.chrome.com/extensions/manifest for details. - /// - /*--cef()--*/ - virtual CefRefPtr GetManifest() = 0; - - /// - /// Returns true if this object is the same extension as |that| object. - /// Extensions are considered the same if identifier, path and loader context - /// match. - /// - /*--cef()--*/ - virtual bool IsSame(CefRefPtr that) = 0; - - /// - /// Returns the handler for this extension. Will return NULL for internal - /// extensions or if no handler was passed to - /// CefRequestContext::LoadExtension. - /// - /*--cef()--*/ - virtual CefRefPtr GetHandler() = 0; - - /// - /// Returns the request context that loaded this extension. Will return NULL - /// for internal extensions or if the extension has been unloaded. See the - /// CefRequestContext::LoadExtension documentation for more information about - /// loader contexts. Must be called on the browser process UI thread. - /// - /*--cef()--*/ - virtual CefRefPtr GetLoaderContext() = 0; - - /// - /// Returns true if this extension is currently loaded. Must be called on the - /// browser process UI thread. - /// - /*--cef()--*/ - virtual bool IsLoaded() = 0; - - /// - /// Unload this extension if it is not an internal extension and is currently - /// loaded. Will result in a call to CefExtensionHandler::OnExtensionUnloaded - /// on success. - /// - /*--cef()--*/ - virtual void Unload() = 0; -}; - -#endif // CEF_INCLUDE_CEF_EXTENSION_H_ diff --git a/CefGlue.Interop.Gen/include/cef_extension_handler.h b/CefGlue.Interop.Gen/include/cef_extension_handler.h deleted file mode 100644 index 4b34fbc0..00000000 --- a/CefGlue.Interop.Gen/include/cef_extension_handler.h +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the name Chromium Embedded -// Framework nor the names of its contributors may be used to endorse -// or promote products derived from this software without specific prior -// written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// --------------------------------------------------------------------------- -// -// The contents of this file must follow a specific format in order to -// support the CEF translator tool. See the translator.README.txt file in the -// tools directory for more information. -// - -#ifndef CEF_INCLUDE_CEF_EXTENSION_HANDLER_H_ -#define CEF_INCLUDE_CEF_EXTENSION_HANDLER_H_ -#pragma once - -#include "include/cef_base.h" -#include "include/cef_browser.h" -#include "include/cef_extension.h" -#include "include/cef_stream.h" - -class CefClient; - -/// -/// Callback interface used for asynchronous continuation of -/// CefExtensionHandler::GetExtensionResource. -/// -/*--cef(source=library)--*/ -class CefGetExtensionResourceCallback : public CefBaseRefCounted { - public: - /// - /// Continue the request. Read the resource contents from |stream|. - /// - /*--cef(capi_name=cont,optional_param=stream)--*/ - virtual void Continue(CefRefPtr stream) = 0; - - /// - /// Cancel the request. - /// - /*--cef()--*/ - virtual void Cancel() = 0; -}; - -/// -/// Implement this interface to handle events related to browser extensions. -/// The methods of this class will be called on the UI thread. See -/// CefRequestContext::LoadExtension for information about extension loading. -/// -/*--cef(source=client)--*/ -class CefExtensionHandler : public virtual CefBaseRefCounted { - public: - /// - /// Called if the CefRequestContext::LoadExtension request fails. |result| - /// will be the error code. - /// - /*--cef()--*/ - virtual void OnExtensionLoadFailed(cef_errorcode_t result) {} - - /// - /// Called if the CefRequestContext::LoadExtension request succeeds. - /// |extension| is the loaded extension. - /// - /*--cef()--*/ - virtual void OnExtensionLoaded(CefRefPtr extension) {} - - /// - /// Called after the CefExtension::Unload request has completed. - /// - /*--cef()--*/ - virtual void OnExtensionUnloaded(CefRefPtr extension) {} - - /// - /// Called when an extension needs a browser to host a background script - /// specified via the "background" manifest key. The browser will have no - /// visible window and cannot be displayed. |extension| is the extension that - /// is loading the background script. |url| is an internally generated - /// reference to an HTML page that will be used to load the background script - /// via a "