Title: [266449] trunk/Source
- Revision
- 266449
- Author
- [email protected]
- Date
- 2020-09-01 20:13:28 -0700 (Tue, 01 Sep 2020)
Log Message
[CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
https://bugs.webkit.org/show_bug.cgi?id=216018
<rdar://problem/66660579>
Patch by Said Abou-Hallawa <[email protected]> on 2020-09-01
Reviewed by Tim Horton.
Source/WebCore:
Remove the extra 'one' we used to add to the GIF loopCount since it is
now added by the underlying frameworks. But make sure we are compatible
with the older versions of macOS and iOS.
* platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::repetitionCount const):
Source/WTF:
Add a new macro for the new accurate behavior of CGImageSource.
Unrelated change: Fix the conditions for enabling the WebP images.
* wtf/PlatformHave.h:
Modified Paths
Diff
Modified: trunk/Source/WTF/ChangeLog (266448 => 266449)
--- trunk/Source/WTF/ChangeLog 2020-09-02 02:54:32 UTC (rev 266448)
+++ trunk/Source/WTF/ChangeLog 2020-09-02 03:13:28 UTC (rev 266449)
@@ -1,3 +1,17 @@
+2020-09-01 Said Abou-Hallawa <[email protected]>
+
+ [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
+ https://bugs.webkit.org/show_bug.cgi?id=216018
+ <rdar://problem/66660579>
+
+ Reviewed by Tim Horton.
+
+ Add a new macro for the new accurate behavior of CGImageSource.
+
+ Unrelated change: Fix the conditions for enabling the WebP images.
+
+ * wtf/PlatformHave.h:
+
2020-08-31 Mark Lam <[email protected]>
Remove some PtrTag debugging code from release builds.
Modified: trunk/Source/WTF/wtf/PlatformHave.h (266448 => 266449)
--- trunk/Source/WTF/wtf/PlatformHave.h 2020-09-02 02:54:32 UTC (rev 266448)
+++ trunk/Source/WTF/wtf/PlatformHave.h 2020-09-02 03:13:28 UTC (rev 266449)
@@ -380,14 +380,6 @@
#define HAVE_ACCESSIBILITY_BUNDLES_PATH 1
#endif
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \
- || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
- || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(MACCATALYST) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000)
-#define HAVE_PRECONNECT_PING 1
-#endif
-
#if PLATFORM(COCOA) && !(PLATFORM(MAC) && !(__MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101404))
#define HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY 1
#endif
@@ -415,14 +407,6 @@
#define HAVE_BROKEN_DOWNLOAD_RESUME_UNLINK 1
#endif
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \
- || ((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
- || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000) \
- || PLATFORM(MACCATALYST)
-#define HAVE_HSTS_STORAGE 1
-#endif
-
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000)
#define HAVE_CFNETWORK_METRICS_APIS_V4 1
#endif
@@ -598,10 +582,6 @@
#define HAVE_GCCONTROLLER_HID_DEVICE_CHECK 1
#endif
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000)
-#define HAVE_WEBP 1
-#endif
-
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000)
#define HAVE_INCREMENTAL_PDF_APIS 1
#endif
@@ -679,13 +659,6 @@
#define HAVE_LOGGING_PRIVACY_LEVEL 1
#endif
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \
- || ((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
- || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000)
-#define HAVE_CF_PREFS_SET_READ_ONLY 1
-#endif
-
#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
#define HAVE_FRONTBOARD_SYSTEM_APP_SERVICES 1
#endif
@@ -694,24 +667,10 @@
#define HAVE_CPU_TRANSLATION_CAPABILITY 1
#endif
-#if (((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
- || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000))
-#define HAVE_PTHREAD_JIT_PERMISSIONS_API 1
-#endif
-
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000
#define HAVE_APP_ACCENT_COLORS 1
#endif
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \
- || ((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
- || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
- || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000)
-#define HAVE_LSDATABASECONTEXT 1
-#endif
-
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000)
#define HAVE_AVROUTEPICKERVIEW 1
#endif
@@ -730,5 +689,12 @@
|| ((PLATFORM(IOS) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \
|| (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 70000) \
|| (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 140000)
+#define HAVE_CF_PREFS_SET_READ_ONLY 1
#define HAVE_CFNETWORK_CNAME_AND_COOKIE_TRANSFORM_SPI 1
+#define HAVE_CGIMAGESOURCE_WITH_ACCURATE_LOOP_COUNT 1
+#define HAVE_HSTS_STORAGE 1
+#define HAVE_LSDATABASECONTEXT 1
+#define HAVE_PRECONNECT_PING 1
+#define HAVE_PTHREAD_JIT_PERMISSIONS_API 1
+#define HAVE_WEBP 1
#endif
Modified: trunk/Source/WebCore/ChangeLog (266448 => 266449)
--- trunk/Source/WebCore/ChangeLog 2020-09-02 02:54:32 UTC (rev 266448)
+++ trunk/Source/WebCore/ChangeLog 2020-09-02 03:13:28 UTC (rev 266449)
@@ -1,3 +1,18 @@
+2020-09-01 Said Abou-Hallawa <[email protected]>
+
+ [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
+ https://bugs.webkit.org/show_bug.cgi?id=216018
+ <rdar://problem/66660579>
+
+ Reviewed by Tim Horton.
+
+ Remove the extra 'one' we used to add to the GIF loopCount since it is
+ now added by the underlying frameworks. But make sure we are compatible
+ with the older versions of macOS and iOS.
+
+ * platform/graphics/cg/ImageDecoderCG.cpp:
+ (WebCore::ImageDecoderCG::repetitionCount const):
+
2020-09-01 Alex Christensen <[email protected]>
Align ISO-2022-JP and Shift_JIS encodings with Chrome, Firefox, and the specification
Modified: trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp (266448 => 266449)
--- trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp 2020-09-02 02:54:32 UTC (rev 266448)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp 2020-09-02 03:13:28 UTC (rev 266449)
@@ -294,6 +294,9 @@
if (!loopCount)
return RepetitionCountInfinite;
+#if HAVE(CGIMAGESOURCE_WITH_ACCURATE_LOOP_COUNT)
+ return loopCount;
+#else
if (!isGIFImageType(uti()))
return loopCount;
@@ -300,6 +303,7 @@
// For GIF and loopCount > 0, the specs is not clear about it. But it looks the meaning
// is: play once + loop loopCount which is equivalent to play loopCount + 1.
return loopCount + 1;
+#endif
}
Optional<IntPoint> ImageDecoderCG::hotSpot() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes