Closed Bug 1307852 Opened 5 years ago Closed 5 years ago

Add origin of caller to arguments for native messaging host


(WebExtensions :: Compatibility, defect, P3)



(firefox55 fixed)

Tracking Status
firefox55 --- fixed


(Reporter: robwu, Assigned: robwu)



(Keywords: dev-doc-complete, Whiteboard: triaged, [])


(1 file)

Chrome has always started native messaging hosts with the origin parameter (and now it is also documented - Firefox should also add the parameter.

In Chrome, the parameter looks like: chrome-extension://[extension id = 32 characters a-p]/

In Firefox, the extension ID must be deterministic, and then it should be:
moz-extension://[extension id]/.

When origins are deterministic, then there should be no objection to also support allowed_origins in the native messaging manifest.
Rob, that Chrome link doesn't appear to be valid?
Flags: needinfo?(rob)
Oops sorry. This is the right one:
Flags: needinfo?(rob)
Priority: -- → P3
Whiteboard: triaged
webextensions: --- → ?
webextensions: ? → ---
Since WebExtensions have no deterministic (origin) URL (e.g. bug 1257989), another parameter should be used.

E.g. --sender-extension-id=[extension id here]

Andy, does this approach sound OK?

(extension ID per )
Flags: needinfo?(amckay)
See Also: → 1257989
Flags: needinfo?(amckay) → needinfo?(aswan)
Seems fine to me.  I would skip the whole --sender-extension-id= bit and just pass the id in a fixed position in the arguments array.
Flags: needinfo?(aswan)
Rob offered to take this bug.  Since it looked relatively minor and 1password needed to finish their WE we are good to add this.
Assignee: nobody → rob
Whiteboard: triaged → triaged, 1password
Comment on attachment 8873516 [details]
Bug 1307852 - Pass ID of calling add-on to native messaging app
Attachment #8873516 - Flags: review?(aswan) → review+
Keywords: dev-doc-needed
Pushed by
Pass ID of calling add-on to native messaging app r=aswan
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
I've added a bit on this here:

Let me know if this covers it.
Flags: needinfo?(rob)
Some WebExtensions articles on MDN have compatibility notes that highlight the differences between implementations in browsers.

The native messaging docs do not, even though there are differences with Chrome's implementation:
- Command line argument (see link in this initial report).
- Native messaging host locations (the structure is very similar, but the exact names of paths/registry keys differ).
- Chrome uses allowed_origins, whereas Firefox uses allowed_extensions

Is the omission of these differences intentional? I think that such information can be valuable for developers who wish to distribute a cross-browser native messaging host.
Flags: needinfo?(rob) → needinfo?(wbamberg)
It's tricky to use compat data for this, because that get attached to API reference docs, and this is more of a conceptual type of article.

Maybe the best thing for now would be to add a section into the "Chrome incompatibilities" page, and include it in this page. So that's what I've done:

I'd like to revise the "Chrome incompatibilities" page, and the way it's used in these docs. But that will have to wait for a bit.
Flags: needinfo?(wbamberg)
This was the blocker for 1password.  Landed in Firefox 55.  They are on track to migrate for Firefox 57.
Whiteboard: triaged, 1password → triaged, []
Product: Toolkit → WebExtensions
You need to log in before you can comment on or make changes to this bug.