void InsertIntoTextNodeCommand::doApply()
{
    if (!m_node->rendererIsEditable())
        return;

    if (document()->settings() && document()->settings()->passwordEchoEnabled()) {
        RenderText* renderText = toRenderText(m_node->renderer());
        if (renderText && renderText->isSecure())
            renderText->momentarilyRevealLastTypedCharacter(m_offset + m_text.length() - 1);
    }

    ExceptionCode ec;
    m_node->insertData(m_offset, m_text, ec);

    if (AXObjectCache::accessibilityEnabled())
        document()->axObjectCache()->nodeTextChangeNotification(m_node->renderer(), AXObjectCache::AXTextInserted, m_offset, m_text.length());
}
void InsertIntoTextNodeCommand::doApply()
{
    bool passwordEchoEnabled = document().settings() && document().settings()->passwordEchoEnabled();
    if (passwordEchoEnabled)
        document().updateLayoutIgnorePendingStylesheets();

    if (!m_node->rendererIsEditable())
        return;

    if (passwordEchoEnabled) {
        RenderText* renderText = toRenderText(m_node->renderer());
        if (renderText && renderText->isSecure())
            renderText->momentarilyRevealLastTypedCharacter(m_offset + m_text.length() - 1);
    }

    m_node->insertData(m_offset, m_text, IGNORE_EXCEPTION, CharacterData::DeprecatedRecalcStyleImmediatlelyForEditing);
}
void InsertIntoTextNodeCommand::doApply()
{
    // FIXME: EditCommand should always have a Frame, so going through Document for Settings shouldn't be necessary.
    bool passwordEchoEnabled = document().settings() && document().settings()->passwordEchoEnabled();
    if (passwordEchoEnabled)
        document().updateLayoutIgnorePendingStylesheets();

    if (!m_node->hasEditableStyle())
        return;

    if (passwordEchoEnabled) {
        RenderText* renderText = m_node->renderer();
        if (renderText && renderText->isSecure())
            renderText->momentarilyRevealLastTypedCharacter(m_offset + m_text.length() - 1);
    }

    m_node->insertData(m_offset, m_text, IGNORE_EXCEPTION);

    if (AXObjectCache* cache = document().existingAXObjectCache())
        cache->nodeTextChangeNotification(m_node.get(), AXObjectCache::AXTextInserted, m_offset, m_text);
}