Protect what matters – even after you're gone. Make a plan for your digital legacy today.
Forum Discussion
Anonymous
4 years agoFailed to fillFrame: Frame is missing uuid.
Hi there! We are developing websites locally (specifically developing the https://woocommerce.com/products/woocommerce-gutenberg-products-block/ plugin for WooCommerce. We have noticed a bug when usi...
ag_jarek
1Password Team
4 years agoThanks for the link to the demo site @opr! That was very helpful :)
I took a look at that and as far as I can tell the autofill operation is completing successfully on our end; I didn't notice any errors coming from our scripts or other abnormal behaviors. I was able to reproduce the site not believing the inputs had been filled after we autofilled them, though.
I discovered something interesting; if I autofilled the fields, left the checkout page and returned to my cart, and then clicked "Checkout" again, the fields would be pre-filled with what I had autofilled prior to leaving the checkout page.
If I autofilled new data into the fields at that point and clicked "Place Order", everything worked great and the site didn't complain about the fields not being filled out. Given this discovery, it looks like we need to work out how to get the site to recognize 1Password has autofilled data so that it knows the fields do indeed have data in them.
Here are the steps our fill script takes in order to autofill each individual field:
- Click the field
- Focus the field
- Dispatch three events for the field: KeyDown, KeyPress, KeyUp
- Set the value of the field to the data being filled (
element.value = value;) - Dispatch five events for the field: KeyDown, KeyPress, KeyUp, Input, Change
- Set a background color on the field to denote that it was filled
- Blur the field
The best way for the site to recognize that 1Password has filled data would likely be to notice that the field has a non-empty value. Otherwise, the above events that we trigger on each field in the process of performing our fill should provide some useful places to know to run input validation.
Let me know if that helps out! I'd be happy to answer any further questions as they arise.