I am trying to set values on an angular page through a chrome extension I create so I can easily complete some repetitive angular forms I have to fill it up many times a day. (Change the angular page's code is not an option, the new values have to be injected or "typed" somehow)
On my tests, I can see the values been updated on the DOM and displaying on the page, however when I press the submit button the bound angular variables have no values.
Bellow is the code inject on the DOM by the extension, It has a little added complexity as it has everything I tried many different things such as to simulate typing using a timer, setting focus, selecting the field using select, etc.
// listen for checkForWord request, call getTags which includes callback to sendResponse
chrome.runtime.onMessage.addListener(
    function (request, sender, sendResponse) {
        if (request.action === "checkForWord") {
            TypeIntoInput("inputFieldPasswordRegister", "Password123!")
            TypeIntoInput("inputFieldConfirm", "Password123!")
            var inputs = document.getElementsByTagName('input');
            for(var i=0; i<inputs.length; i++){
                if(inputs[i].getAttribute('type')=='button'){
                    inputs[i].disabled = false
                }
}
            return true;
        }
    }
);
function TypeIntoInput(inputBox, valueText) {
    var input = document.getElementById(inputBox);
    input.select();
    input.focus();
    input.value="";
    var text = valueText;
    var l=text.length;
    var current = 0;
    var time = 100;
    var write_text = function() {
    input.value+=text[current];
        if(current < l-1) {
            current++;
            setTimeout(function(){write_text()},time);
        } else {
            input.setAttribute('value',input.value);
            var e = document.createEvent('KeyboardEvent');
            e.initKeyEvent('ENTER', true, true, window, false, false, false, false, 13, 0);
            // Dispatch event into document
            document.body.dispatchEvent(e);
        }
    }
    setTimeout(function(){write_text()},time);
}
