Getting "key" from AMO


(Wolfwar) #1

Hi I’m developing my first FF addon and confused with last step

I need to test storage.sync feature, and for that, when debugging I need to have signed addon (I think!!)

How do I get that manifest “key”?
…and is that enough for testing locally in debugger API-s like storage.sync?

I started process of uploading to AMO, but cancelled in the middle of it.
Not sure, do I get addon ID automatically when I upload it to AMO?
and, can I continue to develop my addon after that without publishing it?
(like, just uploaded to get signed or whatever…)

thanx


(Niklas Gollenstede) #2

The ID (manifest.json:applications.gecko.id) is chosen by the author1 and generally independent from signing2. Using a ID is generally optional, but to use storage.sync (and some other AIPs) you need to set an ID so Firefox knows which extension are the same.

I don’t see any reason why sybcing wouldn’t work with temporary installations in tow synced profiles, as long sa they both have the same ID set. But I have never tested this. I do not think you need to sign your extension at this point.

1: It can be an email address (that does not need to exist), some string (`a-z0-9_-`) prefixed with an `@` or a UUID in its common string format with `{` `}`.
2: When finally signing, the ID must not already be used (by a different developer)

(Martin Giger) #3

See also https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features for in-depth documentation on how to test storage.sync successfully.

And https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID for more info on how the add-on ID impacts development.


(Wolfwar) #4

@NilkasG @freaktechnik
Thanx guys… things are clearer now
I did figure out that I can add arbitrary ID in app -> gecko

Only problem I’m facing now is how to test storage.sync on single machine
eg. running FF Stable and Nightly side by side, and observe how changes in first one will reflect in second
As afar as I understand, I can’t run two instances of the same profile at once (and I need same profile for sync)

EDIT: maybe packing and installing it as XPI, and enabling extensions.webextensions.keepStorageOnUninstall will preserve sync between open-close different versions…
didn’t test it yet


(Martin Giger) #5

You do not, you can log in to the same Firefox Account in many profiles.


(Wolfwar) #6

@freaktechnik
ahh ok
thx again


(Wolfwar) #7

I played this morning with sync, but failed :slight_smile:
Maybe you can advise how to fix it…

I was using two FF browsers on single machine, combination of stable - developer (tried with nightly too, same result)
I do have ID in app- gecko, signed in the same FF acc on both browsers, created different profiles for each browser, sync extensions is enabled in settings…
I’ve tried with XPI package and also trough "load temp addon " from debugging page…same thing

When I observe eventListener for storage in debugger, nothing is dispatched across browsers, only locally

Did I miss some step in this process or…?

thx


(Martin Giger) #8

Sync is not instantaneous, so I assume you waited a bit to give it time or triggered manual syncs?


(Wolfwar) #9

yes I did


need 20 chars :slight_smile:


(Wolfwar) #10

btw. Sync is actually working:
If I remove extension from developer, restart browser and then install it again
on storage change I can see oldValue that was in previous installation

Storag should be removed from local machine if extension is removed, right?
So, data that is in oldvalue is arrived from sync