Sorry for not having answered earlier but I got not time to work on my extension.
Thanks a lot for your answer! I somehow overlooked this `reason` parameter and missed the 'chorme_update' part.
I tested the fix today and it seems to work as intended now.
> BTW you can even remove the background script and just specify the defaults via the "destructuring assignment" directly instead.
I guess in my use-case, since the storage data are objects with sub-fields, I wanted to make sure that updating the extension would properly reset the current settings as I did not want to write complex code that could deal with data from another version. I guess I could write code that ignores invalid data but that would require more care than the current solution that reset setting on extension update or installation (I rarely make any update so that is good enough for now I guess).
I may change my mind later but for now the simple fix of ignoring 'chrome_update' and 'shared_module_update' will do.
Thanks again for you help and having had a look at my code!