master
Fix bug #79701: getElementById does not correctly work with duplicate definitions
Add DOMNode::compareDocumentPosition() (#12146)
Fix various namespace prefix conflict resolution bugs and namespace shift bugs
Fix crashes with entity references and predefined entities
[RFC] Add a way to opt-in ext/dom spec compliance (#13031)
Fix manually calling __construct() on DOM classes
Merge branch 'PHP-8.4' into PHP-8.5
Migrate skip checks to --EXTENSIONS--, p2
Fix GH-9628: Implicitly removing nodes from \DOMDocument breaks existing references
Fix DOMCharacterData::replaceWith() with itself
Align DOMChildNode parent checks with spec
Fix crash in adoptNode with attribute references
Deprecate Soft-deprecated DOMDocument and DOMEntity properties (#15369)
Fix spec compliance error for DOMDocument::getElementsByTagNameNS
Implement iteration cache, item cache and length cache for node list iteration (#11330)
Declare dynamic properties in ext/dom
Fix cloning attribute with namespace disappearing namespace
Fix json_encode result on DOMDocument
Use "must not" instead of "cannot" wording
Remove assert.bail INI setting usage in DOMDocument tests
Backport 4fe8213: Backport libxml2 2.13.2 fixes (#14816)
Merge branch 'PHP-8.2' into PHP-8.3
Backport 061058a: Test fixes for libxml2 2.12.0
Some more DOM testing and code style updates (#12933)
working on test coverage for ext/dom, here's 17 more tests
ext/[cd]*: fix a bunch of typos (#16298)
Update DOM test to work around libxml2 bug
Implement DOMElement::className
Implement DOMElement::getAttributeNames()
Implement DOMElement::id
Implement DOMElement::insertAdjacent{Element,Text} (#11700)
Fix DOMElement->prefix with empty string creates bogus prefix
Implement DOMParentNode::replaceChildren()
Fix DOM tests for upcoming libxml2 serializer changes
Fix crash when toggleAttribute() is used without a document
Add edge-case testcase for offset in DOMNamedNodeMap
Fix reference access in dimensions for DOMNodeList and DOMNodeMap
Fix missing deref in C14N (#14203)
Implement DOMNode::isConnected and DOMNameSpaceNode::isConnected
Implement DOMNode::parentElement and DOMNameSpaceNode::parentElement
Implement DOMNode::contains()
Implement DOMNode::getRootNode()
Close PHP tags in tests
Fix empty argument cases for DOMParentNode methods
Add tests for DOMProcessingInstruction class
[RFC] Improve callbacks in ext/dom and ext/xsl (#12627)
Fix memory leak when edge case is hit when registering xpath callback
Mark DOMXPath as uncloneable
Fix tests for libxml2 2.13.2
Cover more paths in dom_xpath_ext_function_php() with tests
DOMXPath::quote(string $str): string (#13456)
Replace `@deprecated` with `#[\Deprecated]` for internal constants (#18780)
Fix crash in ParentNode::append() when dealing with a fragment containing text nodes
Add schema default/fixed value support
Fix permissions
xinclude test
streams test
Adds files: error 1 to 5 and variation 1 to 4
Embeds the content of the DTD in the DOCTYPE declaration of the XML files.
Merge branch 'PHP-8.0'
ext/dom: Remove bool type coercions in tests
Restore old namespace reconciliation behaviour
Fix #47531: No way of removing redundant xmlns: declarations
Declare typed properties in ext/dom
Prefer EXPECT over EXPECTF
Sync leading and final newlines in source code files
Fix bug #67440: append_node of a DOMDocumentFragment does not reconcile namespaces
Fix tests for libxml2 2.14
Fix bug #77686: Removed elements are still returned by getElementById
Merge branch 'PHP-8.0' into PHP-8.1
Use EXTENSIONS instead of SKIPIF sections in *.phpt
Fix #80332: Completely broken array access functionality with DOMNamedNodeMap
Add missing EXTENSIONS section to DOM tests
Fix GH-13988: Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0
Fix #80927: Removing documentElement after creating attribute node: possible use-after-free
Fix bug #81642: DOMChildNode::replaceWith() bug when replacing a node with itself
Fix lifetime issue with getAttributeNodeNS()
Add a test for previously-uncovered error condition in C14N (#14283)
Add additional test for special cases for C14N
Fix crash when calling childNodes next() when iterator is exhausted
Make cloning DOM node lists, maps, and collections fail
add tests
Updates for libxml2 >= 2.13.0
Update ext/dom names after policy change (#14171)
[RFC] Implement new DOM Living Standard APIs in ext/dom
Make XMLDocument::xinclude() return values and error conditions sane
Add negative test for isElementContentWhitespace()
Rename *.php files in ext/dom tests to *.inc
Trim trailing whitespace in source code files
Suppress deprecation notices when ext/dom properties are accessed by the get_debug_info handler (#15530)
PHPTests for the DOMDocument::loadHTMLfile method. They cover - The basic behaviour - When the method receives as argument a file which doesn't exist - When the argument is an empty string - When an empty file is loaded - When a not-well formed html file is loaded
Fix crashes when entity declaration is removed while still having entity references
Handle fragments consisting out of multiple children without a single root correctly
Fix broken cache invalidation with deallocated and reallocated document node
Fix GH-11347: Memory leak when calling a static method inside an xpath query
Fix GH-11500: Namespace reuse in createElementNS() generates wrong output
Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version
Add regression test for GH-11682
Fix GH-11791: Wrong default value of DOMDocument::xmlStandalone
Fix segfault when DOMParentNode::prepend() is called when the child disappears
Fix memory leak when setting an invalid DOMDocument encoding
[ci skip] Add test for GH-12455
Fix GH-12616: DOM: Removing XMLNS namespace node results in invalid default: prefix
Fix GH-12870: Creating an xmlns attribute results in a DOMException
Fix GH-13012: DOMNode::isEqualNode() is incorrect when attribute order is different
Make (DOM)XPath::quote only accept strings without NULL bytes (#13960)
Fix GH-14343: Memory leak in xml and dom (#14347)
Fix GH-14652: segfault on node without document. (#14653)
[ci skip] Add missing simplexml entry to dom test
Merge branch 'PHP-8.3'
Fix GH-15137: Unexpected null pointer in Zend/zend_smart_str.h (#15138)
Add support for ParentNode::$children (#18908)
Fix GH-15551: Segmentation fault (access null pointer) in ext/dom/xml_common.h
Fix GH-15570: Segmentation fault (access null pointer) in ext/dom/html5_serializer.c
Fix GH-15654: Signed integer overflow in ext/dom/nodelist.c
Fix GH-15670: Polymorphic cache slot issue in DOM (#15676)
Fix GH-15910: Assertion failure in ext/dom/element.c
Fix GH-16039: Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c
Fix GH-16149: Null pointer dereference in DOMElement->getAttributeNames()
Fix bugs GH-16150 and GH-16152: intern document mismanagement
Fix GH-16151: Assertion failure in ext/dom/parentnode/tree.c
Fix GH-16190: Using reflection to call Dom\Node::__construct causes assertion failure
Fix GH-16316: DOMXPath breaks when not initialized properly
Partially fix GH-16317: DOM classes do not allow __debugInfo() overrides to work
Fix various document ref pointer mismanagements
Fix GH-16465: Heap buffer overflow in DOMNode->getElementByTagName
Fix GH-16473: dom_import_simplexml stub is wrong
Fix GH-16533: Segfault when adding attribute to parent that is not an element
Fix test GH-16535 for libxml2 2.14
Fix GH-16593: Assertion failure in DOM->replaceChild
Fix GH-16594: Assertion failure in DOM -> before
Merge branch 'PHP-8.3' into PHP-8.4
Fix GH-16777: Calling the constructor again on a DOM object after it is in a document causes UAF
Fix GH-16906: Reloading document can cause UAF in iterator
Fix GH-17145: DOM memory leak
Fix GH-17201: Dom\TokenList issues with interned string replace
Fix GH-17223: Memory leak in libxml encoding handling
Fix DOM test on higher branches
Fix GH-17397: Assertion failure ext/dom/php_dom.c
Fix GH-17500: Segfault with requesting nodeName on nameless doctype
Fix GH-17991: Assertion failure dom_attr_value_write
Fix GH-18304: Changing the properties of a DateInterval through dynamic properties triggers a SegFault
Fix GH-19612: Mitigate libxml2 tree dictionary bug
Revert deprecation of __sleep and __wakeup (#19966)
Fix GHSA-p3x9-6h7p-cgfc: libxml streams wrong `content-type` on redirect
Fix GH-8996: DOMNode serialization on PHP ^8.1
Fix bug 61868 ext\dom\tests\DOMDocument_validate_on_parse_variation.phpt fails
Resolve TODOs in ext/dom around nullable content (#14999)
Throw instead of silently failing when creating a too long text node
Fix validation logic of php:function() callbacks in dom and xsl
Fix #79700: Bad performance with namespaced nodes due to wrong libxml assumption
Add first-class callable cache
Fix trampoline leak in xpath callables
[ci skip] Fix typo in test file name
Add missing hierarchy checks to replaceChild
Fix viable next sibling search for replaceWith
Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS()
added html test
Fix UAF when removing doctype and using foreach iteration
Fix weird unpack behaviour in DOM
Fix unsetting DOM properties
Add LIBXML_NO_XXE constant (#14844)
Add XPath test with a context node
Fix #70359 and #78577: segfaults with DOMNameSpaceNode
Add XPath tests for basic types