Skip to content

feat: Add infinite loop detection to overflow library #34690

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

ling1726
Copy link
Member

It's possible for users to have unstable overflow items that are recreated more often than they need to. This can incur repeated overflow updates in an infinite loop and block rendering.

Adds a loop detection mechanism that stops pushing updates after 100 overflow updates occur within 100ms

@ling1726 ling1726 marked this pull request as ready for review June 20, 2025 17:36
@ling1726 ling1726 requested a review from a team as a code owner June 20, 2025 17:36
@ling1726 ling1726 changed the title Add infinite loop detection to overflow library feat: Add infinite loop detection to overflow library Jun 20, 2025
Copy link

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
priority-overflow
createOverflowManager
4.481 kB
1.864 kB
4.942 kB
2.126 kB
461 B
262 B
react-components
react-components: entire library
1.264 MB
317.952 kB
1.265 MB
318.24 kB
461 B
288 B
react-overflow
hooks only
12.832 kB
4.828 kB
13.293 kB
5.063 kB
461 B
235 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-breadcrumb
@fluentui/react-breadcrumb - package
115.118 kB
31.877 kB
react-components
react-components: Button, FluentProvider & webLightTheme
69.779 kB
20.273 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
227.642 kB
65.909 kB
react-components
react-components: FluentProvider & webLightTheme
44.613 kB
14.641 kB
react-portal-compat
PortalCompatProvider
8.386 kB
2.624 kB
react-timepicker-compat
TimePicker
110.646 kB
36.578 kB
🤖 This report was generated against 0c738807f68c72b86739d97f687b9c8e8909a1dc

Copy link

Pull request demo site: URL

@@ -0,0 +1,7 @@
{

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 14 Changed
vr-tests-react-components/Positioning.Positioning end.chromium.png 591 Changed
vr-tests-react-components/TagPicker 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled.disabled input hover.chromium.png 678 Changed
vr-tests-react-components/TagPicker.disabled - High Contrast.disabled input hover.chromium.png 1321 Changed
vr-tests-react-components/TagPicker.disabled - RTL.chromium.png 635 Changed

There were 3 duplicate changes discarded. Check the build logs for more information.

@ling1726 ling1726 marked this pull request as draft June 23, 2025 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant