Extensión de Chrome para reemplazar el texto, en páginas web y publicaciones de Facebook, antes de que se muestre el texto

Estoy trabajando en una extensión de Chrome que reemplaza cadenas específicas o RegEx en el texto de una página web.

Funciona bien en general, pero con dos problemas que me gustaría resolver:

(1) El texto original de la página web sin cambios se muestra antes de que se produzca la sustitución del texto.

(2) El reemplazo de texto no afecta a las publicaciones de Facebook que se cargan dinámicamente después de desplazarse a la parte inferior de la página.

Aquí está el código, adaptado dehttps://stackoverflow.com/a/6012345#6012345 Con pequeños cambios.

// manifest.json

{
    "manifest_version": 2,
    "name": "Replace Text",
    "version": "1.0", 

    "content_scripts": [ {
        "js": [ "jquery.min.js", "replace.js" ],
        "matches": [ "<all_urls>" ],
        "run_at": "document_end"
    } ]
}


// replace.js

jQuery.fn.textWalk = function( fn ) {
    this.contents().each( jwalk );

    function jwalk() {
        var nn = this.nodeName.toLowerCase();
        if( nn === '#text') {
            fn.call( this );
        } else if( this.nodeType === 1 && this.childNodes && this.childNodes[0] && nn !== 'script' && nn !== 'textarea' ) {
            $(this).contents().each( jwalk );
        }
    }
    return this;
};

$('body').textWalk(function() {
    this.data = this.data.replace('This Text', 'That Text');
    this.data = this.data.replace(/[Rr]eplace\s[Ss]ome\s[Tt]ext/g, 'with other text');  
});

Encontré algunas respuestas parciales en línea, pero no pude hacer que funcionen bien.

Por ejemplo, una solución propuesta fue cambiar"run_at": "document_end" a"run_at": "document_start". Esto ejecuta los scripts de contenido antes de que se construya el DOM, por lo que en teoría debería hacer el reemplazo del texto antes de que se muestre algo. Pero en mi caso causó que la extensión dejara de reemplazar el texto por completo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta