Closed Bug 1837106 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 40410 - Reland "Fenced frames: Local network access."

Categories

(Core :: DOM: Networking, task, P4)

task

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox116 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

(Depends on 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

Attachments

(1 file)

Sync web-platform-tests PR 40410 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/40410
Details from upstream follow.

Xiaochen Zhou <xiaochenzh@chromium.org> wrote:

Reland "Fenced frames: Local network access."

This is a reland of commit c02af164b8b7cee63e3c97901113c386f9100e67

Original change's description:

Fenced frames: Local network access.

Fenced frames are only allowed in secure context. So the tests are
all in secure contexts.

  1. Subresource fetch:

Fenced frame's IP address space is set to kPublic in order to make
it subject to local network access check.

web_tests/external/wpt/fetch/local-network-access/
fetch.https.window.js is replicated and replaced iframes with fenced
frames. All test cases are passing with the same behaviors as iframes.

  1. Document fetch:

Fenced frame's document fetch initiator can only be the parent.
Fenced frames can only be navigated in two ways:

  1. Directly by their parent, and never by another frame at a distance
    via window.location or window.open; in this case the ClientSecurityState needs to come from the parent.
  2. By themselves; in this case the ClientSecurityState also needs to
    come from its embedder/parent.

The ClientSecurityState of its parent is supplied to the
NavigationURLLoader.

web_tests/external/wpt/fetch/local-network-access/
iframe.tentative.https.window.js is replicated and replaced iframes
with fenced frames. All test cases have the same results as the
iframe test expectations, except one:

treat-as-public-address to local (same-origin): no preflight
required

  • Iframe: the request is made without preflight. The nested iframe is
    loaded successfully.

  • Fenced frame: a preflight is made, and gets blocked. See a. below.

I changed the test expectation for this test only. (PASS for iframe,
but FAIL for fenced frame)

Here are some noteworthy things we observed for document fetch. The
following only applies to embedder-initiated navigations (i.e., the
initial navigation of the frame):
a. Fenced frame's document fetch's preflight request is always sent
with Origin: null. This applies to embedder-initiated navigations
(i.e., the initial navigation of the frame). I think this affects the
outcome of Local Network Access check algorithm.
https://source.chromium.org/chromium/chromium/src/+/main:content/browser/fenced_frame/fenced_frame.cc;l=119-126?q=fencedframe::n&ss=chromium%2Fchromium%2Fsrc

A null origin implies
LocalNetworkAccessChecker::is_potentially_trustworthy_same_origin_
will always be false.

b. For testing purposes, we tried manually overriding the initiator
origin with a real origin and found that the preflight request still
failed. This is because the credentials mode of the navigation is
'include', which prevents Access-Control-Allow-Origin: '*' from
working, which iframes equivalently suffer from: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/fetch/local-network-access/iframe.tentative.https.window-expected.txt?q=%22FAIL%20%22%20f:third_party%2Fblink%2Fweb_tests%2Fexternal%2Fwpt%2Ffetch%2Flocal-network-access%2Fiframe.tentative.https.window-expected.txt.

Bug: 1420626
Change-Id: I74c97369d235e1725c650bfe87f29372992cb56b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4532557
Reviewed-by: Titouan Rigoudy \<titouan@chromium.org>
Reviewed-by: Alex Moshchuk \<alexmos@chromium.org>
Reviewed-by: Weizhong Xia \<weizhong@google.com>
Commit-Queue: Xiaochen Zhou \<xiaochenzh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1154027}

Bug: 1420626
Change-Id: I5c1f326e991f14125f5c3991046553d6e3200784

Reviewed-on: https://chromium-review.googlesource.com/4595521
WPT-Export-Revision: 677f1dd463b662ee71fe24f6db0d8ac4b3b231d8

Component: web-platform-tests → DOM: Networking
Product: Testing → Core
Attached file Notable wpt changes —
# CI Results Ran 5 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI Total 47 tests and 7 subtests ## Status Summary ### Firefox `OK` : 4[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt] 42[GitHub] `PASS` : 2[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt] 141[GitHub] `FAIL` : 16[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt] 308[GitHub] `TIMEOUT`: 2[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt] 9[GitHub] `NOTRUN` : 4[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt] 16[GitHub] ### Chrome `OK` : 44 `PASS` : 275 `FAIL` : 181 `TIMEOUT`: 4 `NOTRUN` : 12 ### Safari `OK` : 43 `PASS` : 141 `FAIL` : 310 `TIMEOUT`: 6 `NOTRUN` : 16 ## Links [Gecko CI (Treeherder)](https://treeherder.mozilla.org/#/jobs?repo=try&revision=691cdbd271b653a9e49bf2aef96c93287e4c152a) [GitHub PR Head](https://wpt.fyi/results/?sha=c46a9c644857819003768766a1f24a77bcaea1a4&label=pr_head) [GitHub PR Base](https://wpt.fyi/results/?sha=c46a9c644857819003768766a1f24a77bcaea1a4&label=pr_base) ## Details ### Firefox-only Failures * [/fetch/local-network-access/iframe.tentative.https.window.html](https://wpt.live/fetch/local-network-access/iframe.tentative.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/iframe.tentative.https.window.html)]: `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`], `TIMEOUT` [`GitHub`] ### New Tests That Don't Pass * [/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-local](https://wpt.live/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-local) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-local)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * local to local: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local to private: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-public](https://wpt.live/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-public) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-public)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: missing CORS headers on final response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: no-CORS mode failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: no-CORS mode success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: missing CORS headers on final response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: no-CORS mode failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: no-CORS mode success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-private](https://wpt.live/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-private) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-private)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing CORS headers on final response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to private: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=baseline](https://wpt.live/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=baseline) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=baseline)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * local to public: PUT preflight failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local to public: PUT preflight success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fenced-frame.tentative.https.window.html](https://wpt.live/fetch/local-network-access/fenced-frame.tentative.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fenced-frame.tentative.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * local to local: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local to private: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing CORS headers.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing PNA header.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: failed because fenced frames are incompatible with PNA.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to private: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: missing CORS headers.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: missing PNA header.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed because fenced frames are incompatible with PNA.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: missing CORS headers.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: missing PNA header.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failed because fenced frames are incompatible with PNA.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: missing CORS headers.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: missing PNA header.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: failed because fenced frames are incompatible with PNA.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local (same-origin): fenced frame embedder initiated navigation has opaque origin.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to private: missing CORS headers.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to private: missing PNA header.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to private: failed because fenced frames are incompatible with PNA.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to public: no preflight required.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: optional preflight: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fetch-from-treat-as-public.https.window.html](https://wpt.live/fetch/local-network-access/fetch-from-treat-as-public.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch-from-treat-as-public.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public-address to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/fetch.https.window.html?include=from-public](https://wpt.live/fetch/local-network-access/fetch.https.window.html?include=from-public) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch.https.window.html?include=from-public)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * public to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: missing CORS headers on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: missing PNA header on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: missing CORS headers on final response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: no-CORS mode failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: missing CORS headers on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: missing PNA header on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: missing CORS headers on final response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: no-CORS mode failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/fetch.https.window.html?include=from-local](https://wpt.live/fetch/local-network-access/fetch.https.window.html?include=from-local) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch.https.window.html?include=from-local)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/fetch.https.window.html?include=from-private](https://wpt.live/fetch/local-network-access/fetch.https.window.html?include=from-private) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch.https.window.html?include=from-private)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: missing CORS headers on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private to local: missing PNA header on preflight response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private to local: missing CORS headers on final response.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode missing CORS headers on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: no-CORS mode missing PNA header on preflight response.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/fetch.https.window.html?include=baseline](https://wpt.live/fetch/local-network-access/fetch.https.window.html?include=baseline) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch.https.window.html?include=baseline)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * local to public: PUT preflight failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/fetch.window.html](https://wpt.live/fetch/local-network-access/fetch.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/fetch.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private https to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public https to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public https to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/iframe.tentative.https.window.html](https://wpt.live/fetch/local-network-access/iframe.tentative.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/iframe.tentative.https.window.html)]: `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`], `TIMEOUT` [`GitHub`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public-address to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local, grandparent navigates: failure.: `TIMEOUT` (Chrome: `FAIL`, Safari: `FAIL`) * public to local, grandparent navigates: success.: `TIMEOUT` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/iframe.tentative.window.html](https://wpt.live/fetch/local-network-access/iframe.tentative.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/iframe.tentative.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/mixed-content-fetch.tentative.https.window.html](https://wpt.live/fetch/local-network-access/mixed-content-fetch.tentative.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/mixed-content-fetch.tentative.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * https-loopback to http-loopback: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-loopback: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-loopback: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-loopback: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-local: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-local: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-local: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-local: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-public: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-public: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-public: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-loopback to http-public: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: missing targetAddressSpace.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-loopback: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-local to http-loopback: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-local to http-loopback: no-cors success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-local to http-local: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-local: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-local: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-local: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-public: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-public: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-public: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-local to http-public: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: missing targetAddressSpace.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-loopback: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-loopback: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-loopback: no-cors success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-local: missing targetAddressSpace.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-local: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-local: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-local: wrong targetAddressSpace "public".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-local: PUT success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-local: no-cors success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-public to http-public: wrong targetAddressSpace "unknown".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-public: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-public: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-public to http-public: not a local network request.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-treat-as-public to http-loopback: wrong targetAddressSpace "local".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-treat-as-public to http-loopback: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * https-treat-as-public to http-local: wrong targetAddressSpace "loopback".: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * https-treat-as-public to http-local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/nested-worker.https.window.html](https://wpt.live/fetch/local-network-access/nested-worker.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/nested-worker.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/nested-worker.window.html](https://wpt.live/fetch/local-network-access/nested-worker.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/nested-worker.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/preflight-cache.https.window.html](https://wpt.live/fetch/local-network-access/preflight-cache.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/preflight-cache.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/redirect.https.window.html](https://wpt.live/fetch/local-network-access/redirect.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/redirect.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private to local to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private to local: failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private to local: failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local to private: failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local to private: failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local to private: no-cors failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local to private: no-cors failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local (same-origin) to private: failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local (same-origin) to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local (same-origin) to private: no-cors failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local: failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local: failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local: no-cors failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local: no-cors failed second preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local (same-origin): failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local (same-origin): success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private to local (same-origin): no-cors failed first preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/service-worker-background-fetch.https.window.html](https://wpt.live/fetch/local-network-access/service-worker-background-fetch.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker-background-fetch.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * local to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to public: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to public: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/service-worker-fetch.https.window.html](https://wpt.live/fetch/local-network-access/service-worker-fetch.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker-fetch.https.window.html)]: `SKIP` * [/fetch/local-network-access/service-worker-update.https.window.html](https://wpt.live/fetch/local-network-access/service-worker-update.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker-update.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/service-worker.https.window.html](https://wpt.live/fetch/local-network-access/service-worker.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/shared-worker-blob-fetch.https.window.html](https://wpt.live/fetch/local-network-access/shared-worker-blob-fetch.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker-blob-fetch.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/shared-worker-blob-fetch.window.html](https://wpt.live/fetch/local-network-access/shared-worker-blob-fetch.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker-blob-fetch.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local https to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private https to local https: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public https to local https: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/shared-worker-fetch.https.window.html](https://wpt.live/fetch/local-network-access/shared-worker-fetch.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker-fetch.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/shared-worker-fetch.window.html](https://wpt.live/fetch/local-network-access/shared-worker-fetch.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker-fetch.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * local https to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/shared-worker.https.window.html](https://wpt.live/fetch/local-network-access/shared-worker.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/shared-worker.window.html](https://wpt.live/fetch/local-network-access/shared-worker.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/shared-worker.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/websocket.https.window.html](https://wpt.live/fetch/local-network-access/websocket.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/websocket.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/websocket.window.html](https://wpt.live/fetch/local-network-access/websocket.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/websocket.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: websocket failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: websocket failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to local: websocket failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/worker-blob-fetch.window.html](https://wpt.live/fetch/local-network-access/worker-blob-fetch.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/worker-blob-fetch.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private https to local https: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public https to private https: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public https to local https: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/worker-fetch.https.window.html](https://wpt.live/fetch/local-network-access/worker-fetch.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/worker-fetch.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/worker-fetch.window.html](https://wpt.live/fetch/local-network-access/worker-fetch.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/worker-fetch.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private https to local https: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public https to private https: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public https to local https: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/worker.https.window.html](https://wpt.live/fetch/local-network-access/worker.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/worker.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/worker.window.html](https://wpt.live/fetch/local-network-access/worker.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/worker.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/xhr-from-treat-as-public.https.window.html](https://wpt.live/fetch/local-network-access/xhr-from-treat-as-public.https.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/xhr-from-treat-as-public.https.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * treat-as-public to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/xhr.https.window.html?include=from-public](https://wpt.live/fetch/local-network-access/xhr.https.window.html?include=from-public) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/xhr.https.window.html?include=from-public)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * public to local: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to local: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failed preflight.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: success.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fetch/local-network-access/xhr.https.window.html?include=from-local](https://wpt.live/fetch/local-network-access/xhr.https.window.html?include=from-local) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/xhr.https.window.html?include=from-local)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * [/fetch/local-network-access/xhr.https.window.html?include=from-private](https://wpt.live/fetch/local-network-access/xhr.https.window.html?include=from-private) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/xhr.https.window.html?include=from-private)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failed preflight.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * private to local: success.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fetch/local-network-access/xhr.window.html](https://wpt.live/fetch/local-network-access/xhr.window.html) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/xhr.window.html)]: `OK` [`GitHub`], `SKIP` [`Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview`, `Gecko-android-em-7.0-x86_64-qr-debug-geckoview`, `Gecko-android-em-7.0-x86_64-qr-opt-geckoview`, `Gecko-linux1804-64-qr-debug`, `Gecko-linux1804-64-qr-opt`] (Chrome: `OK`, Safari: `OK`) * private to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * treat-as-public-address to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * private https to local: failure.: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * public https to local: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * public https to private: failure.: `FAIL` (Chrome: `PASS`, Safari: `FAIL`) * [/fenced-frame/disallowed-navigation-to-blob.https.html](https://wpt.live/fenced-frame/disallowed-navigation-to-blob.https.html) [[wpt.fyi](https://wpt.fyi/results/fenced-frame/disallowed-navigation-to-blob.https.html)] * fenced frame config => blob: URL: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame urn:uuid => blob: URL: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fenced-frame/disallowed-navigation-to-data.https.html](https://wpt.live/fenced-frame/disallowed-navigation-to-data.https.html) [[wpt.fyi](https://wpt.fyi/results/fenced-frame/disallowed-navigation-to-data.https.html)] * fenced frame config => data: URL: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame urn:uuid => data: URL: `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html](https://wpt.live/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html) [[wpt.fyi](https://wpt.fyi/results/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html)] * fenced frame opaque URN => https: URL with dangling markup 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame opaque URN => https: URL with dangling markup 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame opaque URN => https: URL with dangling markup 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame opaque URN => https: URL with dangling markup 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame opaque URN => https: URL with dangling markup 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame opaque URN => https: URL with dangling markup 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fenced-frame/disallowed-navigations-dangling-markup.https.html](https://wpt.live/fenced-frame/disallowed-navigations-dangling-markup.https.html) [[wpt.fyi](https://wpt.fyi/results/fenced-frame/disallowed-navigations-dangling-markup.https.html)] * fenced frame dangling-markup URL with 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame dangling-markup URL with 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame dangling-markup URL with 'blo ck<ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame dangling-markup URL with 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame dangling-markup URL with 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * fenced frame dangling-markup URL with 'blo<ck ed': `FAIL` (Chrome: `FAIL`, Safari: `FAIL`) * [/fenced-frame/disallowed-navigations.https.html](https://wpt.live/fenced-frame/disallowed-navigations.https.html) [[wpt.fyi](https://wpt.fyi/results/fenced-frame/disallowed-navigations.https.html)]: `TIMEOUT` (Chrome: `OK`, Safari: `TIMEOUT`) * iframe javascript: URL: `TIMEOUT` (Chrome: `PASS`, Safari: `TIMEOUT`) * fenced frame data: URL: `NOTRUN` (Chrome: `FAIL`, Safari: `NOTRUN`) * fenced frame blob: URL: `NOTRUN` (Chrome: `FAIL`, Safari: `NOTRUN`) * fenced frame javascript: URL: `NOTRUN` (Chrome: `FAIL`, Safari: `NOTRUN`) * fenced frame http: URL: `NOTRUN` (Chrome: `FAIL`, Safari: `NOTRUN`) * [/fetch/local-network-access/service-worker-fetch.https.window.html?1-8](https://wpt.live/fetch/local-network-access/service-worker-fetch.https.window.html?1-8) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker-fetch.https.window.html?1-8)]: `TIMEOUT` (Chrome: `TIMEOUT`, Safari: `TIMEOUT`) * private to local: failed preflight.: `TIMEOUT` (Chrome: `TIMEOUT`, Safari: `TIMEOUT`) * private to local: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * private to private: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * public to local: failed preflight.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * public to local: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * public to private: failed preflight.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * public to private: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * [/fetch/local-network-access/service-worker-fetch.https.window.html?9-last](https://wpt.live/fetch/local-network-access/service-worker-fetch.https.window.html?9-last) [[wpt.fyi](https://wpt.fyi/results/fetch/local-network-access/service-worker-fetch.https.window.html?9-last)]: `TIMEOUT` (Chrome: `TIMEOUT`, Safari: `TIMEOUT`) * public to public: success.: `TIMEOUT` (Chrome: `TIMEOUT`, Safari: `TIMEOUT`) * treat-as-public to local: failed preflight.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * treat-as-public to local: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * treat-as-public to local (same-origin): no preflight required.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * treat-as-public to private: failed preflight.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * treat-as-public to private: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) * treat-as-public to public: success.: `NOTRUN` (Chrome: `NOTRUN`, Safari: `NOTRUN`) (See attachment for full changes)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cb9ee6205be8 [wpt PR 40410] - Reland "Fenced frames: Local network access.", a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: