react-native-windows 0.74.40 → 0.74.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,11 +89,6 @@ namespace Microsoft.ReactNative.Composition
89
89
  Microsoft.ReactNative.ViewProps ViewProps { get; };
90
90
  };
91
91
 
92
- // Some other interfaces we could consider implementing/exposing
93
- // Use ifdef USE_EXPERIMENTAL_WINUI3 to add these
94
- // Microsoft.UI.Content.IContentLink // Use ifdef USE_EXPERIMENTAL_WINUI3
95
- // Microsoft.UI.Content.IContentSiteBridge
96
- // Microsoft.UI.Content.IContentSiteBridge2 // Use ifdef USE_EXPERIMENTAL_WINUI3
97
92
  [experimental]
98
93
  [webhosthidden]
99
94
  runtimeclass ContentIslandComponentView : ViewComponentView {
@@ -28,12 +28,10 @@ CompositionDynamicAutomationProvider::CompositionDynamicAutomationProvider(
28
28
  }
29
29
  }
30
30
 
31
- #ifdef USE_EXPERIMENTAL_WINUI3
32
31
  CompositionDynamicAutomationProvider::CompositionDynamicAutomationProvider(
33
32
  const winrt::Microsoft::ReactNative::Composition::ComponentView &componentView,
34
33
  const winrt::Microsoft::UI::Content::ChildSiteLink &childSiteLink) noexcept
35
34
  : m_view{componentView}, m_childSiteLink{childSiteLink} {}
36
- #endif // USE_EXPERIMENTAL_WINUI3
37
35
 
38
36
  HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate(
39
37
  NavigateDirection direction,
@@ -41,7 +39,6 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate(
41
39
  if (pRetVal == nullptr)
42
40
  return E_POINTER;
43
41
 
44
- #ifdef USE_EXPERIMENTAL_WINUI3
45
42
  if (m_childSiteLink) {
46
43
  if (direction == NavigateDirection_FirstChild || direction == NavigateDirection_LastChild) {
47
44
  auto fragment = m_childSiteLink.AutomationProvider().try_as<IRawElementProviderFragment>();
@@ -49,7 +46,6 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::Navigate(
49
46
  return S_OK;
50
47
  }
51
48
  }
52
- #endif // USE_EXPERIMENTAL_WINUI3
53
49
 
54
50
  return UiaNavigateHelper(m_view.view(), direction, *pRetVal);
55
51
  }
@@ -25,11 +25,9 @@ class CompositionDynamicAutomationProvider : public winrt::implements<
25
25
  CompositionDynamicAutomationProvider(
26
26
  const winrt::Microsoft::ReactNative::Composition::ComponentView &componentView) noexcept;
27
27
 
28
- #ifdef USE_EXPERIMENTAL_WINUI3
29
28
  CompositionDynamicAutomationProvider(
30
29
  const winrt::Microsoft::ReactNative::Composition::ComponentView &componentView,
31
30
  const winrt::Microsoft::UI::Content::ChildSiteLink &childContentLink) noexcept;
32
- #endif // USE_EXPERIMENTAL_WINUI3
33
31
 
34
32
  // inherited via IRawElementProviderFragment
35
33
  virtual HRESULT __stdcall Navigate(NavigateDirection direction, IRawElementProviderFragment **pRetVal) override;
@@ -92,10 +90,8 @@ class CompositionDynamicAutomationProvider : public winrt::implements<
92
90
  private:
93
91
  ::Microsoft::ReactNative::ReactTaggedView m_view;
94
92
  std::vector<winrt::com_ptr<IRawElementProviderSimple>> m_selectionItems;
95
- #ifdef USE_EXPERIMENTAL_WINUI3
96
93
  // Non-null when this UIA node is the peer of a ContentIslandComponentView.
97
94
  winrt::Microsoft::UI::Content::ChildSiteLink m_childSiteLink{nullptr};
98
- #endif
99
95
  };
100
96
 
101
97
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -174,7 +174,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::get_FragmentRoot(IRawElemen
174
174
 
175
175
  *pRetVal = nullptr;
176
176
 
177
- #ifdef USE_EXPERIMENTAL_WINUI3
178
177
  if (m_island) {
179
178
  auto parentRoot = m_island.FragmentRootAutomationProvider();
180
179
  auto spFragment = parentRoot.try_as<IRawElementProviderFragmentRoot>();
@@ -183,7 +182,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::get_FragmentRoot(IRawElemen
183
182
  return S_OK;
184
183
  }
185
184
  }
186
- #endif
187
185
 
188
186
  return S_OK;
189
187
  }
@@ -290,7 +288,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::Navigate(
290
288
  }
291
289
  }
292
290
  } else if (direction == NavigateDirection_Parent) {
293
- #ifdef USE_EXPERIMENTAL_WINUI3
294
291
  if (m_island) {
295
292
  auto parent = m_island.ParentAutomationProvider();
296
293
  auto spFragment = parent.try_as<IRawElementProviderFragment>();
@@ -299,7 +296,6 @@ HRESULT __stdcall CompositionRootAutomationProvider::Navigate(
299
296
  return S_OK;
300
297
  }
301
298
  }
302
- #endif
303
299
  }
304
300
 
305
301
  *pRetVal = nullptr;
@@ -44,7 +44,6 @@ ContentIslandComponentView::ContentIslandComponentView(
44
44
  }
45
45
 
46
46
  void ContentIslandComponentView::OnMounted() noexcept {
47
- #ifdef USE_EXPERIMENTAL_WINUI3
48
47
  m_childSiteLink = winrt::Microsoft::UI::Content::ChildSiteLink::Create(
49
48
  rootComponentView()->parentContentIsland(),
50
49
  winrt::Microsoft::ReactNative::Composition::Experimental::CompositionContextHelper::InnerVisual(Visual())
@@ -84,21 +83,17 @@ void ContentIslandComponentView::OnMounted() noexcept {
84
83
  }));
85
84
  view = view.Parent();
86
85
  }
87
- #endif
88
86
  }
89
87
 
90
88
  void ContentIslandComponentView::OnUnmounted() noexcept {
91
89
  m_layoutMetricChangedRevokers.clear();
92
- #ifdef USE_EXPERIMENTAL_WINUI3
93
90
  if (m_navigationHostDepartFocusRequestedToken && m_navigationHost) {
94
91
  m_navigationHost.DepartFocusRequested(m_navigationHostDepartFocusRequestedToken);
95
92
  m_navigationHostDepartFocusRequestedToken = {};
96
93
  }
97
- #endif
98
94
  }
99
95
 
100
96
  void ContentIslandComponentView::ParentLayoutChanged() noexcept {
101
- #ifdef USE_EXPERIMENTAL_WINUI3
102
97
  if (m_layoutChangePosted)
103
98
  return;
104
99
 
@@ -114,30 +109,21 @@ void ContentIslandComponentView::ParentLayoutChanged() noexcept {
114
109
  strongThis->m_layoutChangePosted = false;
115
110
  }
116
111
  });
117
- #endif
118
112
  }
119
113
 
120
114
  winrt::IInspectable ContentIslandComponentView::EnsureUiaProvider() noexcept {
121
- #ifdef USE_EXPERIMENTAL_WINUI3
122
115
  if (m_uiaProvider == nullptr) {
123
116
  m_uiaProvider = winrt::make<winrt::Microsoft::ReactNative::implementation::CompositionDynamicAutomationProvider>(
124
117
  *get_strong(), m_childSiteLink);
125
118
  }
126
119
  return m_uiaProvider;
127
- #else
128
- return Super::EnsureUiaProvider();
129
- #endif
130
120
  }
131
121
 
132
122
  bool ContentIslandComponentView::focusable() const noexcept {
133
- #ifdef USE_EXPERIMENTAL_WINUI3
134
123
  // We don't have a way to check to see if the ContentIsland has focusable content,
135
124
  // so we'll always return true. We'll have to handle the case where the content doesn't have
136
125
  // focusable content in the OnGotFocus handler.
137
126
  return true;
138
- #else
139
- return Super::focusable();
140
- #endif
141
127
  }
142
128
 
143
129
  // Helper to convert a FocusNavigationDirection to a FocusNavigationReason.
@@ -156,17 +142,12 @@ winrt::Microsoft::UI::Input::FocusNavigationReason GetFocusNavigationReason(
156
142
 
157
143
  void ContentIslandComponentView::onGotFocus(
158
144
  const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
159
- #ifdef USE_EXPERIMENTAL_WINUI3
160
145
  auto gotFocusEventArgs = args.as<winrt::Microsoft::ReactNative::implementation::GotFocusEventArgs>();
161
146
  const auto navigationReason = GetFocusNavigationReason(gotFocusEventArgs->Direction());
162
147
  m_navigationHost.NavigateFocus(winrt::Microsoft::UI::Input::FocusNavigationRequest::Create(navigationReason));
163
- #else
164
- return Super::onGotFocus(args);
165
- #endif // USE_EXPERIMENTAL_WINUI3
166
148
  }
167
149
 
168
150
  ContentIslandComponentView::~ContentIslandComponentView() noexcept {
169
- #ifdef USE_EXPERIMENTAL_WINUI3
170
151
  if (m_navigationHostDepartFocusRequestedToken && m_navigationHost) {
171
152
  m_navigationHost.DepartFocusRequested(m_navigationHostDepartFocusRequestedToken);
172
153
  m_navigationHostDepartFocusRequestedToken = {};
@@ -189,7 +170,6 @@ ContentIslandComponentView::~ContentIslandComponentView() noexcept {
189
170
  m_previousSiblingAutomationProviderRequestedToken = {};
190
171
  }
191
172
  }
192
- #endif // USE_EXPERIMENTAL_WINUI3
193
173
  if (m_islandToConnect) {
194
174
  m_islandToConnect.Close();
195
175
  }
@@ -212,31 +192,26 @@ void ContentIslandComponentView::UnmountChildComponentView(
212
192
  void ContentIslandComponentView::updateLayoutMetrics(
213
193
  facebook::react::LayoutMetrics const &layoutMetrics,
214
194
  facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
215
- #ifdef USE_EXPERIMENTAL_WINUI3
216
195
  if (m_childSiteLink) {
217
196
  m_childSiteLink.ActualSize({layoutMetrics.frame.size.width, layoutMetrics.frame.size.height});
218
197
  ParentLayoutChanged();
219
198
  }
220
- #endif
221
199
  base_type::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
222
200
  }
223
201
 
224
202
  void ContentIslandComponentView::Connect(const winrt::Microsoft::UI::Content::ContentIsland &contentIsland) noexcept {
225
- #ifdef USE_EXPERIMENTAL_WINUI3
226
203
  if (m_childSiteLink) {
227
204
  m_islandToConnect = nullptr;
228
205
  m_childSiteLink.Connect(contentIsland);
229
206
  } else {
230
207
  m_islandToConnect = contentIsland;
231
208
  }
232
- #endif // USE_EXPERIMENTAL_WINUI3
233
209
  }
234
210
 
235
211
  void ContentIslandComponentView::prepareForRecycle() noexcept {
236
212
  Super::prepareForRecycle();
237
213
  }
238
214
 
239
- #ifdef USE_EXPERIMENTAL_WINUI3
240
215
  void ContentIslandComponentView::ConfigureChildSiteLinkAutomation() noexcept {
241
216
  // This automation mode must be set before connecting the child ContentIsland.
242
217
  // It puts the child content into a mode where it won't own its own framework root. Instead, the child island's
@@ -288,6 +263,5 @@ void ContentIslandComponentView::ConfigureChildSiteLinkAutomation() noexcept {
288
263
  args.Handled(true);
289
264
  });
290
265
  }
291
- #endif // USE_EXPERIMENTAL_WINUI3
292
266
 
293
267
  } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -61,7 +61,6 @@ struct ContentIslandComponentView : ContentIslandComponentViewT<ContentIslandCom
61
61
  winrt::event_token m_mountedToken;
62
62
  winrt::event_token m_unmountedToken;
63
63
  std::vector<winrt::Microsoft::ReactNative::ComponentView::LayoutMetricsChanged_revoker> m_layoutMetricChangedRevokers;
64
- #ifdef USE_EXPERIMENTAL_WINUI3
65
64
  winrt::Microsoft::UI::Content::ChildSiteLink m_childSiteLink{nullptr};
66
65
  winrt::Microsoft::UI::Input::InputFocusNavigationHost m_navigationHost{nullptr};
67
66
  winrt::event_token m_navigationHostDepartFocusRequestedToken{};
@@ -72,7 +71,6 @@ struct ContentIslandComponentView : ContentIslandComponentViewT<ContentIslandCom
72
71
  winrt::event_token m_parentAutomationProviderRequestedToken{};
73
72
  winrt::event_token m_nextSiblingAutomationProviderRequestedToken{};
74
73
  winrt::event_token m_previousSiblingAutomationProviderRequestedToken{};
75
- #endif
76
74
  };
77
75
 
78
76
  } // namespace winrt::Microsoft::ReactNative::Composition::implementation
@@ -56,12 +56,10 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
56
56
  m_window = nullptr;
57
57
  }
58
58
 
59
- #ifdef USE_EXPERIMENTAL_WINUI3
60
59
  if (m_popUp) {
61
60
  m_popUp.Close();
62
61
  m_popUp = nullptr;
63
62
  }
64
- #endif
65
63
  }
66
64
 
67
65
  void InitializePortalViewComponent(
@@ -139,11 +137,7 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
139
137
  }
140
138
 
141
139
  void AdjustWindowSize(const winrt::Microsoft::ReactNative::LayoutMetrics &layoutMetrics) noexcept {
142
- #ifdef USE_EXPERIMENTAL_WINUI3
143
140
  if (!m_popUp) {
144
- #else
145
- if (!m_window) {
146
- #endif
147
141
  return;
148
142
  }
149
143
 
@@ -159,20 +153,12 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
159
153
  int32_t yCor = static_cast<int32_t>(
160
154
  (parentRC.top + parentRC.bottom - layoutMetrics.Frame.Height * layoutMetrics.PointScaleFactor) / 2);
161
155
 
162
- #ifdef USE_EXPERIMENTAL_WINUI3
163
156
  winrt::Windows::Graphics::RectInt32 rect2{
164
157
  (int)xCor,
165
158
  (int)yCor,
166
159
  static_cast<int32_t>(layoutMetrics.Frame.Width * (layoutMetrics.PointScaleFactor)),
167
160
  static_cast<int32_t>(layoutMetrics.Frame.Height * (layoutMetrics.PointScaleFactor))};
168
161
  m_popUp.MoveAndResize(rect2);
169
- #else
170
- // Adjust window position and size
171
- m_window.ResizeClient(
172
- {static_cast<int32_t>(layoutMetrics.Frame.Width * (layoutMetrics.PointScaleFactor)),
173
- static_cast<int32_t>(layoutMetrics.Frame.Height * (layoutMetrics.PointScaleFactor))});
174
- m_window.Move({xCor, yCor});
175
- #endif
176
162
  };
177
163
 
178
164
  void ShowOnUIThread(const winrt::Microsoft::ReactNative::ComponentView &view) {
@@ -182,7 +168,6 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
182
168
  m_showQueued = false;
183
169
  EnsureModalCreated(view);
184
170
 
185
- #ifdef USE_EXPERIMENTAL_WINUI3
186
171
  if (m_popUp) {
187
172
  m_bridge.Enable();
188
173
  m_popUp.Show();
@@ -198,7 +183,6 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
198
183
  eventEmitter->onShow(eventArgs);
199
184
  }
200
185
  }
201
- #endif
202
186
 
203
187
  if (m_window && !m_window.IsVisible()) {
204
188
  m_bridge.Enable();
@@ -224,11 +208,9 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
224
208
  m_window.Hide();
225
209
  }
226
210
 
227
- #ifdef USE_EXPERIMENTAL_WINUI3
228
211
  if (m_popUp) {
229
212
  m_popUp.Hide();
230
213
  }
231
- #endif
232
214
 
233
215
  // dispatch onDismiss event
234
216
  if (auto eventEmitter = EventEmitter()) {
@@ -252,11 +234,9 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
252
234
  return;
253
235
  }
254
236
 
255
- #ifdef USE_EXPERIMENTAL_WINUI3
256
237
  if (m_popUp) {
257
238
  return;
258
239
  }
259
- #endif
260
240
  // get the root hwnd
261
241
  m_prevWindowID =
262
242
  winrt::Microsoft::ReactNative::ReactCoreInjection::GetTopLevelWindowId(view.ReactContext().Properties());
@@ -266,14 +246,13 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
266
246
 
267
247
  auto portal = view.as<winrt::Microsoft::ReactNative::Composition::PortalComponentView>();
268
248
 
269
- #ifdef USE_EXPERIMENTAL_WINUI3
270
249
  m_bridge = winrt::Microsoft::UI::Content::DesktopChildSiteBridge::Create(
271
250
  view.Parent().as<winrt::Microsoft::ReactNative::Composition::ComponentView>().Compositor(),
272
251
  winrt::Microsoft::UI::GetWindowIdFromWindow(m_parentHwnd));
273
252
  m_reactNativeIsland = winrt::Microsoft::ReactNative::ReactNativeIsland::CreatePortal(portal);
274
253
  auto contentIsland = m_reactNativeIsland.Island();
275
254
 
276
- m_popUp = m_bridge.TryCreatePopupSiteBridge();
255
+ m_popUp = winrt::Microsoft::UI::Content::DesktopPopupSiteBridge::Create(contentIsland);
277
256
  m_popUp.Connect(contentIsland);
278
257
 
279
258
  // set the top-level windows as the new hwnd
@@ -291,37 +270,6 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
291
270
  }
292
271
  });
293
272
 
294
- #else
295
- auto presenter = winrt::Microsoft::UI::Windowing::OverlappedPresenter::CreateForDialog();
296
- presenter.SetBorderAndTitleBar(true, false);
297
- presenter.IsModal(true);
298
-
299
- m_window = winrt::Microsoft::UI::Windowing::AppWindow::Create(
300
- presenter, winrt::Microsoft::UI::GetWindowIdFromWindow(m_parentHwnd));
301
-
302
- // set the top-level windows as the new hwnd
303
- winrt::Microsoft::ReactNative::ReactCoreInjection::SetTopLevelWindowId(
304
- view.ReactContext().Properties(),
305
- reinterpret_cast<uint64_t>(winrt::Microsoft::UI::GetWindowFromWindowId(m_window.Id())));
306
-
307
- // create a react native island - code taken from CompositionHwndHost
308
- m_bridge = winrt::Microsoft::UI::Content::DesktopChildSiteBridge::Create(
309
- view.Parent().as<winrt::Microsoft::ReactNative::Composition::ComponentView>().Compositor(), m_window.Id());
310
- m_reactNativeIsland = winrt::Microsoft::ReactNative::ReactNativeIsland::CreatePortal(portal);
311
- auto contentIsland = m_reactNativeIsland.Island();
312
-
313
- auto navHost = winrt::Microsoft::UI::Input::InputFocusNavigationHost::GetForSiteBridge(m_bridge);
314
- m_departFocusToken = navHost.DepartFocusRequested(
315
- [wkView = winrt::make_weak(view)](
316
- const auto &sender, const winrt::Microsoft::UI::Input::FocusNavigationRequestEventArgs &args) {
317
- if (auto strongView = wkView.get()) {
318
- TrySetFocus(strongView.Parent());
319
- }
320
- });
321
- m_bridge.Connect(contentIsland);
322
-
323
- #endif
324
-
325
273
  m_bridge.ResizePolicy(winrt::Microsoft::UI::Content::ContentSizePolicy::ResizeContentToParentWindow);
326
274
 
327
275
  m_islandStateChangedToken =
@@ -390,9 +338,7 @@ struct ModalHostView : public winrt::implements<ModalHostView, winrt::Windows::F
390
338
  winrt::Microsoft::ReactNative::IComponentState m_state{nullptr};
391
339
  winrt::Microsoft::UI::Content::DesktopChildSiteBridge m_bridge{nullptr};
392
340
  winrt::Microsoft::ReactNative::ReactNativeIsland m_reactNativeIsland{nullptr};
393
- #ifdef USE_EXPERIMENTAL_WINUI3
394
- winrt::Microsoft::UI::Content::PopupWindowSiteBridge m_popUp{nullptr};
395
- #endif
341
+ winrt::Microsoft::UI::Content::DesktopPopupSiteBridge m_popUp{nullptr};
396
342
  };
397
343
 
398
344
  void RegisterWindowsModalHostNativeComponent(
@@ -893,16 +893,6 @@ winrt::Microsoft::UI::Content::ContentIsland ReactNativeIsland::Island() {
893
893
  if (args.DidLayoutDirectionChange()) {
894
894
  pThis->Arrange(pThis->m_layoutConstraints, pThis->m_viewportOffset);
895
895
  }
896
- #ifndef USE_EXPERIMENTAL_WINUI3 // Use this in place of Connected/Disconnected events for now. -- Its not quite what we
897
- // want, but it will do for now.
898
- if (args.DidSiteVisibleChange()) {
899
- if (island.IsSiteVisible()) {
900
- pThis->OnMounted();
901
- } else {
902
- pThis->OnUnmounted();
903
- }
904
- }
905
- #endif
906
896
  }
907
897
  });
908
898
  #ifdef USE_EXPERIMENTAL_WINUI3
@@ -154,7 +154,7 @@ struct ReactNativeIsland
154
154
  bool m_isJSViewAttached{false};
155
155
  bool m_hasRenderedVisual{false};
156
156
  bool m_showingLoadingUI{false};
157
- bool m_mounted{false};
157
+ bool m_mounted{true};
158
158
  winrt::weak_ref<winrt::Microsoft::ReactNative::Composition::PortalComponentView> m_portal{nullptr};
159
159
  IReactDispatcher m_uiDispatcher{nullptr};
160
160
  winrt::IInspectable m_uiaProvider{nullptr};
@@ -32,11 +32,11 @@
32
32
  },
33
33
  "Microsoft.WindowsAppSDK": {
34
34
  "type": "Direct",
35
- "requested": "[1.6.240923002, )",
36
- "resolved": "1.6.240923002",
37
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
35
+ "requested": "[1.7.250401001, )",
36
+ "resolved": "1.7.250401001",
37
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
38
38
  "dependencies": {
39
- "Microsoft.Web.WebView2": "1.0.2651.64",
39
+ "Microsoft.Web.WebView2": "1.0.2903.40",
40
40
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
41
41
  }
42
42
  },
@@ -52,8 +52,8 @@
52
52
  },
53
53
  "Microsoft.Web.WebView2": {
54
54
  "type": "Transitive",
55
- "resolved": "1.0.2651.64",
56
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
55
+ "resolved": "1.0.2903.40",
56
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
57
57
  },
58
58
  "Microsoft.Windows.SDK.BuildTools": {
59
59
  "type": "Transitive",
@@ -87,120 +87,120 @@
87
87
  "native,Version=v0.0/win10-arm": {
88
88
  "Microsoft.WindowsAppSDK": {
89
89
  "type": "Direct",
90
- "requested": "[1.6.240923002, )",
91
- "resolved": "1.6.240923002",
92
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
90
+ "requested": "[1.7.250401001, )",
91
+ "resolved": "1.7.250401001",
92
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
93
93
  "dependencies": {
94
- "Microsoft.Web.WebView2": "1.0.2651.64",
94
+ "Microsoft.Web.WebView2": "1.0.2903.40",
95
95
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
96
96
  }
97
97
  },
98
98
  "Microsoft.Web.WebView2": {
99
99
  "type": "Transitive",
100
- "resolved": "1.0.2651.64",
101
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
100
+ "resolved": "1.0.2903.40",
101
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
102
102
  }
103
103
  },
104
104
  "native,Version=v0.0/win10-arm-aot": {
105
105
  "Microsoft.WindowsAppSDK": {
106
106
  "type": "Direct",
107
- "requested": "[1.6.240923002, )",
108
- "resolved": "1.6.240923002",
109
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
107
+ "requested": "[1.7.250401001, )",
108
+ "resolved": "1.7.250401001",
109
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
110
110
  "dependencies": {
111
- "Microsoft.Web.WebView2": "1.0.2651.64",
111
+ "Microsoft.Web.WebView2": "1.0.2903.40",
112
112
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
113
113
  }
114
114
  },
115
115
  "Microsoft.Web.WebView2": {
116
116
  "type": "Transitive",
117
- "resolved": "1.0.2651.64",
118
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
117
+ "resolved": "1.0.2903.40",
118
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
119
119
  }
120
120
  },
121
121
  "native,Version=v0.0/win10-arm64-aot": {
122
122
  "Microsoft.WindowsAppSDK": {
123
123
  "type": "Direct",
124
- "requested": "[1.6.240923002, )",
125
- "resolved": "1.6.240923002",
126
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
124
+ "requested": "[1.7.250401001, )",
125
+ "resolved": "1.7.250401001",
126
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
127
127
  "dependencies": {
128
- "Microsoft.Web.WebView2": "1.0.2651.64",
128
+ "Microsoft.Web.WebView2": "1.0.2903.40",
129
129
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
130
130
  }
131
131
  },
132
132
  "Microsoft.Web.WebView2": {
133
133
  "type": "Transitive",
134
- "resolved": "1.0.2651.64",
135
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
134
+ "resolved": "1.0.2903.40",
135
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
136
136
  }
137
137
  },
138
138
  "native,Version=v0.0/win10-x64": {
139
139
  "Microsoft.WindowsAppSDK": {
140
140
  "type": "Direct",
141
- "requested": "[1.6.240923002, )",
142
- "resolved": "1.6.240923002",
143
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
141
+ "requested": "[1.7.250401001, )",
142
+ "resolved": "1.7.250401001",
143
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
144
144
  "dependencies": {
145
- "Microsoft.Web.WebView2": "1.0.2651.64",
145
+ "Microsoft.Web.WebView2": "1.0.2903.40",
146
146
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
147
147
  }
148
148
  },
149
149
  "Microsoft.Web.WebView2": {
150
150
  "type": "Transitive",
151
- "resolved": "1.0.2651.64",
152
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
151
+ "resolved": "1.0.2903.40",
152
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
153
153
  }
154
154
  },
155
155
  "native,Version=v0.0/win10-x64-aot": {
156
156
  "Microsoft.WindowsAppSDK": {
157
157
  "type": "Direct",
158
- "requested": "[1.6.240923002, )",
159
- "resolved": "1.6.240923002",
160
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
158
+ "requested": "[1.7.250401001, )",
159
+ "resolved": "1.7.250401001",
160
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
161
161
  "dependencies": {
162
- "Microsoft.Web.WebView2": "1.0.2651.64",
162
+ "Microsoft.Web.WebView2": "1.0.2903.40",
163
163
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
164
164
  }
165
165
  },
166
166
  "Microsoft.Web.WebView2": {
167
167
  "type": "Transitive",
168
- "resolved": "1.0.2651.64",
169
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
168
+ "resolved": "1.0.2903.40",
169
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
170
170
  }
171
171
  },
172
172
  "native,Version=v0.0/win10-x86": {
173
173
  "Microsoft.WindowsAppSDK": {
174
174
  "type": "Direct",
175
- "requested": "[1.6.240923002, )",
176
- "resolved": "1.6.240923002",
177
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
175
+ "requested": "[1.7.250401001, )",
176
+ "resolved": "1.7.250401001",
177
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
178
178
  "dependencies": {
179
- "Microsoft.Web.WebView2": "1.0.2651.64",
179
+ "Microsoft.Web.WebView2": "1.0.2903.40",
180
180
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
181
181
  }
182
182
  },
183
183
  "Microsoft.Web.WebView2": {
184
184
  "type": "Transitive",
185
- "resolved": "1.0.2651.64",
186
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
185
+ "resolved": "1.0.2903.40",
186
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
187
187
  }
188
188
  },
189
189
  "native,Version=v0.0/win10-x86-aot": {
190
190
  "Microsoft.WindowsAppSDK": {
191
191
  "type": "Direct",
192
- "requested": "[1.6.240923002, )",
193
- "resolved": "1.6.240923002",
194
- "contentHash": "7PfOz2scXU+AAM/GYge+f6s7k3DVI+R1P8MNPZQr56GOPCGw+csvcg3S5KZg47z/o04kNvWH3GKtWT1ML9tpZw==",
192
+ "requested": "[1.7.250401001, )",
193
+ "resolved": "1.7.250401001",
194
+ "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
195
195
  "dependencies": {
196
- "Microsoft.Web.WebView2": "1.0.2651.64",
196
+ "Microsoft.Web.WebView2": "1.0.2903.40",
197
197
  "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
198
198
  }
199
199
  },
200
200
  "Microsoft.Web.WebView2": {
201
201
  "type": "Transitive",
202
- "resolved": "1.0.2651.64",
203
- "contentHash": "f5sc/vcAoTCTEW7Nqzp4galAuTRguZViw8ksn+Nx2uskEBPm0/ubzy6gVjvXS/P96jLS89C8T9I0hPc417xpNg=="
202
+ "resolved": "1.0.2903.40",
203
+ "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
204
204
  }
205
205
  }
206
206
  }
@@ -149,9 +149,6 @@
149
149
  <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModule.h">
150
150
  <Filter>TurboModule</Filter>
151
151
  </ClInclude>
152
- <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.h">
153
- <Filter>TurboModule</Filter>
154
- </ClInclude>
155
152
  <ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModuleUtils.h">
156
153
  <Filter>TurboModule</Filter>
157
154
  </ClInclude>
@@ -171,6 +168,7 @@
171
168
  <ClInclude Include="$(NodeApiDir)js_native_api.h" />
172
169
  <ClInclude Include="$(NodeApiDir)js_native_api_types.h" />
173
170
  <ClInclude Include="$(NodeApiDir)js_runtime_api.h" />
171
+ <ClInclude Include="$(Bridging_SourcePath)\LongLivedObject.h" />
174
172
  </ItemGroup>
175
173
  <ItemGroup>
176
174
  <Filter Include="JSI">
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.74.40</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.74.42</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>74</ReactNativeWindowsMinor>
16
- <ReactNativeWindowsPatch>40</ReactNativeWindowsPatch>
16
+ <ReactNativeWindowsPatch>42</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>bd26f3b61d1f46e15b9f85ef16c46744db8f33e5</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>6ad7b0946466b7a6ea5cd8340d3c8ea53295e9ba</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -9,7 +9,7 @@
9
9
  <WinUI3ExperimentalVersion Condition="'$(WinUI3ExperimentalVersion)'==''">1.7.250127003-experimental3</WinUI3ExperimentalVersion>
10
10
  <!-- This value is also used by the CLI, see /packages/@react-native-windows/cli/.../autolinkWindows.ts -->
11
11
  <WinUI3Version Condition="'$(WinUI3Version)'=='' AND '$(UseExperimentalWinUI3)'=='true'">$(WinUI3ExperimentalVersion)</WinUI3Version>
12
- <WinUI3Version Condition="'$(WinUI3Version)'==''">1.6.240923002</WinUI3Version>
12
+ <WinUI3Version Condition="'$(WinUI3Version)'==''">1.7.250401001</WinUI3Version>
13
13
  </PropertyGroup>
14
14
 
15
15
  <PropertyGroup Label="WinUI2x versioning">
@@ -290,6 +290,10 @@ fire_and_forget WinRTWebSocketResource2::PerformWrite(string &&message, bool isB
290
290
  }
291
291
 
292
292
  IAsyncAction WinRTWebSocketResource2::SendPendingMessages() noexcept {
293
+ // Enforcing execution in the background queue.
294
+ // Awaiting of this coroutine will schedule its execution in the thread pool, ignoring the intended dispatch queue.
295
+ co_await resume_in_queue(m_backgroundQueue);
296
+
293
297
  auto self = shared_from_this();
294
298
 
295
299
  while (!self->m_outgoingMessages.empty()) {
@@ -334,6 +338,7 @@ IAsyncAction WinRTWebSocketResource2::SendPendingMessages() noexcept {
334
338
  auto result = async.ErrorCode();
335
339
  if (result < 0) {
336
340
  Fail(std::move(result), ErrorType::Send);
341
+ co_return;
337
342
  }
338
343
  }
339
344
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.74.40",
3
+ "version": "0.74.42",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",