diff --git a/packages/wct-mocha/CHANGELOG.md b/packages/wct-mocha/CHANGELOG.md index 4ae4bfb0a..bca50320e 100644 --- a/packages/wct-mocha/CHANGELOG.md +++ b/packages/wct-mocha/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/). +## 1.1.0 +* Added support for running with an enforced Trusted Types policy: https://github.com/WICG/trusted-types + ## 1.0.1 * Added support for Mocha 6.0.0, which introduced a breaking change related to initialization of stats on Mocha's test-runner, preventing reporting of test results. diff --git a/packages/wct-mocha/package-lock.json b/packages/wct-mocha/package-lock.json index 291a5bd75..02ac401bf 100644 --- a/packages/wct-mocha/package-lock.json +++ b/packages/wct-mocha/package-lock.json @@ -18,6 +18,12 @@ "requires": { "@types/node": "*" } + }, + "@types/trusted-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-1.0.4.tgz", + "integrity": "sha512-6jtHrHpmiXOXoJ31Cg9R+iEVwuEKPf0XHwFUI93eEPXx492/J2JHyafkleKE2EYzZprayk9FSjTyK1GDqcwDng==", + "dev": true } } } diff --git a/packages/wct-mocha/package.json b/packages/wct-mocha/package.json index b14bbd6ff..0aca5f743 100644 --- a/packages/wct-mocha/package.json +++ b/packages/wct-mocha/package.json @@ -33,7 +33,8 @@ "repository": "github:Polymer/tools", "dependencies": {}, "devDependencies": { - "@types/socket.io": "^1.4.36" + "@types/socket.io": "^1.4.36", + "@types/trusted-types": "^1.0.4" }, "peerDependencies": { "mocha": "*" diff --git a/packages/wct-mocha/src/environment.ts b/packages/wct-mocha/src/environment.ts index 8a6a4d029..ed90b270f 100644 --- a/packages/wct-mocha/src/environment.ts +++ b/packages/wct-mocha/src/environment.ts @@ -12,6 +12,16 @@ import * as config from './config.js'; import * as reporters from './reporters.js'; import * as util from './util.js'; +let policy = { + createHTML(v: string) { + return v; + } +}; +if (window.trustedTypes) { + policy = window.trustedTypes.createPolicy('wct-mocha-init', policy) as + unknown as typeof policy; +} + /** * Loads all environment scripts ...synchronously ...after us. */ @@ -33,7 +43,8 @@ export function loadSync() { const url = util.expandUrl(path, config.get('root')!); util.debug('Loading environment script:', url); // Synchronous load. - document.write(``); + document.write( + policy.createHTML(``)); }); util.debug('Environment scripts loaded'); const imports = config.get('environmentImports'); @@ -41,7 +52,8 @@ export function loadSync() { const url = util.expandUrl(path, config.get('root')!); util.debug('Loading environment import:', url); // Synchronous load. - document.write(``); + document.write( + policy.createHTML(``)); }); util.debug('Environment imports loaded'); } diff --git a/packages/wct-mocha/test/test/index.html b/packages/wct-mocha/test/test/index.html index 415be1a31..7509b49c3 100644 --- a/packages/wct-mocha/test/test/index.html +++ b/packages/wct-mocha/test/test/index.html @@ -1,6 +1,8 @@
+ diff --git a/packages/wct-mocha/tsconfig.json b/packages/wct-mocha/tsconfig.json index ae862231a..96546120d 100644 --- a/packages/wct-mocha/tsconfig.json +++ b/packages/wct-mocha/tsconfig.json @@ -14,6 +14,10 @@ "lib": [ "dom", "es2017" + ], + "types": [ + "trusted-types", + "mocha" ] }, "exclude": [