| <!DOCTYPE html> | |
| <script src="../../resources/js-test.js"></script> | |
| <body> | |
| <script> | |
| description("Tests that the document element has effectiveLangKnownToMatchDocumentElement flag set to true"); | |
| var frame, iframeDocElement, newDocElement, body; | |
| if (window.internals) { | |
| shouldBeTrue('internals.effectiveLangKnownToMatchDocumentElement(document.documentElement)'); | |
| frame = document.createElement("iframe"); | |
| frame.srcdoc = "<!DOCTYPE html><html lang=en><body>"; | |
| document.body.append(frame); | |
| frame.onload = function() { | |
| iframeDocElement = frame.contentDocument.documentElement; | |
| shouldBeTrue('internals.effectiveLangKnownToMatchDocumentElement(iframeDocElement)'); | |
| iframeDocElement.remove(); | |
| shouldBeFalse('internals.effectiveLangKnownToMatchDocumentElement(iframeDocElement)'); | |
| body = iframeDocElement.querySelector("body"); | |
| shouldBeTrue('internals.effectiveLangKnownToMatchDocumentElement(body)'); | |
| newDocElement = frame.contentDocument.createElement("html"); | |
| newDocElement.lang = "de"; | |
| frame.contentDocument.append(newDocElement); | |
| shouldBeTrue('internals.effectiveLangKnownToMatchDocumentElement(newDocElement)'); | |
| frame.remove(); | |
| finishJSTest(); | |
| }; | |
| var jsTestIsAsync = true; | |
| } else | |
| testFailed("This test requires window.internals"); | |
| </script> | |
| </body> |