diff --git a/Libraries/LibWeb/DOM/Node.cpp b/Libraries/LibWeb/DOM/Node.cpp index eb5817c30d2..741fbe3f4aa 100644 --- a/Libraries/LibWeb/DOM/Node.cpp +++ b/Libraries/LibWeb/DOM/Node.cpp @@ -982,8 +982,13 @@ WebIDL::ExceptionOr> Node::replace_child(GC::Ref node, GC::R else nodes.append(GC::make_root(*node)); - // 13. Insert node into parent before referenceChild with the suppress observers flag set. - insert_before(node, reference_child, true); + // AD-HOC: Since removing the child may have executed arbitrary code, we have to verify + // the sanity of inserting `node` before `reference_child` again, as well as + // `child` not being reinserted elsewhere. + if (!reference_child || (reference_child->parent() == this && !child->parent_node())) { + // 13. Insert node into parent before referenceChild with the suppress observers flag set. + insert_before(node, reference_child, true); + } // 14. Queue a tree mutation record for parent with nodes, removedNodes, previousSibling, and referenceChild. queue_tree_mutation_record(move(nodes), move(removed_nodes), previous_sibling.ptr(), reference_child.ptr()); diff --git a/Tests/LibWeb/TestConfig.ini b/Tests/LibWeb/TestConfig.ini index 567b6643097..4ece5e6bb45 100644 --- a/Tests/LibWeb/TestConfig.ini +++ b/Tests/LibWeb/TestConfig.ini @@ -34,15 +34,12 @@ Text/input/wpt-import/html/rendering/pixel-length-attributes.html ; Skipped due to assertion failures Text/input/wpt-import/html/syntax/parsing/html5lib_entities01.html -Text/input/wpt-import/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.html Text/input/wpt-import/html/syntax/parsing/html5lib_plain-text-unsafe.html Text/input/wpt-import/html/syntax/parsing/html5lib_template.html Text/input/wpt-import/html/syntax/parsing/html5lib_tests1.html -Text/input/wpt-import/html/syntax/parsing/html5lib_tests10.html Text/input/wpt-import/html/syntax/parsing/html5lib_tests15.html Text/input/wpt-import/html/syntax/parsing/html5lib_tests16.html Text/input/wpt-import/html/syntax/parsing/html5lib_tests19.html -Text/input/wpt-import/html/syntax/parsing/html5lib_tests20.html Text/input/wpt-import/html/syntax/parsing/html5lib_tests5.html Text/input/wpt-import/html/syntax/parsing/html5lib_webkit01.html Text/input/wpt-import/html/syntax/parsing/named-character-references.html diff --git a/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.txt b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.txt new file mode 100644 index 00000000000..3bff5b9b2c1 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.txt @@ -0,0 +1,91 @@ +Summary + +Harness status: OK + +Rerun + +Found 81 tests + +81 Pass +Details +Result Test Name MessagePass html5lib_innerHTML_tests_innerHTML_1.html 7a9e287595dd570e0f19b7eec0ac424228908daf +Pass html5lib_innerHTML_tests_innerHTML_1.html 6f766fa07c8697a5379c5542adbba2a42f913004 +Pass html5lib_innerHTML_tests_innerHTML_1.html dbbe75ae41228f9264d56a018e620217ec87fd32 +Pass html5lib_innerHTML_tests_innerHTML_1.html 32e2fea7531c0c910ac73b35665b2f8bca47a049 +Pass html5lib_innerHTML_tests_innerHTML_1.html 7fc9ad33d4bc6af760883f0581cf869f96473f2e +Pass html5lib_innerHTML_tests_innerHTML_1.html 8883d04b33c7e718b0d201a5f0bf5aa6d98754e6 +Pass html5lib_innerHTML_tests_innerHTML_1.html 347f73ada7ab974a081c65385444cca0b6a2d446 +Pass html5lib_innerHTML_tests_innerHTML_1.html 25a03753c27ab46891e2c59665215e4657ca7177 +Pass html5lib_innerHTML_tests_innerHTML_1.html 75e9c86aff595da8999673fce99bc12741552c4e +Pass html5lib_innerHTML_tests_innerHTML_1.html e35e330f7eb5bb27df1fe702843747e104a193be +Pass html5lib_innerHTML_tests_innerHTML_1.html b55e32e22980fe99bab895005a0a757a2fcb1a2b +Pass html5lib_innerHTML_tests_innerHTML_1.html ce6fc19319d2568fec9084d8d4d1cc10f20b8565 +Pass html5lib_innerHTML_tests_innerHTML_1.html b600f8c7df58e42342feff051778923dbf7616af +Pass html5lib_innerHTML_tests_innerHTML_1.html 6056619333f1a780052612e1dda18112147f67fa +Pass html5lib_innerHTML_tests_innerHTML_1.html d9300c4d8d36e950490bbe5800c1a3ba4e744e2a +Pass html5lib_innerHTML_tests_innerHTML_1.html 411ebe3bea1d0508263ec17618492feaa9ca99d7 +Pass html5lib_innerHTML_tests_innerHTML_1.html 6c7c85721f823ab889bcb9e035341a1fb6d6eeee +Pass html5lib_innerHTML_tests_innerHTML_1.html 973d06969d7968d200d5639ce06f7209655b1e26 +Pass html5lib_innerHTML_tests_innerHTML_1.html dfb6ec1e412a6634b497151f222f4272721ae57e +Pass html5lib_innerHTML_tests_innerHTML_1.html 4916096ab7dbdd051dc96de7952ec60674d617a3 +Pass html5lib_innerHTML_tests_innerHTML_1.html 58277507de4ce0df9b4eb03262e4cb04d2fcc7af +Pass html5lib_innerHTML_tests_innerHTML_1.html 8e5727f170507ba6b86c1c3bdb3a5201d3480b33 +Pass html5lib_innerHTML_tests_innerHTML_1.html 61eb343f71030688ab1a26bb980b9e4409993e3d +Pass html5lib_innerHTML_tests_innerHTML_1.html 3548939a56a148b59781c5f930036c1528db1545 +Pass html5lib_innerHTML_tests_innerHTML_1.html 0b88a12102fba0634b44ac9f157544faeca68df6 +Pass html5lib_innerHTML_tests_innerHTML_1.html c300553f45f4ad6e5e1da9d884fafb95f36ab05a +Pass html5lib_innerHTML_tests_innerHTML_1.html 00a7ed4082183eba76af197418305b2d196ec7e6 +Pass html5lib_innerHTML_tests_innerHTML_1.html 5dfd84382f85ff8343a62d6bb5028996111e5017 +Pass html5lib_innerHTML_tests_innerHTML_1.html 9b1a1cd33bb3f26ec3f969f3158edf5c2db47052 +Pass html5lib_innerHTML_tests_innerHTML_1.html 8ab89f758b96bf994a21d8283d27e8ae9804b924 +Pass html5lib_innerHTML_tests_innerHTML_1.html 25add8314f59cdc264d7779f36ae4dffd1f9ad29 +Pass html5lib_innerHTML_tests_innerHTML_1.html 7104e981f6018b18766fd95109bfbffeb878cc56 +Pass html5lib_innerHTML_tests_innerHTML_1.html 28fbaa710ce3f440a56fdf909c4b8bc223a1b965 +Pass html5lib_innerHTML_tests_innerHTML_1.html 3380b0143f3d1e2edb216d388acd72702e141165 +Pass html5lib_innerHTML_tests_innerHTML_1.html a630fb272be6de118b728a28d6ce71b296a75694 +Pass html5lib_innerHTML_tests_innerHTML_1.html 5adf8b7bd3d63a77ea1dbe6deb6741c5b92de6cd +Pass html5lib_innerHTML_tests_innerHTML_1.html 4e0312ac349a70d07f2bb1ae154740e46e8c9a6e +Pass html5lib_innerHTML_tests_innerHTML_1.html 987061379d2542e88d8a72ce6f0169a211d3ac41 +Pass html5lib_innerHTML_tests_innerHTML_1.html e0798aa003863ba2be750d3e6c2e6766fea11279 +Pass html5lib_innerHTML_tests_innerHTML_1.html 586ed8e0d1395198f43ee68843d654a49169f379 +Pass html5lib_innerHTML_tests_innerHTML_1.html 8896feedef576c1ed768a4eb67f57c3dc5242fed +Pass html5lib_innerHTML_tests_innerHTML_1.html 89f4f0f289a23d1ebfbf499c2ecd24cd35fc10b4 +Pass html5lib_innerHTML_tests_innerHTML_1.html 2c07361470533b905a7ff9a685439cad2fe35549 +Pass html5lib_innerHTML_tests_innerHTML_1.html a36f27cbe53991c647055c95bfa250a0ab734b0d +Pass html5lib_innerHTML_tests_innerHTML_1.html ac28c352ae8453434e3aefb24e798a9580c1b230 +Pass html5lib_innerHTML_tests_innerHTML_1.html f8770f97671a805b37277db7e42536b40c0804cb +Pass html5lib_innerHTML_tests_innerHTML_1.html 469a071b520d8436e6a0f6da6f9385f5ebd8e2f8 +Pass html5lib_innerHTML_tests_innerHTML_1.html 7cf2db8c65b79da98e39b13772ed0440ff177fd7 +Pass html5lib_innerHTML_tests_innerHTML_1.html 3940fdb54783cb3c42138670a17d28e77e29e900 +Pass html5lib_innerHTML_tests_innerHTML_1.html 3b5ab5fbb3585d7215a5766f1e2377b7929b5cc6 +Pass html5lib_innerHTML_tests_innerHTML_1.html 7c4a40203d5830d36432b0f30a09cebea6e9d2e4 +Pass html5lib_innerHTML_tests_innerHTML_1.html e6d930d4239666fdc6c0722106bd2b115b4d3fd3 +Pass html5lib_innerHTML_tests_innerHTML_1.html c8817b3b55a437bd153e978fc5f49fbe10bb56e2 +Pass html5lib_innerHTML_tests_innerHTML_1.html 2a302c14f1983aaad9fd7abe49336d9561ed82e9 +Pass html5lib_innerHTML_tests_innerHTML_1.html 28cfddd5b5875f7044b0859ba4ce88175fcbf07e +Pass html5lib_innerHTML_tests_innerHTML_1.html 887596c50809eeb809ad24d86c239130a42f5a46 +Pass html5lib_innerHTML_tests_innerHTML_1.html fa3797a2d2baeb8b8b2de81f1e7f33725e6b2aad +Pass html5lib_innerHTML_tests_innerHTML_1.html dc0e2582ff83e60c0eb549dc3387562d3482e364 +Pass html5lib_innerHTML_tests_innerHTML_1.html 4ea02fd705291eb2d14274ebeaa0117ba2b9b306 +Pass html5lib_innerHTML_tests_innerHTML_1.html 52cc77eac9488a8bb1a2c8c695f16f8919c52044 +Pass html5lib_innerHTML_tests_innerHTML_1.html c53ab7d84ae27de9f0937521c74eec2fd6c1b1ec +Pass html5lib_innerHTML_tests_innerHTML_1.html d8747a49503f3486155d77dd366e0ee8ad9512a6 +Pass html5lib_innerHTML_tests_innerHTML_1.html 03e71832c254852f206f6f0ae6f4d161a276a699 +Pass html5lib_innerHTML_tests_innerHTML_1.html 92786cfafa890c23f200dccea089ca52233ef395 +Pass html5lib_innerHTML_tests_innerHTML_1.html 11d284c2b1e2f87d28dd06b938518361fe834855 +Pass html5lib_innerHTML_tests_innerHTML_1.html bf6aebcd54d5dead9e6d56c77b41f01ea666d8b1 +Pass html5lib_innerHTML_tests_innerHTML_1.html 4d448a4239cb4c465a21c04997d656e51fdd388f +Pass html5lib_innerHTML_tests_innerHTML_1.html 1e8faedc427045d59305218c1aba2f545c4eb4b7 +Pass html5lib_innerHTML_tests_innerHTML_1.html 6762997c1a93b1ec65722498f3fd00f0d8129369 +Pass html5lib_innerHTML_tests_innerHTML_1.html a162461c18d9b09734f6fe5d362b84edb4eed31f +Pass html5lib_innerHTML_tests_innerHTML_1.html 0befc335ffd6cace344d94a35de96af22b1313a5 +Pass html5lib_innerHTML_tests_innerHTML_1.html a23b70f1f246ba08d13b570319391b4a5c3e9456 +Pass html5lib_innerHTML_tests_innerHTML_1.html 9d5e0c25bfe921df9ea2897c027f42bc88950e69 +Pass html5lib_innerHTML_tests_innerHTML_1.html 9210d577d6deecf5ab3505af86c501c5befa0b50 +Pass html5lib_innerHTML_tests_innerHTML_1.html c34af491c0a339db6ba63fcc478108533347319b +Pass html5lib_innerHTML_tests_innerHTML_1.html 2c4284e6b2bb480daa50bca43bcbe29cfcdeeab4 +Pass html5lib_innerHTML_tests_innerHTML_1.html d75277b65d0118463afeb66b478509d4e27565ab +Pass html5lib_innerHTML_tests_innerHTML_1.html b354df69dbe9b3ef0c42177648e3aace114cf8ea +Pass html5lib_innerHTML_tests_innerHTML_1.html fd3be386292ea1f411cea8e86e29595deb177d28 +Pass html5lib_innerHTML_tests_innerHTML_1.html 1cfb3baf2ad29109ddd5581daa3a009029c71491 +Pass html5lib_innerHTML_tests_innerHTML_1.html 2555d238e04f3d2853cfbc5f6dd366f82cf0e868 \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests10.txt b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests10.txt index 5ad137c761c..3dc8ca6dd82 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests10.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests10.txt @@ -6,8 +6,8 @@ Rerun Found 54 tests -45 Pass -9 Fail +50 Pass +4 Fail Details Result Test Name MessagePass html5lib_tests10.html 33cab27b810c8329105a4447f7767307577cb52f Pass html5lib_tests10.html b833b22c2ce59749e320b26fbc4d277bc015f261 @@ -46,8 +46,8 @@ Pass html5lib_tests10.html 6c10b9811a0d228cf26bc0b55ee12c7d99926270 Fail html5lib_tests10.html ee2de7753d6594fbf05d321b24e2c8bb6f2323c6 Fail html5lib_tests10.html 225170b3f08201a11d43f153fa3c8a041173b55f Pass html5lib_tests10.html 716a01ee7d076876318395625e08e555065fc3b0 -Fail html5lib_tests10.html 3c5cc236386d2d4a16d14e5c65da7edd26697a43 -Fail html5lib_tests10.html 6c3447a16060d2805f8c969ec0a7b5c551468f25 +Pass html5lib_tests10.html 3c5cc236386d2d4a16d14e5c65da7edd26697a43 +Pass html5lib_tests10.html 6c3447a16060d2805f8c969ec0a7b5c551468f25 Pass html5lib_tests10.html 071f13f248eb7af8f7d512cf453b16c8ccc57483 Pass html5lib_tests10.html 0ef97c924e3e5e8ddf8a0bc74530868684685c38 Pass html5lib_tests10.html 25a94dd91d982fa75c89944ad8f066f7961c590b @@ -60,6 +60,6 @@ Pass html5lib_tests10.html d5ab79a14609f3ed214baa8e02bedb54ddcf33ec Pass html5lib_tests10.html 4318bf46f0256426716a911e194f9bdf6185bd7c Pass html5lib_tests10.html aa5c4b093ee603618493cff853af125b5fb0d401 Pass html5lib_tests10.html bfd98674d75ff3291d377f2a7cec3321844a0701 -Fail html5lib_tests10.html 7fc99b729a6d57d28b2ad1edc33bb15167e051bb -Fail html5lib_tests10.html 8e87f0d5ca606ca162384d1bf3bb8de62bd6f398 -Fail html5lib_tests10.html 6476f80f3d2a04e9c1323ffe78686188c579e9ac \ No newline at end of file +Pass html5lib_tests10.html 7fc99b729a6d57d28b2ad1edc33bb15167e051bb +Pass html5lib_tests10.html 8e87f0d5ca606ca162384d1bf3bb8de62bd6f398 +Pass html5lib_tests10.html 6476f80f3d2a04e9c1323ffe78686188c579e9ac \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests20.txt b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests20.txt new file mode 100644 index 00000000000..196febfe937 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/html/syntax/parsing/html5lib_tests20.txt @@ -0,0 +1,74 @@ +Summary + +Harness status: OK + +Rerun + +Found 64 tests + +64 Pass +Details +Result Test Name MessagePass html5lib_tests20.html cbb5f28bedf4361156ef3c9c37e314c6479be137 +Pass html5lib_tests20.html e108a4952601b4664098344189c875934ea2f7ab +Pass html5lib_tests20.html 1ba644a7934a55e4303effe43cae1517ee723e13 +Pass html5lib_tests20.html 8999351d1342a9bcf670dc27eb52aa786d916916 +Pass html5lib_tests20.html 8ecd0d9e2580f78ff920821bd334bd8d04d165e5 +Pass html5lib_tests20.html e6bf9f94617ae9cb7b663b2c9123a37730600e7f +Pass html5lib_tests20.html c5c9728bb5634f47780efefa09f79419db4257c0 +Pass html5lib_tests20.html 5bb84e30031c925aed6eabca8c477d547d522dbb +Pass html5lib_tests20.html f1b6f41fa8856b408c3c398b420cbdc40cda555e +Pass html5lib_tests20.html d5ea955e51df6ee9c7801d28dfcd85402b8fa710 +Pass html5lib_tests20.html 27f2f34d4101ac4877edf0be8c4065e240aef15c +Pass html5lib_tests20.html dcb10e242981a00dc3f6f874ec33318d6f532fff +Pass html5lib_tests20.html 49781179c56e3e0d4891dfff219a0beda3b86d24 +Pass html5lib_tests20.html 86ac23e2828bb147966ee06690f6051345ce312c +Pass html5lib_tests20.html b4eda259a29352b6f8f9cd989e1a0e881793814e +Pass html5lib_tests20.html af0e7b907c6791a73f00b4421fa7fe7df6fe07ee +Pass html5lib_tests20.html 29c71813f1cd5f1ee092548211c8ffaf2d04b4a9 +Pass html5lib_tests20.html 92547b083c29d3ea0ba5304953d254c357bcf11a +Pass html5lib_tests20.html ff10749b8b1aca1fba5d07ba86f49612be43caf9 +Pass html5lib_tests20.html 67bcf2e6d67c89c4d5d9c605faa6e5b03e77693f +Pass html5lib_tests20.html 1e284d72f2de23e31280a0df936043340597d3d0 +Pass html5lib_tests20.html 323a6d9f8d2f74e7e5b88599a87dc5673fb7a0b4 +Pass html5lib_tests20.html 2dd72ef48808b29f998fdd3df6ce7ce18b8753e4 +Pass html5lib_tests20.html c9e061e2d34063857d7332c66ff0d26beb2aced7 +Pass html5lib_tests20.html bae8a941fceb91845187cb545c8e02b03af5570d +Pass html5lib_tests20.html bb36fb89d118b55c66f17b24ffff0ca09ccc939b +Pass html5lib_tests20.html 3fed75e1a7f46a6e2a74a078bfd955e7de05de4f +Pass html5lib_tests20.html 8cb9d8f92ba130618646d6fd1f307ca73f4e4add +Pass html5lib_tests20.html 2b9e6cb75876b4a33b77ae4b1bd3ef5e73c4a40e +Pass html5lib_tests20.html f95c6bf3f935fad9fc354f4cf6e0161d6ebfb08a +Pass html5lib_tests20.html 0b07b135bf8399742cc9e6f3d14b2ea32e3354d3 +Pass html5lib_tests20.html 076d3588e85ce9566d9575d1564e72e8480fadc8 +Pass html5lib_tests20.html dfad8fc515d74c19bad1ab72e7a03d59a11c7778 +Pass html5lib_tests20.html 7ff774f225899091d6d64e5512ada13ce32dd72a +Pass html5lib_tests20.html 2fd8cab5e3cc4635be76e2d430ad6fe6e79b8167 +Pass html5lib_tests20.html c7399a2e531694b47b436bd153823f60bba9071e +Pass html5lib_tests20.html bc4092e0e1aaa4b97464005963345b4b38e1f2a1 +Pass html5lib_tests20.html d85e49fc5be07a699f3930464996d7ddb6a8e8bd +Pass html5lib_tests20.html 09cf43bae3a4d875da56c67a46cf79102b20b456 +Pass html5lib_tests20.html f10ab9901d14c36846c9e6848abce19877f83094 +Pass html5lib_tests20.html aa2a707a627408758a0ee845896ef088d6136013 +Pass html5lib_tests20.html bb0737ce6cdbbcc055771e2400afda545d58778f +Pass html5lib_tests20.html 454bb6d0471536f7b91793ddbc786761b5733902 +Pass html5lib_tests20.html 3c8ff013bf2e80392671760c8d444730b1923c0a +Pass html5lib_tests20.html 9a4f0cd0bdc672beb1c1c821599a11fc8a3d139d +Pass html5lib_tests20.html f5ca3a789b7451da3e6030443aee6fae734fc7a1 +Pass html5lib_tests20.html ca8826661175c3a1ff7c6f1ebbfe646b238deb75 +Pass html5lib_tests20.html 9e30ae7bbd1193deb0d3599c071960d395ca01f7 +Pass html5lib_tests20.html 4417ddedee8e753fd6e911192458168d3b77d1e8 +Pass html5lib_tests20.html 2de333e449ca13c462832e799e13795e2cf6e3e4 +Pass html5lib_tests20.html 23d4d0aee62db4adc7381010d80776270a6db47b +Pass html5lib_tests20.html 5463426618ff46188d19595aa1c7fdd86c6909b3 +Pass html5lib_tests20.html 2649b566bd2bccc59813286d647269ad251e2fdf +Pass html5lib_tests20.html 5df7907b99976e4051d1dd433e2bdbeb4ce200e3 +Pass html5lib_tests20.html a7e70930137ff8338778253ac93dc66f11eef966 +Pass html5lib_tests20.html b92100bddc318e13996fbe96c087c35152cbb4e3 +Pass html5lib_tests20.html f55b68de8cf9ec17e0512a6caae94e0fbf151260 +Pass html5lib_tests20.html 7fb0d4342e3ed3fabee650b83ce66ffb2f66c173 +Pass html5lib_tests20.html 72a6100cd60dd49f780168137ed09e27a8090b34 +Pass html5lib_tests20.html 09ee3f414d08c8a3923e7c72380868617d1a4554 +Pass html5lib_tests20.html 3b854aa3549b6f5cac96176766fccd25c965b5fe +Pass html5lib_tests20.html bbc36dce52efacdede3cf4d94582ace2a3fca9fc +Pass html5lib_tests20.html d4b924764bf49ceb39aa4f63dc81b7c05bbda84d +Pass html5lib_tests20.html 19a6c1a25813323193c67a54904a41e389918f48 \ No newline at end of file