already_AddRefed<nsIEditor> HTMLBodyElement::GetAssociatedEditor() { nsCOMPtr<nsIEditor> editor = GetEditorInternal(); if (editor) { return editor.forget(); } // Make sure this is the actual body of the document if (!IsCurrentBodyElement()) { return nullptr; } // For designmode, try to get document's editor nsPresContext* presContext = GetPresContext(eForComposedDoc); if (!presContext) { return nullptr; } nsCOMPtr<nsIDocShell> docShell = presContext->GetDocShell(); if (!docShell) { return nullptr; } docShell->GetEditor(getter_AddRefs(editor)); return editor.forget(); }
already_AddRefed<nsIEditor> HTMLBodyElement::GetAssociatedEditor() { nsCOMPtr<nsIEditor> editor = GetEditorInternal(); if (editor) { return editor.forget(); } // Make sure this is the actual body of the document if (!IsCurrentBodyElement()) { return nullptr; } // For designmode, try to get document's editor nsPresContext* presContext = GetPresContext(); if (!presContext) { return nullptr; } nsCOMPtr<nsISupports> container = presContext->GetContainer(); nsCOMPtr<nsIEditorDocShell> editorDocShell = do_QueryInterface(container); if (!editorDocShell) { return nullptr; } editorDocShell->GetEditor(getter_AddRefs(editor)); return editor.forget(); }