Weird Chromium Dependency on macOS

I have a macOS game project that has no web components of any kind (that I know of), and works in the editor, but when actually packaged and run will crash instantly with this in the crashed thread stack:

|0   Chromium Embedded Framework   |       0x36d85f37c ChromeAppModeStart_v6 + 6882220|
|---|---|
|1   Chromium Embedded Framework   |       0x36d85fa58 ChromeAppModeStart_v6 + 6883976|
|2   Chromium Embedded Framework   |       0x36d8f6314 ChromeAppModeStart_v6 + 7500612|
|3   Chromium Embedded Framework   |       0x36d8d0bc0 ChromeAppModeStart_v6 + 7347184|
|4   Chromium Embedded Framework   |       0x36d8d08f8 ChromeAppModeStart_v6 + 7346472|
|5   Chromium Embedded Framework   |       0x36ac4efb0 cef_initialize + 328|
|6   RuneLands                     |       0x1013ee75c CefInitialize(CefMainArgs const&, CefStructBase<CefSettingsTraits> const&, scoped_refptr<CefApp>, void*) + 180|
|7   RuneLands                     |       0x1094cdf04 FWebBrowserSingleton::FWebBrowserSingleton(FWebBrowserInitSettings const&) + 4084|
|8   RuneLands                     |       0x1094ccd3c FWebBrowserModule::GetSingleton() + 80|
|9   RuneLands                     |       0x1094fdb28 FWebBrowserWidgetModule::StartupModule() + 300|
|10  RuneLands                     |       0x101896f18 FModuleManager::LoadModuleWithFailureReason(FName, EModuleLoadResult&, ELoadModuleFlags) + 2756|
|11  RuneLands                     |       0x101ce68d4 FModuleDescriptor::LoadModulesForPhase(ELoadingPhase::Type, TArray<FModuleDescriptor, TSizedDefaultAllocator<32>> const&, TMap<FName, EModuleLoadResult, FDefaultSetAllocator, TDefaultMapHashableKeyFuncs<FName, EModuleLoadResult, false>>&) + 352|
|12  RuneLands                     |       0x101d00b00 FPluginManager::TryLoadModulesForPlugin(FPlugin const&, ELoadingPhase::Type) const + 96|
|13  RuneLands                     |       0x101d036b4 FPluginManager::LoadModulesForEnabledPlugins(ELoadingPhase::Type) + 2136|

So far as I can tell (and a search of the directory seems to confirm), I have no Chromium dependencies and don’t use any plugins that have Chromium dependencies, but the Chromium framework seems to be referenced by the Makefile.bin and various manifest.json files created by the engine during the macOS package/build process.

This problem doesn’t occur in a new project, so I can only guess that there’s a hidden dependency somewhere in a module I’m using (e.g. the FPluginManager::LoadModulesForEnabledPlugins() call above).

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", 
	"Engine", "InputCore", "EnhancedInput", "UMG",
	"ProceduralMeshComponent", "PCG", "Water",
	"MeshDescription", "StaticMeshDescription", "MeshConversion" });

This has me dead in the water – I can’t make any builds at all because of this not-even-real dependency. Any ideas how I get it to go away? Or figure out what “plugin” is actually using it? I’d really, really rather not have Chromium in my package at all, but if it’s necessary, I’d at least like to know why…

In case this bites anybody else in the future: It’s the “Rocket” plugin from Leartes (sort of their Cosmos equivalent to Quixel Bridge–it lets you drag-and-drop their assets into the editor). When enabled in a project, it installs and depends on a Web Browser Widget plugin that doesn’t handle its own dependencies correctly. This results in an immediate crash at runtime in environments where Chromium Extension functionality isn’t present. (e.g. packaged builds on a Mac unless the project actually uses Chromium).

Since this plugin doesn’t actually do anything at runtime (it’s meant to make integrating Leartes assets into the project easier in the editor), the solution is just to disable the Web Browser Widget plugin (and Rocket, which depends on it).

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.