mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 20:01:50 +00:00
Bug 1753487 - Make nsIContent::GetEditingHost()
not assume that itself is an element if there is no parent element r=peterv
If the instance is not an element and is a child of `Document` or something non-element node, the method calls `this->AsElement()` in non-element instance. It should check whether it's an element node or not when there is no editable parent element. Differential Revision: https://phabricator.services.mozilla.com/D138230
This commit is contained in:
parent
450f97bf22
commit
04af341212
@ -247,13 +247,14 @@ dom::Element* nsIContent::GetEditingHost() {
|
||||
return doc->GetBodyElement();
|
||||
}
|
||||
|
||||
nsIContent* content = this;
|
||||
dom::Element* editableParentElement = nullptr;
|
||||
for (dom::Element* parent = GetParentElement();
|
||||
parent && parent->HasFlag(NODE_IS_EDITABLE);
|
||||
parent = content->GetParentElement()) {
|
||||
content = parent;
|
||||
parent = editableParentElement->GetParentElement()) {
|
||||
editableParentElement = parent;
|
||||
}
|
||||
return content->AsElement();
|
||||
return editableParentElement ? editableParentElement
|
||||
: dom::Element::FromNode(this);
|
||||
}
|
||||
|
||||
nsresult nsIContent::LookupNamespaceURIInternal(
|
||||
|
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<script>
|
||||
onload = () => {
|
||||
document.designMode = 'on';
|
||||
getSelection().selectAllChildren(document.body);
|
||||
getSelection().modify('extend', 'backward', 'character');
|
||||
};
|
||||
</script>
|
||||
<audio controls>
|
Loading…
x
Reference in New Issue
Block a user