diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index dd926cc..f6db8db 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2020-01-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Supported mime types for encoding should be supported mime types for loading
+        https://bugs.webkit.org/show_bug.cgi?id=206239
+
+        Reviewed by Simon Fraser.
+
+        * fast/canvas/toDataURL-unsupportedTypes-expected.txt: Added.
+        * fast/canvas/toDataURL-unsupportedTypes.html: Added.
+        Unsupported mime-types for encoding should fall back to 'image/png'.
+
 2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>
 
         [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
diff --git a/LayoutTests/fast/canvas/toDataURL-unsupportedTypes-expected.txt b/LayoutTests/fast/canvas/toDataURL-unsupportedTypes-expected.txt
new file mode 100644
index 0000000..d993ea3
--- /dev/null
+++ b/LayoutTests/fast/canvas/toDataURL-unsupportedTypes-expected.txt
@@ -0,0 +1,14 @@
+This is a test of the unsupported mime-types for canvas.toDataURL().
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS canvas.toDataURL('image/heic') is canvas.toDataURL('image/png')
+PASS canvas.toDataURL('image/heic-sequence') is canvas.toDataURL('image/png')
+PASS canvas.toDataURL('image/vnd.adobe.photoshop') is canvas.toDataURL('image/png')
+PASS canvas.toDataURL('application/pdf') is canvas.toDataURL('image/png')
+PASS canvas.toDataURL('image/targa') is canvas.toDataURL('image/png')
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/canvas/toDataURL-unsupportedTypes.html b/LayoutTests/fast/canvas/toDataURL-unsupportedTypes.html
new file mode 100644
index 0000000..cb08b49
--- /dev/null
+++ b/LayoutTests/fast/canvas/toDataURL-unsupportedTypes.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<head>
+    <script src="../../resources/js-test-pre.js"></script>
+</head>
+<body>
+    <canvas width="8" height="8"></canvas>
+    <script>
+        var canvas = document.querySelector("canvas");
+        canvas.width = 8;
+        canvas.height = 8;
+
+        description("This is a test of the unsupported mime-types for canvas.toDataURL().");
+        shouldBe("canvas.toDataURL('image/heic')", "canvas.toDataURL('image/png')");
+        shouldBe("canvas.toDataURL('image/heic-sequence')", "canvas.toDataURL('image/png')");
+        shouldBe("canvas.toDataURL('image/vnd.adobe.photoshop')", "canvas.toDataURL('image/png')");
+        shouldBe("canvas.toDataURL('application/pdf')", "canvas.toDataURL('image/png')");
+        shouldBe("canvas.toDataURL('image/targa')", "canvas.toDataURL('image/png')");
+    </script>
+    <script src="../../resources/js-test-post.js"></script>
+</body>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 0141be0..d360931 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2020-01-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Supported mime types for encoding should be supported mime types for loading
+        https://bugs.webkit.org/show_bug.cgi?id=206239
+
+        Reviewed by Simon Fraser.
+
+        Consult isSupportedImageType() for the system supported UTI before
+        considering its mime type is allowed for the image DataURL encoding.
+
+        Test: fast/canvas/toDataURL-unsupportedTypes.html
+
+        * platform/MIMETypeRegistry.cpp:
+        (WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):
+
 2020-01-14  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r254533 and r254535.
diff --git a/Source/WebCore/platform/MIMETypeRegistry.cpp b/Source/WebCore/platform/MIMETypeRegistry.cpp
index d81c3d6..3fa4c26 100644
--- a/Source/WebCore/platform/MIMETypeRegistry.cpp
+++ b/Source/WebCore/platform/MIMETypeRegistry.cpp
@@ -446,9 +446,10 @@
     CFIndex count = CFArrayGetCount(supportedTypes.get());
     for (CFIndex i = 0; i < count; i++) {
         CFStringRef supportedType = reinterpret_cast<CFStringRef>(CFArrayGetValueAtIndex(supportedTypes.get(), i));
-        String mimeType = MIMETypeForImageType(supportedType);
-        if (!mimeType.isEmpty())
+        if (isSupportedImageType(supportedType)) {
+            String mimeType = MIMETypeForImageType(supportedType);
             supportedImageMIMETypesForEncoding.add(mimeType);
+        }
     }
 #else
     HashSet<String, ASCIICaseInsensitiveHash> supportedImageMIMETypesForEncoding = std::initializer_list<String> {
