Skip to content

Google Chrome triggers RegSvcs.exe via --enable-main-frame-before-activation flag, blocking Windows sleep functionality #123997

@adetii

Description

@adetii

Description

Microsoft .NET Framework's RegSvcs.exe (COM+ Services Installation Tool) is being improperly triggered by Google Chrome's renderer processes with the --enable-main-frame-before-activation flag. When launched, RegSvcs.exe holds both DISPLAY and SYSTEM power requests, preventing Windows from entering sleep states or turning off the display. This represents an interoperability issue where a .NET Framework utility designed for COM+ registration is being activated by a browser process and interfering with core OS power management.

Reproduction Steps

Reproduction Steps:
Clean Windows 10/11 installation with latest updates

Install latest Google Chrome (tested with 144.0.7559.110)

Launch Chrome and let it run for 5-10 minutes

Open Command Prompt as Administrator

Run powercfg /requests

Observe output shows:

text
DISPLAY: [PROCESS] \Device\HarddiskVolume3\Windows\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe
SYSTEM: [PROCESS] \Device\HarddiskVolume3\Windows\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe
Verification commands:

powershell

Check RegSvcs process and parent

Get-Process -Name RegSvcs | Select-Object Id, Path
$regsvcs = Get-Process -Name RegSvcs
$parent = Get-WmiObject Win32_Process -Filter "ProcessId=$($regsvcs.Id)"
Get-WmiObject Win32_Process -Filter "ProcessId=$($parent.ParentProcessId)" | Select-Object Name, CommandLine

Expected behavior

Expected behavior:
RegSvcs.exe should only run during legitimate .NET/COM+ installation or registration operations

Browser processes should not trigger .NET Framework installation utilities

.NET utilities should not interfere with Windows power management without explicit user intent

If RegSvcs.exe must run, it should either:

Time out after reasonable duration

Release power requests when not performing actual installation

Not be triggered by non-.NET applications like browsers

Actual behavior

Actual behavior:
RegSvcs.exe is spawned by Chrome renderer processes

Process persists indefinitely, holding power requests

System sleep and display timeout functionality are disabled

Manual termination provides only temporary relief; Chrome respawns it

No user notification or error messages about the power management failure

Process chain observed:

text
chrome.exe (main)
└── chrome.exe (renderer) --type=renderer --enable-main-frame-before-activation
└── RegSvcs.exe (C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe)

Regression?

Regression?
This appears to be a Chrome/.NET interoperability issue rather than a .NET regression. The behavior occurs with:

.NET Framework 4.8+

Clean Windows installations

Latest Chrome versions

No previous Chrome/.NET interaction observed to cause this specific issue

Known Workarounds

Known Workarounds:
Chrome-side: Launch Chrome with --disable-features=EnableMainFrameBeforeActivation

Registry: Set HKCU\Software\Google\Chrome\CommandLineFlags = --disable-features=EnableMainFrameBeforeActivation

Manual: Periodically kill RegSvcs.exe process (temporary)

PowerShell watchdog: Script to monitor and kill Chrome-spawned RegSvcs.exe

Configuration

Configuration:
.NET Version: .NET Framework 4.0.30319 (v4.8+)

OS: Windows 10/11 (tested on Windows 10 10.0.26200.7705)

Architecture: x64

Browser: Google Chrome 144.0.7559.110

Specificity: Only occurs with Chrome; Edge, Firefox unaffected

Clean Environment: Reproducible with fresh Windows + Chrome, no extensions

Other information

Root cause analysis:

Chrome's --enable-main-frame-before-activation renderer optimization appears to trigger .NET Framework interop

RegSvcs.exe is designed for COM+ component registration but is being activated inappropriately

The utility acquires power requests (likely for installation operations) but never releases them

This represents a Chrome/.NET boundary issue where browser optimizations trigger system utilities

Suggested fixes:

.NET Framework: Add check in RegSvcs.exe to detect non-.NET parent processes and exit gracefully

.NET Framework: Implement timeout mechanism for power requests held by RegSvcs.exe

.NET Framework: Add logging when RegSvcs.exe is triggered by unexpected processes

Windows: Consider making RegSvcs.exe sleep-aware or adding power request timeouts

Impact:

High severity: Breaks core Windows power management

Affects all Chrome users on Windows with default settings

Increases energy consumption and battery drain

No user-facing error messages about the failure

Evidence:

Clean system reproduces issue with no malware/extensions

Process is legitimate signed Microsoft .NET binary

Disabling specific Chrome flag resolves issue

Issue persists through Chrome restarts and system reboots

Tags: area-Interop, os-windows, dotnet-framework, power-management, chrome-interop

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Interop-coreclrtracking-external-issueThe issue is caused by external problem (e.g. OS) - nothing we can do to fix it directly

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions