Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
https://bugs.webkit.org/show_bug.cgi?id=266980 Reviewed by Ryosuke Niwa and Alex Christensen. This patch adds a runtime feature flag and the initial bindings for the Trusted Types API. None of the enforcement logic is implemented yet, nor any changes to the DOM sinks. Spec: https://w3c.github.io/trusted-types/dist/spec * LayoutTests/TestExpectations: * LayoutTests/imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/source-file-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/DOMParser-parseFromString-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Document-write-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Element-insertAdjacentHTML-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Element-insertAdjacentText-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Element-outerHTML-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Element-setAttribute-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Element-setAttributeNS-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/GlobalEventHandlers-onclick-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/HTMLElement-generic-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Node-multiple-arguments-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Range-createContextualFragment-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedType-AttributeNodes-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-blocking-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-none-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-none-skip-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-namespace-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Window-TrustedTypes-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/WorkerGlobalScope-eval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-Document-execCommand-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-Node-multiple-arguments-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Document-write-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/csp-block-eval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/default-policy-callback-arguments-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/default-policy-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/empty-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/empty-default-policy-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-no-tt-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-function-constructor-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-no-csp-no-tt-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-with-permissive-csp-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/no-require-trusted-types-for-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/require-trusted-types-for-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-createHTMLDocument-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-duplicate-names-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-duplicate-names-without-enforcement-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-eval-reporting-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-from-literal-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-report-only-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-reporting-check-report-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-source-file-path-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-svg-script-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-tojson-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/tt-block-eval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/worker-constructor.https-expected.txt: * LayoutTests/platform/gtk/TestExpectations: * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/mac-wk1/TestExpectations: * LayoutTests/platform/wpe/TestExpectations: * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/CMakeLists.txt: * Source/WebCore/DerivedSources-input.xcfilelist: * Source/WebCore/DerivedSources-output.xcfilelist: * Source/WebCore/DerivedSources.make: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/bindings/js/WebCoreBuiltinNames.h: * Source/WebCore/dom/CreateHTMLCallback.h: Added. * Source/WebCore/dom/CreateHTMLCallback.idl: Added. * Source/WebCore/dom/CreateScriptCallback.h: Added. * Source/WebCore/dom/CreateScriptCallback.idl: Added. * Source/WebCore/dom/CreateScriptURLCallback.h: Added. * Source/WebCore/dom/CreateScriptURLCallback.idl: Added. * Source/WebCore/dom/TrustedHTML.cpp: Added. (WebCore::TrustedHTML::create): (WebCore::TrustedHTML::TrustedHTML): * Source/WebCore/dom/TrustedHTML.h: Added. (WebCore::TrustedHTML::toString const): (WebCore::TrustedHTML::toJSON const): * Source/WebCore/dom/TrustedHTML.idl: Added. * Source/WebCore/dom/TrustedScript.cpp: Added. (WebCore::TrustedScript::create): (WebCore::TrustedScript::TrustedScript): * Source/WebCore/dom/TrustedScript.h: Added. * Source/WebCore/dom/TrustedScript.idl: Added. * Source/WebCore/dom/TrustedScriptURL.cpp: Added. (WebCore::TrustedScriptURL::create): (WebCore::TrustedScriptURL::TrustedScriptURL): * Source/WebCore/dom/TrustedScriptURL.h: Added. (WebCore::TrustedScriptURL::toString const): (WebCore::TrustedScriptURL::toJSON const): * Source/WebCore/dom/TrustedScriptURL.idl: Added. * Source/WebCore/dom/TrustedTypePolicy.cpp: Added. (WebCore::TrustedTypePolicy::create): (WebCore::TrustedTypePolicy::TrustedTypePolicy): (WebCore::TrustedTypePolicy::createHTML): (WebCore::TrustedTypePolicy::createScript): (WebCore::TrustedTypePolicy::createScriptURL): * Source/WebCore/dom/TrustedTypePolicy.h: Added. (WebCore::TrustedTypePolicy::name const): * Source/WebCore/dom/TrustedTypePolicy.idl: Added. * Source/WebCore/dom/TrustedTypePolicyFactory.cpp: Added. (WebCore::TrustedTypePolicyFactory::create): (WebCore::TrustedTypePolicyFactory::createPolicy): (WebCore::TrustedTypePolicyFactory::isHTML const): (WebCore::TrustedTypePolicyFactory::isScript const): (WebCore::TrustedTypePolicyFactory::isScriptURL const): (WebCore::TrustedTypePolicyFactory::emptyHTML const): (WebCore::TrustedTypePolicyFactory::emptyScript const): (WebCore::TrustedTypePolicyFactory::getAttributeType const): (WebCore::TrustedTypePolicyFactory::getPropertyType const): * Source/WebCore/dom/TrustedTypePolicyFactory.h: Added. (WebCore::TrustedTypePolicyFactory::defaultPolicy const): * Source/WebCore/dom/TrustedTypePolicyFactory.idl: Added. * Source/WebCore/dom/TrustedTypePolicyOptions.h: Added. * Source/WebCore/dom/TrustedTypePolicyOptions.idl: Added. * Source/WebCore/dom/WindowOrWorkerGlobalScope+TrustedTypes.idl: Added. * Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.cpp: Added. (WebCore::DOMWindowTrustedTypes::supplementName): (WebCore::WorkerGlobalScopeTrustedTypes::supplementName): (WebCore::DOMWindowTrustedTypes::DOMWindowTrustedTypes): (WebCore::DOMWindowTrustedTypes::from): (WebCore::DOMWindowTrustedTypes::trustedTypes const): (WebCore::WorkerGlobalScopeTrustedTypes::WorkerGlobalScopeTrustedTypes): (WebCore::WorkerGlobalScopeTrustedTypes::from): (WebCore::WorkerGlobalScopeTrustedTypes::trustedTypes const): (WebCore::WindowOrWorkerGlobalScopeTrustedTypes::trustedTypes): * Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.h: Added. * Source/WebCore/page/ios/DOMTimerHoldingTank.h: * Source/WebCore/Modules/WebGPU/GPUOutOfMemoryError.h: Canonical link: https://commits.webkit.org/273817@main
- Loading branch information