HTMLBaseElement::href changed to accept TrustedTypes
Changed implementation of setHref(), older version is abandoned.
Added href() getter that accepts URLString as an argument.
Bug: 739170
Change-Id: I7703c1a33f037a912f1a105d8c79ef8fe5b4a289
Reviewed-on: https://chromium-review.googlesource.com/1136544
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Maja Kabus <kabusm@google.com>
Cr-Commit-Position: refs/heads/master@{#575232}
diff --git a/trusted-types/HTMLBaseElement-href.tentative.html b/trusted-types/HTMLBaseElement-href.tentative.html
new file mode 100644
index 0000000..322d740
--- /dev/null
+++ b/trusted-types/HTMLBaseElement-href.tentative.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/helper.js"></script>
+
+ <script>
+ //helper function for the tests
+ function testHref(str, url) {
+ var base = document.createElement('base');
+ base.href = url;
+ assert_equals(base.href, str);
+ }
+
+ test(t => {
+ testHref(URLS.safe, TrustedURL.create(URLS.safe));
+ }, "base.href = URLS.safe, TrustedURL.create");
+
+ test(t => {
+ testHref(URLS.safe, TrustedURL.unsafelyCreate(URLS.safe));
+ }, "base.href = URLS.safe, TrustedURL.unsafelyCreate");
+ </script>
+</head>
diff --git a/trusted-types/block-string-assignment-to-HTMLBaseElement-href.tentative.html b/trusted-types/block-string-assignment-to-HTMLBaseElement-href.tentative.html
new file mode 100644
index 0000000..88aeb5b
--- /dev/null
+++ b/trusted-types/block-string-assignment-to-HTMLBaseElement-href.tentative.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/helper.js"></script>
+
+ <meta http-equiv="Content-Security-Policy" content="require-trusted-types">
+
+ <script>
+ //helper function for the tests
+ function testHref(str, url) {
+ var base = document.createElement('base');
+ base.href = url;
+ assert_equals(base.href, str);
+ }
+
+ //URL assignments do not throw.
+ test(t => {
+ testHref(URLS.safe, TrustedURL.create(URLS.safe));
+ }, "base.href = URLS.safe, TrustedURL.create");
+
+ test(t => {
+ testHref(URLS.safe, TrustedURL.unsafelyCreate(URLS.safe));
+ }, "base.href = URLS.safe, TrustedURL.unsafelyCreate");
+
+ // String assignments throw.
+ test(t => {
+ var base = document.createElement('base');
+ assert_throws(new TypeError(), _ => {
+ base.href = "A string";
+ });
+ }, "`base.href = string` throws");
+
+ //Null assignment throws.
+ test(t => {
+ var base = document.createElement('base');
+ assert_throws(new TypeError(), _ => {
+ base.href = null;
+ });
+ }, "`base.href = null` throws");
+ </script>
+</head>