Import wpt@95bf50d07d5608b30698b59ff6c1ec34fd5a5ddc

Using wpt-import in Chromium 94b860818a830f5f05a161cb783feb4eef43295e.

Note to sheriffs: This CL imports external tests and adds
expectations for those tests; if this CL is large and causes
a few new failures, please fix the failures by adding new
lines to TestExpectations rather than reverting. See:
https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md

NOAUTOREVERT=true
R=rubber-stamper@appspot.gserviceaccount.com

No-Export: true
Change-Id: Ic716e63cfdc60181c6c9d1c442d677ad361529e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3230855
Auto-Submit: WPT Autoroller <wpt-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#932917}
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 776063f5..dd1a9477 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -1293,7 +1293,14 @@
 crbug.com/982194 [ Win10.20h2 ] fast/writing-mode/border-image-vertical-lr.html [ Failure Pass ]
 
 ### Tests passing with LayoutNGBlockFragmentation enabled:
-virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Fuchsia ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Linux ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Mac10.12 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Mac10.13 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Mac10.14 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Mac10.15 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Mac11.0 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
+[ Win ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/avoid-border-break.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/borders-000.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/borders-001.html [ Pass ]
@@ -1305,7 +1312,14 @@
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-000.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-001.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-002.html [ Pass ]
-virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Fuchsia ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Linux ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Mac10.12 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Mac10.13 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Mac10.14 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Mac10.15 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Mac11.0 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
+[ Win ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-between-avoid-000.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-between-avoid-001.html [ Pass ]
 virtual/layout_ng_block_frag/external/wpt/css/css-break/break-between-avoid-003.html [ Pass ]
@@ -2973,6 +2987,52 @@
 crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/navigation-timing-extended.https.html [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 [ Mac11-arm64 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/break-at-end-container-edge-004.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/flexbox/flex-container-fragmentation-006.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fsa-incognito/external/wpt/file-system-access/showOpenFilePicker-manual.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/dialogfocus-old-behavior/external/wpt/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStream-finished-add.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-ua-ch-platform-feature/external/wpt/client-hints/accept-ch-stickiness/same-origin-navigation.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/font-access-persistent/external/wpt/font-access/font_access-blob.tentative.https.window.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/flexbox/flexbox-fragmentation-layout-001-crash.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/document-domain-disabled-by-default/external/wpt/document-policy/experimental-features/document-domain/document-domain.tentative.sub.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-getFileHandle-manual.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/css/scroll-timeline-cssom.tentative.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/external/wpt/client-hints/http-equiv-accept-ch-non-secure.http.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStream-supported-by-feature-policy.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/css/at-scroll-timeline-before-phase.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-ua-ch-platform-feature/external/wpt/client-hints/accept-ch-non-secure.http.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fsa-incognito/external/wpt/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-writable-lock.https.tentative.worker.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/css/css-transitions/parsing/transition-invalid.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/dialogfocus-old-behavior/external/wpt/html/semantics/interactive-elements/the-dialog-element/backdrop-stacking-order.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/idlharness.window.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/wpt_internal/client-hints/accept_ch_feature_policy_allow_legacy_hints.tentative.sub.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/external/wpt/client-hints/accept-ch-cache-revalidation.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/backface-visibility-interop/external/wpt/css/css-transforms/external-styles/svg-external-styles-010.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/forced-high-contrast-colors/external/wpt/forced-colors-mode/backplate/forced-colors-mode-backplate-01.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/source-quirks-mode.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/forced-high-contrast-colors/external/wpt/forced-colors-mode/forced-colors-mode-03.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/external/wpt/client-hints/accept-ch-stickiness/same-origin-iframe.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/dialogfocus-old-behavior/external/wpt/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/web-animations/interfaces/Animation/commitStyles.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/layout_ng_block_frag/external/wpt/css/css-break/abspos-in-opacity-001.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/external/wpt/client-hints/service-workers/new-request-critical.https.window.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/css/at-scroll-timeline-inactive-phase.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/disable-user-agent-client-hint-feature/external/wpt/client-hints/accept-ch-stickiness/same-origin-navigation.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/json-modules/external/wpt/html/semantics/scripting-1/the-script-element/json-module/referrer-policies.sub.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/forced-high-contrast-colors/external/wpt/forced-colors-mode/backplate/forced-colors-mode-backplate-11.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/current-time-writing-modes.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/scroll-animation-effect-phases.tentative.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/backface-visibility-interop/external/wpt/css/css-transforms/transform3d-perspective-009.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/forced-high-contrast-colors/external/wpt/forced-colors-mode/forced-colors-mode-10.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/fractional-scroll-offsets/external/wpt/css/css-position/sticky/position-sticky-nested-left.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/scroll-animations/scroll-timelines/element-based-offset-unresolved.html [ Crash ]
+crbug.com/626703 [ Mac11-arm64 ] virtual/delayed-animation-updates/external/wpt/web-animations/interfaces/Animation/cancel.html [ Crash ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/webauthn/createcredential-attachment.https.html [ Crash Skip Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/webauthn/getcredential-attachment.https.html [ Crash ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-sizing/parsing/min-height-invalid.html [ Failure Timeout ]
@@ -7044,7 +7104,14 @@
 # FileSystemHandle::move() is temporarily disabled outside of the Origin Private File System
 crbug.com/1247850 external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
 crbug.com/1247850 external/wpt/file-system-access/local_FileSystemFileHandle-rename-manual.https.html [ Failure ]
-crbug.com/1247850 virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Fuchsia ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Linux ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Mac10.12 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Mac10.13 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Mac10.14 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Mac10.15 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Mac11.0 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
+crbug.com/1247850 [ Win ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-move-manual.https.html [ Failure ]
 crbug.com/1247850 virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemFileHandle-rename-manual.https.html [ Failure ]
 # FileSystemHandle::move() is temporarily disabled for directory handles
 crbug.com/1250534 external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
@@ -7053,7 +7120,14 @@
 crbug.com/1250534 external/wpt/file-system-access/sandboxed_FileSystemDirectoryHandle-rename.https.any.html [ Failure ]
 crbug.com/1250534 external/wpt/file-system-access/sandboxed_FileSystemDirectoryHandle-move.https.any.worker.html [ Failure ]
 crbug.com/1250534 external/wpt/file-system-access/sandboxed_FileSystemDirectoryHandle-rename.https.any.worker.html [ Failure ]
-crbug.com/1250534 virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Fuchsia ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Linux ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Mac10.12 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Mac10.13 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Mac10.14 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Mac10.15 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Mac11.0 ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
+crbug.com/1250534 [ Win ] virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-move-manual.https.html [ Failure ]
 crbug.com/1250534 virtual/fsa-incognito/external/wpt/file-system-access/local_FileSystemDirectoryHandle-rename-manual.https.html [ Failure ]
 crbug.com/1250534 virtual/fsa-incognito/external/wpt/file-system-access/sandboxed_FileSystemDirectoryHandle-move.https.any.html [ Failure ]
 crbug.com/1250534 virtual/fsa-incognito/external/wpt/file-system-access/sandboxed_FileSystemDirectoryHandle-rename.https.any.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index 06774cc..f91eb75 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -274345,6 +274345,10 @@
          "aa1e382a2088fee541a1020a03a4299a3b18d6cd",
          []
         ],
+        "createImageBitmap-exif-orientation-expected.txt": [
+         "f6b44914032a1b9ff032d58236db4baafb8e581d",
+         []
+        ],
         "createImageBitmap-worker.js": [
          "67a0904e479323e4a159937f49919580109fbc61",
          []
@@ -274365,6 +274369,12 @@
          "4f155316f043f08f917b8e7cebf337474451a3f6",
          []
         ],
+        "resources": {
+         "squares.jpg": [
+          "f197760a111e07c54419d1993130aa1fee5982e8",
+          []
+         ]
+        },
         "transfer-worker.js": [
          "55465a899ca27d5202dfa796ec5200bde845892b",
          []
@@ -299755,6 +299765,22 @@
        "89164cfabed56b5852445eb70470cfd1331bdb48",
        []
       ],
+      "cross-origin-isolated-iframe.https.html": [
+       "acad3c3e64f6cc514456cb6a10e3e246d4b92ff0",
+       []
+      ],
+      "cross-origin-isolated-iframe.https.html.headers": [
+       "b227e843ae8e4b9136127c37eed0353c5d21c85c",
+       []
+      ],
+      "cross-origin-isolated.https.html": [
+       "1118b99454c5c45823dda24a9545f7eec52015ee",
+       []
+      ],
+      "cross-origin-isolated.https.html.headers": [
+       "5f8621ef83660c66f0d037ea28fafefb558140f1",
+       []
+      ],
       "empty.html": [
        "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
        []
@@ -408722,6 +408748,13 @@
           {}
          ]
         ],
+        "createImageBitmap-exif-orientation.html": [
+         "95d13d33fae0cd706dd79abee396306f23db3243",
+         [
+          null,
+          {}
+         ]
+        ],
         "createImageBitmap-flipY.html": [
          "e8b5010f6c4c2fce27e6ba98c8a3b56b3e4c5ec2",
          [
@@ -482612,6 +482645,15 @@
        }
       ]
      ],
+     "cross-origin-isolated.https.html": [
+      "7c201cd6bfad7e745cdc7b33e479d6b9889f0298",
+      [
+       null,
+       {
+        "timeout": "long"
+       }
+      ]
+     ],
      "iframe-added-post-activation.html": [
       "aeec5fc99bbd6519c7c0a8345a0beeafb58a0c2d",
       [
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt
new file mode 100644
index 0000000..f6b4491
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt
@@ -0,0 +1,7 @@
+This is a testharness.js-based test.
+PASS createImageBitmap with EXIF rotation, imageOrientation none, and no cropping
+FAIL createImageBitmap with EXIF rotation, imageOrientation flipY, and no cropping assert_array_approx_equals: Pixel value at (40,40) 255,128,128,255 =~ 0,0,0,255. property 0, expected 255 +/- 1, expected 255 but got 0
+FAIL createImageBitmap with EXIF rotation, imageOrientation none, and cropping assert_array_approx_equals: Pixel value at (40,40) 0,255,0,255 =~ 128,127,254,255. property 0, expected 0 +/- 1, expected 0 but got 128
+FAIL createImageBitmap with EXIF rotation, imageOrientation flipY, and cropping assert_array_approx_equals: Pixel value at (40,40) 128,255,128,255 =~ 128,128,128,255. property 1, expected 255 +/- 1, expected 255 but got 128
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html
new file mode 100644
index 0000000..95d13d3
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<title>Test that createImageBitmap honors EXIF orientation</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>canvas { outline: 1px solid black; margin-right: 1em; }</style>
+<body>
+<script>
+function loadImage(src) {
+    return new Promise(function(resolve) {
+        const image = new Image();
+        image.addEventListener("load", () => resolve(image), { once: true });
+        image.src = src;
+    });
+}
+
+function checkColors(ctx, w, h, expectedColors) {
+    let data = ctx.getImageData(0, 0, w, h).data;
+    for (let [row, col, r, g, b, a] of expectedColors) {
+        let x = col * 80 + 40;
+        let y = row * 80 + 40;
+        let i = (x + y * w) * 4;
+
+        let expected = [r, g, b, a];
+        let actual = [data[i], data[i + 1], data[i + 2], data[i + 3]];
+
+        assert_array_approx_equals(actual, expected, 1, `Pixel value at (${x},${y}) ${expected} =~ ${actual}.`);
+    }
+}
+
+async_test(function(t) {
+    const canvas = document.createElement("canvas");
+    canvas.width = 320;
+    canvas.height = 160;
+    document.body.append(canvas);
+
+    const ctx = canvas.getContext("2d");
+    loadImage("resources/squares.jpg")
+        .then((image) => createImageBitmap(image))
+        .then(t.step_func_done(function(imageBitmap) {
+            ctx.drawImage(imageBitmap, 0, 0);
+            checkColors(ctx, canvas.width, canvas.height, [
+                // row, col, r, g, b, a
+                [0, 0, 255, 0, 0, 255],
+                [0, 1, 0, 255, 0, 255],
+                [0, 2, 0, 0, 255, 255],
+                [0, 3, 0, 0, 0, 255],
+                [1, 0, 255, 128, 128, 255],
+                [1, 1, 128, 255, 128, 255],
+                [1, 2, 128, 128, 255, 255],
+                [1, 3, 128, 128, 128, 255],
+            ]);
+        }));
+}, "createImageBitmap with EXIF rotation, imageOrientation none, and no cropping");
+
+async_test(function(t) {
+    const canvas = document.createElement("canvas");
+    canvas.width = 320;
+    canvas.height = 160;
+    document.body.append(canvas);
+
+    const ctx = canvas.getContext("2d");
+    loadImage("resources/squares.jpg")
+        .then((image) => createImageBitmap(image, { imageOrientation: "flipY" }))
+        .then(t.step_func_done(function(imageBitmap) {
+            ctx.drawImage(imageBitmap, 0, 0);
+            checkColors(ctx, canvas.width, canvas.height, [
+                // row, col, r, g, b, a
+                [0, 0, 255, 128, 128, 255],
+                [0, 1, 128, 255, 128, 255],
+                [0, 2, 128, 128, 255, 255],
+                [0, 3, 128, 128, 128, 255],
+                [1, 0, 255, 0, 0, 255],
+                [1, 1, 0, 255, 0, 255],
+                [1, 2, 0, 0, 255, 255],
+                [1, 3, 0, 0, 0, 255],
+            ]);
+        }));
+}, "createImageBitmap with EXIF rotation, imageOrientation flipY, and no cropping");
+
+async_test(function(t) {
+    const canvas = document.createElement("canvas");
+    canvas.width = 160;
+    canvas.height = 160;
+    document.body.append(canvas);
+
+    const ctx = canvas.getContext("2d");
+    loadImage("resources/squares.jpg")
+        .then(image => createImageBitmap(image, 80, 0, 160, 160))
+        .then(t.step_func_done(function(imageBitmap) {
+            ctx.drawImage(imageBitmap, 0, 0);
+            checkColors(ctx, canvas.width, canvas.height, [
+                // row, col, r, g, b, a
+                [0, 0, 0, 255, 0, 255],
+                [0, 1, 0, 0, 255, 255],
+                [1, 0, 128, 255, 128, 255],
+                [1, 1, 128, 128, 255, 255],
+            ]);
+        }));
+}, "createImageBitmap with EXIF rotation, imageOrientation none, and cropping");
+
+async_test(function(t) {
+    const canvas = document.createElement("canvas");
+    canvas.width = 160;
+    canvas.height = 160;
+    document.body.append(canvas);
+
+    const ctx = canvas.getContext("2d");
+    loadImage("resources/squares.jpg")
+        .then(image => createImageBitmap(image, 80, 0, 160, 160, { imageOrientation: "flipY" }))
+        .then(t.step_func_done(function(imageBitmap) {
+            ctx.drawImage(imageBitmap, 0, 0);
+            checkColors(ctx, canvas.width, canvas.height, [
+                // row, col, r, g, b, a
+                [0, 0, 128, 255, 128, 255],
+                [0, 1, 128, 128, 255, 255],
+                [1, 0, 0, 255, 0, 255],
+                [1, 1, 0, 0, 255, 255],
+            ]);
+        }));
+}, "createImageBitmap with EXIF rotation, imageOrientation flipY, and cropping");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/resources/squares.jpg b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/resources/squares.jpg
new file mode 100644
index 0000000..f197760
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/imagebitmap/resources/squares.jpg
Binary files differ