NS_IMETHODIMP CopyOrDeleteCommand::DoCommand(const char* aCommandName, nsISupports* aCommandRefCon) { nsCOMPtr<nsIEditor> editor = do_QueryInterface(aCommandRefCon); if (!editor) { return NS_ERROR_FAILURE; } TextEditor* textEditor = editor->AsTextEditor(); MOZ_ASSERT(textEditor); dom::Selection* selection = textEditor->GetSelection(); if (selection && selection->IsCollapsed()) { nsresult rv = textEditor->DeleteSelectionAsAction(nsIEditor::eNextWord, nsIEditor::eStrip); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } return NS_OK; } return textEditor->Copy(); }