Alloy style is supported in M125, Alloy bootstrap is deprecated (to be removed in ~M127)

Post Reply
User avatar
salvadordf
Posts: 4089
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Alloy style is supported in M125, Alloy bootstrap is deprecated (to be removed in ~M127)

Post by salvadordf »

The official announcement : https://groups.google.com/g/cef-announce/c/s1WaovAopFo/m/LV5eiNX1BgAJ
Starting with M125 the CEF Alloy runtime has been split into separate style and bootstrap components. Both Chrome style and Alloy style browsers/windows can now be created while using the Chrome bootstrap. The Alloy bootstrap is considered deprecated and will be removed in approximately M127.

Background

CEF currently supports two bootstraps, the Chrome bootstrap and the Alloy bootstrap. Alloy bootstrap usage has been required up to this point for use cases such as external (native) parent and windowless (off-screen) rendering. Starting with M125 it is now possible to create Alloy style browsers for these use cases while running with the Chrome bootstrap. The final step of this migration process will be the removal of Alloy bootstrap code in approximately M127.

Running with the Alloy bootstrap (CefSettings.chrome_runtime = false) will generate a warning message starting with M125. The message looks like this:

[WARNING:main_runner.cc(272)] Alloy bootstrap is deprecated and will be removed in ~M127. See https://github.com/chromiumembedded/cef/issues/3685

Migration Route

Windowed applications using Alloy style may wish to use Chrome style as it provides substantially more default functionality (details here). To switch a windowed application from Alloy style to Chrome style simply set CefSettings.chrome_runtime = true before calling CefInitialize.

Migrating an application from the Alloy bootstrap to the Chrome bootstrap while keeping Alloy style is a bit more involved. Here are the steps:

Set CefSettings.chrome_runtime = true before calling CefInitialize.
Make the following changes depending on your Alloy usage:
With external parent: Set CefWindowInfo.runtime_style = CEF_RUNTIME_STYLE_ALLOY before calling CefBrowserHost::CreateBrowser.
With windowless rendering: Alloy style is used by default.
With the Views framework: Return CEF_RUNTIME_STYLE_ALLOY from CefWindowDelegate::GetWindowRuntimeStyle and CefBrowserViewDelegate::GetBrowserRuntimeStyle.

What's Different

Chrome runtime + Alloy style behavior differs from Alloy runtime in the
following significant ways:

Supports Chrome error pages by default.
DevTools popups are Chrome style only (cannot be windowless).
The Alloy extension API is not supported (will be removed in ~M127). The Chrome extension API is supported with Chrome style browsers/windows only.

Known issues specific to Chrome runtime + Alloy style:

DevTools popups don't load successfully in combination with windowless rendering. Use windowed rendering or remote debugging as a workaround.

Reporting Issues

If you run into any additional issues while migrating your application to the Chrome bootstrap please let us know by filing a bug in the CEF issue tracker.

Thanks,
Marshall
User avatar
salvadordf
Posts: 4089
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: Alloy style is supported in M125, Alloy bootstrap is deprecated (to be removed in ~M127)

Post by salvadordf »

I usually refer to "Chrome runtime mode" but the CEF project maintainer calls it "Chrome bootstrap" in this announcement.
What I call "Normal mode" is called "Alloy bootstrap" in this announcement.

Using the next CEF versions will require some code changes in CEF4Delphi and also in the applications.
dilfich
Posts: 331
Joined: Thu Nov 30, 2017 1:17 am

Re: Alloy style is supported in M125, Alloy bootstrap is deprecated (to be removed in ~M127)

Post by dilfich »

If there only "runtime mode", then what about the proxy? It doesn't work with authorization there, or has it been fixed? :?
User avatar
salvadordf
Posts: 4089
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: Alloy style is supported in M125, Alloy bootstrap is deprecated (to be removed in ~M127)

Post by salvadordf »

There are some features missing at the moment but the CEF project maintainer is implementing them in the "master" branch of CEF.
We still have several months before CEF 127 reaches the stable branch.
Post Reply