Add origin of caller to arguments for native messaging host

RESOLVED FIXED in Firefox 55

Status

defect
P3
normal
RESOLVED FIXED
3 years ago
11 months ago

People

(Reporter: robwu, Assigned: robwu)

Tracking

({dev-doc-complete})

unspecified
mozilla55
Dependency tree / graph

Firefox Tracking Flags

(firefox55 fixed)

Details

(Whiteboard: triaged, [awe:onepassword4@agilebits.com])

Attachments

(1 attachment)

Assignee

Description

3 years ago
Chrome has always started native messaging hosts with the origin parameter (and now it is also documented - https://crbug.com/1271663). 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)
Assignee

Comment 2

3 years ago
Oops sorry. This is the right one: https://crbug.com/651496
Flags: needinfo?(rob)

Updated

3 years ago
Priority: -- → P3
Whiteboard: triaged

Updated

2 years ago
webextensions: --- → ?

Updated

2 years ago
webextensions: ? → ---
Assignee

Comment 3

2 years ago
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 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/applications )
Flags: needinfo?(amckay)
See Also: → 1257989

Updated

2 years ago
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)

Comment 5

2 years ago
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 hidden (mozreview-request)

Comment 7

2 years ago
mozreview-review
Comment on attachment 8873516 [details]
Bug 1307852 - Pass ID of calling add-on to native messaging app

https://reviewboard.mozilla.org/r/144902/#review148872
Attachment #8873516 - Flags: review?(aswan) → review+
Keywords: dev-doc-needed

Comment 8

2 years ago
Pushed by rob@robwu.nl:
https://hg.mozilla.org/integration/autoland/rev/5ae487045afb
Pass ID of calling add-on to native messaging app r=aswan

Comment 9

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/5ae487045afb
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
I've added a bit on this here: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging#Native_app_arguments

Let me know if this covers it.
Flags: needinfo?(rob)
Assignee

Comment 11

2 years ago
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: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging#Chrome_incompatibilities.

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)

Comment 13

2 years ago
This was the blocker for 1password.  Landed in Firefox 55.  They are on track to migrate for Firefox 57.
Whiteboard: triaged, 1password → triaged, [awe:onepassword4@agilebits.com]

Updated

11 months ago
Product: Toolkit → WebExtensions
You need to log in before you can comment on or make changes to this bug.