Bug 1381744 - New web-platform test case for data:font same-origin check. draft
authorHenry Chang <hchang@mozilla.com>
Thu, 10 Aug 2017 17:35:54 +0800
changeset 644623 08f53cfaef8eda611d58cdacd815cecd2c41b2bf
parent 643612 a4a448ba7f187069fce916ee234a06cbb0d06f80
child 644624 cf69cae0a2b0d3ec3ff90caec01c3d6d2947e7b8
push id73501
push userhchang@mozilla.com
push dateFri, 11 Aug 2017 07:51:07 +0000
bugs1381744
milestone57.0a1
Bug 1381744 - New web-platform test case for data:font same-origin check. MozReview-Commit-ID: AFSf532NLVl
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/css/css-fonts-3/test_datafont_same_origin.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -330414,16 +330414,22 @@
     ]
    ],
    "css/css-flexbox-1/position-absolute-004.html": [
     [
      "/css/css-flexbox-1/position-absolute-004.html",
      {}
     ]
    ],
+   "css/css-fonts-3/test_datafont_same_origin.html": [
+    [
+     "/css/css-fonts-3/test_datafont_same_origin.html",
+     {}
+    ]
+   ],
    "css/css-fonts-3/test_font_family_parsing.html": [
     [
      "/css/css-fonts-3/test_font_family_parsing.html",
      {}
     ]
    ],
    "css/css-fonts-3/test_font_feature_values_parsing.html": [
     [
@@ -510387,16 +510393,20 @@
   "css/css-fonts-3/test-synthetic-bold.xht": [
    "7e1f3782397e621fb330dddb7a01ba2da93adb8c",
    "manual"
   ],
   "css/css-fonts-3/test-synthetic-italic.xht": [
    "2a8f7afbb6ccfc4084534c36bd4cfeebcbae4194",
    "manual"
   ],
+  "css/css-fonts-3/test_datafont_same_origin.html": [
+   "a793f06cceb92b34dc27728307995774a5d95b63",
+   "testharness"
+  ],
   "css/css-fonts-3/test_font_family_parsing.html": [
    "fa926a9e86823cddea6d9f1418c752cf04e341ad",
    "testharness"
   ],
   "css/css-fonts-3/test_font_feature_values_parsing.html": [
    "26fc2e6d6a0b09a93a8fa08aed87ea9cdd13c404",
    "testharness"
   ],
@@ -574264,21 +574274,21 @@
    "6a08de4ca3515d9e59043642c0654dc9a8fc310e",
    "testharness"
   ],
   "dom/nodes/Document-createElementNS.js": [
    "a0cb73e1bef92ce357f50e03c74794ec25a98c2e",
    "support"
   ],
   "dom/nodes/Document-createEvent.html": [
-   "9274ffffe1b08dee78b64ffc70582957f0386bca",
+   "9d128acd63f3e972334d9a034e0c222495fd927e",
    "testharness"
   ],
   "dom/nodes/Document-createEvent.js": [
-   "6e7d9350e2fd9ffad36fddd4d90438d620c7dbf3",
+   "5a8ecc8e5627e340eb10fdc91675968dc9b8fb98",
    "support"
   ],
   "dom/nodes/Document-createProcessingInstruction-xhtml.xhtml": [
    "bacd930694c4346b6debbb3fbf2ecbbd2a61cf17",
    "testharness"
   ],
   "dom/nodes/Document-createProcessingInstruction.html": [
    "28e11bed34c54aee6a94c359cec63d8da21f2f40",
@@ -579680,17 +579690,17 @@
    "6ab295e142a89e006377cb22abed3c87f99fdcb0",
    "support"
   ],
   "html/browsers/browsing-the-web/history-traversal/001.html": [
    "d58a0434f7fdb7025532496da5e9b2db6679d600",
    "testharness"
   ],
   "html/browsers/browsing-the-web/history-traversal/PopStateEvent.html": [
-   "2a7ed0827fc61af7b3bdd238577887aff1902ea7",
+   "5a9c575a86adbbbca30734992b4d80c22f3973a1",
    "testharness"
   ],
   "html/browsers/browsing-the-web/history-traversal/browsing_context_name-0.html": [
    "059f6738127f25477f8c17dc3e79f2dc7ea64465",
    "support"
   ],
   "html/browsers/browsing-the-web/history-traversal/browsing_context_name-1.html": [
    "2eda3fa32e3918ee4d75989fc2e6f03582ce6e75",
@@ -596332,17 +596342,17 @@
    "c1d1054447e116becb50aaf96aad00a25f0a6752",
    "testharness"
   ],
   "intersection-observer/shadow-content.html": [
    "11681640d5c8b2c62229ed5a717172f917d75ba4",
    "testharness"
   ],
   "intersection-observer/timestamp.html": [
-   "a7084b2a0f359115a1862f3c0891ace8143dba83",
+   "b9bf8d472d7751ec4a1ebee925d12668bedeee7a",
    "testharness"
   ],
   "intersection-observer/unclipped-root.html": [
    "67dab96304c745f1b5462bb1074753b09d77fbd1",
    "testharness"
   ],
   "intersection-observer/zero-area-element-hidden.html": [
    "59d854e89ca0d7b035a87376566775ca2f3420e5",
@@ -624948,17 +624958,17 @@
    "ebdbe326fd2fc53a3522b846505808496407b5b8",
    "support"
   ],
   "webdriver/tests/actions/key.py": [
    "69542dc107d881bf18dfff3203bfd7a9ec31b4ad",
    "wdspec"
   ],
   "webdriver/tests/actions/mouse.py": [
-   "51ba095d3d754e30154c20b2910830c6d3e3410c",
+   "d7af66e45c8e306b4258b92c54ed86073fd21c8d",
    "wdspec"
   ],
   "webdriver/tests/actions/sequence.py": [
    "6a90971de07950c74e54312fc4429074ea1bed21",
    "wdspec"
   ],
   "webdriver/tests/actions/special_keys.py": [
    "3b10143dea60567f30b4ab6c544e005d02f31fc3",
@@ -624972,17 +624982,17 @@
    "636991372c21e52b623ed4ada9dfb675dd7f7e14",
    "support"
   ],
   "webdriver/tests/actions/support/refine.py": [
    "0d244bffe67ef57be68aad99f1cbc7440ff80e27",
    "support"
   ],
   "webdriver/tests/actions/support/test_actions_wdspec.html": [
-   "a5a1cbce9f0ef66c19065cb8ba761c8fd27cc4ac",
+   "94b6f474bb4417cf2c06cb5fc6042c01bde98aa2",
    "support"
   ],
   "webdriver/tests/conftest.py": [
    "ab95734024a8e152ed84128eb804344740be91d4",
    "support"
   ],
   "webdriver/tests/cookies.py": [
    "e31177e638269864031e44808945fa1e7c46031c",
@@ -639340,17 +639350,17 @@
    "f83b047afddadb9224c5ce3ca595a2a5720f4639",
    "testharness"
   ],
   "workers/Worker_cross_origin_security_err.htm": [
    "da6275452010fb642ac8fb9510d19652233f8fc3",
    "testharness"
   ],
   "workers/Worker_dispatchEvent_ErrorEvent.htm": [
-   "a1100df5a79ed7b484a8d5c5746bd646a165242b",
+   "a27efcba6fcdbb34bb07ac8553a6bbfa04761008",
    "testharness"
   ],
   "workers/Worker_script_mimetype.htm": [
    "baed4001cb420e20a7378e13832dd15d9a69f2a5",
    "testharness"
   ],
   "workers/Worker_terminate_event_queue.htm": [
    "2563eac08a75fe114f6d241085816036bee9163c",
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-fonts-3/test_datafont_same_origin.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <meta charset=utf-8>
+  <title>data:font same-origin test</title>
+  <link rel="author" title="Henry Chang" href="mailto:hchang@mozilla.com">
+  <link rel="help" href="http://www.w3.org/TR/css-fonts-3/#font-prop" />
+  <meta name="assert" content="tests data:font would be treated same origin." />
+  <script type="text/javascript" src="/resources/testharness.js"></script>
+  <script type="text/javascript" src="/resources/testharnessreport.js"></script>
+  <style type="text/css">
+    @font-face {
+      font-family: 'DataFont';
+      src: url(data:font/opentype;base64,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);
+    }
+  </style>
+</head>
+<body>
+<div id="log"></div>
+<pre id="display"></pre>
+<style type="text/css" id="testbox"></style>
+
+<script type="text/javascript">
+  async_test(function(t) {
+    var text = document.createElement('p');
+    // Cross-domain font will not load according to [1] so we try to apply
+    // data:font to this text and see if the font can be loaded.
+    // [1] https://www.w3.org/TR/css-fonts-3/#same-origin-restriction
+    text.style = 'font-family: DataFont';
+    text.innerHTML = "This text should trigger 'TestFont' to load.";
+    document.body.appendChild(text);
+
+    document.fonts.onloadingdone = function (fontFaceSetEvent) {
+      assert_equals(fontFaceSetEvent.fontfaces.length, 1, "Same origin font should be loaded.");
+      t.done();
+    };
+    document.fonts.onloadingerror = function (fontFaceSetEvent) {
+      assert_unreached("data:font is not same origin!");
+    };
+  }, "Test if data:font would be treated same origin.")
+</script>
+</body>
+</html>