Skip to content

Conversation

@spmonahan
Copy link
Contributor

Previous Behavior

You could directly use window or document.

New Behavior

You must get a reference to window or document from context.

Related Issue(s)

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 621 632 5000
Button mount 299 300 5000
Field mount 1113 1126 5000
FluentProvider mount 668 697 5000
FluentProviderWithTheme mount 83 79 10
FluentProviderWithTheme virtual-rerender 67 61 10
FluentProviderWithTheme virtual-rerender-with-unmount 74 70 10
MakeStyles mount 852 867 50000
Persona mount 1771 1718 5000
SpinButton mount 1319 1363 5000

@codesandbox-ci
Copy link

codesandbox-ci bot commented Dec 13, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 8dde521:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
SegmentMinimalPerf.default 201 181 1.11:1
ChatDuplicateMessagesPerf.default 149 135 1.1:1
ProviderMinimalPerf.default 215 197 1.09:1
ButtonSlotsPerf.default 313 292 1.07:1
DropdownManyItemsPerf.default 406 384 1.06:1
AttachmentMinimalPerf.default 83 79 1.05:1
ButtonMinimalPerf.default 88 84 1.05:1
DividerMinimalPerf.default 211 201 1.05:1
RefMinimalPerf.default 108 103 1.05:1
TreeWith60ListItems.default 85 81 1.05:1
AccordionMinimalPerf.default 77 74 1.04:1
AvatarMinimalPerf.default 112 108 1.04:1
ChatMinimalPerf.default 436 421 1.04:1
HeaderMinimalPerf.default 204 197 1.04:1
HeaderSlotsPerf.default 469 452 1.04:1
LoaderMinimalPerf.default 200 193 1.04:1
RosterPerf.default 1599 1538 1.04:1
TableMinimalPerf.default 237 228 1.04:1
TextMinimalPerf.default 197 189 1.04:1
BoxMinimalPerf.default 193 187 1.03:1
FlexMinimalPerf.default 157 153 1.03:1
GridMinimalPerf.default 190 184 1.03:1
InputMinimalPerf.default 533 518 1.03:1
SplitButtonMinimalPerf.default 2282 2215 1.03:1
StatusMinimalPerf.default 401 388 1.03:1
AnimationMinimalPerf.default 297 291 1.02:1
ImageMinimalPerf.default 222 218 1.02:1
TextAreaMinimalPerf.default 291 285 1.02:1
DatepickerMinimalPerf.default 3694 3652 1.01:1
DropdownMinimalPerf.default 1452 1442 1.01:1
EmbedMinimalPerf.default 1855 1840 1.01:1
MenuMinimalPerf.default 486 482 1.01:1
PopupMinimalPerf.default 342 337 1.01:1
ProviderMergeThemesPerf.default 651 645 1.01:1
SkeletonMinimalPerf.default 191 190 1.01:1
CustomToolbarPrototype.default 1478 1469 1.01:1
VideoMinimalPerf.default 433 428 1.01:1
AttachmentSlotsPerf.default 641 642 1:1
ItemLayoutMinimalPerf.default 711 710 1:1
ListWith60ListItems.default 372 372 1:1
MenuButtonMinimalPerf.default 935 935 1:1
PortalMinimalPerf.default 83 83 1:1
ReactionMinimalPerf.default 209 208 1:1
TooltipMinimalPerf.default 1238 1235 1:1
ListNestedPerf.default 314 317 0.99:1
SliderMinimalPerf.default 729 735 0.99:1
ToolbarMinimalPerf.default 511 518 0.99:1
TreeMinimalPerf.default 468 472 0.99:1
ButtonOverridesMissPerf.default 636 646 0.98:1
CardMinimalPerf.default 300 306 0.98:1
CarouselMinimalPerf.default 266 271 0.98:1
ChatWithPopoverPerf.default 172 176 0.98:1
DialogMinimalPerf.default 422 431 0.98:1
FormMinimalPerf.default 218 222 0.98:1
ListMinimalPerf.default 294 299 0.98:1
RadioGroupMinimalPerf.default 248 256 0.97:1
CheckboxMinimalPerf.default 1128 1172 0.96:1
LayoutMinimalPerf.default 192 200 0.96:1
ListCommonPerf.default 388 406 0.96:1
IconMinimalPerf.default 375 389 0.96:1
TableManyItemsPerf.default 1083 1129 0.96:1
LabelMinimalPerf.default 215 226 0.95:1
AlertMinimalPerf.default 154 163 0.94:1

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

📊 Bundle size report

Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
328 B
global-context
createContextSelector
537 B
339 B
priority-overflow
createOverflowManager
4.447 kB
1.853 kB
react-accordion
Accordion (including children components)
93.891 kB
28.677 kB
react-alert
Alert
83.737 kB
23.474 kB
react-avatar
Avatar
50.175 kB
15.944 kB
react-avatar
AvatarGroup
19.704 kB
7.796 kB
react-avatar
AvatarGroupItem
64.831 kB
20.274 kB
react-badge
Badge
26.905 kB
8.729 kB
react-badge
CounterBadge
27.806 kB
9.024 kB
react-badge
PresenceBadge
25.311 kB
9.306 kB
react-button
Button
39.513 kB
11.169 kB
react-button
CompoundButton
46.874 kB
12.661 kB
react-button
MenuButton
44.292 kB
12.542 kB
react-button
SplitButton
52.306 kB
14.134 kB
react-button
ToggleButton
56.559 kB
13.068 kB
react-calendar-compat
Calendar Compat
142.165 kB
37.153 kB
react-card
Card - All
94.685 kB
27.248 kB
react-card
Card
89.509 kB
25.733 kB
react-card
CardFooter
13.064 kB
5.385 kB
react-card
CardHeader
15.307 kB
6.143 kB
react-card
CardPreview
14.015 kB
5.752 kB
react-checkbox
Checkbox
34.746 kB
11.902 kB
react-combobox
Combobox (including child components)
95.436 kB
30.792 kB
react-combobox
Dropdown (including child components)
94.022 kB
30.47 kB
react-components
react-components: Button, FluentProvider & webLightTheme
69.901 kB
20.261 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
210.164 kB
59.999 kB
react-components
react-components: FluentProvider & webLightTheme
42.388 kB
14.103 kB
react-datepicker-compat
DatePicker Compat
213.918 kB
60.021 kB
react-dialog
Dialog (including children components)
95.452 kB
28.456 kB
react-divider
Divider
20.82 kB
7.763 kB
react-field
Field
22.427 kB
8.573 kB
react-image
Image
15.736 kB
6.228 kB
react-infobutton
InfoButton
132.996 kB
41.838 kB
react-infobutton
InfoLabel
136.684 kB
42.979 kB
react-input
Input
26.887 kB
9.118 kB
react-jsx-runtime
Classic Pragma
1.057 kB
530 B
react-jsx-runtime
JSX Dev Runtime
3.783 kB
1.648 kB
react-jsx-runtime
JSX Runtime
4.377 kB
1.881 kB
react-label
Label
14.149 kB
5.759 kB
react-link
Link
17.082 kB
6.911 kB
react-menu
Menu (including children components)
142.349 kB
43.657 kB
react-menu
Menu (including selectable components)
145.035 kB
44.163 kB
react-message-bar
MessageBar (all components)
25.181 kB
9.039 kB
react-overflow
hooks only
12.837 kB
4.818 kB
react-persona
Persona
57.066 kB
17.821 kB
react-popover
Popover
121.19 kB
38.227 kB
react-portal
Portal
12.788 kB
4.67 kB
react-portal-compat
PortalCompatProvider
7.099 kB
2.385 kB
react-positioning
usePositioning
26.162 kB
9.465 kB
react-progress
ProgressBar
17.428 kB
6.898 kB
react-provider
FluentProvider
22.928 kB
8.472 kB
react-radio
Radio
32.042 kB
10.046 kB
react-radio
RadioGroup
15.345 kB
6.263 kB
react-select
Select
28.609 kB
10.205 kB
react-slider
Slider
39.15 kB
12.769 kB
react-spinbutton
SpinButton
36.774 kB
11.788 kB
react-spinner
Spinner
23.402 kB
8.467 kB
react-switch
Switch
34.23 kB
10.995 kB
react-table
DataGrid
156.347 kB
43.735 kB
react-table
Table (Primitives only)
43.899 kB
13.781 kB
react-table
Table as DataGrid
129.567 kB
35 kB
react-table
Table (Selection only)
74.744 kB
20.215 kB
react-table
Table (Sort only)
73.351 kB
19.806 kB
react-tags
InteractionTag
15.259 kB
6.058 kB
react-tags
Tag
29.982 kB
9.439 kB
react-tags
TagGroup
74.334 kB
22.284 kB
react-text
Text - Default
16.705 kB
6.569 kB
react-text
Text - Wrappers
19.878 kB
6.896 kB
react-textarea
Textarea
30.947 kB
10.476 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
34.616 kB
7.317 kB
react-theme
Teams: Light theme
19.287 kB
5.498 kB
react-timepicker-compat
TimePicker
97.272 kB
32.257 kB
react-toast
Toast (including Toaster)
93.203 kB
28.026 kB
react-tooltip
Tooltip
53.63 kB
18.924 kB
react-utilities
SSRProvider
180 B
160 B
🤖 This report was generated against c43a582b1e7587da4abbe03b04b1fc84f0f15415

@size-auditor
Copy link

size-auditor bot commented Dec 13, 2023

Asset size changes

Project Bundle Baseline Size New Size Difference
office-ui-fabric-react fluentui-react-ShimmeredDetailsList 235.978 kB 236.619 kB ExceedsBaseline     641 bytes
office-ui-fabric-react fluentui-react-DetailsList 225.226 kB 225.851 kB ExceedsBaseline     625 bytes
office-ui-fabric-react fluentui-react-MarqueeSelection 71.512 kB 72.119 kB ExceedsBaseline     607 bytes
office-ui-fabric-react fluentui-react-Pickers 286.836 kB 287.439 kB ExceedsBaseline     603 bytes
office-ui-fabric-react fluentui-react-KeytipLayer 99.704 kB 100.302 kB ExceedsBaseline     598 bytes
office-ui-fabric-react fluentui-react-Keytips 102.46 kB 103.055 kB ExceedsBaseline     595 bytes
office-ui-fabric-react fluentui-react-Dropdown 226.786 kB 227.365 kB ExceedsBaseline     579 bytes
office-ui-fabric-react fluentui-react-ColorPicker 129.297 kB 129.858 kB ExceedsBaseline     561 bytes
office-ui-fabric-react fluentui-react-CommandBar 196.674 kB 197.231 kB ExceedsBaseline     557 bytes
office-ui-fabric-react fluentui-react-ComboBox 244.664 kB 245.191 kB ExceedsBaseline     527 bytes
office-ui-fabric-react fluentui-react-Panel 194.052 kB 194.579 kB ExceedsBaseline     527 bytes
office-ui-fabric-react fluentui-react-SwatchColorPicker 185.583 kB 186.002 kB ExceedsBaseline     419 bytes
office-ui-fabric-react fluentui-react-Dialog 204.54 kB 204.923 kB ExceedsBaseline     383 bytes
office-ui-fabric-react fluentui-react-TimePicker 234.654 kB 235.033 kB ExceedsBaseline     379 bytes
office-ui-fabric-react fluentui-react-Coachmark 89.099 kB 89.473 kB ExceedsBaseline     374 bytes
office-ui-fabric-react fluentui-react-Persona 111.212 kB 111.579 kB ExceedsBaseline     367 bytes
office-ui-fabric-react fluentui-react-Tooltip 83.732 kB 84.099 kB ExceedsBaseline     367 bytes
office-ui-fabric-react fluentui-react-PersonaCoin 111.212 kB 111.579 kB ExceedsBaseline     367 bytes
office-ui-fabric-react fluentui-react-SelectedItemsList 226.132 kB 226.495 kB ExceedsBaseline     363 bytes
office-ui-fabric-react fluentui-react-PositioningContainer 70.292 kB 70.65 kB ExceedsBaseline     358 bytes
office-ui-fabric-react fluentui-react-FloatingPicker 235.726 kB 236.069 kB ExceedsBaseline     343 bytes
office-ui-fabric-react fluentui-react-Breadcrumb 195.576 kB 195.919 kB ExceedsBaseline     343 bytes
office-ui-fabric-react fluentui-react-Facepile 205.488 kB 205.828 kB ExceedsBaseline     340 bytes
office-ui-fabric-react fluentui-react-DocumentCard 210.578 kB 210.916 kB ExceedsBaseline     338 bytes
office-ui-fabric-react fluentui-react-Nav 182.944 kB 183.278 kB ExceedsBaseline     334 bytes
office-ui-fabric-react fluentui-react-DraggableZone 33.04 kB 33.345 kB ExceedsBaseline     305 bytes
office-ui-fabric-react fluentui-react-Modal 89.92 kB 90.206 kB ExceedsBaseline     286 bytes
office-ui-fabric-react fluentui-react-ChoiceGroup 63.054 kB 63.339 kB ExceedsBaseline     285 bytes
office-ui-fabric-react fluentui-react-OverflowSet 30.791 kB 31.044 kB ExceedsBaseline     253 bytes
office-ui-fabric-react fluentui-react-Color 7.498 kB 7.737 kB ExceedsBaseline     239 bytes
office-ui-fabric-react fluentui-react-ThemeGenerator 12.106 kB 12.34 kB ExceedsBaseline     234 bytes
office-ui-fabric-react fluentui-react-GroupedList 131.368 kB 131.598 kB ExceedsBaseline     230 bytes
office-ui-fabric-react fluentui-react-GroupedListV2 119.056 kB 119.286 kB ExceedsBaseline     230 bytes
office-ui-fabric-react fluentui-react-ScrollablePane 53.331 kB 53.538 kB ExceedsBaseline     207 bytes
office-ui-fabric-react fluentui-react-Keytip 78.268 kB 78.468 kB ExceedsBaseline     200 bytes
office-ui-fabric-react fluentui-react-Sticky 31.867 kB 32.064 kB ExceedsBaseline     197 bytes
office-ui-fabric-react fluentui-react-DatePicker 179.793 kB 179.983 kB ExceedsBaseline     190 bytes
office-ui-fabric-react fluentui-react-Slider 55.4 kB 55.575 kB ExceedsBaseline     175 bytes
office-ui-fabric-react fluentui-react-List 37.965 kB 38.136 kB ExceedsBaseline     171 bytes
office-ui-fabric-react fluentui-react-ExtendedPicker 94.788 kB 94.949 kB ExceedsBaseline     161 bytes
office-ui-fabric-react fluentui-react-Callout 80.537 kB 80.684 kB ExceedsBaseline     147 bytes
office-ui-fabric-react fluentui-react-TeachingBubble 199.639 kB 199.784 kB ExceedsBaseline     145 bytes
office-ui-fabric-react fluentui-react-ContextualMenu 150.663 kB 150.803 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-Pivot 183.948 kB 184.088 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-SpinButton 186.357 kB 186.497 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-Grid 175.614 kB 175.754 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-MessageBar 184.303 kB 184.443 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-ButtonGrid 175.614 kB 175.754 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-SearchBox 182.678 kB 182.818 kB ExceedsBaseline     140 bytes
office-ui-fabric-react fluentui-react-FocusTrapZone 15.643 kB 15.775 kB ExceedsBaseline     132 bytes
office-ui-fabric-react fluentui-react-Button 189.869 kB 189.996 kB ExceedsBaseline     127 bytes
office-ui-fabric-react fluentui-react-Utilities 71.577 kB 71.704 kB ExceedsBaseline     127 bytes
office-ui-fabric-react fluentui-react-HoverCard 93.45 kB 93.553 kB ExceedsBaseline     103 bytes
office-ui-fabric-react fluentui-react-Selection 41.107 kB 41.202 kB ExceedsBaseline     95 bytes
office-ui-fabric-react fluentui-react-ResponsiveMode 7.987 kB 8.078 kB ExceedsBaseline     91 bytes
office-ui-fabric-react fluentui-react-KeytipData 13.522 kB 13.585 kB ExceedsBaseline     63 bytes
office-ui-fabric-react fluentui-react-WeeklyDayPicker 98.664 kB 98.724 kB ExceedsBaseline     60 bytes
office-ui-fabric-react fluentui-react-Calendar 118.659 kB 118.718 kB ExceedsBaseline     59 bytes
office-ui-fabric-react fluentui-react-Rating 78.892 kB 78.951 kB ExceedsBaseline     59 bytes
office-ui-fabric-react fluentui-react-Positioning 21.658 kB 21.717 kB ExceedsBaseline     59 bytes
office-ui-fabric-react fluentui-react-FocusZone 53.163 kB 53.221 kB ExceedsBaseline     58 bytes
office-ui-fabric-react fluentui-react-Viewport 22.933 kB 22.945 kB ExceedsBaseline     12 bytes
office-ui-fabric-react fluentui-react-DragDrop 8.393 kB 8.343 kB BelowBaseline     -50 bytes

ExceedsTolerance Over Tolerance (1024 B) ExceedsBaseline Over Baseline BelowBaseline Below Baseline New New Deleted  Removed 1 kB = 1000 B

Baseline commit: c43a582b1e7587da4abbe03b04b1fc84f0f15415 (build)

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 13, 2023

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 592 614 5000
Breadcrumb mount 1668 1650 1000
Checkbox mount 1666 1672 5000
CheckboxBase mount 1478 1457 5000
ChoiceGroup mount 3002 2951 5000
ComboBox mount 646 651 1000
CommandBar mount 6036 6072 1000
ContextualMenu mount 11601 11492 1000
DefaultButton mount 744 735 5000
DetailsRow mount 2182 2166 5000
DetailsRowFast mount 2150 2124 5000
DetailsRowNoStyles mount 1976 1997 5000
Dialog mount 2789 2794 1000
DocumentCardTitle mount 219 213 1000
Dropdown mount 1949 1996 5000
FocusTrapZone mount 1122 1106 5000
FocusZone mount 1043 1067 5000
GroupedList mount 40965 41279 2
GroupedList virtual-rerender 19793 19738 2
GroupedList virtual-rerender-with-unmount 49829 50395 2
GroupedListV2 mount 221 228 2
GroupedListV2 virtual-rerender 207 213 2
GroupedListV2 virtual-rerender-with-unmount 231 220 2
IconButton mount 1060 1083 5000
Label mount 339 333 5000
Layer mount 2692 2684 5000
Link mount 392 386 5000
MenuButton mount 916 910 5000
MessageBar mount 21386 21494 5000
Nav mount 1926 1937 1000
OverflowSet mount 793 774 5000
Panel mount 2035 1750 1000
Persona mount 719 727 1000
Pivot mount 865 857 1000
PrimaryButton mount 846 817 5000
Rating mount 4531 4577 5000
SearchBox mount 908 915 5000
Shimmer mount 1877 1877 5000
Slider mount 1329 1320 5000
SpinButton mount 2757 2835 5000
Spinner mount 363 384 5000
SplitButton mount 1749 1796 5000
Stack mount 407 402 5000
StackWithIntrinsicChildren mount 864 863 5000
StackWithTextChildren mount 2558 2547 5000
SwatchColorPicker mount 6045 6155 5000
TagPicker mount 1447 1444 5000
Text mount 373 372 5000
TextField mount 927 919 5000
ThemeProvider mount 817 829 5000
ThemeProvider virtual-rerender 585 576 5000
ThemeProvider virtual-rerender-with-unmount 1268 1254 5000
Toggle mount 616 586 5000
buttonNative mount 185 193 5000

@spmonahan
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@spmonahan spmonahan force-pushed the lint/disallow-window-document-v8 branch from 281d435 to c847424 Compare January 8, 2024 22:34
@spmonahan spmonahan force-pushed the lint/disallow-window-document-v8 branch from f34fca4 to 41dde23 Compare January 9, 2024 23:35
@spmonahan spmonahan merged commit 5858fe0 into microsoft:master Jan 10, 2024
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "chore: disallow document and window access",
Copy link
Contributor

Choose a reason for hiding this comment

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

tip for future: chore != patch, this added new api on public surface while refactoring under the hood. it should have been type:minor and feat

marcosmoura added a commit to marcosmoura/fluentui that referenced this pull request Jan 10, 2024
* master: (166 commits)
  Remove v0 dependency from v0 compat package (microsoft#30276)
  applying package updates
  Disallow `window` and `document` access for `@fluentui/react` and related packages. (microsoft#30063)
  Update Rating api and stories (microsoft#30092)
  TeachingPopover: Minor style changes (microsoft#30270)
  feat(scripts-gulp): replace lerna with nx (microsoft#30266)
  ci: remove canary and nightly functionality from northstar (microsoft#30264)
  List: Re-initialize on mount in React 18. (microsoft#29881)
  feat(scripts-monorepo): replace lerna/utils with pure nx apis (microsoft#30178)
  chore: remove react-timepicker-compat-preview (microsoft#30263)
  applying package updates
  feat(TimePicker-compat): stable release  (microsoft#30217)
  feat: Implement onPositioningEnd callback (microsoft#30177)
  applying package updates
  v8 registerIcons compat (microsoft#30003)
  Adding Planner, ToDoItem and updated Project filetype icons. Updating FabricCDN url to latest datecode. (microsoft#30079)
  Scaffolds more Nav components (microsoft#30227)
  chore: migrate to nx 17.2 (microsoft#30187)
  applying package updates
  feat: Update position when target or container dimensions change (microsoft#30179)
  ...
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.

6 participants