From a08d2afb4f342ee413ce558098100cf9485b20ca Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Fri, 28 Oct 2022 16:04:36 +1100 Subject: [PATCH 01/17] Remove html dep --- index.html | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index 62d0556ba..7fbe621ad 100644 --- a/index.html +++ b/index.html @@ -1986,18 +1986,10 @@

When shortcut item shortcut having - manifest is invoked, run the following steps: + manifest is invoked, run the steps to + [=launch a web application=] given mainfest and + shortcut.url.

-
    -
  1. Let url be shortcut.url. -
  2. -
  3. Let browsing context be the result of creating a new - top-level browsing context. -
  4. -
  5. - Navigate browsing context to url. -
  6. -

@@ -2249,6 +2241,30 @@

available underneath an icon).

+
+

+ Launching a web application +

+

+ The steps to launch a web application is given by the + following algorithm. The algorithm takes a + [=Document/processed manifest=] |manifest:processed manifest| and an + optional |target URL:URL|. +

+
    +
  1. If url is unset, set url to + |manifest|.[=manifest/start_url=]. +
  2. +
  3. Let |client| be the result of + + creating a new top-level browsing context. +
  4. +
  5. [=Navigate=] |client| passing |url|. +
  6. +
  7. [=Apply=] |manifest| to |client|. +
  8. +
+

Privacy and security considerations From ad10fdf2bb58c8249e6e8611e50f1430bca20115 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Wed, 2 Nov 2022 13:25:36 +1100 Subject: [PATCH 02/17] Use new html concept --- index.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 7fbe621ad..049406f87 100644 --- a/index.html +++ b/index.html @@ -2248,18 +2248,19 @@

The steps to launch a web application is given by the following algorithm. The algorithm takes a - [=Document/processed manifest=] |manifest:processed manifest| and an - optional |target URL:URL|. + [=Document/processed manifest=] |manifest:processed manifest|, an + optional |target URL:URL| and an optional + post resource or null + |post resource| (default null).

  1. If url is unset, set url to |manifest|.[=manifest/start_url=].
  2. Let |client| be the result of - - creating a new top-level browsing context. -
  3. -
  4. [=Navigate=] |client| passing |url|. + + creating a fresh top-level traversable passing |url| and + |post resource|.
  5. [=Apply=] |manifest| to |client|.
  6. From 782f2de858b694cd24dbc81d7e0ee7a4d35f0d86 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Wed, 2 Nov 2022 14:42:19 +1100 Subject: [PATCH 03/17] capitalisation --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 049406f87..81d8f2e3f 100644 --- a/index.html +++ b/index.html @@ -2250,7 +2250,7 @@

    following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, an optional |target URL:URL| and an optional - post resource or null + POST resource or null |post resource| (default null).

      From 70855ee6d05b902d1bfb482f1113c7c0c7f7041d Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Wed, 2 Nov 2022 15:15:29 +1100 Subject: [PATCH 04/17] nits --- index.html | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index 81d8f2e3f..d0654e6cd 100644 --- a/index.html +++ b/index.html @@ -2250,19 +2250,21 @@

      following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, an optional |target URL:URL| and an optional - POST resource or null - |post resource| (default null). + POST resource |POST resource|.

        -
      1. If url is unset, set url to +
      2. If |target URL| is null, set |target URL| to |manifest|.[=manifest/start_url=].
      3. -
      4. Let |client| be the result of +
      5. Let |traversable| be the result of - creating a fresh top-level traversable passing |url| and - |post resource|. + creating a fresh top-level traversable passing |target URL| + and |POST resource|.
      6. -
      7. [=Apply=] |manifest| to |client|. +
      8. Let |browsing context| be the |traversable|'s + active browsing context. +
      9. +
      10. [=Apply=] |manifest| to |browsing context|.

From 75182f091c3269a2f4959208c78497e84a91eb81 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Fri, 4 Nov 2022 10:58:30 +1100 Subject: [PATCH 05/17] review changes --- index.html | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/index.html b/index.html index d0654e6cd..1a62abd77 100644 --- a/index.html +++ b/index.html @@ -1397,6 +1397,11 @@

[=Document/processed manifest=] are affecting the presentation or behavior of a browsing context.

+

+ This gives the user agent an opportunity to apply the relevant + values of the manifest, possibly changing the display mode + and screen orientation of the web application. +

A top-level browsing context that has a manifest applied to it is referred to as an application context. @@ -1987,7 +1992,7 @@

When shortcut item shortcut having manifest is invoked, run the steps to - [=launch a web application=] given mainfest and + [=launch a web application=] given manifest and shortcut.url.

@@ -2195,16 +2200,14 @@

bookmark, as opening a web page from a traditional bookmark will not have the manifest's properties applied to it.

-

+

For example, on user agents that support installation, a web application could be presented and launched in a way that, to the end-user, is indistinguishable from native applications: such as appearing as a labeled icon on the home screen, launcher, or start - menu. When launched, the manifest is applied by the user agent - to the top-level browsing context prior to the start URL - being loaded. This gives the user agent an opportunity to apply the - relevant values of the manifest, possibly changing the display - mode and screen orientation of the web application. Alternatively, + menu. When [=launching a web application=], the manifest is + applied by the user agent to the top-level browsing + context prior to the start URL being loaded. Alternatively, and again as an example, the user agent could install the web application into a list of bookmarks within the user agent itself.

@@ -2246,25 +2249,35 @@

Launching a web application

- The steps to launch a web application is given by the - following algorithm. The algorithm takes a - [=Document/processed manifest=] |manifest:processed manifest|, an - optional |target URL:URL| and an optional + At the discretion of the operating system and/or user agent, run the + steps to [=launch a web application=] with a + [=Document/processed manifest=]. +

+

+ This would typically take place when the user selects an [=installed=] + web app from an app launching UI surface e.g., a home screen, launcher + or start menu. +

+

+ The steps to launch a web + application is given by the following algorithm. The algorithm + takes a [=Document/processed manifest=] |manifest:processed manifest|, + an optional |target URL:URL| and an optional POST resource |POST resource|.

    -
  1. If |target URL| is null, set |target URL| to - |manifest|.[=manifest/start_url=]. +
  2. If |target URL| was not passed, set |target URL| to [=start URL=].
  3. Let |traversable| be the result of creating a fresh top-level traversable passing |target URL| - and |POST resource|. + and |POST resource| (or null if |POST resource| was not passed).
  4. Let |browsing context| be the |traversable|'s active browsing context.
  5. -
  6. [=Apply=] |manifest| to |browsing context|. +
  7. [=Apply=] |manifest| to |browsing context| prior to the + |traversable| [=navigating=] to |target URL|.
From 9abc6d9a43121884378e52d6ed327268ec9af10e Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Fri, 4 Nov 2022 12:05:33 +1100 Subject: [PATCH 06/17] Wording tweaks based on https://infra.spec.whatwg.org/#algorithm-params --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 1a62abd77..4a88db855 100644 --- a/index.html +++ b/index.html @@ -1992,7 +1992,7 @@

When shortcut item shortcut having manifest is invoked, run the steps to - [=launch a web application=] given manifest and + [=launch a web application=] with manifest and shortcut.url.

@@ -2266,12 +2266,12 @@

POST resource |POST resource|.

    -
  1. If |target URL| was not passed, set |target URL| to [=start URL=]. +
  2. If |target URL| was not given, set |target URL| to [=start URL=].
  3. Let |traversable| be the result of - creating a fresh top-level traversable passing |target URL| - and |POST resource| (or null if |POST resource| was not passed). + creating a fresh top-level traversable with |target URL| + and |POST resource| (or null if |POST resource| was not given).
  4. Let |browsing context| be the |traversable|'s active browsing context. From 1e1e36f491dc012e831cc3c77b2f88cf55e6a1e6 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 10:24:57 +1100 Subject: [PATCH 07/17] Fix duplicate section id --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 4a88db855..62fc6d367 100644 --- a/index.html +++ b/index.html @@ -2245,7 +2245,7 @@

    -

    +

    Launching a web application

    From a624ec935e547528bccfa17693d18d621a86d8e4 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 13:46:31 +1100 Subject: [PATCH 08/17] Minor changes --- index.html | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 62fc6d367..bd151ecc4 100644 --- a/index.html +++ b/index.html @@ -2249,9 +2249,8 @@

    Launching a web application

    - At the discretion of the operating system and/or user agent, run the - steps to [=launch a web application=] with a - [=Document/processed manifest=]. + At the discretion of the OS or UA, run the steps to + [=launch a web application=] with a [=Document/processed manifest=].

    This would typically take place when the user selects an [=installed=] @@ -2271,13 +2270,12 @@

  5. Let |traversable| be the result of creating a fresh top-level traversable with |target URL| - and |POST resource| (or null if |POST resource| was not given). + and |POST resource|.
  6. Let |browsing context| be the |traversable|'s active browsing context.
  7. -
  8. [=Apply=] |manifest| to |browsing context| prior to the - |traversable| [=navigating=] to |target URL|. +
  9. [=Apply=] |manifest| to |browsing context|.
From 7104d4491aa5f8eced767f4cb42089265b3046f8 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 13:59:54 +1100 Subject: [PATCH 09/17] unmove --- index.html | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index bd151ecc4..fd2dc3a2f 100644 --- a/index.html +++ b/index.html @@ -1397,11 +1397,6 @@

[=Document/processed manifest=] are affecting the presentation or behavior of a browsing context.

-

- This gives the user agent an opportunity to apply the relevant - values of the manifest, possibly changing the display mode - and screen orientation of the web application. -

A top-level browsing context that has a manifest applied to it is referred to as an application context. @@ -2207,9 +2202,12 @@

appearing as a labeled icon on the home screen, launcher, or start menu. When [=launching a web application=], the manifest is applied by the user agent to the top-level browsing - context prior to the start URL being loaded. Alternatively, - and again as an example, the user agent could install the web - application into a list of bookmarks within the user agent itself. + context prior to the start URL being loaded. This gives the + user agent an opportunity to apply the relevant values of the manifest, + possibly changing the display mode and screen orientation of the + web application. Alternatively, and again as an example, the user agent + could install the web application into a list of bookmarks within + the user agent itself.

From 11d7a0a3baf7b62b834423c0ea45526cb7e3092f Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 14:03:14 +1100 Subject: [PATCH 10/17] Add return --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index fd2dc3a2f..e2139a1dd 100644 --- a/index.html +++ b/index.html @@ -2275,6 +2275,8 @@

  • [=Apply=] |manifest| to |browsing context|.
  • +
  • Return |browsing context|. +
  • From e99493824813acc66a3926f43f0e718db9c5a9d0 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 16:45:10 +1100 Subject: [PATCH 11/17] moar review --- index.html | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index e2139a1dd..63218a065 100644 --- a/index.html +++ b/index.html @@ -2247,8 +2247,9 @@

    Launching a web application

    - At the discretion of the OS or UA, run the steps to - [=launch a web application=] with a [=Document/processed manifest=]. + At the discretion of the operating system or user agent, run the steps + to [=launch a web application=] with a + [=Document/processed manifest=].

    This would typically take place when the user selects an [=installed=] @@ -2259,8 +2260,36 @@

    The steps to launch a web application is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, - an optional |target URL:URL| and an optional - POST resource |POST resource|. + an optional |target URL:URL|, an optional + POST resource |POST resource| + and returns an [=application context=]. +

    +

    + Other specifications MAY replace this algorithm's steps with their own + steps. This replacement will take effect for all invocations + of [=launching a web application=]. +

    +

    + This algorithm is replaceable to allow an experimental + launch_handler + manifest field to configure the behavior of all web application + launches. The replacement algorithm invokes [=create a new + application context=] by default but under certain conditions behaves + differently. +

    +
      +
    1. Return the result of running the steps to [=create a new + application context=] passing |manifest|, |target URL| and + |POST resource|. +
    2. +
    +

    + The steps to create a new application context is given + by the following algorithm. The algorithm takes a + [=Document/processed manifest=] |manifest:processed manifest|, + an optional |target URL:URL|, an optional + POST resource |POST resource| + and returns an [=application context=].

    1. If |target URL| was not given, set |target URL| to [=start URL=]. From 7fac1a0f4e97a64bc7f5d692ee860300b3ac4bea Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 17:07:30 +1100 Subject: [PATCH 12/17] html spec references available now --- index.html | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 63218a065..a6fb0669b 100644 --- a/index.html +++ b/index.html @@ -2260,9 +2260,8 @@

      The steps to launch a web application is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, - an optional |target URL:URL|, an optional - POST resource |POST resource| - and returns an [=application context=]. + an optional |target URL:URL|, an optional [=POST resource=] + |POST resource| and returns an [=application context=].

      Other specifications MAY replace this algorithm's steps with their own @@ -2287,17 +2286,15 @@

      The steps to create a new application context is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, - an optional |target URL:URL|, an optional - POST resource |POST resource| - and returns an [=application context=]. + an optional |target URL:URL|, an optional [=POST resource=] + |POST resource| and returns an [=application context=].

      1. If |target URL| was not given, set |target URL| to [=start URL=].
      2. -
      3. Let |traversable| be the result of - - creating a fresh top-level traversable with |target URL| - and |POST resource|. +
      4. Let |traversable| be the result of running the steps to [=create + a fresh top-level traversable=] with |target URL| and + |POST resource|.
      5. Let |browsing context| be the |traversable|'s active browsing context. From 148f6e8983243e751fa6f431313b78e91b4fc93b Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 17:20:20 +1100 Subject: [PATCH 13/17] scope must --- index.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.html b/index.html index a6fb0669b..39175d916 100644 --- a/index.html +++ b/index.html @@ -2263,6 +2263,10 @@

        an optional |target URL:URL|, an optional [=POST resource=] |POST resource| and returns an [=application context=].

        +

        + |Target URL|, if given, MUST be [=manifest/within scope=] of + |manifest|. +

        Other specifications MAY replace this algorithm's steps with their own steps. This replacement will take effect for all invocations From b7e9fb0d9f9f45373124895378947005cb838f9d Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 7 Nov 2022 17:23:18 +1100 Subject: [PATCH 14/17] Export launch algorithms --- index.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 39175d916..e4e3d657b 100644 --- a/index.html +++ b/index.html @@ -2257,7 +2257,8 @@

        or start menu.

        - The steps to launch a web + The steps to + launch a web application is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, an optional |target URL:URL|, an optional [=POST resource=] @@ -2287,8 +2288,8 @@

      - The steps to create a new application context is given - by the following algorithm. The algorithm takes a + The steps to create a new application context + is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, an optional |target URL:URL|, an optional [=POST resource=] |POST resource| and returns an [=application context=]. From 08f72d75e46382938045057f3d21c4bf3c48a46e Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 8 Nov 2022 10:02:14 +1100 Subject: [PATCH 15/17] lower case t --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index e4e3d657b..84973f385 100644 --- a/index.html +++ b/index.html @@ -2265,7 +2265,7 @@

      |POST resource| and returns an [=application context=].

      - |Target URL|, if given, MUST be [=manifest/within scope=] of + |target URL|, if given, MUST be [=manifest/within scope=] of |manifest|.

      From 82fdb34ec4ec0012688e58e3d0cd6c96597bf0e2 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 8 Nov 2022 10:04:01 +1100 Subject: [PATCH 16/17] prepend url type to target URL --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 84973f385..0f6cccff7 100644 --- a/index.html +++ b/index.html @@ -2261,7 +2261,7 @@

      launch a web application is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, - an optional |target URL:URL|, an optional [=POST resource=] + an optional [=URL=] |target URL:URL|, an optional [=POST resource=] |POST resource| and returns an [=application context=].

      @@ -2291,7 +2291,7 @@

      The steps to create a new application context is given by the following algorithm. The algorithm takes a [=Document/processed manifest=] |manifest:processed manifest|, - an optional |target URL:URL|, an optional [=POST resource=] + an optional [=URL=] |target URL:URL|, an optional [=POST resource=] |POST resource| and returns an [=application context=].

        From c81c265b65e3fbb1d773f1c5104e947c1e97aa0c Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 8 Nov 2022 11:29:09 +1100 Subject: [PATCH 17/17] Minor word tweak --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 0f6cccff7..f2f401e95 100644 --- a/index.html +++ b/index.html @@ -2270,8 +2270,8 @@

        Other specifications MAY replace this algorithm's steps with their own - steps. This replacement will take effect for all invocations - of [=launching a web application=]. + steps. This replacement will take effect for all invocations of + [=launch a web application=].

        This algorithm is replaceable to allow an experimental