The tests in this directory were imported from the W3C repository.
Do NOT modify these tests directly in WebKit.
Instead, create a pull request on the WPT github:
	https://github.com/w3c/web-platform-tests

Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport

Do NOT modify or remove this file.

------------------------------------------------------------------------
Properties requiring vendor prefixes:
None
Property values requiring vendor prefixes:
None
------------------------------------------------------------------------
List of files:
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-dedicated-worker.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-dedicated-worker.https.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-popup-and-iframe-tests.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-popup-and-iframe-tests.https.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-popup-and-iframe-tests.https.js
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-shared-worker.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/basic-shared-worker.https.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/postMessage-helper.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/postMessage-helper.https.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/server-locations.sub.js
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/shared-worker-insecure-first.https.html
/LayoutTests/imported/w3c/web-platform-tests/secure-contexts/shared-worker-secure-first.https.html
