react-native-windows 0.74.47 → 0.74.52

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.
package/.flowconfig CHANGED
@@ -53,6 +53,10 @@
53
53
  .*/node_modules/sample-apps/.*
54
54
  .*/node_modules/playground/.*
55
55
 
56
+ ; Ignore prepare-release's own node_modules (hermes-estree .flow files use unsupported syntax)
57
+ .*/node_modules/@rnw-scripts/prepare-release/node_modules/.*
58
+ .*/packages/@rnw-scripts/prepare-release/node_modules/.*
59
+
56
60
  ; Ignore templates for 'react-native init'
57
61
  <PROJECT_ROOT>/packages/react-native/template/.*
58
62
 
@@ -166,8 +166,6 @@ FileMappingBigString::FileMappingBigString(const std::wstring &filename, uint32_
166
166
  return;
167
167
  }
168
168
 
169
- WerRegisterMemoryBlock(m_fileData.get(), m_fileSize);
170
-
171
169
  static const uint32_t s_pageSize = getPageSize();
172
170
  if (m_fileSize % s_pageSize != 0) {
173
171
  // Data are owned by m_fileData, deleter is no-op
@@ -22,7 +22,7 @@
22
22
  <FmtVersion>10.1.0</FmtVersion>
23
23
  <FmtCommitHash>ca2e3685b160617d3d95fcd9e789c4e06ca88</FmtCommitHash>
24
24
  <!-- Commit hash for https://github.com/microsoft/node-api-jsi code. -->
25
- <NodeApiJsiCommitHash>83cfef428a97627c9185c73da097e42742de56eb</NodeApiJsiCommitHash>
25
+ <NodeApiJsiCommitHash>21b47f08b762b21b1d4d970940ab23f59f43249c</NodeApiJsiCommitHash>
26
26
  </PropertyGroup>
27
27
 
28
28
  <!--
@@ -966,12 +966,17 @@ void CompositionEventHandler::getTargetPointerArgs(
966
966
  assert(m_pointerCapturingComponentTag != -1);
967
967
  tag = m_pointerCapturingComponentTag;
968
968
 
969
- auto targetComponentView = fabricuiManager->GetViewRegistry().componentViewDescriptorWithTag(tag).view;
970
- auto clientRect = winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(targetComponentView)
971
- ->getClientRect();
972
- if (auto strongRootView = m_wkRootView.get()) {
973
- ptLocal.x = ptScaled.x - (clientRect.left / strongRootView.ScaleFactor());
974
- ptLocal.y = ptScaled.y - (clientRect.top / strongRootView.ScaleFactor());
969
+ auto targetComponentView = fabricuiManager->GetViewRegistry().findComponentViewWithTag(tag);
970
+ if (targetComponentView) {
971
+ auto clientRect =
972
+ winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(targetComponentView)
973
+ ->getClientRect();
974
+ if (auto strongRootView = m_wkRootView.get()) {
975
+ ptLocal.x = ptScaled.x - (clientRect.left / strongRootView.ScaleFactor());
976
+ ptLocal.y = ptScaled.y - (clientRect.top / strongRootView.ScaleFactor());
977
+ }
978
+ } else {
979
+ tag = -1;
975
980
  }
976
981
  } else {
977
982
  tag = RootComponentView().hitTest(ptScaled, ptLocal);
@@ -381,7 +381,7 @@ void ComponentView::onGotFocus(
381
381
  focusRect.size.height += (FOCUS_VISUAL_WIDTH * 2);
382
382
  focusVisualRoot(focusRect)->hostFocusVisual(true, get_strong());
383
383
  }
384
- if (m_uiaProvider) {
384
+ if (EnsureUiaProvider()) {
385
385
  auto spProviderSimple = m_uiaProvider.try_as<IRawElementProviderSimple>();
386
386
  if (spProviderSimple != nullptr) {
387
387
  winrt::Microsoft::ReactNative::implementation::UpdateUiaProperty(
@@ -374,13 +374,12 @@ winrt::IInspectable ReactNativeIsland::GetUiaProvider() noexcept {
374
374
  if (m_uiaProvider == nullptr) {
375
375
  m_uiaProvider =
376
376
  winrt::make<winrt::Microsoft::ReactNative::implementation::CompositionRootAutomationProvider>(*this);
377
- if (m_hwnd && !m_island) {
378
- auto pRootProvider =
379
- static_cast<winrt::Microsoft::ReactNative::implementation::CompositionRootAutomationProvider *>(
380
- m_uiaProvider.as<IRawElementProviderSimple>().get());
381
- if (pRootProvider != nullptr) {
382
- pRootProvider->SetHwnd(m_hwnd);
383
- }
377
+ auto pRootProvider =
378
+ static_cast<winrt::Microsoft::ReactNative::implementation::CompositionRootAutomationProvider *>(
379
+ m_uiaProvider.as<IRawElementProviderSimple>().get());
380
+ if (pRootProvider != nullptr) {
381
+ pRootProvider->SetIsland(m_island);
382
+ pRootProvider->SetHwnd(m_hwnd);
384
383
  }
385
384
  }
386
385
  return m_uiaProvider;
@@ -868,9 +867,6 @@ winrt::Microsoft::UI::Content::ContentIsland ReactNativeIsland::Island() {
868
867
  auto pRootProvider =
869
868
  static_cast<winrt::Microsoft::ReactNative::implementation::CompositionRootAutomationProvider *>(
870
869
  provider.as<IRawElementProviderSimple>().get());
871
- if (pRootProvider != nullptr) {
872
- pRootProvider->SetIsland(pThis->m_island);
873
- }
874
870
  args.AutomationProvider(std::move(provider));
875
871
  args.Handled(true);
876
872
  }
@@ -88,6 +88,8 @@ void RootComponentView::SetFocusedComponent(
88
88
  ->onLostFocus(args);
89
89
  }
90
90
 
91
+ m_focusedComponent = value;
92
+
91
93
  if (value) {
92
94
  if (auto rootView = m_wkRootView.get()) {
93
95
  winrt::get_self<winrt::Microsoft::ReactNative::implementation::ReactNativeIsland>(rootView)->TrySetFocus();
@@ -95,8 +97,6 @@ void RootComponentView::SetFocusedComponent(
95
97
  auto args = winrt::make<winrt::Microsoft::ReactNative::implementation::GotFocusEventArgs>(value, direction);
96
98
  winrt::get_self<winrt::Microsoft::ReactNative::implementation::ComponentView>(value)->onGotFocus(args);
97
99
  }
98
-
99
- m_focusedComponent = value;
100
100
  }
101
101
 
102
102
  bool RootComponentView::NavigateFocus(const winrt::Microsoft::ReactNative::FocusNavigationRequest &request) noexcept {
@@ -631,6 +631,19 @@ WPARAM PointerRoutedEventArgsToMouseWParam(
631
631
  return wParam;
632
632
  }
633
633
 
634
+ bool WindowsTextInputComponentView::IsDoubleClick() {
635
+ using namespace std::chrono;
636
+
637
+ auto now = steady_clock::now();
638
+ auto duration = duration_cast<milliseconds>(now - m_lastClickTime).count();
639
+
640
+ const int DOUBLE_CLICK_TIME_MS = ::GetDoubleClickTime();
641
+
642
+ m_lastClickTime = now;
643
+
644
+ return (duration < DOUBLE_CLICK_TIME_MS);
645
+ }
646
+
634
647
  void WindowsTextInputComponentView::OnPointerPressed(
635
648
  const winrt::Microsoft::ReactNative::Composition::Input::PointerRoutedEventArgs &args) noexcept {
636
649
  UINT msg = 0;
@@ -647,7 +660,11 @@ void WindowsTextInputComponentView::OnPointerPressed(
647
660
  if (pp.PointerDeviceType() == winrt::Microsoft::ReactNative::Composition::Input::PointerDeviceType::Mouse) {
648
661
  switch (pp.Properties().PointerUpdateKind()) {
649
662
  case winrt::Microsoft::ReactNative::Composition::Input::PointerUpdateKind::LeftButtonPressed:
650
- msg = WM_LBUTTONDOWN;
663
+ if (IsDoubleClick()) {
664
+ msg = WM_LBUTTONDBLCLK;
665
+ } else {
666
+ msg = WM_LBUTTONDOWN;
667
+ }
651
668
  break;
652
669
  case winrt::Microsoft::ReactNative::Composition::Input::PointerUpdateKind::MiddleButtonPressed:
653
670
  msg = WM_MBUTTONDOWN;
@@ -1592,6 +1609,9 @@ WindowsTextInputComponentView::createVisual() noexcept {
1592
1609
  LRESULT res;
1593
1610
  winrt::check_hresult(m_textServices->TxSendMessage(EM_SETTEXTMODE, TM_PLAINTEXT, 0, &res));
1594
1611
 
1612
+ // Enable TSF support
1613
+ winrt::check_hresult(m_textServices->TxSendMessage(EM_SETEDITSTYLE, SES_USECTF, SES_USECTF, nullptr));
1614
+
1595
1615
  m_caretVisual = m_compContext.CreateCaretVisual();
1596
1616
  visual.InsertAt(m_caretVisual.InnerVisual(), 0);
1597
1617
  m_caretVisual.IsVisible(false);
@@ -70,6 +70,7 @@ struct WindowsTextInputComponentView
70
70
  std::optional<std::string> getAccessiblityValue() noexcept override;
71
71
  void setAcccessiblityValue(std::string &&value) noexcept override;
72
72
  bool getAcccessiblityIsReadOnly() noexcept override;
73
+ bool IsDoubleClick();
73
74
 
74
75
  WindowsTextInputComponentView(
75
76
  const winrt::Microsoft::ReactNative::Composition::Experimental::ICompositionContext &compContext,
@@ -141,6 +142,7 @@ struct WindowsTextInputComponentView
141
142
  DWORD m_propBitsMask{0};
142
143
  DWORD m_propBits{0};
143
144
  HCURSOR m_hcursor{nullptr};
145
+ std::chrono::steady_clock::time_point m_lastClickTime{};
144
146
  std::vector<facebook::react::CompWindowsTextInputSubmitKeyEventsStruct> m_submitKeyEvents;
145
147
  };
146
148
 
@@ -266,7 +266,7 @@ void TooltipTracker::ShowTooltip(const winrt::Microsoft::ReactNative::ComponentV
266
266
  static_cast<int>((tm.width + tooltipHorizontalPadding + tooltipHorizontalPadding) * scaleFactor);
267
267
  tooltipData->height = static_cast<int>((tm.height + tooltipTopPadding + tooltipBottomPadding) * scaleFactor);
268
268
 
269
- POINT pt = {static_cast<LONG>(m_pos.X), static_cast<LONG>(m_pos.Y)};
269
+ POINT pt = {static_cast<LONG>(m_pos.X * scaleFactor), static_cast<LONG>(m_pos.Y * scaleFactor)};
270
270
  ClientToScreen(parentHwnd, &pt);
271
271
 
272
272
  RegisterTooltipWndClass();
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "Microsoft.JavaScript.Hermes": {
12
12
  "type": "Direct",
13
- "requested": "[0.1.23, )",
14
- "resolved": "0.1.23",
15
- "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g=="
13
+ "requested": "[0.0.0-2511.7001-d7ca19b3, )",
14
+ "resolved": "0.0.0-2511.7001-d7ca19b3",
15
+ "contentHash": "/EGy/gbTWpFZPZ4Z81QxbGQxpZhqiOE3qrnSokZRgXAyHivl15s7zZkRLOy9daDmVyEfanq7YBCOMi0ha58uQA=="
16
16
  },
17
17
  "Microsoft.SourceLink.GitHub": {
18
18
  "type": "Direct",
@@ -24,22 +24,21 @@
24
24
  "Microsoft.SourceLink.Common": "1.1.1"
25
25
  }
26
26
  },
27
+ "Microsoft.UI.Xaml": {
28
+ "type": "Direct",
29
+ "requested": "[2.8.0, )",
30
+ "resolved": "2.8.0",
31
+ "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
32
+ "dependencies": {
33
+ "Microsoft.Web.WebView2": "1.0.1264.42"
34
+ }
35
+ },
27
36
  "Microsoft.Windows.CppWinRT": {
28
37
  "type": "Direct",
29
38
  "requested": "[2.0.230706.1, )",
30
39
  "resolved": "2.0.230706.1",
31
40
  "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
32
41
  },
33
- "Microsoft.WindowsAppSDK": {
34
- "type": "Direct",
35
- "requested": "[1.7.250401001, )",
36
- "resolved": "1.7.250401001",
37
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
38
- "dependencies": {
39
- "Microsoft.Web.WebView2": "1.0.2903.40",
40
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
41
- }
42
- },
43
42
  "Microsoft.Build.Tasks.Git": {
44
43
  "type": "Transitive",
45
44
  "resolved": "1.1.1",
@@ -52,13 +51,8 @@
52
51
  },
53
52
  "Microsoft.Web.WebView2": {
54
53
  "type": "Transitive",
55
- "resolved": "1.0.2903.40",
56
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
57
- },
58
- "Microsoft.Windows.SDK.BuildTools": {
59
- "type": "Transitive",
60
- "resolved": "10.0.22621.756",
61
- "contentHash": "7ZL2sFSioYm1Ry067Kw1hg0SCcW5kuVezC2SwjGbcPE61Nn+gTbH86T73G3LcEOVj0S3IZzNuE/29gZvOLS7VA=="
54
+ "resolved": "1.0.1264.42",
55
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
62
56
  },
63
57
  "common": {
64
58
  "type": "Project",
@@ -72,8 +66,8 @@
72
66
  "folly": {
73
67
  "type": "Project",
74
68
  "dependencies": {
75
- "Fmt": "[1.0.0, )",
76
- "boost": "[1.83.0, )"
69
+ "boost": "[1.83.0, )",
70
+ "fmt": "[1.0.0, )"
77
71
  }
78
72
  },
79
73
  "reactcommon": {
@@ -85,122 +79,52 @@
85
79
  }
86
80
  },
87
81
  "native,Version=v0.0/win10-arm": {
88
- "Microsoft.WindowsAppSDK": {
89
- "type": "Direct",
90
- "requested": "[1.7.250401001, )",
91
- "resolved": "1.7.250401001",
92
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
93
- "dependencies": {
94
- "Microsoft.Web.WebView2": "1.0.2903.40",
95
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
96
- }
97
- },
98
82
  "Microsoft.Web.WebView2": {
99
83
  "type": "Transitive",
100
- "resolved": "1.0.2903.40",
101
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
84
+ "resolved": "1.0.1264.42",
85
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
102
86
  }
103
87
  },
104
88
  "native,Version=v0.0/win10-arm-aot": {
105
- "Microsoft.WindowsAppSDK": {
106
- "type": "Direct",
107
- "requested": "[1.7.250401001, )",
108
- "resolved": "1.7.250401001",
109
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
110
- "dependencies": {
111
- "Microsoft.Web.WebView2": "1.0.2903.40",
112
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
113
- }
114
- },
115
89
  "Microsoft.Web.WebView2": {
116
90
  "type": "Transitive",
117
- "resolved": "1.0.2903.40",
118
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
91
+ "resolved": "1.0.1264.42",
92
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
119
93
  }
120
94
  },
121
95
  "native,Version=v0.0/win10-arm64-aot": {
122
- "Microsoft.WindowsAppSDK": {
123
- "type": "Direct",
124
- "requested": "[1.7.250401001, )",
125
- "resolved": "1.7.250401001",
126
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
127
- "dependencies": {
128
- "Microsoft.Web.WebView2": "1.0.2903.40",
129
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
130
- }
131
- },
132
96
  "Microsoft.Web.WebView2": {
133
97
  "type": "Transitive",
134
- "resolved": "1.0.2903.40",
135
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
98
+ "resolved": "1.0.1264.42",
99
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
136
100
  }
137
101
  },
138
102
  "native,Version=v0.0/win10-x64": {
139
- "Microsoft.WindowsAppSDK": {
140
- "type": "Direct",
141
- "requested": "[1.7.250401001, )",
142
- "resolved": "1.7.250401001",
143
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
144
- "dependencies": {
145
- "Microsoft.Web.WebView2": "1.0.2903.40",
146
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
147
- }
148
- },
149
103
  "Microsoft.Web.WebView2": {
150
104
  "type": "Transitive",
151
- "resolved": "1.0.2903.40",
152
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
105
+ "resolved": "1.0.1264.42",
106
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
153
107
  }
154
108
  },
155
109
  "native,Version=v0.0/win10-x64-aot": {
156
- "Microsoft.WindowsAppSDK": {
157
- "type": "Direct",
158
- "requested": "[1.7.250401001, )",
159
- "resolved": "1.7.250401001",
160
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
161
- "dependencies": {
162
- "Microsoft.Web.WebView2": "1.0.2903.40",
163
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
164
- }
165
- },
166
110
  "Microsoft.Web.WebView2": {
167
111
  "type": "Transitive",
168
- "resolved": "1.0.2903.40",
169
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
112
+ "resolved": "1.0.1264.42",
113
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
170
114
  }
171
115
  },
172
116
  "native,Version=v0.0/win10-x86": {
173
- "Microsoft.WindowsAppSDK": {
174
- "type": "Direct",
175
- "requested": "[1.7.250401001, )",
176
- "resolved": "1.7.250401001",
177
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
178
- "dependencies": {
179
- "Microsoft.Web.WebView2": "1.0.2903.40",
180
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
181
- }
182
- },
183
117
  "Microsoft.Web.WebView2": {
184
118
  "type": "Transitive",
185
- "resolved": "1.0.2903.40",
186
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
119
+ "resolved": "1.0.1264.42",
120
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
187
121
  }
188
122
  },
189
123
  "native,Version=v0.0/win10-x86-aot": {
190
- "Microsoft.WindowsAppSDK": {
191
- "type": "Direct",
192
- "requested": "[1.7.250401001, )",
193
- "resolved": "1.7.250401001",
194
- "contentHash": "kPsJ2LZoo3Xs/6FtIWMZRGnQ2ZMx9zDa0ZpqRGz1qwZr0gwwlXZJTmngaA1Ym2AHmIa05NtX2jEE2He8CzfhTg==",
195
- "dependencies": {
196
- "Microsoft.Web.WebView2": "1.0.2903.40",
197
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
198
- }
199
- },
200
124
  "Microsoft.Web.WebView2": {
201
125
  "type": "Transitive",
202
- "resolved": "1.0.2903.40",
203
- "contentHash": "THrzYAnJgE3+cNH+9Epr44XjoZoRELdVpXlWGPs6K9C9G6TqyDfVCeVAR/Er8ljLitIUX5gaSkPsy9wRhD1sgQ=="
126
+ "resolved": "1.0.1264.42",
127
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
204
128
  }
205
129
  }
206
130
  }
@@ -18,7 +18,7 @@
18
18
  <Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\bridging</Bridging_SourcePath>
19
19
  <Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)react\bridging\CallbackWrapper.h')">$(MSBuildThisFileDirectory)react\bridging</Bridging_SourcePath>
20
20
 
21
- <NodeApiJsiCommitHash>83cfef428a97627c9185c73da097e42742de56eb</NodeApiJsiCommitHash>
21
+ <NodeApiJsiCommitHash>21b47f08b762b21b1d4d970940ab23f59f43249c</NodeApiJsiCommitHash>
22
22
  <NodeApiJsiLocal Condition="Exists('$(MSBuildThisFileDirectory)NodeApiJsiRuntime.cpp')">true</NodeApiJsiLocal>
23
23
  <NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(NodeApiJsiLocal)' == 'true'">$(MSBuildThisFileDirectory)</NodeApiJsiDir>
24
24
  <NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\..\..\node_modules\.node-api-jsi\node-api-jsi-$(NodeApiJsiCommitHash)\</NodeApiJsiDir>
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "Microsoft.JavaScript.Hermes": {
38
38
  "type": "Transitive",
39
- "resolved": "0.1.23",
40
- "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g=="
39
+ "resolved": "0.0.0-2511.7001-d7ca19b3",
40
+ "contentHash": "/EGy/gbTWpFZPZ4Z81QxbGQxpZhqiOE3qrnSokZRgXAyHivl15s7zZkRLOy9daDmVyEfanq7YBCOMi0ha58uQA=="
41
41
  },
42
42
  "Microsoft.Net.Native.Compiler": {
43
43
  "type": "Transitive",
@@ -179,7 +179,7 @@
179
179
  "dependencies": {
180
180
  "Common": "[1.0.0, )",
181
181
  "Folly": "[1.0.0, )",
182
- "Microsoft.JavaScript.Hermes": "[0.1.23, )",
182
+ "Microsoft.JavaScript.Hermes": "[0.0.0-2511.7001-d7ca19b3, )",
183
183
  "Microsoft.SourceLink.GitHub": "[1.1.1, )",
184
184
  "Microsoft.UI.Xaml": "[2.8.0, )",
185
185
  "ReactCommon": "[1.0.0, )",
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <!--
4
+ CI-specific C++ build optimizations for the publish pipeline.
5
+
6
+ This file is injected via /p:ForceImportAfterCppTargets in .ado/publish.yml.
7
+ It overrides defaults that are tuned for developer workflows (incremental builds,
8
+ file tracking) with settings that are better for CI clean builds.
9
+
10
+ 1. Multi-threaded compilation: Use CL.exe internal /MP parallelism instead of
11
+ MSBuild's MultiToolTask (which spawns one CL.exe+Tracker.exe per source file).
12
+ /MP lets CL.exe compile all files in one process with shared PCH state.
13
+
14
+ 2. Disable file tracking: CI always does clean builds, so incremental build
15
+ tracking (MinimalRebuild, TrackFileAccess) is pure overhead.
16
+ -->
17
+ <PropertyGroup>
18
+ <MultiProcCL>false</MultiProcCL>
19
+ <MinimalRebuildFromTracking>false</MinimalRebuildFromTracking>
20
+ <TrackFileAccess>false</TrackFileAccess>
21
+ </PropertyGroup>
22
+ <ItemDefinitionGroup>
23
+ <ClCompile>
24
+ <MultiProcessorCompilation>false</MultiProcessorCompilation>
25
+ <MinimalRebuild>false</MinimalRebuild>
26
+ <AdditionalOptions>%(AdditionalOptions) /MP</AdditionalOptions>
27
+ </ClCompile>
28
+ </ItemDefinitionGroup>
29
+ </Project>
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.74.47</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.74.52</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>74</ReactNativeWindowsMinor>
16
- <ReactNativeWindowsPatch>47</ReactNativeWindowsPatch>
16
+ <ReactNativeWindowsPatch>52</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>919860a4f95c8a8b29bfa079475e5c76208c011d</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>48c6cfeeb522a3f66014675370d4f276ca080a86</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -6,7 +6,7 @@
6
6
  <!-- Enabling this will (1) Include hermes glues in the Microsoft.ReactNative binaries AND (2) Make hermes the default engine -->
7
7
  <UseHermes Condition="'$(UseHermes)' == ''">true</UseHermes>
8
8
  <!-- This will be true if (1) the client want to use hermes by setting UseHermes to true OR (2) We are building for UWP where dynamic switching is enabled -->
9
- <HermesVersion Condition="'$(HermesVersion)' == ''">0.1.23</HermesVersion>
9
+ <HermesVersion Condition="'$(HermesVersion)' == ''">0.0.0-2511.7001-d7ca19b3</HermesVersion>
10
10
  <HermesPackage Condition="'$(HermesPackage)' == '' And Exists('$(PkgMicrosoft_JavaScript_Hermes)')">$(PkgMicrosoft_JavaScript_Hermes)</HermesPackage>
11
11
  <HermesPackage Condition="'$(HermesPackage)' == ''">$(NuGetPackageRoot)\Microsoft.JavaScript.Hermes\$(HermesVersion)</HermesPackage>
12
12
  <EnableHermesInspectorInReleaseFlavor Condition="'$(EnableHermesInspectorInReleaseFlavor)' == ''">false</EnableHermesInspectorInReleaseFlavor>
@@ -1173,7 +1173,7 @@ TEST_P(JSITest, DecoratorTest) {
1173
1173
 
1174
1174
  class CountRuntime final : public WithRuntimeDecorator<Count> {
1175
1175
  public:
1176
- explicit CountRuntime(std::unique_ptr<Runtime> rt)
1176
+ explicit CountRuntime(std::shared_ptr<Runtime> rt)
1177
1177
  : WithRuntimeDecorator<Count>(*rt, count_),
1178
1178
  rt_(std::move(rt)),
1179
1179
  count_(kInit) {}
@@ -1183,7 +1183,7 @@ TEST_P(JSITest, DecoratorTest) {
1183
1183
  }
1184
1184
 
1185
1185
  private:
1186
- std::unique_ptr<Runtime> rt_;
1186
+ std::shared_ptr<Runtime> rt_;
1187
1187
  Count count_;
1188
1188
  };
1189
1189
 
@@ -1222,7 +1222,7 @@ TEST_P(JSITest, MultiDecoratorTest) {
1222
1222
  class MultiRuntime final
1223
1223
  : public WithRuntimeDecorator<std::tuple<Inc, Nest>> {
1224
1224
  public:
1225
- explicit MultiRuntime(std::unique_ptr<Runtime> rt)
1225
+ explicit MultiRuntime(std::shared_ptr<Runtime> rt)
1226
1226
  : WithRuntimeDecorator<std::tuple<Inc, Nest>>(*rt, tuple_),
1227
1227
  rt_(std::move(rt)) {}
1228
1228
 
@@ -1234,7 +1234,7 @@ TEST_P(JSITest, MultiDecoratorTest) {
1234
1234
  }
1235
1235
 
1236
1236
  private:
1237
- std::unique_ptr<Runtime> rt_;
1237
+ std::shared_ptr<Runtime> rt_;
1238
1238
  std::tuple<Inc, Nest> tuple_;
1239
1239
  };
1240
1240
 
@@ -6,7 +6,7 @@
6
6
  "Type": "git",
7
7
  "Git": {
8
8
  "RepositoryUrl": "https://github.com/microsoft/node-api-jsi",
9
- "CommitHash": "83cfef428a97627c9185c73da097e42742de56eb"
9
+ "CommitHash": "21b47f08b762b21b1d4d970940ab23f59f43249c"
10
10
  }
11
11
  },
12
12
  "DevelopmentDependency": false
@@ -8,13 +8,35 @@ Set-Location -Path $RepoRoot
8
8
 
9
9
  try
10
10
  {
11
- $packagesSolutions = Get-ChildItem -File -Recurse -Path packages *.sln | Where-Object { !$_.FullName.Contains('node_modules') -and !$_.FullName.Contains('e2etest') }
12
- $vnextSolutions = Get-ChildItem -File -Path vnext *.sln
11
+ # Delete existing lock files
12
+ $existingLockFiles = (Get-ChildItem -File -Recurse -Path $RepoRoot -Filter *.lock.json)
13
+ $existingLockFiles | Foreach-Object {
14
+ Write-Host Deleting $_.FullName
15
+ Remove-Item $_.FullName
16
+ }
17
+
18
+ $packagesSolutions = (Get-ChildItem -File -Recurse -Path $RepoRoot\packages -Filter *.sln )| Where-Object { !$_.FullName.Contains('node_modules') -and !$_.FullName.Contains('e2etest') }
19
+ $vnextSolutions = (Get-ChildItem -File -Path $RepoRoot\vnext -Filter *.sln)
13
20
 
14
- $($packagesSolutions; $vnextSolutions) | Foreach {
15
- Write-Host Restoring $_.FullName
21
+ # Run all solutions with their defaults
22
+ $($packagesSolutions; $vnextSolutions) | Foreach-Object {
23
+ Write-Host Restoring $_.FullName with defaults
16
24
  & msbuild /t:Restore /p:RestoreForceEvaluate=true $_.FullName
17
25
  }
26
+
27
+ # Re-run solutions that build with UseExperimentalWinUI3
28
+ $experimentalSolutions = @("playground-composition.sln", "Microsoft.ReactNative.sln", "Microsoft.ReactNative.NewArch.sln", "ReactWindows-Desktop.sln");
29
+ $($packagesSolutions; $vnextSolutions) | Where-Object { $experimentalSolutions -contains $_.Name } | Foreach-Object {
30
+ Write-Host Restoring $_.FullName with UseExperimentalWinUI3=true
31
+ & msbuild /t:Restore /p:RestoreForceEvaluate=true /p:UseExperimentalWinUI3=true $_.FullName
32
+ }
33
+
34
+ # Re-run solutions that build with Chakra
35
+ $chakraSolutions = @("ReactUWPTestApp.sln", "integrationtest.sln");
36
+ $($packagesSolutions; $vnextSolutions) | Where-Object { $chakraSolutions -contains $_.Name } | Foreach-Object {
37
+ Write-Host Restoring $_.FullName with UseHermes=false
38
+ & msbuild /t:Restore /p:RestoreForceEvaluate=true /p:UseHermes=false $_.FullName
39
+ }
18
40
  }
19
41
  finally
20
42
  {
@@ -45,6 +45,14 @@ Copy-Item -Force -Recurse -Path $ReactWindowsRoot\Microsoft.ReactNative.Cxx -Des
45
45
  # Copy native module spec files
46
46
  Copy-Item -Force -Recurse -Path $ReactWindowsRoot\codegen -Destination $TargetRoot\inc
47
47
 
48
+ # Overwrite ReactCommon\jsi\jsi files. It must be called before the ReactCommon overrides
49
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\decorator.h -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
50
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\instrumentation.h -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
51
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\jsi.cpp -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
52
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\jsi.h -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
53
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\jsi-inl.h -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
54
+ Copy-Item -Force -Path $NodeApiJsiRoot\jsi\jsi\threadsafe.h -Destination $ReactNativeRoot\ReactCommon\jsi\jsi\
55
+
48
56
  # Overwrite temporary ReactCommon files (since this script can runs on a different machine than where ReactCommon was built)
49
57
  Copy-Item -Force -Recurse -Path $ReactCommonOverrideRoot\* -Destination $ReactNativeRoot\ReactCommon\
50
58
 
@@ -61,6 +69,8 @@ New-Item $TargetRoot\Microsoft.ReactNative.Cxx\node-api -ItemType Directory -For
61
69
  Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
62
70
  Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api_types.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
63
71
  Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_runtime_api.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
72
+ Copy-Item -Force -Path $NodeApiJsiRoot\node-api\node_api.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
73
+ Copy-Item -Force -Path $NodeApiJsiRoot\node-api\node_api_types.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
64
74
 
65
75
  # Microsoft.ReactNative.CXX project Node-API JSI files
66
76
  New-Item $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders -ItemType Directory -Force
@@ -77,8 +77,6 @@ MemoryMappedBuffer::MemoryMappedBuffer(const wchar_t *const filename, uint32_t o
77
77
  throw facebook::jsi::JSINativeException(
78
78
  "MapViewOfFile/MapViewOfFileFromApp failed with last error " + std::to_string(GetLastError()));
79
79
  }
80
-
81
- WerRegisterMemoryBlock(m_fileData.get(), m_fileSize);
82
80
  }
83
81
 
84
82
  size_t MemoryMappedBuffer::size() const {
@@ -227,11 +227,12 @@ fire_and_forget WinRTWebSocketResource2::PerformConnect(Uri &&uri) noexcept {
227
227
  [self = self->shared_from_this(), coUri = std::move(movedUri)]() -> IAsyncAction {
228
228
  auto coSelf = self->shared_from_this();
229
229
 
230
- auto async = coSelf->m_socket.ConnectAsync(coUri);
231
- co_await lessthrow_await_adapter<IAsyncAction>{async};
232
-
233
- auto result = async.ErrorCode();
234
230
  try {
231
+ // `ConnectAsync` MAY throw synchronously (e.g. WININET_E_INVALID_CA)
232
+ auto async = coSelf->m_socket.ConnectAsync(coUri);
233
+ co_await lessthrow_await_adapter<IAsyncAction>{async};
234
+
235
+ auto result = async.ErrorCode();
235
236
  if (result >= 0) { // Non-failing HRESULT
236
237
  coSelf->m_readyState = ReadyState::Open;
237
238
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.74.47",
3
+ "version": "0.74.52",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,13 +0,0 @@
1
- {
2
- "version": 1,
3
- "dependencies": {
4
- "native,Version=v0.0": {},
5
- "native,Version=v0.0/win10-arm": {},
6
- "native,Version=v0.0/win10-arm-aot": {},
7
- "native,Version=v0.0/win10-arm64-aot": {},
8
- "native,Version=v0.0/win10-x64": {},
9
- "native,Version=v0.0/win10-x64-aot": {},
10
- "native,Version=v0.0/win10-x86": {},
11
- "native,Version=v0.0/win10-x86-aot": {}
12
- }
13
- }