mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Stub out Trusted Types interfaces (#36355)
Some methods are implemented fully, while others are implemented partly. With these implementations, there are no observed crashes when running the trusted-types web-platform-tests. Most notably, the tests/wpt/tests/trusted-types/idlharness.window.js is now fully passing. Part of #36258 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
This commit is contained in:
parent
3f24b44e15
commit
b87bf0b806
145 changed files with 3377 additions and 559 deletions
|
@ -575,6 +575,14 @@ DOMInterfaces = {
|
|||
'canGc': ['ParentNode', 'PreviousNode', 'NextNode', 'FirstChild', 'LastChild', 'PreviousSibling', 'NextSibling']
|
||||
},
|
||||
|
||||
'TrustedTypePolicy': {
|
||||
'canGc': ['CreateHTML', 'CreateScript', 'CreateScriptURL']
|
||||
},
|
||||
|
||||
'TrustedTypePolicyFactory': {
|
||||
'canGc': ['CreatePolicy', 'EmptyHTML', 'EmptyScript']
|
||||
},
|
||||
|
||||
'URL': {
|
||||
'weakReferenceable': True,
|
||||
'canGc': ['Parse', 'SearchParams'],
|
||||
|
@ -590,7 +598,7 @@ DOMInterfaces = {
|
|||
},
|
||||
|
||||
'Window': {
|
||||
'canGc': ['Stop', 'Fetch', 'Scroll', 'Scroll_','ScrollBy', 'ScrollBy_', 'Stop', 'Fetch', 'Open', 'CreateImageBitmap'],
|
||||
'canGc': ['Stop', 'Fetch', 'Scroll', 'Scroll_','ScrollBy', 'ScrollBy_', 'Stop', 'Fetch', 'Open', 'CreateImageBitmap', 'TrustedTypes'],
|
||||
'inRealms': ['Fetch', 'GetOpener'],
|
||||
'additionalTraits': ['crate::interfaces::WindowHelpers'],
|
||||
},
|
||||
|
@ -602,7 +610,7 @@ DOMInterfaces = {
|
|||
|
||||
'WorkerGlobalScope': {
|
||||
'inRealms': ['Fetch'],
|
||||
'canGc': ['Fetch', 'CreateImageBitmap', 'ImportScripts'],
|
||||
'canGc': ['Fetch', 'CreateImageBitmap', 'ImportScripts', 'TrustedTypes'],
|
||||
},
|
||||
|
||||
'Worklet': {
|
||||
|
|
13
components/script_bindings/webidls/TrustedHTML.webidl
Normal file
13
components/script_bindings/webidls/TrustedHTML.webidl
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/trusted-types/#trusted-html
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker), Pref="dom_trusted_types_enabled"]
|
||||
interface TrustedHTML {
|
||||
stringifier;
|
||||
DOMString toJSON();
|
||||
};
|
13
components/script_bindings/webidls/TrustedScript.webidl
Normal file
13
components/script_bindings/webidls/TrustedScript.webidl
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/trusted-types/#trusted-script
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker), Pref="dom_trusted_types_enabled"]
|
||||
interface TrustedScript {
|
||||
stringifier;
|
||||
DOMString toJSON();
|
||||
};
|
13
components/script_bindings/webidls/TrustedScriptURL.webidl
Normal file
13
components/script_bindings/webidls/TrustedScriptURL.webidl
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/trusted-types/#trused-script-url
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker), Pref="dom_trusted_types_enabled"]
|
||||
interface TrustedScriptURL {
|
||||
stringifier;
|
||||
DOMString toJSON();
|
||||
};
|
15
components/script_bindings/webidls/TrustedTypePolicy.webidl
Normal file
15
components/script_bindings/webidls/TrustedTypePolicy.webidl
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/trusted-types/#trusted-type-policy
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker), Pref="dom_trusted_types_enabled"]
|
||||
interface TrustedTypePolicy {
|
||||
readonly attribute DOMString name;
|
||||
TrustedHTML createHTML(DOMString input, any... arguments);
|
||||
TrustedScript createScript(DOMString input, any... arguments);
|
||||
TrustedScriptURL createScriptURL(DOMString input, any... arguments);
|
||||
};
|
|
@ -0,0 +1,38 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/trusted-types/#trusted-type-policy-factory
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker), Pref="dom_trusted_types_enabled"]
|
||||
interface TrustedTypePolicyFactory {
|
||||
[Throws]
|
||||
TrustedTypePolicy createPolicy(
|
||||
DOMString policyName, optional TrustedTypePolicyOptions policyOptions = {});
|
||||
boolean isHTML(any value);
|
||||
boolean isScript(any value);
|
||||
boolean isScriptURL(any value);
|
||||
readonly attribute TrustedHTML emptyHTML;
|
||||
readonly attribute TrustedScript emptyScript;
|
||||
DOMString? getAttributeType(
|
||||
DOMString tagName,
|
||||
DOMString attribute,
|
||||
optional DOMString? elementNs = "",
|
||||
optional DOMString? attrNs = "");
|
||||
DOMString? getPropertyType(
|
||||
DOMString tagName,
|
||||
DOMString property,
|
||||
optional DOMString? elementNs = "");
|
||||
readonly attribute TrustedTypePolicy? defaultPolicy;
|
||||
};
|
||||
|
||||
dictionary TrustedTypePolicyOptions {
|
||||
CreateHTMLCallback createHTML;
|
||||
CreateScriptCallback createScript;
|
||||
CreateScriptURLCallback createScriptURL;
|
||||
};
|
||||
callback CreateHTMLCallback = DOMString? (DOMString input, any... arguments);
|
||||
callback CreateScriptCallback = DOMString? (DOMString input, any... arguments);
|
||||
callback CreateScriptURLCallback = USVString? (DOMString input, any... arguments);
|
|
@ -45,5 +45,10 @@ partial interface mixin WindowOrWorkerGlobalScope {
|
|||
readonly attribute boolean isSecureContext;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/trusted-types/#extensions-to-the-windoworworkerglobalscope-interface
|
||||
partial interface mixin WindowOrWorkerGlobalScope {
|
||||
readonly attribute TrustedTypePolicyFactory trustedTypes;
|
||||
};
|
||||
|
||||
Window includes WindowOrWorkerGlobalScope;
|
||||
WorkerGlobalScope includes WindowOrWorkerGlobalScope;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue