react-native-windows 0.67.5 → 0.67.6

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/CHANGELOG.json CHANGED
@@ -1,6 +1,36 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
3
  "entries": [
4
+ {
5
+ "date": "Tue, 29 Mar 2022 17:35:16 GMT",
6
+ "tag": "react-native-windows_v0.67.6",
7
+ "version": "0.67.6",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "asklar@microsoft.com",
12
+ "package": "react-native-windows",
13
+ "commit": "cca2db0ac45b646f7a157a34564e221846eaf55b",
14
+ "comment": "Guard against crashes due to cancelations and other errors from BitmapSource/SvgImageSource SetSourceAsync"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Mon, 21 Mar 2022 15:13:26 GMT",
21
+ "tag": "react-native-windows_v0.67.5",
22
+ "version": "0.67.5",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "asklar@microsoft.com",
27
+ "package": "react-native-windows",
28
+ "commit": "not available",
29
+ "comment": "move some DLLs to delayload"
30
+ }
31
+ ]
32
+ }
33
+ },
4
34
  {
5
35
  "date": "Mon, 21 Mar 2022 15:13:12 GMT",
6
36
  "tag": "react-native-windows_v0.67.5",
package/CHANGELOG.md CHANGED
@@ -1,17 +1,33 @@
1
1
  # Change Log - react-native-windows
2
2
 
3
- This log was last generated on Mon, 21 Mar 2022 15:13:12 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 29 Mar 2022 17:35:16 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.67.5
7
+ ## 0.67.6
8
8
 
9
- Mon, 21 Mar 2022 15:13:12 GMT
9
+ Tue, 29 Mar 2022 17:35:16 GMT
10
10
 
11
11
  ### Patches
12
12
 
13
- - move some DLLs to delayload (asklar@microsoft.com)
13
+ - Guard against crashes due to cancelations and other errors from BitmapSource/SvgImageSource SetSourceAsync (asklar@microsoft.com)
14
14
 
15
+ ## 0.67.5
16
+
17
+ Mon, 21 Mar 2022 15:13:26 GMT
18
+
19
+ ### Patches
20
+
21
+ - move some DLLs to delayload (asklar@microsoft.com)
22
+
23
+ ## 0.67.5
24
+
25
+ Mon, 21 Mar 2022 15:13:12 GMT
26
+
27
+ ### Patches
28
+
29
+ - move some DLLs to delayload (asklar@microsoft.com)
30
+
15
31
  ## 0.67.4
16
32
 
17
33
  Mon, 14 Mar 2022 15:14:00 GMT
@@ -184,7 +184,7 @@ winrt::IAsyncOperation<winrt::InMemoryRandomAccessStream> ReactImage::GetImageMe
184
184
  }
185
185
  template <typename TImage>
186
186
  std::wstring GetUriFromImage(const TImage &image) {
187
- return image.UriSource().ToString().c_str();
187
+ return image.UriSource() ? image.UriSource().ToString().c_str() : L"<no Uri available>";
188
188
  }
189
189
  template <>
190
190
  std::wstring GetUriFromImage(const winrt::Uri &uri) {
@@ -193,7 +193,9 @@ std::wstring GetUriFromImage(const winrt::Uri &uri) {
193
193
 
194
194
  template <typename TImage>
195
195
  void ImageFailed(const TImage &image, const xaml::ExceptionRoutedEventArgs &args) {
196
+ #ifdef DEBUG
196
197
  cdebug << L"Failed to load image " << GetUriFromImage(image) << L" (" << args.ErrorMessage().c_str() << L")\n";
198
+ #endif
197
199
  }
198
200
 
199
201
  // TSourceFailedEventArgs can be either LoadedImageSourceLoadCompletedEventArgs or
@@ -203,10 +205,12 @@ void ImageFailed(const TImage &image, const xaml::ExceptionRoutedEventArgs &args
203
205
  template <typename TImage, typename TSourceFailedEventArgs>
204
206
  void ImageFailed(const TImage &image, const TSourceFailedEventArgs &args) {
205
207
  // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.loadedimagesourceloadstatus
208
+ #ifdef DEBUG
206
209
  constexpr std::wstring_view statusNames[] = {L"Success", L"NetworkError", L"InvalidFormat", L"Other"};
207
210
  const auto status = (int)args.Status();
208
211
  assert(0 <= status && status < ARRAYSIZE(statusNames));
209
212
  cdebug << L"Failed to load image " << GetUriFromImage(image) << L" (" << statusNames[status] << L")\n";
213
+ #endif
210
214
  }
211
215
 
212
216
  winrt::fire_and_forget ReactImage::SetBackground(bool fireLoadEndEvent) {
@@ -342,7 +346,22 @@ winrt::fire_and_forget ReactImage::SetBackground(bool fireLoadEndEvent) {
342
346
  }
343
347
 
344
348
  if (fromStream) {
345
- co_await svgImageSource.SetSourceAsync(memoryStream);
349
+ try {
350
+ co_await svgImageSource.SetSourceAsync(memoryStream);
351
+ } catch (const winrt::hresult_error &) {
352
+ /*
353
+ winrt::hresult_canceled
354
+ If the app changes the image source again via SetSourceAsync, SetSource or UriSource while a
355
+ SetSourceAsync call is already in progress, the pending SetSourceAsync action will throw a
356
+ TaskCanceledException and set the Status to Canceled.
357
+
358
+ WINCODEC_ERR_BADIMAGE
359
+ In low memory situations (most likely on lower-memory phones), it is possible for an exception to be
360
+ raised with the message "The image is unrecognized" and an HRESULT of 0x88982F60. While this exception
361
+ ordinarily indicates bad data, if your app is close to its memory limit then the cause of the exception
362
+ is likely to be low memory. In that case, we recommend that you free memory and try again.
363
+ */
364
+ }
346
365
  } else {
347
366
  svgImageSource.UriSource(uri);
348
367
  }
@@ -385,7 +404,22 @@ winrt::fire_and_forget ReactImage::SetBackground(bool fireLoadEndEvent) {
385
404
  }
386
405
 
387
406
  if (fromStream) {
388
- co_await bitmapImage.SetSourceAsync(memoryStream);
407
+ try {
408
+ co_await bitmapImage.SetSourceAsync(memoryStream);
409
+ } catch (const winrt::hresult_error &) {
410
+ /*
411
+ winrt::hresult_canceled
412
+ If the app changes the image source again via SetSourceAsync, SetSource or UriSource while a
413
+ SetSourceAsync call is already in progress, the pending SetSourceAsync action will throw a
414
+ TaskCanceledException and set the Status to Canceled.
415
+
416
+ WINCODEC_ERR_BADIMAGE
417
+ In low memory situations (most likely on lower-memory phones), it is possible for an exception to be
418
+ raised with the message "The image is unrecognized" and an HRESULT of 0x88982F60. While this exception
419
+ ordinarily indicates bad data, if your app is close to its memory limit then the cause of the exception
420
+ is likely to be low memory. In that case, we recommend that you free memory and try again.
421
+ */
422
+ }
389
423
  } else {
390
424
  bitmapImage.UriSource(uri);
391
425
 
@@ -10,10 +10,10 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.67.5</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.67.6</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>67</ReactNativeWindowsMinor>
16
- <ReactNativeWindowsPatch>5</ReactNativeWindowsPatch>
16
+ <ReactNativeWindowsPatch>6</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
18
  </PropertyGroup>
19
19
  </Project>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.67.5",
3
+ "version": "0.67.6",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",