Browser Extension CG teleconf — 16 Feb 2017


See also: IRC log


Mike Pietraszak (mikepie), Kris Maglione (John-Gal2), Florian Rivoal (Florian), Scott Low (scottlow)


Status update and issue resolution on

mikepie: I haven't had a chance to go through the IDs questions yet.
... But other than what we have on the call today, that's the only thing left, so we'll look into it.
... on issue 15, we're past the 10 days after resolution, so we can close
... Next issue: we had already specified that the object returned by webdriver's getBrowserExtension method had an id, and I also specified that it should have the name.

kmag: This needs to be localized
... Not sure which locale to use though.

Florian: This is a setting that is often wrong.

kmag: If we want to match the browser's UI locale, we need to expose that.

Florian: In some cases you may want to match the site rather than the UI.

scottlow: Since the ID is an unpredictable number, you need a name to be able to know which extension your talking to.

Florian: If that's what its for, it doesn't need localization, it needs predictability.

mike: So we can use the default locale.

RESOLUTION: Add the name property, and define it to be the default locale

mikepie: Issue 46: This is about interacting with permission prompts.
... I made 3 additions:
... the API lets you get the localized text of the permission prompt, and based on it accept it or dismiss it.

kmag: I'm worried about text matching.

Florian: What options do we have?

kmag: We have a permission name string, and return that in JSON.
... These names are already standard.

<mikepie> (3) requestingUrl

mikepie: I'll replace that string with a JSON object, including "requestingUrl"...
... Also "permissions".

Florian: Why plural?

kmag: I think there can be multiple permissions in one dialog

mikepie: Yes, at install time, an extension can ask for multiple permission

scottlow: are these optional permissions?

kmag: In our case, geolocation is a bit special, but otherwise yes.

scottlow: Are these about security permissions as well?

kmag: No.

Florian: We will deal with run-time permissions with this as well?
... What if there's multiple ones queued up

kmag: You would have to accept or dismiss them in the order they are being displayed at. You cannot get the list of all queued permissions at once.

Florian: Don't we run the risk that this will make authors depend on browser specific ordering of the permission prompts?

kmag: We do, but that's the sanest thing we can do anyway.
... This can only happen if requesting multiple permissions at the same time.

Florian: Yeah, this isn't great, as we may get authors to depend on the ordering even though they shouldn't, but I cannot think of a better alternative.

mikepie: I'll add a note to call it out.
... and the third property is the prompt text

RESOLUTION: add requestingURL, permissions and promptText
... the name of the method is getBrowserPermission (without Text)

kmag: We should also return a list of possible actions, such as "accept for session" in addition to just "accept" and "dismiss".

mikepie: Yes, I can add that. I like it.

RESOLUTION: add "actions", which must include "accept" and "dismiss", and possibly other actions as available

Florian: We need to come of with names for these.

mikepie: This is also something you'd want to handled declaratively.

kmag: That worries me
... I think the default one should not be "dismiss" temporarily, it should be "deny"

mike: This should be for the session, right?

mikepie: With webdriver, the install are just for the session anyway.

<mikepie> mandatory: accept; deny (for session? permanent?)

mikepie: Session and permanent is the same, since the extension is only installed for the session.

Florian: Right, but deny and dismiss are different

kmag: Correct, and we should go with deny rather than dismiss as the mandatory one

RESOLUTION: replace dismiss with deny

Florian: Do we need to come up with names?

mikepie: Since there's no difference between permanent and for this session only, allow, deny and dismiss are all we need.

Florian: So we only have 2 possible cases at install time, and 3 at run time

kmag: At install time, the only choise is really install extension or not.

mikepie: I'll add a section to explain what kind of thing can appear there.

Florian: If there can be other names, do we need to standardize?

all: Yes, but not now.

Florian: mikepie, you can merge the PR once the changes are in.

Next meeting

mikepie: How about the Ides of March.

all: Agreed.

Summary of Resolutions

  1. Add the name property, and define it to be the default locale
  2. add requestingURL, permissions and promptText
  3. add "actions", which must include "accept" and "dismiss", and and possibly other actions as available
  4. replace dismiss with deny