I assume the zip-file wasn't signed by mozilla?
And the question is basically if unsigned extensions can use the Storage API.
Interesting question ... i actually never tried that, i just assumed since the Storage isn't encrypted and account bound, that unsigned extensions should be able to use it.
about:sync-log might be of interest here.
post
I don't know if the syncing part will work for unsigned extensions, but you need to use the same storage area on both endpoints. So if you set kitten key to sync area (browser.storage.sync) - then you need to also read it from the sync area, but in your example you are reading from local area which is for local not-to-be-synced data only.
all 2 comments