LGTM1 On Sat, Oct 16, 2021 at 12:35 AM Domenic Denicola <[email protected]> wrote:
> Just chiming in from the sidelines: in general I think this sort of > exposure via permissions policies is a good thing, and should be encouraged. > > It shouldn't have any additional concerns for an API like this which is > about exposing information: > > - Same-origin iframes can already call > top.navigator.keyboard.getLayoutMap() > - The parent can call navigator.keyboard.getLayoutMap(), serialize the > information, and send it to any cross-origin descendants that it wants to > receive that information via postMessage(). > > Permissions policy just streamlines this: same-origin iframes now don't > need to go via top, and the parent can avoid writing custom code to > communicate the information to cross-origin descendants, instead replacing > it with a simple allow="keyboard-map" or allow="keyboard-map > https://specific-origin". > > I hope the API owners can support this kind of improvement to the > platform, not only for this case but in general whenever we introduce > ergonomic permissions policy-based delegation for any feature. > > > On Fri, Oct 15, 2021 at 6:00 PM 'Anupam Snigdha' via blink-dev < > [email protected]> wrote: > >> getLayoutMap() can already be accessed by the top level browsing context >> and I believe it does have fingerprinting concerns: a site can gain >> knowledge of the keyboard layout of the user even before the user has typed >> anything. Try this site switching between French and English keyboard >> layouts: https://fortunate-onyx-wren.glitch.me/french-or-english.html. >> The privacy mitigation section >> <https://wicg.github.io/keyboard-map/#privacy-mitigations> describes >> some mitigations we could add for fingerprinting related concerns. >> >> >> I don't think exposing this by default to same origin iframes and >> allowing the top-level browsing context to delegate its authority to use >> getLayoutMap() to other iframes increases the concern any. If I'm thinking >> about that wrong please let me know. >> >> >> >> For the privacy section: I’ll make a change to add permission policy >> along with the top level browsing context restriction to the spec. >> >> >> >> *From:* Yoav Weiss <[email protected]> >> *Sent:* Friday, October 15, 2021 5:46 AM >> *To:* blink-dev <[email protected]> >> *Cc:* Anupam Snigdha <[email protected]>; Bo Cupp <[email protected]>; >> Scott Low <[email protected]>; [email protected] < >> [email protected]>; Yoav Weiss <[email protected]> >> *Subject:* Re: [EXTERNAL] Re: Intent to Implement and Ship: Feature >> policy for Keyboard API >> >> >> >> Reading through https://wicg.github.io/keyboard-map/#privacy the only >> risk here is increased fingerprinting surface. Is that correct? >> >> (aside - the privacy section states that the API is only available in >> top-level contexts. You probably want to change that) >> >> On Thursday, October 14, 2021 at 10:09:04 PM UTC+2 snianu wrote: >> >> *Can you clarify what the current situation is?* >> >> getLayoutMap() which is part of the Keyboard API can only be accessed in >> the top browsing context which cuts off access from same and cross origin >> iframes. >> >> With this permission policy based solution, the default value would be >> “Self” that grants access to same origin iframe by-default, but requires >> web authors to add the “keyboard-map” value to allow attribute in order to >> grant access within cross-origin iframes. >> >> >> >> *IIUC, currently layout maps are not available at all to iframes. Is that >> correct?* >> >> Correct. >> >> >> >> *Also, are you suggesting to add a permission policy that would enable it >> by default for same-origin iframes, and enable explicit delegation for >> cross-origin iframes?* >> >> Yes. >> >> >> >> -Anupam >> >> >> >> *From:* Yoav Weiss <[email protected]> >> *Sent:* Thursday, October 14, 2021 12:29 PM >> *To:* blink-dev <[email protected]> >> *Cc:* Anupam Snigdha <[email protected]>; Bo Cupp <[email protected]>; >> Scott Low <[email protected]>; [email protected] < >> [email protected]> >> *Subject:* [EXTERNAL] Re: Intent to Implement and Ship: Feature policy >> for Keyboard API >> >> >> >> >> >> On Tuesday, October 12, 2021 at 12:33:19 AM UTC+2 snianu wrote: >> >> Contact emails >> >> [email protected] >> Explainer >> >> https://github.com/WICG/keyboard-map/issues/38 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fkeyboard-map%2Fissues%2F38&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671875323%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=AsLDaE6oxgkkMII%2FE9AaoMY1mPRwAqGXFz%2B6Nwl2RGk%3D&reserved=0> >> Specification >> >> https://wicg.github.io/keyboard-map/#permissions-policy >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwicg.github.io%2Fkeyboard-map%2F%23permissions-policy&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671885318%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QZ7U0%2BT3AHT1x6hArqWaM7G4DdMeZJNfzywBP6DQ%2F0w%3D&reserved=0> >> Summary >> >> getLayoutMap() used in conjunction with code solves the problem of >> identifying the actual key pressed in keyboard with different layout maps >> such as English vs French keyboards, but since getLayoutMap() isn't >> available in all contexts (can't be used inside iframes), Office web apps >> like Excel, Word, PowerPoint, etc. that show up as embedded experiences in >> Outlook Web, Teams, etc. and are running in iframes, can't use this API. >> Adding keyboard-map to the allow attribute list solves this problem. >> >> >> >> Can you clarify what the current situation is? >> >> IIUC, currently layout maps are not available at all to iframes. Is that >> correct? >> >> Also, are you suggesting to add a permission policy that would enable it >> by default for same-origin iframes, and enable explicit delegation for >> cross-origin iframes? >> >> >> >> See this >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fkeyboard-map%2Fissues%2F38&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671885318%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qKO0PuhlvOidT6tjpBNfqi8GViO6hJLC8HDNULjX1%2BQ%3D&reserved=0> >> Github issue for more info. >> Blink component >> >> Blink >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671895297%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=DcpGDmZHLGCeZllAo2%2Bu3iGJKPLIIy%2FpNyaonX3lhAo%3D&reserved=0> >> Search tags >> >> keyboard-map >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2Ffeatures%23tags%3Akeyboard-map&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671895297%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=yP5jUArK0OxIYHUVXk5TkzLNN0l8czv99aXsRR3QuIE%3D&reserved=0> >> , Keyboard >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2Ffeatures%23tags%3AKeyboard&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671905292%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VFqOswuOy66soNUabS93GMH8P5kal91QOu1AaMcRzbs%3D&reserved=0> >> TAG review >> >> Not applicable as this is API has been shipped. >> >> >> TAG review status >> >> Not applicable >> Risks Interoperability and Compatibility >> >> Currently Keyboard API is not supported on Safari and Firefox so interop >> risk is minimal. Moreover, this proposal only allows the usage of the >> Keyboard API inside an iframe if it's explicitly specified in the allow >> attribute list by the web author. >> >> The feature policy names are based on the permission names, which have >> been part of the permission policy spec >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw3c.github.io%2Fwebappsec-permissions-policy%2F&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671915287%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FSfvIC174HYCfEgsSBfU99NBis3osHpRAuS7eE4wS0E%3D&reserved=0> >> . >> >> >> >> *Gecko*: Negative ( >> https://github.com/mozilla/standards-positions/pull/310 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmozilla%2Fstandards-positions%2Fpull%2F310&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671915287%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=aenNgGuCLgxRxG%2BA2zb1Y3PAl5rCoPxJG7iF6i1MBG0%3D&reserved=0> >> ) >> >> *WebKit*: Negative ( >> https://github.com/WICG/keyboard-map/issues/30#issue-487691188 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fkeyboard-map%2Fissues%2F30%23issue-487691188&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671925284%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MsM9ZXNGNEwzyC1XtrJAIvQqI4OmsD3WMV%2F7YAM5ZvI%3D&reserved=0> >> ) >> >> *Web developers*: Positive ( >> https://github.com/WICG/keyboard-map/issues/38#issue-934823530 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fkeyboard-map%2Fissues%2F38%23issue-934823530&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671925284%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=SkE%2B59sDhmitPPJpTUZqQwdfahrtRBwa1JhFdAGiPoI%3D&reserved=0> >> ) >> Ergonomics >> >> None. >> Activation >> >> None. >> Security >> >> While there are fingerprinting concerns, this API has been shipped in >> Chrome 69 and adding to the allow attribute list (like HID, >> clipboard-read/write etc) allows sites like Office web apps to use this >> API. The default value would be "self" (= top-level browsing context) but >> sites could add it to allow list to access within iframe context. >> Debuggability >> >> The allow attribute has basic tooling support as described in this >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1eJn5QIX4JFGackDYmdLxWXEmTDkSGj_ZGz5XY4uCKbY%2Fedit&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671935283%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=mGrKRNpJWyo%2FZCOgNgmUd83SI5im37so2QtutkjR1g4%3D&reserved=0> >> doc. >> Is this feature fully tested by web-platform-tests >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671935283%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8xPt4tjp4yWcw%2FxVHBTa0k%2F%2FZSYAyaR9Mg4s1siGpkM%3D&reserved=0> >> ? >> >> Yes >> Requires code in //chrome? >> >> False >> Tracking bug >> >> https://bugs.chromium.org/p/chromium/issues/detail?id=1258242 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Fdetail%3Fid%3D1258242&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671945278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=bYcHU7fER4oRj5egqckMvV53mS464AY91Uvqzq4KhKo%3D&reserved=0> >> Estimated milestones >> >> 97 >> Link to entry on the Chrome Platform Status >> >> https://www.chromestatus.com/feature/5657965899022336 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2Ffeature%2F5657965899022336&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671945278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BfhcBRZICpFxsU9kyk8JVFoRb%2ByGaTcY1PV1bzE7qjQ%3D&reserved=0> >> >> This intent message was generated by Chrome Platform Status >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2F&data=04%7C01%7Csnianu%40microsoft.com%7C34b5fc72bd01428ef30d08d98fd9baf5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637698987671955273%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JKT0JxsSBdnLHw92DkLs%2B2LtU0R7hdq6VxoHjbduvAI%3D&reserved=0> >> . >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL0PR00MB038743E3690A397D6851C7F5CFB99%40BL0PR00MB0387.namprd00.prod.outlook.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL0PR00MB038743E3690A397D6851C7F5CFB99%40BL0PR00MB0387.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUtwpK68NahVa9Nry8OYw-W9SrauWsWQ8_s%2BiUuRuM8Wg%40mail.gmail.com.
