{"action":"opened","issue":{"url":"https://api.github.com/repos/WICG/writable-files/issues/29","repository_url":"https://api.github.com/repos/WICG/writable-files","labels_url":"https://api.github.com/repos/WICG/writable-files/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/WICG/writable-files/issues/29/comments","events_url":"https://api.github.com/repos/WICG/writable-files/issues/29/events","html_url":"https://github.com/WICG/writable-files/issues/29","id":364966729,"node_id":"MDU6SXNzdWUzNjQ5NjY3Mjk=","number":29,"title":"Add \"download\" capabilities ","user":{"login":"inexorabletash","id":771547,"node_id":"MDQ6VXNlcjc3MTU0Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/771547?v=4","gravatar_id":"","url":"https://api.github.com/users/inexorabletash","html_url":"https://github.com/inexorabletash","followers_url":"https://api.github.com/users/inexorabletash/followers","following_url":"https://api.github.com/users/inexorabletash/following{/other_user}","gists_url":"https://api.github.com/users/inexorabletash/gists{/gist_id}","starred_url":"https://api.github.com/users/inexorabletash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inexorabletash/subscriptions","organizations_url":"https://api.github.com/users/inexorabletash/orgs","repos_url":"https://api.github.com/users/inexorabletash/repos","events_url":"https://api.github.com/users/inexorabletash/events{/privacy}","received_events_url":"https://api.github.com/users/inexorabletash/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-28T16:54:02Z","updated_at":"2018-09-28T16:54:02Z","closed_at":null,"author_association":"COLLABORATOR","body":"Right now, web sites can trigger a file download (create an `A` element, populate `href` with a blob URL, `click()` it). This has several important characteristics:\r\n\r\n* The operation is async, and can be throttled by the user agent, e.g. via permission prompts.\r\n* The file data is immutable by the web app, so it can't be tinkered with after initiating.\r\n* The user agent can scan potentially dangerous files (executables, archives) for malicious content.\r\n* The user agent can present the file in a download tray/page/dialog/etc for easy access by the user.\r\n\r\nI can imagine ways in which interop with these capabilities would be useful in conjunction with the new features being exposed here:\r\n\r\n* Initiate \"download\" of a sandboxed file\r\n* Initiate a \"download\" to a file where the web app has write permissions\r\n* Just better ergonomics over the anchor/href/click dance.\r\n* Allow creation (under UA control) of \"dangerous\" files, while still behind user gesture and UA scan.\r\n"}}
{"actor":{"display_login":"inexorabletash"}}