- From: Daniel Murphy <notifications@github.com>
- Date: Mon, 20 Sep 2021 16:35:50 -0700
- To: w3c/manifest <manifest@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/manifest/pull/1005/review/759110773@github.com>
@dmurph commented on this pull request. > @@ -1787,6 +1876,172 @@ <h2> </ol> </section> </section> + <section> + <h2> + File Handler Items + </h2> + <p> + Each <dfn data-local-lt="file handler's">file handler</dfn> represents Fixed > + <ul> + <li>|item| is not [=ordered map=]. + </li> + <li>|item|["action"] doesn't [=map/exist=]. + </li> + <li>|item|["action"] is not a [=string=]. + </li> + <li>|item|["name"] doesn't [=map/exist=]. + </li> + <li>|item|["name"] is the empty string. + </li> + <li>|item|["accepts"] doesn't [=map/exist=]. + </li> + <li>|item|["accepts"] is not a [=sequence=]. + </li> + <li>|item|["accepts"] is an empty [=sequence=]. done. > @@ -1012,6 +1012,158 @@ <h3> conventions or limitations of the host operating system. </p> </section> + <section> + <h3> + `file_handlers` member + </h3> + <p> + The [=manifest's=] <code><dfn data-export="" data-dfn-for= + "manifest">`file_handlers`</dfn></code> member is a [=list=] that + represents URLs within the app that handles launches of given [=file I like that better. > @@ -1012,6 +1012,158 @@ <h3> conventions or limitations of the host operating system. </p> </section> + <section> + <h3> + `file_handlers` member + </h3> + <p> + The [=manifest's=] <code><dfn data-export="" data-dfn-for= + "manifest">`file_handlers`</dfn></code> member is a [=list=] that + represents URLs within the app that handles launches of given [=file + types=]. + </p> + <p> + A <dfn>file type</dfn> refers to file that has a [=mime type=] and/or I like it. Done. > + |json|["file_handlers"] is not a [=list=], return. + </li> + <li>[=list/For each=] |entry:ordered map| of |json|["file_handlers"]: + <ol> + <li>Let |file_handler:ordered map| be [=process a file handler + item=] with |entry|. + </li> + <li>If |file_handler| is failure, continue. + </li> + <li>[=list/Append=] |file_handler| to |processedFileHandlers|. + </li> + </ol> + </li> + </ol> + <p> + On [=installation=], a user agent SHOULD register the file handlers I think the "that are consistent with" here provides some wiggle room based on the OS. I'm not an expert in this though. > + <li>[=file handler/action=] + </li> + <li>[=file handler/name=] + </li> + <li>[=file handler/accepts=] + </li> + <li>[=file handler/icons=] + </li> + </ul> + <p> + A user agent can use these members to associate the web application + with [=file type=] on the operating system. + </p> + <aside class="note"> + <p> + The disambiguation of file handlers and selecting of default file Yes - quote is correct. > + "file handler">action</dfn></code> member is a <a>string</a> that + represents a relative URL of the [=manifest/start_url=] origin that + is [=manifest/within scope=] of a [=Document/processed manifest=]. + This URL will be navigated to in the steps to [=execute a file + handler launch=]. + </p> + </section> + <section> + <h3> + `name` member + </h3> + <p> + The [=file handler's=] <code><dfn data-dfn-for= + "file handler">name</dfn></code> member is a <a>string</a> that + represents a name to be provided to the user's operating system for + use with "Open with..." UX flows. This MAY be replaced by the user I positioned there here to be able to apply this customization of name & icon throughout the entire system. If, by spec, it's customizable at the time we read the manifest, then anything that uses this manifest would be seeing the possibly customized icon. > + represents a relative URL of the [=manifest/start_url=] origin that + is [=manifest/within scope=] of a [=Document/processed manifest=]. + This URL will be navigated to in the steps to [=execute a file + handler launch=]. + </p> + </section> + <section> + <h3> + `name` member + </h3> + <p> + The [=file handler's=] <code><dfn data-dfn-for= + "file handler">name</dfn></code> member is a <a>string</a> that + represents a name to be provided to the user's operating system for + use with "Open with..." UX flows. This MAY be replaced by the user + agent for privacy & security reasons. Hm.. can customize the text in window's explorer for a file type, right? It shows up as text on the OS, but maybe it's not an issue? "Infected File - Please Launch to Fix" or something else to encourage users to launch the file? IDK though - less direct than icon. > @@ -1787,6 +1942,147 @@ <h2> </ol> </section> </section> + <section> + <h2> + File Handler Items + </h2> + <p> + Each <dfn data-local-lt="file handler's">file handler</dfn> represents + a URL in the scope of the application that can handle launches with + [=file types=] it accepts. It has the following members: + </p> + <ul> + <li>[=file handler/action=] + </li> + <li>[=file handler/name=] + </li> + <li>[=file handler/accepts=] done > + `accept` member + </h3> + <p> + The [=file handler's=] <code><dfn data-dfn-for= + "file handler">accept</dfn></code> member is a <a>dictionary</a> + mapping [=MIME types=] to a list of extensions. Extensions have to be + strings that start with a "." and only contain [=valid suffix code + points=]. Additionally extensions are limited to a length of 16 code + points. + </p> + <p> + In addition to complete MIME types, "*" can be used as the subtype of + a MIME type to match, for example, all image formats with "image/*". + </p> + <p> + Websites SHOULD always provide both [=MIME types=] and file Let me know what you think now > + Processing file handler items + </h2> + <p> + To <dfn>process a file handler item</dfn>, given [=ordered map=] + |item:ordered map|, [=URL=] |start_url:URL|, [=URL=] |scope:URL|, and + [=URL=] |manifest URL:URL|. + </p> + <ol class="algorithm"> + <li>Return failure if it's the case that: + <ul> + <li>|item| is not [=ordered map=]. + </li> + <li>|item|["action"] doesn't [=map/exist=] or is not a + [=string=]. + </li> + <li>|item|["name"] doesn't [=map/exist=] or is the empty string. Done. > + <li>If |url| is failure, return failure. + </li> + <li>If |url| is not [=manifest/within scope=] of |scope|, return + failure. + </li> + <li>TODO - process "accepts" + </li> + <li>Let |file_handler:ordered map| be |ordered map| «[ "action" → + |url|, "name" → |item|["name"] ]». + </li> + <li>[=Process image resources=] passing |item|["icons"], + |file_handler|, |manifest URL|, and "icons". + </li> + <li>The user agent MAY replace |file_handler|["icons"] and + |file_handler|["name"] with the application icon and a string + containing the application name, respectively. Done. > + </li> + </ol> + <p> + On [=installation=], a user agent SHOULD register the file handlers + with the operating system via interactions that are consistent with: + </p> + <ul> + <li>The [=file handler/icon=] and [=file handler/name=] appear in the + host operating system surfaces presenting options for opening files, + for example within "Open with..." context menus for associated file + types. + </li> + <li>The [=file handler/icon=] appears as the icon of associated files + in the host operating system. + </li> + <li>File types with multiple possible handlers can be disambiguated I changed it but added some more context - let me know what you think. > + </li> + <li>Iterate through every {{LaunchConsumer}} set by + {{LaunchQueue/setConsumer}} and execute the function with |params|. + </li> + </ol> + </section> + <section> + <h3> + Privacy consideration: Default [=file handler=]. + </h3> + <p> + Depending on the operating system capabilities, the [=manifest/file + handler=] could become a 'default' handler (e.g. handling launches + of a given file type automatically) of a given [=file type=] + without the explicit knowledge of the user. To protect against + possible mis-use, user agents MAY choose to offer the user the Done - linked to "Execute a file handler launch" -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/manifest/pull/1005#discussion_r712530960
Received on Monday, 20 September 2021 23:36:04 UTC