
From nobody Wed Jun 10 15:00:26 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A1E503A10F9 for <wpack@ietfa.amsl.com>; Wed, 10 Jun 2020 15:00:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level: 
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 680ZxaTKMwBm for <wpack@ietfa.amsl.com>; Wed, 10 Jun 2020 15:00:17 -0700 (PDT)
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E6313A1554 for <wpack@ietf.org>; Wed, 10 Jun 2020 15:00:17 -0700 (PDT)
Received: by mail-qk1-x72f.google.com with SMTP id l17so3687063qki.9 for <wpack@ietf.org>; Wed, 10 Jun 2020 15:00:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=e3ICSjnRHLCqq5ulz7jOHscFFTXAeMTIRmg3Fb0u7DM=; b=aYkAIK7njON/AWJZ0MLzvG7mCR6bEFBwxKaW2j8efoE0JVVf2vfq4IX5zC2gahI0/4 2UpnEKjCV/RkdWF8ZAP18bgsk8mppnxeJ94bIHGsJrjknhqP15CGAa8IhsA/vvQqS2bi oyPAEcMdPtM1+hipFPFEcnzpgJzM4jF/OI+5/W7Yxm5egAWTd/bYWm1YsV6Jj3vtBlQQ oBqZhoKfGIz0ms6pu9ySPQRr+ueGffyU/T83EmMcpsTqoHbeOoDw77GXGBZQkdD+B7je wzpvmbNVJiNN4cJDLxOtL1KL7qPEjzkQzEI+bP5R/cMPMY5Bpsk473U9VKvElOpi58L4 qgEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=e3ICSjnRHLCqq5ulz7jOHscFFTXAeMTIRmg3Fb0u7DM=; b=mRiIR8k4nQEi2TDW5+310AAzSDOVDMp8W3JeHRzGl71dDWxpBpqfNpgjX/2tB6PTF8 YM4+AnuzlZmWGsT+BaZS5o7cC6OW4erNUa/Wwo7a25rivQ8v2MYyRkskKkYfprjcsDJN un/A9zJtKdEWZsdAJECV1sgPHeSUeQ4vMqnQNm6DWH/+K4iEWIUayIvYNO9U4sFpneQH 9t8UduQiAAz6dx4Z4xGhfjzRYlgXlbey1ISRuG3Z9PdjhSf3JVZ7ChNapi/a4w3qgJOw /nHnEswNci4CVGq5U69QkgmQPrfYDP5D37jJ+yU3913Zn92AMyWs4xOyKDji0YO2M40D 6Orw==
X-Gm-Message-State: AOAM530/szzrpxD62CJCpiTryoTnbPKuQ8HfMAJqMQ48MQpUg3rXMLOI 1xwdqG+Xz6ZQsEyBUzJdT+iV3I5TNJZ+/IGLDp/RhRSSwPo=
X-Google-Smtp-Source: ABdhPJwKbumLSHJRu5r112j6xBkW1Px6PTlmBY05G/Ajgeik1WeNCmNzZqY5lQBIKEwR/SJY4v1GPhP0h9dfNzEXHXg=
X-Received: by 2002:a37:e110:: with SMTP id c16mr5514970qkm.38.1591826413669;  Wed, 10 Jun 2020 15:00:13 -0700 (PDT)
MIME-Version: 1.0
From: Jeffrey Yasskin <jyasskin@google.com>
Date: Wed, 10 Jun 2020 15:00:01 -0700
Message-ID: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com>
To: WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000eee29d05a7c1f791"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/XS9f1lc8VcpihQ04L_DwKKwhwe8>
Subject: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jun 2020 22:00:20 -0000

--000000000000eee29d05a7c1f791
Content-Type: text/plain; charset="UTF-8"

Hi all,

I wanted to raise awareness of a discussion about the URL scheme for
addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).

We seem to be heading toward a URL of the form
package:<encoded-package-url>$<encoded-resource-uri>, which for a package
URL of https://distributor.example/package.wbn and resource URI of
https://publisher.example/page.html?q=query would lead to a URL of:

*package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*

This arises from several considerations:
1. A bundle is served from a URL.
2. After a user downloads the bundle, it gets a new URL, often file:///...
3. We can also hash the bundle to get a URI that stays stable across
transfers.
4. Resources inside a bundle are named by URIs (which, since the bundle has
an index, are also URLs even if, like urn:uuid:..., they wouldn't normally
be locators).
5. Once a user downloads a bundle, for web browsers to give its content
storage that's persistent across reloads, as requested in
https://github.com/WICG/webpackage/issues/498, the content needs to be
assigned a non-opaque origin.

I'm updating one of the documents about this in
https://github.com/WICG/webpackage/pull/584 and would welcome comments here
or there.

The URLs are obviously gross, so
https://github.com/WICG/webpackage/pull/560 suggests
that browsers avoid showing them to users in most cases.

We could potentially simplify things if packages named things with just
paths instead of full URIs. We'd then name things based on the bundle's
origin. However, this loses archiving use cases.

This is all further discussed in the following documents and issues, but
you shouldn't feel responsible to read everything here:

*
https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
*
https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80
* https://github.com/WICG/webpackage/issues/583
*
https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
* https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html

Thanks,
Jeffrey

--000000000000eee29d05a7c1f791
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi all,<div><br></div><div>I wanted to raise awareness of =
a discussion about the URL scheme for addressing resources within bundles (=
draft-yasskin-wpack-bundled-exchanges).</div><div><br></div><div>We seem to=
 be heading toward a URL of the form package:&lt;encoded-package-url&gt;$&l=
t;encoded-resource-uri&gt;, which for a package URL of <a href=3D"https://d=
istributor.example/package.wbn">https://distributor.example/package.wbn</a>=
 and resource URI of <a href=3D"https://publisher.example/page.html?q=3Dque=
ry">https://publisher.example/page.html?q=3Dquery</a> would lead to a URL o=
f:<br></div><br><b>package:https:,,distributor.example,package.wbn;q=3Dquer=
y$https:,,publisher.example/page.html?q=3Dquery</b><div><br></div><div>This=
 arises from several considerations:</div><div><div>1. A bundle is served f=
rom=C2=A0a URL.<br></div><div>2. After a user downloads the bundle, it gets=
 a new URL, often file:///...</div><div>3. We can also hash the bundle to g=
et a URI that stays stable across transfers.</div><div>4. Resources inside =
a bundle are named by URIs (which, since the bundle has an index, are also =
URLs even if, like urn:uuid:..., they wouldn&#39;t normally be locators).</=
div><div>5. Once a user downloads a bundle, for web browsers to give its co=
ntent storage that&#39;s persistent across reloads, as requested in=C2=A0<a=
 href=3D"https://github.com/WICG/webpackage/issues/498">https://github.com/=
WICG/webpackage/issues/498</a>, the content needs to be assigned a non-opaq=
ue origin.</div><div></div><div><br></div><div>I&#39;m updating one of the =
documents about this in=C2=A0<a href=3D"https://github.com/WICG/webpackage/=
pull/584">https://github.com/WICG/webpackage/pull/584</a>=C2=A0and would we=
lcome comments here or there.<br><div><br></div><div>The URLs are obviously=
 gross, so=C2=A0<a href=3D"https://github.com/WICG/webpackage/pull/560">htt=
ps://github.com/WICG/webpackage/pull/560</a>=C2=A0suggests that browsers av=
oid showing them to users in most cases.=C2=A0</div><div><br></div><div>We =
could potentially simplify things if packages named things with just paths =
instead of full URIs. We&#39;d then name things based on the bundle&#39;s o=
rigin. However, this loses archiving use cases.</div><div><br></div><div><d=
iv>This is all further discussed in the following documents and issues, but=
 you shouldn&#39;t feel responsible to read everything here:</div><div><br>=
</div><div>*=C2=A0<a href=3D"https://docs.google.com/document/d/1BYQEi8xkXD=
Ag9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#">https://docs.google.com/document/d=
/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#</a></div><div>*=C2=A0<a=
 href=3D"https://chromium-review.googlesource.com/c/chromium/src/+/2226248/=
7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80">https://chromium-review=
.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a17294=
22a5b26aeca3ee4e80</a></div><div>*=C2=A0<a href=3D"https://github.com/WICG/=
webpackage/issues/583">https://github.com/WICG/webpackage/issues/583</a><br=
></div><div>*=C2=A0<a href=3D"https://github.com/WICG/webpackage/blob/maste=
r/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components">=
https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-uns=
igned-bundles.md#urls-for-bundle-components</a></div><div>*=C2=A0<a href=3D=
"https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html">https://lists.=
w3.org/Archives/Public/uri/2019Nov/0000.html</a><br></div><div><br></div><d=
iv>Thanks,</div><div>Jeffrey</div></div></div></div></div>

--000000000000eee29d05a7c1f791--


From nobody Wed Jun 10 15:44:03 2020
Return-Path: <ted.ietf@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8DA253A1580 for <wpack@ietfa.amsl.com>; Wed, 10 Jun 2020 15:44:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jXGMzaCvVlhU for <wpack@ietfa.amsl.com>; Wed, 10 Jun 2020 15:43:59 -0700 (PDT)
Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CCD023A157F for <wpack@ietf.org>; Wed, 10 Jun 2020 15:43:59 -0700 (PDT)
Received: by mail-oi1-x22c.google.com with SMTP id 25so3617238oiy.13 for <wpack@ietf.org>; Wed, 10 Jun 2020 15:43:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eEs44vOb5MuITNM8DyRZ8sNr7iceHcIGCdz2mIy7qxU=; b=GRHvQnzqDI22hpFbxd8PrbJqH7xuFU4lKhMsb432JTFuFIhPXh+zvcwadOlOuLN/Xi k/C2YXlfZn/WvB8ytdLQHL0MFq+w7Ktq6wreqmuHb1ev9a4noDxlhSOU723whnkoTtDd IgDy+P2WqkBuku88FQQAnTxlL7n32jQNBfdqG8XEPjRw2+KUT12TDKESGh7X83uvrVqH awvFOt04h6WGEnJeWF9D2UfLX/z4PuIVap2Qrl3OyqXpoY8u4oxuIG6Y8gL47wsxOff1 bTQYOgrUfXEBTou6xK1E40aoObnWX1m/jrFGx0XTG4Cld8/rnamReigBfwAj85SRUy2y xVXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eEs44vOb5MuITNM8DyRZ8sNr7iceHcIGCdz2mIy7qxU=; b=k1SOAKzdwVU9KPCzOnURElR4IIz4g7snnVLMM6Ju0ybfucM6G9FJTRw7idDJtOpEvT QJsV8/1+SGhHAgBe/hXuLLrdUiXzdUo0uEJtPa3dWGqgs04nC5ATNSu1GZ/XcrWtuzIi 1HinuvHj2Gva8uAgItGyMIvQ8KN0zGnaWedvVM9kQu6foZjNYbUUtKbZoC9mI1YrMaS6 mI7Xtj52ErsOj4lJvKRF091+QFTzVoXkmHGxjY3B+k9pwmkPKbIlZQksqAkF9q8cejTA y4xAX/ozLf67di+rhvHi29bv45yBQKgWy/p91fVj76UudsUeGQb17uXCvY1BPo7q0QVO Ozpg==
X-Gm-Message-State: AOAM530emm5OidYLZg7v7IHN8NLHhYncGct7LxRFskcjxNm8S68Ar8yT VFmdOrSGzD95M09aESMuj5QFkgHHmflGYnLC2uM=
X-Google-Smtp-Source: ABdhPJyAJXoivAKOZTawduSr7FWxnZwR0YCjOlp2Sqzv8maaTuGC/fScC3R3qaIP9dxpxMlTSdXRuQoTZoBCGwXiy0g=
X-Received: by 2002:aca:80f:: with SMTP id 15mr3545218oii.167.1591829039014; Wed, 10 Jun 2020 15:43:59 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com>
In-Reply-To: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Wed, 10 Jun 2020 15:43:32 -0700
Message-ID: <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com>
To: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>
Cc: WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000069e6cf05a7c29423"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/VI0l8ridBBO9VXIGIeWlW6Rb8LI>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jun 2020 22:44:02 -0000

--00000000000069e6cf05a7c29423
Content-Type: text/plain; charset="UTF-8"

Hi Jeffrey,

On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin <jyasskin=
40google.com@dmarc.ietf.org> wrote:

> Hi all,
>
> I wanted to raise awareness of a discussion about the URL scheme for
> addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).
>
> We seem to be heading toward a URL of the form
> package:<encoded-package-url>$<encoded-resource-uri>, which for a package
> URL of https://distributor.example/package.wbn and resource URI of
> https://publisher.example/page.html?q=query would lead to a URL of:
>
>
> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
>
> RFC 3986, section 2.2 notes:

   If data for a URI component would conflict with a reserved
   character's purpose as a delimiter, then the conflicting data must be
   percent-encoded before the URI is formed.

Wouldn't that apply to a couple of the delimiters in the package example
above, e.g. the  ":" in "https:"?  If so, that seems like it would change
the display form a bit (though not the basic idea).  If that is needed, I
think it reinforces the notion that showing these to users or expecting the
users to grok them is a non-starter.

regards,

Ted Hardie


This arises from several considerations:
> 1. A bundle is served from a URL.
> 2. After a user downloads the bundle, it gets a new URL, often file:///...
> 3. We can also hash the bundle to get a URI that stays stable across
> transfers.
> 4. Resources inside a bundle are named by URIs (which, since the bundle
> has an index, are also URLs even if, like urn:uuid:..., they wouldn't
> normally be locators).
> 5. Once a user downloads a bundle, for web browsers to give its content
> storage that's persistent across reloads, as requested in
> https://github.com/WICG/webpackage/issues/498, the content needs to be
> assigned a non-opaque origin.
>
> I'm updating one of the documents about this in
> https://github.com/WICG/webpackage/pull/584 and would welcome comments
> here or there.
>
> The URLs are obviously gross, so
> https://github.com/WICG/webpackage/pull/560 suggests that browsers avoid
> showing them to users in most cases.
>
> We could potentially simplify things if packages named things with just
> paths instead of full URIs. We'd then name things based on the bundle's
> origin. However, this loses archiving use cases.
>
> This is all further discussed in the following documents and issues, but
> you shouldn't feel responsible to read everything here:
>
> *
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
> *
> https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80
> <https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
> * https://github.com/WICG/webpackage/issues/583
> *
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
> * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
>
> Thanks,
> Jeffrey
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org
> https://www.ietf.org/mailman/listinfo/wpack
>

--00000000000069e6cf05a7c29423
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Hi Jeffrey,<br></div><br><div class=3D"gm=
ail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jun 10, 2020 at 3:=
00 PM Jeffrey Yasskin &lt;jyasskin=3D<a href=3D"mailto:40google.com@dmarc.i=
etf.org">40google.com@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hi all,<div><br></div>=
<div>I wanted to raise awareness of a discussion about the URL scheme for a=
ddressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).=
</div><div><br></div><div>We seem to be heading toward a URL of the form pa=
ckage:&lt;encoded-package-url&gt;$&lt;encoded-resource-uri&gt;, which for a=
 package URL of <a href=3D"https://distributor.example/package.wbn" target=
=3D"_blank">https://distributor.example/package.wbn</a> and resource URI of=
 <a href=3D"https://publisher.example/page.html?q=3Dquery" target=3D"_blank=
">https://publisher.example/page.html?q=3Dquery</a> would lead to a URL of:=
<br></div><br><b>package:https:,,distributor.example,package.wbn;q=3Dquery$=
https:,,publisher.example/page.html?q=3Dquery</b><div><br></div></div></blo=
ckquote><div>RFC 3986, section 2.2 notes:</div><div><pre class=3D"gmail-new=
page">   If data for a URI component would conflict with a reserved
   character&#39;s purpose as a delimiter, then the conflicting data must b=
e
   percent-encoded before the URI is formed.
</pre></div><div>Wouldn&#39;t that apply to a couple of the delimiters in t=
he package example above, e.g. the=C2=A0 &quot;:&quot; in &quot;https:&quot=
;?=C2=A0 If so, that seems like it would change the display form a bit (tho=
ugh not the basic idea).=C2=A0 If that is needed, I think it reinforces the=
 notion that showing these to users or expecting the users to grok them is =
a non-starter.</div><div><br></div><div>regards,</div><div><br></div><div>T=
ed Hardie<br></div><div><br></div><div> <br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex"><div dir=3D"ltr"><div></div><div>This arises from =
several considerations:</div><div><div>1. A bundle is served from=C2=A0a UR=
L.<br></div><div>2. After a user downloads the bundle, it gets a new URL, o=
ften file:///...</div><div>3. We can also hash the bundle to get a URI that=
 stays stable across transfers.</div><div>4. Resources inside a bundle are =
named by URIs (which, since the bundle has an index, are also URLs even if,=
 like urn:uuid:..., they wouldn&#39;t normally be locators).</div><div>5. O=
nce a user downloads a bundle, for web browsers to give its content storage=
 that&#39;s persistent across reloads, as requested in=C2=A0<a href=3D"http=
s://github.com/WICG/webpackage/issues/498" target=3D"_blank">https://github=
.com/WICG/webpackage/issues/498</a>, the content needs to be assigned a non=
-opaque origin.</div><div></div><div><br></div><div>I&#39;m updating one of=
 the documents about this in=C2=A0<a href=3D"https://github.com/WICG/webpac=
kage/pull/584" target=3D"_blank">https://github.com/WICG/webpackage/pull/58=
4</a>=C2=A0and would welcome comments here or there.<br><div><br></div><div=
>The URLs are obviously gross, so=C2=A0<a href=3D"https://github.com/WICG/w=
ebpackage/pull/560" target=3D"_blank">https://github.com/WICG/webpackage/pu=
ll/560</a>=C2=A0suggests that browsers avoid showing them to users in most =
cases.=C2=A0</div><div><br></div><div>We could potentially simplify things =
if packages named things with just paths instead of full URIs. We&#39;d the=
n name things based on the bundle&#39;s origin. However, this loses archivi=
ng use cases.</div><div><br></div><div><div>This is all further discussed i=
n the following documents and issues, but you shouldn&#39;t feel responsibl=
e to read everything here:</div><div><br></div><div>*=C2=A0<a href=3D"https=
://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/=
edit#" target=3D"_blank">https://docs.google.com/document/d/1BYQEi8xkXDAg9l=
xm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#</a></div><div>*=C2=A0<a href=3D"https:/=
/chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efd=
a5aff84770a1729422a5b26aeca3ee4e80" target=3D"_blank">https://chromium-revi=
ew..googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a17=
29422a5b26aeca3ee4e80</a></div><div>*=C2=A0<a href=3D"https://github.com/WI=
CG/webpackage/issues/583" target=3D"_blank">https://github.com/WICG/webpack=
age/issues/583</a><br></div><div>*=C2=A0<a href=3D"https://github.com/WICG/=
webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-fo=
r-bundle-components" target=3D"_blank">https://github.com/WICG/webpackage/b=
lob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-com=
ponents</a></div><div>*=C2=A0<a href=3D"https://lists.w3.org/Archives/Publi=
c/uri/2019Nov/0000.html" target=3D"_blank">https://lists.w3.org/Archives/Pu=
blic/uri/2019Nov/0000.html</a><br></div><div><br></div><div>Thanks,</div><d=
iv>Jeffrey</div></div></div></div></div>
_______________________________________________<br>
Wpack mailing list<br>
<a href=3D"mailto:Wpack@ietf.org" target=3D"_blank">Wpack@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/wpack" rel=3D"noreferrer" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><br>
</blockquote></div></div>

--00000000000069e6cf05a7c29423--


From nobody Thu Jun 11 11:39:33 2020
Return-Path: <masinter@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C1AA3A0DCD for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:39:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.499
X-Spam-Level: 
X-Spam-Status: No, score=-1.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PY2G5Pczkmpo for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:39:29 -0700 (PDT)
Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4C163A0DB7 for <wpack@ietf.org>; Thu, 11 Jun 2020 11:39:29 -0700 (PDT)
Received: by mail-pg1-x52f.google.com with SMTP id r18so2883906pgk.11 for <wpack@ietf.org>; Thu, 11 Jun 2020 11:39:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=sender:from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:thread-index:content-language; bh=A6UCyP46XJcU/rId8qZLvog7yz8pqYPBQZDB9XEkBMM=; b=E7tYIWwoS9MR1MauzH9P+xK67flOxn/IFcBcz1DFPiLwKsu26M5eL5/6UrUYTm9rRZ 0bdT1a7mY/Ho57Cb9flI4un949SyQhL9MB/kVkzePTDteXwb6OgegO0/I3oeg3htFe5H frp/KS6rmSxo4FwfhU52+KG+EZBcmBGyna87sj058nxdGkZN9HynRGascP7pdI4mSf/C GOwJwT5dvQUi1FHKsfeseJ3JlQprzb7W8aSFYA+w3iDEKEkcgcFoOJjg1M0UzYDy5YkB mg8uX4XrKjpC+JmWVWRBif5zQm1kB/f/c0eUum4E0lvs9kV1aiUPwDkBnvTLT4Dvy0D9 mnAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:references:in-reply-to:subject :date:message-id:mime-version:thread-index:content-language; bh=A6UCyP46XJcU/rId8qZLvog7yz8pqYPBQZDB9XEkBMM=; b=S1hYurAGml7HGyyqFnuOPC3Bsdwpu8vZNjeD+U+2i1i+KsXqqKGvW6vj6T39pfrWuC 8vu5/hWH/6d8IblVTkK7htAEBDN9FJUEt+f5Hp6tedkYyR0230LCEwYbJadxJ8m02srn 56FaB/sbbVIxfP19QNI96YF8GMikz+OHTAf+BdFWkz2JsztbMBtEWrow0hS7jt1BaAef zY2GCqmdBybKwKbVlQNAj6VAhY9clKg3c5BTz7TAt6C93BLJlpm8HywjzP+b1B9Izz69 WTqXnbKmfEbKJfUG2avuElIda0ykmRmHr7UVIRvvAdIHhgZc3zxjXJ5X3/nyu5QtiZlo CmDQ==
X-Gm-Message-State: AOAM532nrKdsHwNRPmFvvuDFBzwhHovC8gcLuWxa+YFJm8xTyYuTRF37 V2ebUpBRrLO2y/bdjubtgfo=
X-Google-Smtp-Source: ABdhPJxD/gy/pm+8up2MrfLw67sdjp1lS8k1wZMiuWQ2nlf8K0RDtiZhOHxu+91C9Sf6kT3n2ACclA==
X-Received: by 2002:a65:4241:: with SMTP id d1mr8004320pgq.307.1591900768348;  Thu, 11 Jun 2020 11:39:28 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id c2sm3836056pfi.71.2020.06.11.11.39.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jun 2020 11:39:27 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: "'Ted Hardie'" <ted.ietf@gmail.com>, "'Jeffrey Yasskin'" <jyasskin=40google.com@dmarc.ietf.org>
Cc: "'WPACK List'" <wpack@ietf.org>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com>
In-Reply-To: <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com>
Date: Thu, 11 Jun 2020 11:39:28 -0700
Message-ID: <032201d6401f$a3e58460$ebb08d20$@acm.org>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0323_01D63FE4.F78796C0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJUN3n7f7U8Tm8IyhTb0CDwyv1MGgItZykDp8VIKZA=
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/XkQ8OSlGn18xsVNtSXvoD7s0FIU>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 18:39:32 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0323_01D63FE4.F78796C0
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I think this would work and avoid some of the squirrely awkward =
encodings , for / etc

=20

=20

pkg+https://distributor.example/package.wbn#cid=3Dhttps://publisher.examp=
le?q=3Dquery=20

=20

Define pkg+originalscheme to always returning an application/wbn =
content-type which accepts a fragment identifier which identifies the =
package component.

=20

This form avoids encoding or transforming any part of the original =
except the scheme and the fragment identifier.

=20

You can even apply fragment identifier to the publisher URL.

=20

=20

From: Wpack <wpack-bounces@ietf.org> On Behalf Of Ted Hardie
Sent: Wednesday, June 10, 2020 3:44 PM
To: Jeffrey Yasskin <jyasskin=3D40google.com@dmarc.ietf.org>
Cc: WPACK List <wpack@ietf.org>
Subject: Re: [Wpack] package: URL scheme

=20

Hi Jeffrey,

=20

On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin =
<jyasskin=3D40google.com@dmarc.ietf.org =
<mailto:40google.com@dmarc.ietf.org> > wrote:

Hi all,

=20

I wanted to raise awareness of a discussion about the URL scheme for =
addressing resources within bundles =
(draft-yasskin-wpack-bundled-exchanges).

=20

We seem to be heading toward a URL of the form =
package:<encoded-package-url>$<encoded-resource-uri>, which for a =
package URL of https://distributor.example/package.wbn and resource URI =
of https://publisher.example/page.html?q=3Dquery would lead to a URL of:


package:https:,,distributor.example,package.wbn;q=3Dquery$https:,,publish=
er.example/page.html?q=3Dquery

=20

RFC 3986, section 2.2 notes:

   If data for a URI component would conflict with a reserved
   character's purpose as a delimiter, then the conflicting data must be
   percent-encoded before the URI is formed.

Wouldn't that apply to a couple of the delimiters in the package example =
above, e.g. the  ":" in "https:"?  If so, that seems like it would =
change the display form a bit (though not the basic idea).  If that is =
needed, I think it reinforces the notion that showing these to users or =
expecting the users to grok them is a non-starter.

=20

regards,

=20

Ted Hardie

=20

=20

This arises from several considerations:

1. A bundle is served from a URL.

2. After a user downloads the bundle, it gets a new URL, often =
file:///...

3. We can also hash the bundle to get a URI that stays stable across =
transfers.

4. Resources inside a bundle are named by URIs (which, since the bundle =
has an index, are also URLs even if, like urn:uuid:..., they wouldn't =
normally be locators).

5. Once a user downloads a bundle, for web browsers to give its content =
storage that's persistent across reloads, as requested in =
https://github..com/WICG/webpackage/issues/498 =
<https://github.com/WICG/webpackage/issues/498> , the content needs to =
be assigned a non-opaque origin.

=20

I'm updating one of the documents about this in =
https://github.com/WICG/webpackage/pull/584 and would welcome comments =
here or there.

=20

The URLs are obviously gross, so =
https://github.com/WICG/webpackage/pull/560 suggests that browsers avoid =
showing them to users in most cases.=20

=20

We could potentially simplify things if packages named things with just =
paths instead of full URIs. We'd then name things based on the bundle's =
origin. However, this loses archiving use cases.

=20

This is all further discussed in the following documents and issues, but =
you shouldn't feel responsible to read everything here:

=20

* =
https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pL=
aFJQoo/edit# =
<https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0p=
LaFJQoo/edit>=20

* =
https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#mess=
age-0a3efda5aff84770a1729422a5b26aeca3ee4e80 =
<https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#mess=
age-0a3efda5aff84770a1729422a5b26aeca3ee4e80>=20

* https://github.com/WICG/webpackage/issues/583

* =
https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-u=
nsigned-bundles.md#urls-for-bundle-components

* https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html

=20

Thanks,

Jeffrey

_______________________________________________
Wpack mailing list
Wpack@ietf.org <mailto:Wpack@ietf.org>=20
https://www.ietf.org/mailman/listinfo/wpack


------=_NextPart_000_0323_01D63FE4.F78796C0
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>I think =
this would work and avoid some of the squirrely awkward encodings , for =
/ etc<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal> =
pkg+https://distributor.example/package.wbn#cid=3Dhttps://publisher.examp=
le?q=3Dquery <o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Define pkg+originalscheme to always returning an =
application/wbn content-type which accepts a fragment identifier which =
identifies the package component.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>This form =
avoids encoding or transforming any part of the original except the =
scheme and the fragment identifier.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>You can even =
apply fragment identifier to the publisher URL.<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div =
style=3D'border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt'><div><div style=3D'border:none;border-top:solid #E1E1E1 =
1.0pt;padding:3.0pt 0in 0in 0in'><p class=3DMsoNormal><b>From:</b> Wpack =
&lt;wpack-bounces@ietf.org&gt; <b>On Behalf Of </b>Ted =
Hardie<br><b>Sent:</b> Wednesday, June 10, 2020 3:44 PM<br><b>To:</b> =
Jeffrey Yasskin =
&lt;jyasskin=3D40google.com@dmarc.ietf.org&gt;<br><b>Cc:</b> WPACK List =
&lt;wpack@ietf.org&gt;<br><b>Subject:</b> Re: [Wpack] package: URL =
scheme<o:p></o:p></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>Hi =
Jeffrey,<o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>On =
Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin &lt;jyasskin=3D<a =
href=3D"mailto:40google.com@dmarc.ietf.org">40google.com@dmarc.ietf.org</=
a>&gt; wrote:<o:p></o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5=
.0pt'><div><p class=3DMsoNormal>Hi all,<o:p></o:p></p><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=3DMsoNormal>I =
wanted to raise awareness of a discussion about the URL scheme for =
addressing resources within bundles =
(draft-yasskin-wpack-bundled-exchanges).<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>We seem to be heading toward a URL of the form =
package:&lt;encoded-package-url&gt;$&lt;encoded-resource-uri&gt;, which =
for a package URL of <a href=3D"https://distributor.example/package.wbn" =
target=3D"_blank">https://distributor.example/package.wbn</a> and =
resource URI of <a =
href=3D"https://publisher.example/page.html?q=3Dquery" =
target=3D"_blank">https://publisher.example/page.html?q=3Dquery</a> =
would lead to a URL of:<o:p></o:p></p></div><p =
class=3DMsoNormal><br><b>package:https:,,distributor.example,package.wbn;=
q=3Dquery$https:,,publisher.example/page.html?q=3Dquery</b><o:p></o:p></p=
><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></div></blockquote><div><p =
class=3DMsoNormal>RFC 3986, section 2.2 =
notes:<o:p></o:p></p></div><div><pre>=C2=A0=C2=A0 If data for a URI =
component would conflict with a =
reserved<o:p></o:p></pre><pre>=C2=A0=C2=A0 character's purpose as a =
delimiter, then the conflicting data must =
be<o:p></o:p></pre><pre>=C2=A0=C2=A0 percent-encoded before the URI is =
formed.<o:p></o:p></pre></div><div><p class=3DMsoNormal>Wouldn't that =
apply to a couple of the delimiters in the package example above, e.g. =
the&nbsp; &quot;:&quot; in &quot;https:&quot;?&nbsp; If so, that seems =
like it would change the display form a bit (though not the basic =
idea).&nbsp; If that is needed, I think it reinforces the notion that =
showing these to users or expecting the users to grok them is a =
non-starter.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>regards,<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Ted Hardie<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5=
.0pt'><div><div><p class=3DMsoNormal>This arises from several =
considerations:<o:p></o:p></p></div><div><div><p class=3DMsoNormal>1. A =
bundle is served from&nbsp;a URL.<o:p></o:p></p></div><div><p =
class=3DMsoNormal>2. After a user downloads the bundle, it gets a new =
URL, often <a =
href=3D"file:///">file:///</a>...<o:p></o:p></p></div><div><p =
class=3DMsoNormal>3. We can also hash the bundle to get a URI that stays =
stable across transfers.<o:p></o:p></p></div><div><p =
class=3DMsoNormal>4. Resources inside a bundle are named by URIs (which, =
since the bundle has an index, are also URLs even if, like urn:uuid:..., =
they wouldn't normally be locators).<o:p></o:p></p></div><div><p =
class=3DMsoNormal>5. Once a user downloads a bundle, for web browsers to =
give its content storage that's persistent across reloads, as requested =
in&nbsp;<a href=3D"https://github.com/WICG/webpackage/issues/498" =
target=3D"_blank">https://github..com/WICG/webpackage/issues/498</a>, =
the content needs to be assigned a non-opaque =
origin.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>I'm updating one of the documents about this =
in&nbsp;<a href=3D"https://github.com/WICG/webpackage/pull/584" =
target=3D"_blank">https://github.com/WICG/webpackage/pull/584</a>&nbsp;an=
d would welcome comments here or there.<o:p></o:p></p><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>The URLs are obviously gross, so&nbsp;<a =
href=3D"https://github.com/WICG/webpackage/pull/560" =
target=3D"_blank">https://github.com/WICG/webpackage/pull/560</a>&nbsp;su=
ggests that browsers avoid showing them to users in most =
cases.&nbsp;<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>We could potentially simplify things if packages named =
things with just paths instead of full URIs. We'd then name things based =
on the bundle's origin. However, this loses archiving use =
cases.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p =
class=3DMsoNormal>This is all further discussed in the following =
documents and issues, but you shouldn't feel responsible to read =
everything here:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>*&nbsp;<a =
href=3D"https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZ=
i1r8Y0pLaFJQoo/edit" =
target=3D"_blank">https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3Pa=
oMzEutuQAZi1r8Y0pLaFJQoo/edit#</a><o:p></o:p></p></div><div><p =
class=3DMsoNormal>*&nbsp;<a =
href=3D"https://chromium-review.googlesource.com/c/chromium/src/+/2226248=
/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80" =
target=3D"_blank">https://chromium-review..googlesource.com/c/chromium/sr=
c/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80</a><o:p></=
o:p></p></div><div><p class=3DMsoNormal>*&nbsp;<a =
href=3D"https://github.com/WICG/webpackage/issues/583" =
target=3D"_blank">https://github.com/WICG/webpackage/issues/583</a><o:p><=
/o:p></p></div><div><p class=3DMsoNormal>*&nbsp;<a =
href=3D"https://github.com/WICG/webpackage/blob/master/explainers/navigat=
ion-to-unsigned-bundles.md#urls-for-bundle-components" =
target=3D"_blank">https://github.com/WICG/webpackage/blob/master/explaine=
rs/navigation-to-unsigned-bundles.md#urls-for-bundle-components</a><o:p><=
/o:p></p></div><div><p class=3DMsoNormal>*&nbsp;<a =
href=3D"https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html" =
target=3D"_blank">https://lists.w3.org/Archives/Public/uri/2019Nov/0000.h=
tml</a><o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Thanks,<o:p></o:p></p></div><div><p =
class=3DMsoNormal>Jeffrey<o:p></o:p></p></div></div></div></div></div><p =
class=3DMsoNormal>_______________________________________________<br>Wpac=
k mailing list<br><a href=3D"mailto:Wpack@ietf.org" =
target=3D"_blank">Wpack@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/wpack" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><o:p></o=
:p></p></blockquote></div></div></div></div></body></html>
------=_NextPart_000_0323_01D63FE4.F78796C0--


From nobody Thu Jun 11 11:47:42 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8CAE3A0D34 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:47:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.25
X-Spam-Level: 
X-Spam-Status: No, score=-9.25 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F5xYMVaxr0Hy for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:47:39 -0700 (PDT)
Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B5E03A0D2F for <wpack@ietf.org>; Thu, 11 Jun 2020 11:47:39 -0700 (PDT)
Received: by mail-qt1-x82d.google.com with SMTP id w9so5377548qtv.3 for <wpack@ietf.org>; Thu, 11 Jun 2020 11:47:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kISE8zrJeeIzTbtnNssRe4uzTSYSzLsm06Ijvd8GQgM=; b=Kzp5EdZ0t8rdn+eekXDmNxfPkfH2KZeUk+3AbUhqzBB/gfEwOlPQjX1Gg9mvoAUX2G vPTcuyAjzClvdn36Nntr/qWkvL8rI+fMoe1gveYS9uRYLNF3BGNnX9YY/2Vtl50Rn4oL wAJROV7lv1pgC65hlO0S8sSWzHoA3cw+AiO2o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kISE8zrJeeIzTbtnNssRe4uzTSYSzLsm06Ijvd8GQgM=; b=RAMIe2ZDtLSYZtNH1/QLLGafnLhZ4jqC0JjCA13zDdIeu35lZLmmak9iY0lfr406J2 /MlGN9KA73otf1kOV4/o49y+3y6KymNZKme1R9c6Rp2qpVbGqVhYdQjKL0jV/7y5usXS ebrUfzknGfakytM7MPhRgOkx8/HMxryEkreybbSIJ7wl/ItNQDG+ObvxVXiuFx4WJGxk 2R71V9THJjSwa4mee2/Rn6Yfl+aF2CVYjy9qTIrOEXyO2CKNFxylXI9iF+x4BuvfWXh7 aXtVNAjTVmoe/rFc9Q7q1wXdaGW8v467/saT4H8AXtbVf7J2UbuH/ugOoMfqsXSqAOIT CHBw==
X-Gm-Message-State: AOAM530lxGwcu5LSIMkYB5yW696XMK91DVK4sJKy13T6KwuBdMEpWMrP SUXGS6gsZ7BW+d3CoZF51TJHMPWHdXgIJAFr2ZvQ0Q==
X-Google-Smtp-Source: ABdhPJz5Q4WByiL9gOJ12B/YUNOYN59+NSfWy1rH6q1HJsZIJ1A0HsU0WGg5ysedAxZDd526r32mCJDnv1B2Qpvf3hU=
X-Received: by 2002:ac8:4e81:: with SMTP id 1mr10548631qtp.364.1591901257669;  Thu, 11 Jun 2020 11:47:37 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com>
In-Reply-To: <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Thu, 11 Jun 2020 11:47:25 -0700
Message-ID: <CANh-dX=AAuQ2Q0fmu6ApU7vtUNm0+KfqbD+VTWD5DMgi0kzHzA@mail.gmail.com>
To: Ted Hardie <ted.ietf@gmail.com>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000fbbd6005a7d3647b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/YxpjowLVyGcfJMcEfQkYbfL5ffI>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 18:47:41 -0000

--000000000000fbbd6005a7d3647b
Content-Type: text/plain; charset="UTF-8"

On Wed, Jun 10, 2020, 3:44 PM Ted Hardie <ted.ietf@gmail.com> wrote:

> Hi Jeffrey,
>
> On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin <jyasskin=
> 40google.com@dmarc.ietf.org> wrote:
>
>> Hi all,
>>
>> I wanted to raise awareness of a discussion about the URL scheme for
>> addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).
>>
>> We seem to be heading toward a URL of the form
>> package:<encoded-package-url>$<encoded-resource-uri>, which for a package
>> URL of https://distributor.example/package.wbn and resource URI of
>> https://publisher.example/page.html?q=query would lead to a URL of:
>>
>>
>> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
>>
>> RFC 3986, section 2.2 notes:
>
>    If data for a URI component would conflict with a reserved
>    character's purpose as a delimiter, then the conflicting data must be
>    percent-encoded before the URI is formed.
>
> Wouldn't that apply to a couple of the delimiters in the package example
> above, e.g. the  ":" in "https:"?  If so, that seems like it would change
> the display form a bit (though not the basic idea).  If that is needed, I
> think it reinforces the notion that showing these to users or expecting the
> users to grok them is a non-starter.
>
> regards,
>
> Ted Hardie
>

I looked at that, and I think it's ok to leave the `:` unescaped.
Specifically, since `:` is only used as a delimiter to separate the scheme,
the later `:`s in the package and resource URLs don't conflict. blob: URLs
<https://w3c.github.io/FileAPI/#blob-url> already do this, and go a bit
farther in leaving their `/`s unescaped too.

We could probably get away without escaping the `/`s here too: the
origin-finding algorithm would split on `$` instead of looking for the
first `/`, but I worry that it would be easier to write bugs in that case,
which could give packaged resources access to their distributor's storage.

Jeffrey

--000000000000fbbd6005a7d3647b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"auto"><div><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Wed, Jun 10, 2020, 3:44 PM Ted Hardie &lt;=
<a href=3D"mailto:ted.ietf@gmail.com" target=3D"_blank">ted.ietf@gmail.com<=
/a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><di=
v dir=3D"ltr">Hi Jeffrey,<br></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yassk=
in &lt;jyasskin=3D<a href=3D"mailto:40google.com@dmarc.ietf.org" rel=3D"nor=
eferrer" target=3D"_blank">40google.com@dmarc.ietf.org</a>&gt; wrote:<br></=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hi a=
ll,<div><br></div><div>I wanted to raise awareness of a discussion about th=
e URL scheme for addressing resources within bundles (draft-yasskin-wpack-b=
undled-exchanges).</div><div><br></div><div>We seem to be heading toward a =
URL of the form package:&lt;encoded-package-url&gt;$&lt;encoded-resource-ur=
i&gt;, which for a package URL of <a href=3D"https://distributor.example/pa=
ckage.wbn" rel=3D"noreferrer" target=3D"_blank">https://distributor.example=
/package.wbn</a> and resource URI of <a href=3D"https://publisher.example/p=
age.html?q=3Dquery" rel=3D"noreferrer" target=3D"_blank">https://publisher.=
example/page.html?q=3Dquery</a> would lead to a URL of:<br></div><br><b>pac=
kage:https:,,distributor.example,package.wbn;q=3Dquery$https:,,publisher.ex=
ample/page.html?q=3Dquery</b><div><br></div></div></blockquote><div>RFC 398=
6, section 2.2 notes:</div><div><pre>   If data for a URI component would c=
onflict with a reserved
   character&#39;s purpose as a delimiter, then the conflicting data must b=
e
   percent-encoded before the URI is formed.
</pre></div><div>Wouldn&#39;t that apply to a couple of the delimiters in t=
he package example above, e.g. the=C2=A0 &quot;:&quot; in &quot;https:&quot=
;?=C2=A0 If so, that seems like it would change the display form a bit (tho=
ugh not the basic idea).=C2=A0 If that is needed, I think it reinforces the=
 notion that showing these to users or expecting the users to grok them is =
a non-starter.</div><div><br></div><div>regards,</div><div><br></div><div>T=
ed Hardie<br></div></div></div></blockquote></div></div><div dir=3D"auto"><=
br></div><div dir=3D"auto">I looked at that, and I think it&#39;s ok to lea=
ve the `:` unescaped. Specifically, since `:` is only used as a delimiter t=
o separate the scheme, the later `:`s in the package and resource URLs don&=
#39;t conflict. <a href=3D"https://w3c.github.io/FileAPI/#blob-url">blob: U=
RLs</a> already do this, and go a bit farther in leaving their `/`s unescap=
ed too.</div><div dir=3D"auto"><br></div><div dir=3D"auto">We could probabl=
y get away without escaping the `/`s here too: the origin-finding algorithm=
 would split on `$` instead of looking for the first `/`, but I worry that =
it would be easier to write bugs in that case, which could give packaged re=
sources access to their distributor&#39;s storage.</div><div dir=3D"auto"><=
br></div><div>Jeffrey</div></div>
</div>

--000000000000fbbd6005a7d3647b--


From nobody Thu Jun 11 12:00:07 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 94E6B3A0F12 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:59:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level: 
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PFouxhOsKBNN for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 11:59:57 -0700 (PDT)
Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC1183A0AA3 for <wpack@ietf.org>; Thu, 11 Jun 2020 11:59:47 -0700 (PDT)
Received: by mail-qk1-x732.google.com with SMTP id q8so6610718qkm.12 for <wpack@ietf.org>; Thu, 11 Jun 2020 11:59:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GAR10bruQWU+FLxtk4icuKknzyALPdezjcTnmk9OO3M=; b=ZEqFS4R4k/MJ1bvsswUAy+rJpATagdfsjl5NhJOaLwPEV3y2/gRX08E09G1vOATvNT RuZ/btEPBZlNT6bS2AVzdc7gS5TcQS4q6E0fcS3c0cXJb0w5qxta2OAdn5h4NCxSYDJO bcQiJ5cinecziSgn2N6SNAConZNc7yDuzDkQpG/nvlYLdOca8qwpsKTNNi15kTwP5NyB acx1BP+Y4LLTZ6OEfOOkVuGvfPJBj+Uz5+7B00cXG7zVN9aDCX+FDMI7JRQknmDqBdF9 gYkOwgouc+Z/iuZ20FFMrXgKEJxOsOE5/MPhSsQVm+iHROWF1Zw6IPSW5FeglMvQOIgT DO2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GAR10bruQWU+FLxtk4icuKknzyALPdezjcTnmk9OO3M=; b=rdoHw2W2Hpi0xvQhTB3l0svmirzZBxzW6mrnSfM4iJU8qEuvdJOS79IZrip51yzhyL y6f85Tf8xLttW1GFBMps0AGHdZV2WB0hHWyax3S6W5tLDEsWxAKvu432BHGqIaFu5qeF tgaSC0WsJPLmhlnJNOcV/eZ94TnJXTsm1ae/xnnUCvB2eCtkminRBeMBncr+4N1eppBt 7BNW5y+nCV9M5jnu0/LDjCNHCGbAtBBQDxJ8vY54/aT9tfZo7aileBV3URrOxHuov5ZU KDVFMPYJfwWovJXvuC6eGHJLKmxzXyAP8Uyku7gSm2TZVRl34gpKQEp3Fu9neYIYwE7i goGQ==
X-Gm-Message-State: AOAM5309bHkt+yBUk6khQCXtQ2QIkLYWpyvt9OP0aldIUhosjC3q/CKP 9QFrW7jbfOQEkyIWykMjDsdzXsU5Q1JJQwxycbguCQ==
X-Google-Smtp-Source: ABdhPJy0wogkZwZFS4Gq7udDua4L0z/7vIctZX2Z5RLH1eWpN5noemC9ey3N9T5D3nGE4Juxt0m+99QRQecNscKB5uY=
X-Received: by 2002:a37:e110:: with SMTP id c16mr10251830qkm.38.1591901986219;  Thu, 11 Jun 2020 11:59:46 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com> <032201d6401f$a3e58460$ebb08d20$@acm.org>
In-Reply-To: <032201d6401f$a3e58460$ebb08d20$@acm.org>
From: Jeffrey Yasskin <jyasskin@google.com>
Date: Thu, 11 Jun 2020 11:59:34 -0700
Message-ID: <CANh-dX=sp-S_DPKO4adFgX3GBpo7QyYD3o7rrUJ+Sv=_qKYPYQ@mail.gmail.com>
To: Larry Masinter <LMM@acm.org>
Cc: Ted Hardie <ted.ietf@gmail.com>, WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000686cdf05a7d390f3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/EYtnuIMWrBkthdZ95nlA9T3-DLU>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 19:00:06 -0000

--000000000000686cdf05a7d390f3
Content-Type: text/plain; charset="UTF-8"

This use of a fragment matches the way the TAG's packaging draft identified
subresources:
https://www.w3.org/TR/2015/WD-web-packaging-20150115/#fragment-identifiers.
I have some discussion of the option at
https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#heading=h.jkcl1u8boyar,
but I realize I didn't include the part that worries me most there:

We need to make the nested URL contribute to the resource's origin, or else
when folks create a bundle of multiple sites for distribution together,
their storage will collide. Including part of the fragment into the origin
would be novel and potentially break assumptions and cause bugs. However,
it could be the best option anyway.

Jeffrey

On Thu, Jun 11, 2020 at 11:39 AM Larry Masinter <LMM@acm.org> wrote:

> I think this would work and avoid some of the squirrely awkward encodings
> , for / etc
>
>
>
>
>
> pkg+
> https://distributor.example/package.wbn#cid=https://publisher.example?q=query
>
>
>
> Define pkg+originalscheme to always returning an application/wbn
> content-type which accepts a fragment identifier which identifies the
> package component.
>
>
>
> This form avoids encoding or transforming any part of the original except
> the scheme and the fragment identifier.
>
>
>
> You can even apply fragment identifier to the publisher URL.
>
>
>
>
>
> *From:* Wpack <wpack-bounces@ietf.org> *On Behalf Of *Ted Hardie
> *Sent:* Wednesday, June 10, 2020 3:44 PM
> *To:* Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>
> *Cc:* WPACK List <wpack@ietf.org>
> *Subject:* Re: [Wpack] package: URL scheme
>
>
>
> Hi Jeffrey,
>
>
>
> On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin <jyasskin=
> 40google.com@dmarc.ietf.org> wrote:
>
> Hi all,
>
>
>
> I wanted to raise awareness of a discussion about the URL scheme for
> addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).
>
>
>
> We seem to be heading toward a URL of the form
> package:<encoded-package-url>$<encoded-resource-uri>, which for a package
> URL of https://distributor.example/package.wbn and resource URI of
> https://publisher.example/page.html?q=query would lead to a URL of:
>
>
>
> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
>
>
>
> RFC 3986, section 2.2 notes:
>
>    If data for a URI component would conflict with a reserved
>
>    character's purpose as a delimiter, then the conflicting data must be
>
>    percent-encoded before the URI is formed.
>
> Wouldn't that apply to a couple of the delimiters in the package example
> above, e.g. the  ":" in "https:"?  If so, that seems like it would change
> the display form a bit (though not the basic idea).  If that is needed, I
> think it reinforces the notion that showing these to users or expecting the
> users to grok them is a non-starter.
>
>
>
> regards,
>
>
>
> Ted Hardie
>
>
>
>
>
> This arises from several considerations:
>
> 1. A bundle is served from a URL.
>
> 2. After a user downloads the bundle, it gets a new URL, often file:///...
>
> 3. We can also hash the bundle to get a URI that stays stable across
> transfers.
>
> 4. Resources inside a bundle are named by URIs (which, since the bundle
> has an index, are also URLs even if, like urn:uuid:..., they wouldn't
> normally be locators).
>
> 5. Once a user downloads a bundle, for web browsers to give its content
> storage that's persistent across reloads, as requested in
> https://github..com/WICG/webpackage/issues/498
> <https://github.com/WICG/webpackage/issues/498>, the content needs to be
> assigned a non-opaque origin.
>
>
>
> I'm updating one of the documents about this in
> https://github.com/WICG/webpackage/pull/584 and would welcome comments
> here or there.
>
>
>
> The URLs are obviously gross, so
> https://github.com/WICG/webpackage/pull/560 suggests that browsers avoid
> showing them to users in most cases.
>
>
>
> We could potentially simplify things if packages named things with just
> paths instead of full URIs. We'd then name things based on the bundle's
> origin. However, this loses archiving use cases.
>
>
>
> This is all further discussed in the following documents and issues, but
> you shouldn't feel responsible to read everything here:
>
>
>
> *
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
> <https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit>
>
> *
> https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80
> <https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
>
> * https://github.com/WICG/webpackage/issues/583
>
> *
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
>
> * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
>
>
>
> Thanks,
>
> Jeffrey
>
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org
> https://www.ietf.org/mailman/listinfo/wpack
>
>

--000000000000686cdf05a7d390f3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>This use of a fragment matches the way the TAG&#39;s =
packaging draft identified subresources:=C2=A0<a href=3D"https://www.w3.org=
/TR/2015/WD-web-packaging-20150115/#fragment-identifiers">https://www.w3.or=
g/TR/2015/WD-web-packaging-20150115/#fragment-identifiers</a>. I have some =
discussion of the option at=C2=A0<a href=3D"https://docs.google.com/documen=
t/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#heading=3Dh.jkcl1u8bo=
yar">https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y=
0pLaFJQoo/edit#heading=3Dh.jkcl1u8boyar</a>, but I realize I didn&#39;t inc=
lude the part that worries me most there:</div><div><br></div><div>We need =
to make the nested URL contribute to the resource&#39;s origin, or else whe=
n folks create a bundle of multiple sites for distribution together, their =
storage will collide. Including part of the fragment into the origin would=
=C2=A0be novel and potentially break assumptions and cause bugs. However, i=
t could=C2=A0be the best option anyway.</div><div><br></div><div>Jeffrey</d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On =
Thu, Jun 11, 2020 at 11:39 AM Larry Masinter &lt;<a href=3D"mailto:LMM@acm.=
org">LMM@acm.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex"><div lang=3D"EN-US"><div><p class=3D"MsoNormal">I think thi=
s would work and avoid some of the squirrely awkward encodings , for / etc<=
u></u><u></u></p><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><p class=3D=
"MsoNormal"><u></u>=C2=A0<u></u></p><p class=3D"MsoNormal"> pkg+<a href=3D"=
https://distributor.example/package.wbn#cid=3Dhttps://publisher.example?q=
=3Dquery" target=3D"_blank">https://distributor.example/package.wbn#cid=3Dh=
ttps://publisher.example?q=3Dquery</a> <u></u><u></u></p><p class=3D"MsoNor=
mal"><u></u>=C2=A0<u></u></p><p class=3D"MsoNormal">Define pkg+originalsche=
me to always returning an application/wbn content-type which accepts a frag=
ment identifier which identifies the package component.<u></u><u></u></p><p=
 class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><p class=3D"MsoNormal">This fo=
rm avoids encoding or transforming any part of the original except the sche=
me and the fragment identifier.<u></u><u></u></p><p class=3D"MsoNormal"><u>=
</u>=C2=A0<u></u></p><p class=3D"MsoNormal">You can even apply fragment ide=
ntifier to the publisher URL.<u></u><u></u></p><p class=3D"MsoNormal"><u></=
u>=C2=A0<u></u></p><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><div styl=
e=3D"border-top:none;border-right:none;border-bottom:none;border-left:1.5pt=
 solid blue;padding:0in 0in 0in 4pt"><div><div style=3D"border-right:none;b=
order-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);pa=
dding:3pt 0in 0in"><p class=3D"MsoNormal"><b>From:</b> Wpack &lt;<a href=3D=
"mailto:wpack-bounces@ietf.org" target=3D"_blank">wpack-bounces@ietf.org</a=
>&gt; <b>On Behalf Of </b>Ted Hardie<br><b>Sent:</b> Wednesday, June 10, 20=
20 3:44 PM<br><b>To:</b> Jeffrey Yasskin &lt;jyasskin=3D<a href=3D"mailto:4=
0google.com@dmarc.ietf.org" target=3D"_blank">40google.com@dmarc.ietf.org</=
a>&gt;<br><b>Cc:</b> WPACK List &lt;<a href=3D"mailto:wpack@ietf.org" targe=
t=3D"_blank">wpack@ietf.org</a>&gt;<br><b>Subject:</b> Re: [Wpack] package:=
 URL scheme<u></u><u></u></p></div></div><p class=3D"MsoNormal"><u></u>=C2=
=A0<u></u></p><div><div><p class=3D"MsoNormal">Hi Jeffrey,<u></u><u></u></p=
></div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><div><div><p class=3D=
"MsoNormal">On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin &lt;jyasskin=3D=
<a href=3D"mailto:40google.com@dmarc.ietf.org" target=3D"_blank">40google.c=
om@dmarc.ietf.org</a>&gt; wrote:<u></u><u></u></p></div><blockquote><div><p=
 class=3D"MsoNormal">Hi all,<u></u><u></u></p><div><p class=3D"MsoNormal"><=
u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNormal">I wanted to raise =
awareness of a discussion about the URL scheme for addressing resources wit=
hin bundles (draft-yasskin-wpack-bundled-exchanges).<u></u><u></u></p></div=
><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p class=3D=
"MsoNormal">We seem to be heading toward a URL of the form package:&lt;enco=
ded-package-url&gt;$&lt;encoded-resource-uri&gt;, which for a package URL o=
f <a href=3D"https://distributor.example/package.wbn" target=3D"_blank">htt=
ps://distributor.example/package.wbn</a> and resource URI of <a href=3D"htt=
ps://publisher.example/page.html?q=3Dquery" target=3D"_blank">https://publi=
sher.example/page.html?q=3Dquery</a> would lead to a URL of:<u></u><u></u><=
/p></div><p class=3D"MsoNormal"><br><b>package:https:,,distributor.example,=
package.wbn;q=3Dquery$https:,,publisher.example/page.html?q=3Dquery</b><u><=
/u><u></u></p><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div></d=
iv></blockquote><div><p class=3D"MsoNormal">RFC 3986, section 2.2 notes:<u>=
</u><u></u></p></div><div><pre>=C2=A0=C2=A0 If data for a URI component wou=
ld conflict with a reserved<u></u><u></u></pre><pre>=C2=A0=C2=A0 character&=
#39;s purpose as a delimiter, then the conflicting data must be<u></u><u></=
u></pre><pre>=C2=A0=C2=A0 percent-encoded before the URI is formed.<u></u><=
u></u></pre></div><div><p class=3D"MsoNormal">Wouldn&#39;t that apply to a =
couple of the delimiters in the package example above, e.g. the=C2=A0 &quot=
;:&quot; in &quot;https:&quot;?=C2=A0 If so, that seems like it would chang=
e the display form a bit (though not the basic idea).=C2=A0 If that is need=
ed, I think it reinforces the notion that showing these to users or expecti=
ng the users to grok them is a non-starter.<u></u><u></u></p></div><div><p =
class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNorma=
l">regards,<u></u><u></u></p></div><div><p class=3D"MsoNormal"><u></u>=C2=
=A0<u></u></p></div><div><p class=3D"MsoNormal">Ted Hardie<u></u><u></u></p=
></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p cl=
ass=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><blockquote><div><div><p cl=
ass=3D"MsoNormal">This arises from several considerations:<u></u><u></u></p=
></div><div><div><p class=3D"MsoNormal">1. A bundle is served from=C2=A0a U=
RL.<u></u><u></u></p></div><div><p class=3D"MsoNormal">2. After a user down=
loads the bundle, it gets a new URL, often <a>file:///</a>...<u></u><u></u>=
</p></div><div><p class=3D"MsoNormal">3. We can also hash the bundle to get=
 a URI that stays stable across transfers.<u></u><u></u></p></div><div><p c=
lass=3D"MsoNormal">4. Resources inside a bundle are named by URIs (which, s=
ince the bundle has an index, are also URLs even if, like urn:uuid:..., the=
y wouldn&#39;t normally be locators).<u></u><u></u></p></div><div><p class=
=3D"MsoNormal">5. Once a user downloads a bundle, for web browsers to give =
its content storage that&#39;s persistent across reloads, as requested in=
=C2=A0<a href=3D"https://github.com/WICG/webpackage/issues/498" target=3D"_=
blank">https://github..com/WICG/webpackage/issues/498</a>, the content need=
s to be assigned a non-opaque origin.<u></u><u></u></p></div><div><p class=
=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNormal">I&=
#39;m updating one of the documents about this in=C2=A0<a href=3D"https://g=
ithub.com/WICG/webpackage/pull/584" target=3D"_blank">https://github.com/WI=
CG/webpackage/pull/584</a>=C2=A0and would welcome comments here or there.<u=
></u><u></u></p><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><=
div><p class=3D"MsoNormal">The URLs are obviously gross, so=C2=A0<a href=3D=
"https://github.com/WICG/webpackage/pull/560" target=3D"_blank">https://git=
hub.com/WICG/webpackage/pull/560</a>=C2=A0suggests that browsers avoid show=
ing them to users in most cases.=C2=A0<u></u><u></u></p></div><div><p class=
=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNormal">We=
 could potentially simplify things if packages named things with just paths=
 instead of full URIs. We&#39;d then name things based on the bundle&#39;s =
origin. However, this loses archiving use cases.<u></u><u></u></p></div><di=
v><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><div><p class=
=3D"MsoNormal">This is all further discussed in the following documents and=
 issues, but you shouldn&#39;t feel responsible to read everything here:<u>=
</u><u></u></p></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></=
div><div><p class=3D"MsoNormal">*=C2=A0<a href=3D"https://docs.google.com/d=
ocument/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit" target=3D"_bla=
nk">https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0=
pLaFJQoo/edit#</a><u></u><u></u></p></div><div><p class=3D"MsoNormal">*=C2=
=A0<a href=3D"https://chromium-review.googlesource.com/c/chromium/src/+/222=
6248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80" target=3D"_blank">=
https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#messag=
e-0a3efda5aff84770a1729422a5b26aeca3ee4e80</a><u></u><u></u></p></div><div>=
<p class=3D"MsoNormal">*=C2=A0<a href=3D"https://github.com/WICG/webpackage=
/issues/583" target=3D"_blank">https://github.com/WICG/webpackage/issues/58=
3</a><u></u><u></u></p></div><div><p class=3D"MsoNormal">*=C2=A0<a href=3D"=
https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-uns=
igned-bundles.md#urls-for-bundle-components" target=3D"_blank">https://gith=
ub.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundle=
s.md#urls-for-bundle-components</a><u></u><u></u></p></div><div><p class=3D=
"MsoNormal">*=C2=A0<a href=3D"https://lists.w3.org/Archives/Public/uri/2019=
Nov/0000.html" target=3D"_blank">https://lists.w3.org/Archives/Public/uri/2=
019Nov/0000.html</a><u></u><u></u></p></div><div><p class=3D"MsoNormal"><u>=
</u>=C2=A0<u></u></p></div><div><p class=3D"MsoNormal">Thanks,<u></u><u></u=
></p></div><div><p class=3D"MsoNormal">Jeffrey<u></u><u></u></p></div></div=
></div></div></div><p class=3D"MsoNormal">_________________________________=
______________<br>Wpack mailing list<br><a href=3D"mailto:Wpack@ietf.org" t=
arget=3D"_blank">Wpack@ietf.org</a><br><a href=3D"https://www.ietf.org/mail=
man/listinfo/wpack" target=3D"_blank">https://www.ietf.org/mailman/listinfo=
/wpack</a><u></u><u></u></p></blockquote></div></div></div></div></div></bl=
ockquote></div></div>

--000000000000686cdf05a7d390f3--


From nobody Thu Jun 11 14:07:28 2020
Return-Path: <ted.ietf@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E5B13A08E1 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:07:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VWHOGUP_UQEy for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:07:24 -0700 (PDT)
Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com [IPv6:2607:f8b0:4864:20::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA0843A08DB for <wpack@ietf.org>; Thu, 11 Jun 2020 14:07:24 -0700 (PDT)
Received: by mail-oi1-x235.google.com with SMTP id p70so6709771oic.12 for <wpack@ietf.org>; Thu, 11 Jun 2020 14:07:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+m5ri6waean7hoFr7XmJCp0PdsARpVSJlaeQluXCro0=; b=ga5oyxoKnA8JRzG1pUTy22o91L6t14X/Qi5WPd8Y8g3KXZjmHo/GOAeBgAu78rDOST gtdEzDZFbyiGhQQg4aCZzdCoIdHU14gLRUCa5ow8Yxqbb6qzgxRo7+rpx4RgxlupsdYb AdP1jKkhOYbthc2W3S3b0Xs40XTmDUq36GTb4bzRDFxQGf/+Cqhkr+BSIPyoNSzDMLBD OwWaB8eSO9+C8Gpmh1EynSZ7jENp5xS1w571/i18Y5pHRd13xxHhv63OqcoasSxW+a/L 8N+b+cDOTcTTh5fUw8TwuhkIHW76Iu3FDKjbRo4vbHAZ6Y01fovvi7JqPso6I3nOAiA3 s+wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+m5ri6waean7hoFr7XmJCp0PdsARpVSJlaeQluXCro0=; b=XUBDxnLl0AelEFKAj6H6MoMmSwNXpETjd5uorQgQGFJWUQLHb2mRoCQSgbhRO/75SA bwcvQbcjLFwEME3IisWYFSDxrrTLg13MyNQRjSEws4yoXv3FWFBUnwhmmf0ImYo+1ajP BHVEAJznNALK9hsXTFvuZ25ILuyU78zypZG3WbxYGAJywzR8+B5ssja8lYlMxonsxeAU cjWSXSquy+Bnl+FeDvwHmilDkioWPfevYydsyzECF8GTQYl4SkV28icAC0mmhYVMFODl cUnjPzb2TgqHSdKg3G/vF8PDps3lnvyCn7EGTbs92EWSb8Po3UtLdHmn3VZ8zf3wLDBR M9+w==
X-Gm-Message-State: AOAM5310oE1ExxVx6mM1Z5pAnE5TrIJwd93X70npQiVZuhMXu1O+cml9 X2bsggNR+kIyKC+Q0F5IeiYgql37hMQhdlcshJbt4A==
X-Google-Smtp-Source: ABdhPJyy5O2WIX/V4trfAQq4THMluc2+jUE1ZqxLd0/10P/tLNCw8XLSBHk3Wpu+AYPOGb3RFpHIsYzbPAnwO1cFJRM=
X-Received: by 2002:a54:4795:: with SMTP id o21mr7508734oic.74.1591909644059;  Thu, 11 Jun 2020 14:07:24 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com> <CANh-dX=AAuQ2Q0fmu6ApU7vtUNm0+KfqbD+VTWD5DMgi0kzHzA@mail.gmail.com>
In-Reply-To: <CANh-dX=AAuQ2Q0fmu6ApU7vtUNm0+KfqbD+VTWD5DMgi0kzHzA@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Thu, 11 Jun 2020 14:06:57 -0700
Message-ID: <CA+9kkMBxJ3Jb2mD27hRgD_+eGbsfXX=MDDZEo6yFzuaAF9Ta4Q@mail.gmail.com>
To: Jeffrey Yasskin <jyasskin@chromium.org>
Cc: Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d949c205a7d55864"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/FGDVAaeiObZHKC06QMVv6Ls9M1E>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 21:07:27 -0000

--000000000000d949c205a7d55864
Content-Type: text/plain; charset="UTF-8"

Howdy,

On Thu, Jun 11, 2020 at 11:47 AM Jeffrey Yasskin <jyasskin@chromium.org>
wrote:

> On Wed, Jun 10, 2020, 3:44 PM Ted Hardie <ted.ietf@gmail.com> wrote:
>
>> Hi Jeffrey,
>>
>> On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin <jyasskin=
>> 40google.com@dmarc.ietf.org> wrote:
>>
>>> Hi all,
>>>
>>> I wanted to raise awareness of a discussion about the URL scheme for
>>> addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).
>>>
>>> We seem to be heading toward a URL of the form
>>> package:<encoded-package-url>$<encoded-resource-uri>, which for a package
>>> URL of https://distributor.example/package.wbn and resource URI of
>>> https://publisher.example/page.html?q=query would lead to a URL of:
>>>
>>>
>>> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
>>>
>>> RFC 3986, section 2.2 notes:
>>
>>    If data for a URI component would conflict with a reserved
>>    character's purpose as a delimiter, then the conflicting data must be
>>    percent-encoded before the URI is formed.
>>
>> Wouldn't that apply to a couple of the delimiters in the package example
>> above, e.g. the  ":" in "https:"?  If so, that seems like it would change
>> the display form a bit (though not the basic idea).  If that is needed, I
>> think it reinforces the notion that showing these to users or expecting the
>> users to grok them is a non-starter.
>>
>> regards,
>>
>> Ted Hardie
>>
>
> I looked at that, and I think it's ok to leave the `:` unescaped.
> Specifically, since `:` is only used as a delimiter to separate the scheme,
> the later `:`s in the package and resource URLs don't conflict. blob: URLs
> <https://w3c.github.io/FileAPI/#blob-url> already do this, and go a bit
> farther in leaving their `/`s unescaped too.
>

It's certainly the case that some schemes permit ":" after the scheme to be
presented unescaped (URNs require one, separating the NID from NSS).  My
concern here is really that these constructions, including the later ":"s ,
are actually being used in ways that might be read as conflicting with
their original purpose as delimiters.  "https:" occurs multiple times with
contextual cues on meaning, in essence.  That might be okay, but I think
the percent encoded version might match expected practice  bit better.
It's unreadable to the end user, but I think that true either way.

Is your concern with that approach that the origin-matching code might have
forgiving  algorithms for matching against percent-encoded elements of URIs?

regards,

Ted


>
> We could probably get away without escaping the `/`s here too: the
> origin-finding algorithm would split on `$` instead of looking for the
> first `/`, but I worry that it would be easier to write bugs in that case,
> which could give packaged resources access to their distributor's storage.
>




>
> Jeffrey
>

--000000000000d949c205a7d55864
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Howdy,<br></div><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jun 11, 2020 at 11:47 A=
M Jeffrey Yasskin &lt;<a href=3D"mailto:jyasskin@chromium.org">jyasskin@chr=
omium.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div dir=3D"ltr"><div dir=3D"auto"><div><div class=3D"gmail_quot=
e"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jun 10, 2020, 3:44 PM Ted =
Hardie &lt;<a href=3D"mailto:ted.ietf@gmail.com" target=3D"_blank">ted.ietf=
@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr">Hi Jeffrey,<br></div><br><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jun 10,=
 2020 at 3:00 PM Jeffrey Yasskin &lt;jyasskin=3D<a href=3D"mailto:40google.=
com@dmarc.ietf.org" rel=3D"noreferrer" target=3D"_blank">40google.com@dmarc=
.ietf.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div dir=3D"ltr">Hi all,<div><br></div><div>I wanted to raise aw=
areness of a discussion about the URL scheme for addressing resources withi=
n bundles (draft-yasskin-wpack-bundled-exchanges).</div><div><br></div><div=
>We seem to be heading toward a URL of the form package:&lt;encoded-package=
-url&gt;$&lt;encoded-resource-uri&gt;, which for a package URL of <a href=
=3D"https://distributor.example/package.wbn" rel=3D"noreferrer" target=3D"_=
blank">https://distributor.example/package.wbn</a> and resource URI of <a h=
ref=3D"https://publisher.example/page.html?q=3Dquery" rel=3D"noreferrer" ta=
rget=3D"_blank">https://publisher.example/page.html?q=3Dquery</a> would lea=
d to a URL of:<br></div><br><b>package:https:,,distributor.example,package.=
wbn;q=3Dquery$https:,,publisher.example/page.html?q=3Dquery</b><div><br></d=
iv></div></blockquote><div>RFC 3986, section 2.2 notes:</div><div><pre>   I=
f data for a URI component would conflict with a reserved
   character&#39;s purpose as a delimiter, then the conflicting data must b=
e
   percent-encoded before the URI is formed.
</pre></div><div>Wouldn&#39;t that apply to a couple of the delimiters in t=
he package example above, e.g. the=C2=A0 &quot;:&quot; in &quot;https:&quot=
;?=C2=A0 If so, that seems like it would change the display form a bit (tho=
ugh not the basic idea).=C2=A0 If that is needed, I think it reinforces the=
 notion that showing these to users or expecting the users to grok them is =
a non-starter.</div><div><br></div><div>regards,</div><div><br></div><div>T=
ed Hardie<br></div></div></div></blockquote></div></div><div dir=3D"auto"><=
br></div><div dir=3D"auto">I looked at that, and I think it&#39;s ok to lea=
ve the `:` unescaped. Specifically, since `:` is only used as a delimiter t=
o separate the scheme, the later `:`s in the package and resource URLs don&=
#39;t conflict. <a href=3D"https://w3c.github.io/FileAPI/#blob-url" target=
=3D"_blank">blob: URLs</a> already do this, and go a bit farther in leaving=
 their `/`s unescaped too.</div></div></div></blockquote><div><br></div><di=
v>It&#39;s certainly the case that some schemes permit &quot;:&quot; after =
the scheme to be presented unescaped (URNs require one, separating the NID =
from NSS).=C2=A0 My concern here is really that these constructions, includ=
ing the later &quot;:&quot;s , are actually being used in ways that might b=
e read as conflicting with their original purpose as delimiters.=C2=A0 &quo=
t;https:&quot; occurs multiple times with contextual cues on meaning, in es=
sence.=C2=A0 That might be okay, but I think the percent encoded version mi=
ght match expected practice=C2=A0 bit better.=C2=A0 It&#39;s unreadable to =
the end user, but I think that true either way. <br></div><div><br></div><d=
iv>Is your concern with that approach that the origin-matching code might h=
ave forgiving=C2=A0 algorithms for matching against percent-encoded element=
s of URIs?</div><div><br></div><div>regards,</div><div><br></div><div>Ted<b=
r></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">=
<div dir=3D"ltr"><div dir=3D"auto"><div dir=3D"auto"><br></div><div dir=3D"=
auto">We could probably get away without escaping the `/`s here too: the or=
igin-finding algorithm would split on `$` instead of looking for the first =
`/`, but I worry that it would be easier to write bugs in that case, which =
could give packaged resources access to their distributor&#39;s storage.</d=
iv></div></div></blockquote><div><br></div><div><br></div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=
=3D"auto"><div dir=3D"auto"><br></div><div>Jeffrey</div></div>
</div>
</blockquote></div></div>

--000000000000d949c205a7d55864--


From nobody Thu Jun 11 14:33:20 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0FC93A0A26 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:33:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.25
X-Spam-Level: 
X-Spam-Status: No, score=-9.25 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 49Un_maqPKhe for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:33:17 -0700 (PDT)
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E07A03A0A21 for <wpack@ietf.org>; Thu, 11 Jun 2020 14:33:16 -0700 (PDT)
Received: by mail-qv1-xf2a.google.com with SMTP id y9so3446263qvs.4 for <wpack@ietf.org>; Thu, 11 Jun 2020 14:33:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/Rv9pZ2ytZfygWbN8M9hhor2/ZwUHWhCHwkjrpB9Jsc=; b=P7mFuhq1cMgvJZRmY4EJpKPuuyvp5uVSemX6qbwBhqarAsP6UAtNk/99ADj3k8h2XB J4lypjPs4Tb/w1J3VzD7TTeMSoJ277SLUa3JiEz5WGPTId4dmkgSMYVqzaFIk+MpYJ2D 29ElvlTsguL5FfhaAsIqceIBn8PacDk20Nrlk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/Rv9pZ2ytZfygWbN8M9hhor2/ZwUHWhCHwkjrpB9Jsc=; b=mVJZ4sQxJR4CKuDobmV1kvLhO04szeP/wgd1cpyqaAvJlnTmWPy/cSUdnCtb07Ny5x Xoen0bT3DJ3x4bgms81lIJHowYdO94Rf8p6gG7GllBAV/m3QZ4mwXssoIw5+CtLc6olR X+mrtQYr4YgsFc6pYAwYQEeIE7HUqqMMmdUIO95Vd+cHdQjLxTvTuwNfkXbSEgU/o6fA jMVJ8L0DOFGcUdHuWo7fMH80KFi5LAS6J7eNuTAjS7q8beekHqCeLycUNceUJP+FrwQ3 4N1zZhcEbJbl1nXods/gc3lFt5R5lIpkiZT+HnfeO2UuHpBjou2/QJJOPwnmOtR+YVlX sV9A==
X-Gm-Message-State: AOAM5327/11/oyOOnJwPfrznHbsOesqvAlXqFM7C8/Ko705+LZsjfwq/ +WdZSEOgZv70vBagbXrtEATnuY0WqYtzO/CkbNZTZg==
X-Google-Smtp-Source: ABdhPJyB4+VO31fOiG9+AIv0cvFY5cxHMJPS3IGWIPqpinNiqRfXDRz3Pl2ivogVDAm5PxNUZ2pDNSMktz4PiMb2fNM=
X-Received: by 2002:ac8:4e81:: with SMTP id 1mr6422qtp.364.1591911194854; Thu, 11 Jun 2020 14:33:14 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com> <CANh-dX=AAuQ2Q0fmu6ApU7vtUNm0+KfqbD+VTWD5DMgi0kzHzA@mail.gmail.com> <CA+9kkMBxJ3Jb2mD27hRgD_+eGbsfXX=MDDZEo6yFzuaAF9Ta4Q@mail.gmail.com>
In-Reply-To: <CA+9kkMBxJ3Jb2mD27hRgD_+eGbsfXX=MDDZEo6yFzuaAF9Ta4Q@mail.gmail.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Thu, 11 Jun 2020 14:33:03 -0700
Message-ID: <CANh-dXkR6MZQL-zW7yaR+BkHG-80tx0z=y7nEDjq1G9G+UHjCg@mail.gmail.com>
To: Ted Hardie <ted.ietf@gmail.com>
Cc: Jeffrey Yasskin <jyasskin@chromium.org>,  Jeffrey Yasskin <jyasskin=40google.com@dmarc.ietf.org>, WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000490e1e05a7d5b521"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/6jp3OOnRNbrceXv1vCiJN6pjWZo>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 21:33:19 -0000

--000000000000490e1e05a7d5b521
Content-Type: text/plain; charset="UTF-8"

On Thu, Jun 11, 2020 at 2:07 PM Ted Hardie <ted.ietf@gmail.com> wrote:

> Howdy,
>
> On Thu, Jun 11, 2020 at 11:47 AM Jeffrey Yasskin <jyasskin@chromium.org>
> wrote:
>
>> On Wed, Jun 10, 2020, 3:44 PM Ted Hardie <ted.ietf@gmail.com> wrote:
>>
>>> Hi Jeffrey,
>>>
>>> On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin <jyasskin=
>>> 40google.com@dmarc.ietf.org> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I wanted to raise awareness of a discussion about the URL scheme for
>>>> addressing resources within bundles (draft-yasskin-wpack-bundled-exchanges).
>>>>
>>>> We seem to be heading toward a URL of the form
>>>> package:<encoded-package-url>$<encoded-resource-uri>, which for a package
>>>> URL of https://distributor.example/package.wbn and resource URI of
>>>> https://publisher.example/page.html?q=query would lead to a URL of:
>>>>
>>>>
>>>> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
>>>>
>>>> RFC 3986, section 2.2 notes:
>>>
>>>    If data for a URI component would conflict with a reserved
>>>    character's purpose as a delimiter, then the conflicting data must be
>>>    percent-encoded before the URI is formed.
>>>
>>> Wouldn't that apply to a couple of the delimiters in the package example
>>> above, e.g. the  ":" in "https:"?  If so, that seems like it would change
>>> the display form a bit (though not the basic idea).  If that is needed, I
>>> think it reinforces the notion that showing these to users or expecting the
>>> users to grok them is a non-starter.
>>>
>>> regards,
>>>
>>> Ted Hardie
>>>
>>
>> I looked at that, and I think it's ok to leave the `:` unescaped.
>> Specifically, since `:` is only used as a delimiter to separate the scheme,
>> the later `:`s in the package and resource URLs don't conflict. blob:
>> URLs <https://w3c.github.io/FileAPI/#blob-url> already do this, and go a
>> bit farther in leaving their `/`s unescaped too.
>>
>
> It's certainly the case that some schemes permit ":" after the scheme to
> be presented unescaped (URNs require one, separating the NID from NSS).  My
> concern here is really that these constructions, including the later ":"s ,
> are actually being used in ways that might be read as conflicting with
> their original purpose as delimiters.  "https:" occurs multiple times with
> contextual cues on meaning, in essence.  That might be okay, but I think
> the percent encoded version might match expected practice  bit better.
> It's unreadable to the end user, but I think that true either way.
>
> Is your concern with that approach that the origin-matching code might
> have forgiving  algorithms for matching against percent-encoded elements of
> URIs?
>

I think there are two questions here:

1) Do we need to encode the embedded ":"s at all?
2) Should we encode by replacing with subdelimiters (
https://tools.ietf.org/html/rfc3986#section-2.2), or by percent-encoding?

I'm fairly neutral on encoding ":"s at all. I think it's unnecessary, but
not particularly harmful.

On percent-encoding vs replacement, I think there are several levels of
readability. It's true that we shouldn't expect end-users to read these at
all (and that Larry's suggestion is a win on that front), but when
developers are trying to debug problems, I think 'package:https!,,' is
easier to check than 'package:https%3A%2F%2F'.

I'm not currently worried that origin-matching code will be too forgiving
about percent-encoded elements, and I don't think that worry would
distinguish our proposals. Even my current proposal can result in
percent-encoding inside the origin: a bundle distributed from `
https://example/path;param/bundle` would have resource URLs starting with
`package:https:,,example,path%3Bparam,bundle$` to distinguish it from the
bundle at `https://example/path?param/bundle`.

Jeffrey

--000000000000490e1e05a7d5b521
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">On Thu, Jun 11, 2020 at 2:07 PM Ted Hardi=
e &lt;<a href=3D"mailto:ted.ietf@gmail.com">ted.ietf@gmail.com</a>&gt; wrot=
e:<br></div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr">Howdy,<br></div><br><div cl=
ass=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jun 11, 2=
020 at 11:47 AM Jeffrey Yasskin &lt;<a href=3D"mailto:jyasskin@chromium.org=
" target=3D"_blank">jyasskin@chromium.org</a>&gt; wrote:<br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"auto"=
><div><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On W=
ed, Jun 10, 2020, 3:44 PM Ted Hardie &lt;<a href=3D"mailto:ted.ietf@gmail.c=
om" target=3D"_blank">ted.ietf@gmail.com</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr">H=
i Jeffrey,<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Wed, Jun 10, 2020 at 3:00 PM Jeffrey Yasskin &lt;jyasski=
n=3D<a href=3D"mailto:40google.com@dmarc.ietf.org" rel=3D"noreferrer" targe=
t=3D"_blank">40google.com@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hi all,<div><br></=
div><div>I wanted to raise awareness of a discussion about the URL scheme f=
or addressing resources within bundles (draft-yasskin-wpack-bundled-exchang=
es).</div><div><br></div><div>We seem to be heading toward a URL of the for=
m package:&lt;encoded-package-url&gt;$&lt;encoded-resource-uri&gt;, which f=
or a package URL of <a href=3D"https://distributor.example/package.wbn" rel=
=3D"noreferrer" target=3D"_blank">https://distributor.example/package.wbn</=
a> and resource URI of <a href=3D"https://publisher.example/page.html?q=3Dq=
uery" rel=3D"noreferrer" target=3D"_blank">https://publisher.example/page.h=
tml?q=3Dquery</a> would lead to a URL of:<br></div><br><b>package:https:,,d=
istributor.example,package.wbn;q=3Dquery$https:,,publisher.example/page.htm=
l?q=3Dquery</b><div><br></div></div></blockquote><div>RFC 3986, section 2.2=
 notes:</div><div><pre>   If data for a URI component would conflict with a=
 reserved
   character&#39;s purpose as a delimiter, then the conflicting data must b=
e
   percent-encoded before the URI is formed.
</pre></div><div>Wouldn&#39;t that apply to a couple of the delimiters in t=
he package example above, e.g. the=C2=A0 &quot;:&quot; in &quot;https:&quot=
;?=C2=A0 If so, that seems like it would change the display form a bit (tho=
ugh not the basic idea).=C2=A0 If that is needed, I think it reinforces the=
 notion that showing these to users or expecting the users to grok them is =
a non-starter.</div><div><br></div><div>regards,</div><div><br></div><div>T=
ed Hardie<br></div></div></div></blockquote></div></div><div dir=3D"auto"><=
br></div><div dir=3D"auto">I looked at that, and I think it&#39;s ok to lea=
ve the `:` unescaped. Specifically, since `:` is only used as a delimiter t=
o separate the scheme, the later `:`s in the package and resource URLs don&=
#39;t conflict. <a href=3D"https://w3c.github.io/FileAPI/#blob-url" target=
=3D"_blank">blob: URLs</a> already do this, and go a bit farther in leaving=
 their `/`s unescaped too.</div></div></div></blockquote><div><br></div><di=
v>It&#39;s certainly the case that some schemes permit &quot;:&quot; after =
the scheme to be presented unescaped (URNs require one, separating the NID =
from NSS).=C2=A0 My concern here is really that these constructions, includ=
ing the later &quot;:&quot;s , are actually being used in ways that might b=
e read as conflicting with their original purpose as delimiters.=C2=A0 &quo=
t;https:&quot; occurs multiple times with contextual cues on meaning, in es=
sence.=C2=A0 That might be okay, but I think the percent encoded version mi=
ght match expected practice=C2=A0 bit better.=C2=A0 It&#39;s unreadable to =
the end user, but I think that true either way. <br></div><div><br></div><d=
iv>Is your concern with that approach that the origin-matching code might h=
ave forgiving=C2=A0 algorithms for matching against percent-encoded element=
s of URIs?</div></div></div></blockquote><div><br></div><div>I think there =
are two questions here:</div><div><br></div><div>1) Do we need to encode th=
e embedded &quot;:&quot;s at all?</div><div>2) Should we encode by replacin=
g with subdelimiters=C2=A0(<a href=3D"https://tools.ietf.org/html/rfc3986#s=
ection-2.2">https://tools.ietf.org/html/rfc3986#section-2.2</a>), or by per=
cent-encoding?</div><div><br></div><div>I&#39;m fairly neutral on encoding =
&quot;:&quot;s at all. I think it&#39;s unnecessary, but not particularly h=
armful.</div><div><br></div><div>On percent-encoding vs replacement, I thin=
k there are several levels of readability. It&#39;s true that we shouldn&#3=
9;t expect end-users to read these at all (and that Larry&#39;s suggestion =
is a win on that front), but when developers are trying to debug problems, =
I think &#39;package:https!,,&#39; is easier to check than &#39;package:htt=
ps%3A%2F%2F&#39;.</div><div><br></div><div>I&#39;m not currently worried th=
at origin-matching code will be too forgiving about percent-encoded element=
s, and I don&#39;t think that worry would distinguish our proposals. Even m=
y current proposal can result in percent-encoding inside the origin: a bund=
le distributed from `<a href=3D"https://example/path;param/bundle`">https:/=
/example/path;param/bundle`</a> would have resource URLs starting with `pac=
kage:https:,,example,path%3Bparam,bundle$` to distinguish it from the bundl=
e at `<a href=3D"https://example/path?param/bundle`">https://example/path?p=
aram/bundle`</a>.</div><div><br></div><div>Jeffrey</div></div></div>

--000000000000490e1e05a7d5b521--


From nobody Thu Jun 11 14:36:39 2020
Return-Path: <masinter@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B94B73A0A3E for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:36:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.499
X-Spam-Level: 
X-Spam-Status: No, score=-1.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZRkkvNzblo5N for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 14:36:34 -0700 (PDT)
Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3AF773A0A4D for <wpack@ietf.org>; Thu, 11 Jun 2020 14:36:28 -0700 (PDT)
Received: by mail-pg1-x532.google.com with SMTP id s135so2421941pgs.2 for <wpack@ietf.org>; Thu, 11 Jun 2020 14:36:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=sender:from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:thread-index:content-language; bh=r3mrK9ne2hPucB2JPfa8YSZxH9ouZOK/FTeub77gLYo=; b=ojPGEQvK1uZngSSd1NATZoCKDx+ObrFVxUrIJzRAD5F75a068+VSM31v0kW+7RShiL 527/fYQfhMOBGfqH8QpLksXLgUw2HpIN0nXO/+nNROCh6sAkGmekN/9rGdQuT3u3XFyE dB2LEuNupAp6fca5uow1AV6c61QFEcPzVrNRIK8vb1blyMM5vue5E8lCe2yeonKQq5ts qo5pp96w8+IG2gByT5M5BiM1yPr29gkk7hNqvT9v+bYh1rNITpTI10CBqjkgWTGd9seR ZSvrw6YnBUSxNl7oQlIqBIXo1o078ywI5G8vIruLiwVW9DqX/i8GlxT1+T7AJXiHxnBv p8mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:references:in-reply-to:subject :date:message-id:mime-version:thread-index:content-language; bh=r3mrK9ne2hPucB2JPfa8YSZxH9ouZOK/FTeub77gLYo=; b=N6zOyFKmsump+5mgM/7tDH9+Re57jvLepYV6kSNkJdG4bEZUlwPC7jbPgigtsBPpXI zO5jd4WEhwLf38z2YHAZMjYWzcSNsjgJIi29vRFMy64V9Olp5ccFT+83kjgftUXaDhll 8XT5TqXPyFJGH0T56K9CGBJnUWHSy8I7tP+NPiMJX1iyRMpNl3XfQ+Y/4/HuHpLsUGuZ Ip3+pUawtpNTE0lXFyG4pn8tu9pwegA8DSDYpZe7KJeuQUuvGIr2JpLqIuCy6GW++aDB dbnmUOAFk506l7BHLWweh+YYYeS9xHIRTqJiYMOXyU25boDD82bRJFPoR2h+42zn6YF9 ZkEg==
X-Gm-Message-State: AOAM533Aq9bYl8doB0J0GP+GY7C8V4Dmb4Fa3odZcW0Uqu3GFnj/UADR PMxDgs4VbzmLwcKzhwDhZL0=
X-Google-Smtp-Source: ABdhPJyBeE6NgeNbb3mcfirIZTeY2RaqBvY+XGySk3maQoMEwVa4YtlKGvqYP+NwL0lbdKKyxDzRNA==
X-Received: by 2002:a63:124a:: with SMTP id 10mr8158166pgs.336.1591911387309;  Thu, 11 Jun 2020 14:36:27 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id r1sm3514857pgb.37.2020.06.11.14.36.25 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jun 2020 14:36:26 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: "'Ted Hardie'" <ted.ietf@gmail.com>, "'Jeffrey Yasskin'" <jyasskin@chromium.org>
Cc: "'Jeffrey Yasskin'" <jyasskin=40google.com@dmarc.ietf.org>, "'WPACK List'" <wpack@ietf.org>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <CA+9kkMAPqvXUwq3XqeqzkurmPbMVvR3bc_YPG6xQK0PUS4em-Q@mail.gmail.com> <CANh-dX=AAuQ2Q0fmu6ApU7vtUNm0+KfqbD+VTWD5DMgi0kzHzA@mail.gmail.com> <CA+9kkMBxJ3Jb2mD27hRgD_+eGbsfXX=MDDZEo6yFzuaAF9Ta4Q@mail.gmail.com>
In-Reply-To: <CA+9kkMBxJ3Jb2mD27hRgD_+eGbsfXX=MDDZEo6yFzuaAF9Ta4Q@mail.gmail.com>
Date: Thu, 11 Jun 2020 14:36:27 -0700
Message-ID: <001101d64038$5d4aae90$17e00bb0$@acm.org>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0012_01D63FFD.B0EC24B0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJUN3n7f7U8Tm8IyhTb0CDwyv1MGgItZykDAg2C2bYAlbsRWaexez8g
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/DEnGabDn-MwCRF8NZw7FU1I0iXk>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2020 21:36:36 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0012_01D63FFD.B0EC24B0
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

The bigger problem is that WHATWG=E2=80=99s URL living standard has =
forked from the IETF specifications, where there is no visible plan for =
reconciliation. The specs aren=E2=80=99t so wildly different, but the =
devil=E2=80=99s in the details.

--

https://LarryMasinter.net =20


------=_NextPart_000_0012_01D63FFD.B0EC24B0
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle22
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style></head><body lang=3DEN-US link=3Dblue vlink=3Dpurple><div =
class=3DWordSection1><div style=3D'border:none;border-left:solid blue =
1.5pt;padding:0in 0in 0in 4.0pt'><div><div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><div><p =
class=3DMsoNormal>The bigger problem is that WHATWG=E2=80=99s URL living =
standard has forked from the IETF specifications, where there is no =
visible plan for reconciliation. The specs aren=E2=80=99t so wildly =
different, but the devil=E2=80=99s in the details.<o:p></o:p></p><p =
class=3DMsoNormal>--<o:p></o:p></p><p class=3DMsoNormal><a =
href=3D"https://LarryMasinter.net">https://LarryMasinter.net</a>=C2=A0 =
<o:p></o:p></p></div></div></div></blockquote></div></div></div></div></b=
ody></html>
------=_NextPart_000_0012_01D63FFD.B0EC24B0--


From nobody Thu Jun 11 17:02:01 2020
Return-Path: <mt@lowentropy.net>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 332393A0C88 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:01:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=f1aFv3Hv; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=G9qE0A1G
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PjMx-9kzHw4b for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:01:51 -0700 (PDT)
Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4937D3A0CB2 for <wpack@ietf.org>; Thu, 11 Jun 2020 17:01:50 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 9FB5B44A for <wpack@ietf.org>; Thu, 11 Jun 2020 20:01:49 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute2.internal (MEProxy); Thu, 11 Jun 2020 20:01:49 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type; s=fm2; bh=AZqj/jWN7b9WPQNRY7AyNjWKPb6vBx7 Io8blWoZfFMU=; b=f1aFv3HvSztxcN9SC0aCKQScmm0qVtbDQhBoPqzxDaUcn2B mvScJ59ySt6qth/f01zTlJrXVwjiZHHneGX60bnm0QMNrVO8FASo8o2oNGgK7b/X rvUDFL3f4YDl7sAhfvqWcpoSyHJMPq6V3Tspj+UOXsACs4pJpzKBdsG2P2zNCQ03 rUXcIVW4gPCaVolN96minBiK86MBR7AyqqQdsN1PPCJJ+xIPHYWXTZys5BtD5+jp Pvgl/3B9VFYyL+dmodS5TryM87cThOzyRqaiRA3EWwPkIHLN5We7p5/vcmvD4GKY 36HJywJeu3kpxQ7MW2kEIjCqOCf4/u2HodgZGGg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=AZqj/j WN7b9WPQNRY7AyNjWKPb6vBx7Io8blWoZfFMU=; b=G9qE0A1GR5qzMhd2wLuZsY /yblYrgwo/9+KAE0FK23D7Fbdfri/2fvmIdHPVd7/JjnY1wUZ/Qz7b007BdUqU2c dtwW6cy5vHN4PbgEPKu7rzh1LMTv7d2GRIm16hJFpXcUshLbW9I0dDbqSnz2o1CO 7/ZKDxq5xMx9Yk/6j2hivJ1adKtXN38JP6zr1Gtte7Wa8RCzLaebiS4UH/9WQkuH FkfgfC0ADZU4D+Uws3x5fczZjgZu++lwQxznB87kNImNUvXFHmIpA/8UqsWKI8Da 6uM0xR99XXY4SgSnXm/JMPJZpqBI0PCRJFF/sW6CAZa4l6hSHeev5zisNY9NZB8Q ==
X-ME-Sender: <xms:7cXiXuhL5cqa3mFk_zpTadBuxG9Y1lkat5BO7dsnbdcY7bp8s2l1OA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudeitddgfedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhepofgfggfkjghffffhvffutgesthdtredtreertdenucfhrhhomhepfdforghr thhinhcuvfhhohhmshhonhdfuceomhhtsehlohifvghnthhrohhphidrnhgvtheqnecugg ftrfgrthhtvghrnhepueeggeeuveeugfelteffvdevkeeuheetleeghfehkeekfeekiedu feefveelheelnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpghhoohhglhgvrdgtoh hmpdhgohhoghhlvghsohhurhgtvgdrtghomhdpfiefrdhorhhgpdhivghtfhdrohhrghen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmtheslh hofigvnhhtrhhophihrdhnvght
X-ME-Proxy: <xmx:7cXiXvDdqddoQStRtbhUGlgdWZDWAIYbcGE5GarFwTE6V7vmpJIGlQ> <xmx:7cXiXmF3WSEA0UudUczqSANt7W5yYvov6QV5PbTsk6s90_jJaKHwRA> <xmx:7cXiXnRmqARU_zxGCbEWSziSKj98zEsrsszyK8hRA_eOOeSkVtYi_w> <xmx:7cXiXniEUGAYxRqnmzXtyBDl-ETttMG3SJjBheb0OkuM3XTlJb_Nrw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id EC36EE00A9; Thu, 11 Jun 2020 20:01:48 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-dev0-525-ge8fa799-fm-20200609.001-ge8fa7990
Mime-Version: 1.0
Message-Id: <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
In-Reply-To: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com>
Date: Fri, 12 Jun 2020 10:01:29 +1000
From: "Martin Thomson" <mt@lowentropy.net>
To: wpack@ietf.org
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/QAPNg8OaExLKIEoOhRNAJVWV26k>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 00:01:59 -0000

I have a bunch of concerns about this approach, but let's start with a fairly major one:

This buries the authority.  If your authority is truly publisher.example, then that should be the authority component.  If you regard the rest as a split between the remainder of the identity of the resource itself and some secondary information about how that resource might be obtained, then you might have something closer to how you might want to structure a URI.

On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:
> Hi all,
> 
> I wanted to raise awareness of a discussion about the URL scheme for 
> addressing resources within bundles 
> (draft-yasskin-wpack-bundled-exchanges).
> 
> We seem to be heading toward a URL of the form 
> package:<encoded-package-url>$<encoded-resource-uri>, which for a 
> package URL of https://distributor.example/package.wbn and resource URI 
> of https://publisher.example/page.html?q=query would lead to a URL of:
> 
> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
> 
> This arises from several considerations:
> 1. A bundle is served from a URL.
> 2. After a user downloads the bundle, it gets a new URL, often 
> file:///...
> 3. We can also hash the bundle to get a URI that stays stable across 
> transfers.
> 4. Resources inside a bundle are named by URIs (which, since the bundle 
> has an index, are also URLs even if, like urn:uuid:..., they wouldn't 
> normally be locators).
> 5. Once a user downloads a bundle, for web browsers to give its content 
> storage that's persistent across reloads, as requested in 
> https://github.com/WICG/webpackage/issues/498, the content needs to be 
> assigned a non-opaque origin.
> 
> I'm updating one of the documents about this in 
> https://github.com/WICG/webpackage/pull/584 and would welcome comments 
> here or there.
> 
> The URLs are obviously gross, so 
> https://github.com/WICG/webpackage/pull/560 suggests that browsers 
> avoid showing them to users in most cases. 
> 
> We could potentially simplify things if packages named things with just 
> paths instead of full URIs. We'd then name things based on the bundle's 
> origin. However, this loses archiving use cases.
> 
> This is all further discussed in the following documents and issues, 
> but you shouldn't feel responsible to read everything here:
> 
> * 
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
> * 
> https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80 <https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
> * https://github.com/WICG/webpackage/issues/583
> * 
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
> * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
> 
> Thanks,
> Jeffrey
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org
> https://www.ietf.org/mailman/listinfo/wpack
>


From nobody Thu Jun 11 17:33:45 2020
Return-Path: <session-request@ietf.org>
X-Original-To: wpack@ietf.org
Delivered-To: wpack@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 00DC03A0CAA; Thu, 11 Jun 2020 17:33:43 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IETF Meeting Session Request Tool <session-request@ietf.org>
To: <session-request@ietf.org>
Cc: wpack@ietf.org, sean@sn3rd.com, superuser@gmail.com, wpack-chairs@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.3.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <159192202242.6811.18151777402748553815@ietfa.amsl.com>
Date: Thu, 11 Jun 2020 17:33:42 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/bc6R5U0dXAyFXpulIS6jcpDAVqk>
Subject: [Wpack] wpack - New Meeting Session Request for IETF 108
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 00:33:43 -0000

A new meeting session request has just been submitted by Sean Turner, a Chair of the wpack working group.


---------------------------------------------------------
Working Group Name: Web Packaging
Area Name: Applications and Real-Time Area
Session Requester: Sean Turner


Number of Sessions: 1
Length of Session(s):  50 Minutes
Number of Attendees: 
Conflicts to Avoid: 
 Chair Conflict: add dnsop dprive tls mls quic
 Technology Overlap: httpbis dispatch secdispatch saag acme






People who must be present:
  Sean Turner
  Murray Kucherawy
  David C Lawrence

Resources Requested:

Special Requests:
  
---------------------------------------------------------



From nobody Thu Jun 11 17:34:48 2020
Return-Path: <sean@sn3rd.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3DBF83A0CAB for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:34:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=sn3rd.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2FcvMMtxr8gl for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:34:45 -0700 (PDT)
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E41AD3A0CAA for <wpack@ietf.org>; Thu, 11 Jun 2020 17:34:44 -0700 (PDT)
Received: by mail-qk1-x735.google.com with SMTP id b27so7497142qka.4 for <wpack@ietf.org>; Thu, 11 Jun 2020 17:34:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sn3rd.com; s=google; h=from:content-transfer-encoding:mime-version:subject:date:references :to:in-reply-to:message-id; bh=GuAzcRqGyBf2CXExriVHrJYoWYd+IWTlwLuz1c2BZKY=; b=AuHHV83GRnI5Y5CMhIiZq++9SLcBzKZBarZD/j8xmOoMuoJ4FfcsgLll0Z0gZPOjg8 3leJ45VmpNkw2osshPpKuVm+mVvQTlIr4nwau2DUV8Ro49baRb4zSXdnXGuuB6DfYi2W PdpNcGt5zDvOYsVIYQCCrnSQbpeCwIMz3C8BY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:date:references:to:in-reply-to:message-id; bh=GuAzcRqGyBf2CXExriVHrJYoWYd+IWTlwLuz1c2BZKY=; b=LoCbsXyavFBxLOX5ovkWIiERtaOXCyGeSiZn39NTSATX2x51DGssmAFCfImHhL/cco kzmQhZ8gkqUpPfNJ8U3V/s7sQMGfKp37Epaeje+PwWkTFMVoboup1u2YCDxGPPP0hBHA vWZBFTiHpjuUOVHQc/P8Vft9BbDqkzrDhjzwAXPk5MVEdWCiuKi2sPb35QVtFaY5V+GV aK+oPRxh/5zVVLuyNuW73sHTO+qiZ3iF1eokthMBpccWzTE9qHCsa/4YDpt5JVXj0ugB p8RWPwIwhXMOsm3JyMKkI8yfB0Np0F8TCTbi97EKJIXUMvbZEyyuk4/zLqIn9HlpTDGP JrTA==
X-Gm-Message-State: AOAM530xJGhNBQ4W6tRcAq+LYp3cYVsr+DC4HNduYpTy8HfcVf6rTEga cI+uNXZHzWIi1Ei3tC5xBoevtnaMq2w=
X-Google-Smtp-Source: ABdhPJwVnAgTqyfTiGK5d72PmoYS8EeFI0cxnKCkCGEC4A3KbsvXB/jLxEfAfeb0tk0gONNQqtPuyw==
X-Received: by 2002:a37:668d:: with SMTP id a135mr584675qkc.131.1591922083011;  Thu, 11 Jun 2020 17:34:43 -0700 (PDT)
Received: from sn3rd.lan ([75.102.131.34]) by smtp.gmail.com with ESMTPSA id q34sm3441451qtd.89.2020.06.11.17.34.42 for <wpack@ietf.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jun 2020 17:34:42 -0700 (PDT)
From: Sean Turner <sean@sn3rd.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Date: Thu, 11 Jun 2020 20:34:41 -0400
References: <159192202242.6811.18151777402748553815@ietfa.amsl.com>
To: WPACK List <wpack@ietf.org>
In-Reply-To: <159192202242.6811.18151777402748553815@ietfa.amsl.com>
Message-Id: <C13D4BAA-5CCC-4EDF-AE89-C0359110785D@sn3rd.com>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/4AleStXlPWWvxTENxhg_02v5hH4>
Subject: Re: [Wpack] wpack - New Meeting Session Request for IETF 108
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 00:34:46 -0000

Hi!

I went ahead and requested a session. If we end up not needing it, we =
can always cancel it.

spt

> On Jun 11, 2020, at 20:33, IETF Meeting Session Request Tool =
<session-request@ietf.org> wrote:
>=20
>=20
>=20
> A new meeting session request has just been submitted by Sean Turner, =
a Chair of the wpack working group.
>=20
>=20
> ---------------------------------------------------------
> Working Group Name: Web Packaging
> Area Name: Applications and Real-Time Area
> Session Requester: Sean Turner
>=20
>=20
> Number of Sessions: 1
> Length of Session(s):  50 Minutes
> Number of Attendees:=20
> Conflicts to Avoid:=20
> Chair Conflict: add dnsop dprive tls mls quic
> Technology Overlap: httpbis dispatch secdispatch saag acme
>=20
>=20
>=20
>=20
>=20
>=20
> People who must be present:
>  Sean Turner
>  Murray Kucherawy
>  David C Lawrence
>=20
> Resources Requested:
>=20
> Special Requests:
>=20
> ---------------------------------------------------------
>=20
>=20


From nobody Thu Jun 11 17:47:34 2020
Return-Path: <masinter@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2E9D03A0CD3 for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.5
X-Spam-Level: 
X-Spam-Status: No, score=-1.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SlbS9PbcSTDA for <wpack@ietfa.amsl.com>; Thu, 11 Jun 2020 17:47:31 -0700 (PDT)
Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D78633A0CCB for <wpack@ietf.org>; Thu, 11 Jun 2020 17:47:31 -0700 (PDT)
Received: by mail-pg1-x531.google.com with SMTP id l63so1065621pge.12 for <wpack@ietf.org>; Thu, 11 Jun 2020 17:47:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=sender:from:to:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=7jMbzTdXPn6BpQ88SjahCrVaW7C6zPSIHT8pQPnhLHc=; b=gBUVd62cRcLbmfWJX7TwmYh+pQzojGXXSDCcN+Sz0srMa3fEmneyDEpXqrwO10srnM GFKIw86vXq3yAqmvvB+fptTuxcE0INbdBLwVFqRB39BqTrWDF5nKvZuYHLtTvLzbrtAz OhCFr/6F9K+q4g6RfMj0eM0A4xEP9em3TSJv45Q5ls1A8owi+ZNWtcx5oZ9IVwv5oDhh fUV2utfQV5nkUiRRWxrVPQ6QCersAxbFkMxG27hUXasAxSy5YAirXsGhQdO/EC0Th3b7 U08jhPSELU141MX3mD/ZsCdWKZ7Ypz1g5/lHgCg5NC0j9bpNh+8k2oLsc/5ndx1taKYQ yEqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:references:in-reply-to:subject :date:message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=7jMbzTdXPn6BpQ88SjahCrVaW7C6zPSIHT8pQPnhLHc=; b=mb7znSt0cFQ3l0tGxS8dxCEbxmt0hg2Syj8OlrejST5DyKzyW6ck66Sxp7GZ/JA/Ec 29YGBWaHVzMpKODHekgl1KakEArEh1m+cU0c0US1MSsa2k59vD84nbC1RF1kepyk/kZd x5h4TEt2Z8H+yrn4B/w1jtMRLqqXQsT28YAetU4iaxDA6G+Pb7xS57pmVapryjjAqKTj 16Fv6JuIRVKcvcHMn9sgGHrgU5YqNf3/Fdgd1grdRlENK38FAAnKI0OMtoRXraCWQsPe rc+TdnK7lRwo+uvUbX6X7yE7EFJIzW68SpPIYduPLvPM5RU4YhavciHRSkIpDbsNCU0r ongw==
X-Gm-Message-State: AOAM530pUeINC43t4nKqX5w2peeQw9H7HA88R85D5pmrS+y/PWLZBGMG 4PGbNuAKC8k0Vouuaa1Nats=
X-Google-Smtp-Source: ABdhPJy+H0IBP+O2t9pebsk6YT7TU32c3hK98M6ViCnpfqtlxUcxVYGQRDP1rV6PweXw/jqX9wwEzg==
X-Received: by 2002:a63:e24c:: with SMTP id y12mr3230963pgj.224.1591922851179;  Thu, 11 Jun 2020 17:47:31 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id i191sm4397123pfe.99.2020.06.11.17.47.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jun 2020 17:47:30 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: "'Martin Thomson'" <mt@lowentropy.net>, <wpack@ietf.org>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
In-Reply-To: <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
Date: Thu, 11 Jun 2020 17:47:32 -0700
Message-ID: <005b01d64053$0ece6980$2c6b3c80$@acm.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJUN3n7f7U8Tm8IyhTb0CDwyv1MGgIYWzNap8dyEdA=
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/JM6OOyOmHX5o6O2VDqT0c0AcwnY>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 00:47:33 -0000

PDF allows embedded files. There was a requirement to allow URLs pointing to
embedded files and to allow identification of fragments..

>From https://tools.ietf.org/html/rfc8118#section-3 Fragment identifiers



   ef=<name>
      Identifies the embedded file where the parameter string <name>
      matches a file specification dictionary in the EmbeddedFiles name
      tree.  If the "ef" parameter is not at the end of the fragment
      identifier, then the rest of the fragment identifier (after the
      ampersand or hash delimiter) is applied to the embedded file
      according to its own media type.  This allows identification of
      content within the embedded file (which itself might be a
      PDF file)

      NOTE: When attempting to open a PDF file that is not from a
      trusted source, the processor may choose to prompt the user or
      even prevent the file from being opened.

There was no need to define a new scheme.

Sorry I'd forgotten about this.
--
https://LarryMasinter.net https://going-remote.info



From nobody Fri Jun 12 05:34:29 2020
Return-Path: <mknodel@cdt.org>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8D81D3A0F9C for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 05:34:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cdt.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FmJOD1JlI5LZ for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 05:34:26 -0700 (PDT)
Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C94C3A0F9B for <wpack@ietf.org>; Fri, 12 Jun 2020 05:34:26 -0700 (PDT)
Received: by mail-qt1-x835.google.com with SMTP id c12so6926188qtq.11 for <wpack@ietf.org>; Fri, 12 Jun 2020 05:34:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cdt.org; s=google; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=vY/AkeJeJWGs+ynRAOti3ICM9t411slruW9ew31bBYc=; b=Z4hfjwQNaLi9W4HyWKN+sYvzENbs4+dcP7dCQJ7Hn9regrErAfUspslFkpemfDe0B4 73qbTiKbzDPgq6dcOpcNGl7gspKHV0DfpkwuvEVkPrmgkSebC20ZOF07kLaMgQrIM829 1zKfM3Oe2qU2PzJ3UhXQ2tB6d+6UxPtUKoNjc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=vY/AkeJeJWGs+ynRAOti3ICM9t411slruW9ew31bBYc=; b=Mrkpp/w0DtqfyklYh5IY+T7IoG0ZtV7QMTwGhe8jkI9gbSM8sKc8gSBbiBZCZyAxnN uZWXBw9Eq4m3pfXYsawfA3szVmOpAp/MHHgqFYYArlvhSMTAp7jg1UzeZ9a5X2LtMqyd 1NIm3HECoe8YORLT+VfTwGOi4AKI3NlUeLfxjFjdzhTONgiZhCYYa729JJ43YC6Cv7Wa GuhjAURuHUGKYIgPNWwGwnnF1bLK+Vs45SWxCZLRELeU59Bgp2cXsYhFunC1pk8CZrHY 26LpLn/Z9NEFG7YGBMhzLMhp9JRHLNQFmZHui3RLU0R0ZB2NJUyt48r4KPbSOMlmq0gm IbjQ==
X-Gm-Message-State: AOAM531U0Qo6lUvtHdt0stMHfj/4s6Iq0zGt08cxRaSjXjbhAkBKcvby vvjTLGRmJhMRRRoOwRxVQA0fAAf0f+8=
X-Google-Smtp-Source: ABdhPJwR6ign1eBuvpZHQXGP+4kG/eju1IlYKbO0VAg52Y8gj+gPE3JEHVHPYd1Uma3fAQBX8vqpqg==
X-Received: by 2002:ac8:24b3:: with SMTP id s48mr2796887qts.383.1591965264468;  Fri, 12 Jun 2020 05:34:24 -0700 (PDT)
Received: from Mallorys-MacBook-Air.local (c-73-163-188-207.hsd1.dc.comcast.net. [73.163.188.207]) by smtp.gmail.com with ESMTPSA id o6sm4249247qkh.28.2020.06.12.05.34.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 Jun 2020 05:34:23 -0700 (PDT)
To: Martin Thomson <mt@lowentropy.net>, wpack@ietf.org
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
From: Mallory Knodel <mknodel@cdt.org>
Message-ID: <105d4247-02d7-694b-74cf-9fd0d5e5bc7e@cdt.org>
Date: Fri, 12 Jun 2020 08:34:23 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Thunderbird/77.0
MIME-Version: 1.0
In-Reply-To: <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/RfYbe651-dnV0_C_ZKx2-62yfQk>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 12:34:28 -0000

On 6/11/20 8:01 PM, Martin Thomson wrote:

> I have a bunch of concerns about this approach, but let's start with a fairly major one:
>
> This buries the authority.  If your authority is truly publisher.example, then that should be the authority component.  If you regard the rest as a split between the remainder of the identity of the resource itself and some secondary information about how that resource might be obtained, then you might have something closer to how you might want to structure a URI.

Agree that the user needs an indication of publisher, and that hiding 
the URL is unhelpful to the user. Simplification sounds like the right 
thing to do, because too much information can have the same effect as none.

-Mallory

> On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:
>
> The URLs are obviously gross, so
> https://github.com/WICG/webpackage/pull/560 suggests that browsers
> avoid showing them to users in most cases.
>
> We could potentially simplify things if packages named things with just
> paths instead of full URIs. We'd then name things based on the bundle's
> origin. However, this loses archiving use cases.
>
> This is all further discussed in the following documents and issues,
> but you shouldn't feel responsible to read everything here:
>
> *
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
> *
> https://chromium-review..googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80 <https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
> * https://github.com/WICG/webpackage/issues/583
> *
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
> * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html

-- 
Mallory Knodel
CTO, Center for Democracy and Technology
gpg fingerprint :: E3EB 63E0 65A3 B240 BCD9 B071 0C32 A271 BD3C C780


From nobody Fri Jun 12 08:20:14 2020
Return-Path: <masinter@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4C6CE3A0C45 for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 08:20:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.5
X-Spam-Level: 
X-Spam-Status: No, score=-1.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id un_75PxQkqz0 for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 08:20:12 -0700 (PDT)
Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6AAE63A0C51 for <wpack@ietf.org>; Fri, 12 Jun 2020 08:20:10 -0700 (PDT)
Received: by mail-pj1-x1029.google.com with SMTP id d6so3984363pjs.3 for <wpack@ietf.org>; Fri, 12 Jun 2020 08:20:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=sender:from:to:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=aaL3AaKOVh3RgatIEKOSNGTJh2RLXV7lp6o5jUy6OA0=; b=lYKTWmqA6Sq7GC8wz5n/IwRPcYSVic7qoIDi7mjnJ+gN63wNg2QTIZqi0ba3iMa3qN IcK4vgBJA1qjLhYnvQxfaARG+gomN+FfivYxf80jg6ZyEgVZZQ6//hoV/Tlgb5pDcGVA mBrPCuf1vrfbLgJqaW2PPSmXT8/djRzbQoy9tPyDOhGSIkuppHuAubCY6pX8CadYTIP7 o6xOvKrStdwxwJhiLwnQ9OFDyWkBsg/sCMB2bXuqZ/JPmoglQ4J4WbA9Yfu2blQpKgL3 h4AGoN8Kln1o+SeX5V5wM5+bbGy2LJRGfs0wKoQr9hE2SUjrnPpe6rL1wOIHXFTwmcZ+ gpLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:references:in-reply-to:subject :date:message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=aaL3AaKOVh3RgatIEKOSNGTJh2RLXV7lp6o5jUy6OA0=; b=Kx63j/T8K+JCSXaN0svGY3U9q0lEaEnvBg27EBFeHB0RsmVK7iKAwxyR/X99LvWmxM kZq5SHHu+6Vj5UmjCHC87g2DbpZQ6KG5V2ePxUr4izqsqjSKp/wYSGlEB5ui3IZD/zg0 ngrGfsGg2Dj7NFYryb5W8NxO55zJ5XFc7bYQ/5zPD73ZZ2AJ90suQ7ewgZdBiryiksNP f0WwHZV3ZH2/d+raOGDAymGB2JS2rGLZY0hOnMGI2tn5UoUAdrq2ryVO1saAXDTfOlpo LHParATCq/j9QnanTOB0EgyicZavAuOm2tiJBd5N+WEyYwarn6caDF9wBkzrr7WAXEtc ObDw==
X-Gm-Message-State: AOAM530Byr6ifgbwgkM/zIIip3qEaMW7EEm913cn/b7AR0/dO58llSAe DBu9u4dSZpnxaMgven6KxGM=
X-Google-Smtp-Source: ABdhPJxNnQxiUnK/4jjztboC8eJ/NM0u2TmNWMUqil04rLJymd0KJaVnfHihayIasH9H1jjdwaDzJg==
X-Received: by 2002:a17:90a:b903:: with SMTP id p3mr14088828pjr.4.1591975209718;  Fri, 12 Jun 2020 08:20:09 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id a7sm5604237pjd.2.2020.06.12.08.20.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Jun 2020 08:20:08 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: "'Mallory Knodel'" <mknodel@cdt.org>, "'Martin Thomson'" <mt@lowentropy.net>, <wpack@ietf.org>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com> <105d4247-02d7-694b-74cf-9fd0d5e5bc7e@cdt.org>
In-Reply-To: <105d4247-02d7-694b-74cf-9fd0d5e5bc7e@cdt.org>
Date: Fri, 12 Jun 2020 08:20:07 -0700
Message-ID: <006c01d640cc$f5445310$dfccf930$@acm.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJUN3n7f7U8Tm8IyhTb0CDwyv1MGgIYWzNaAXJcRLCnvNFAYA==
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/USopeKpTEsX1pajxJza5gyK9g0M>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 15:20:13 -0000

In the archival use case, isn't the distributer the authority, not the
publisher?
The publisher could be long gone.

> -----Original Message-----
> From: Wpack <wpack-bounces@ietf.org> On Behalf Of Mallory Knodel
> Sent: Friday, June 12, 2020 5:34 AM
> To: Martin Thomson <mt@lowentropy.net>; wpack@ietf.org
> Subject: Re: [Wpack] package: URL scheme
> 
> On 6/11/20 8:01 PM, Martin Thomson wrote:
> 
> > I have a bunch of concerns about this approach, but let's start with a
fairly
> major one:
> >
> > This buries the authority.  If your authority is truly
publisher.example, then
> that should be the authority component.  If you regard the rest as a split
> between the remainder of the identity of the resource itself and some
> secondary information about how that resource might be obtained, then you
> might have something closer to how you might want to structure a URI.
> 
> Agree that the user needs an indication of publisher, and that hiding the
URL
> is unhelpful to the user. Simplification sounds like the right thing to
do,
> because too much information can have the same effect as none.
> 
> -Mallory
> 
> > On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:
> >
> > The URLs are obviously gross, so
> > https://github.com/WICG/webpackage/pull/560 suggests that browsers
> > avoid showing them to users in most cases.
> >
> > We could potentially simplify things if packages named things with
> > just paths instead of full URIs. We'd then name things based on the
> > bundle's origin. However, this loses archiving use cases.
> >
> > This is all further discussed in the following documents and issues,
> > but you shouldn't feel responsible to read everything here:
> >
> > *
> >
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi
> 1r8Y
> > 0pLaFJQoo/edit#
> > *
> > https://chromium-
> review..googlesource.com/c/chromium/src/+/2226248/7#m
> > essage-0a3efda5aff84770a1729422a5b26aeca3ee4e80
> > <https://chromium-
> review.googlesource.com/c/chromium/src/+/2226248/7#m
> > essage-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
> > * https://github.com/WICG/webpackage/issues/583
> > *
> >
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-t
> > o-unsigned-bundles.md#urls-for-bundle-components
> > * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
> 
> --
> Mallory Knodel
> CTO, Center for Democracy and Technology gpg fingerprint :: E3EB 63E0
> 65A3 B240 BCD9 B071 0C32 A271 BD3C C780
> 
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org
> https://www.ietf.org/mailman/listinfo/wpack


From nobody Fri Jun 12 16:07:52 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40D8E3A1640 for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 16:07:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.25
X-Spam-Level: 
X-Spam-Status: No, score=-9.25 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N4_Un5oAo7SK for <wpack@ietfa.amsl.com>; Fri, 12 Jun 2020 16:07:49 -0700 (PDT)
Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E86DF3A163F for <wpack@ietf.org>; Fri, 12 Jun 2020 16:07:48 -0700 (PDT)
Received: by mail-qk1-x732.google.com with SMTP id f18so10679877qkh.1 for <wpack@ietf.org>; Fri, 12 Jun 2020 16:07:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Su3G6DdQfQeO9o8IDfCmQuyIBkMJbgtujDUr04gmsCc=; b=eq3uS7dc9axh7jtzYg/LDnhH8G/wDGOyDwyUHP+UxvwVuL5SdKLOmIneLQLTIo7MAs LcQSzVOCwREYc/ubQcq/Fb2fWRXGeG6+pPNxLth7ObMeIepFkIhMDMuaQJdjMc6+XMWm QRidFee/VFVzkxJVMrM2UJWRW8m6N9YbvQXRg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Su3G6DdQfQeO9o8IDfCmQuyIBkMJbgtujDUr04gmsCc=; b=r0Zzd8I5Zdl+OEuGrbsVE0sbamKLigmGTBCsKb/VA407j2Q0BAbJwTBBZuB8bQ49mb 1oAgbFo8zhW7LKHpW2wCxhukovFFpwZUrEz9oYUH9DqKI19y+c+nuxvq8AxfVHmMveh7 G7N11/iMFc4hHRidoR+uJRD4K7HuwlnsP/Nn4MkZvdzn63Ma1IUKq2P4OM//aQvi62gr NCOXKZb4mef9qvQPTQfPKNoUYXsN20ZJcUdd6Mh4gScMLVVEmmV5pMRN3+0Wz+xDJYOc /gGoODVkBK6gK0j/b8dbqBalwsvMvMa+EtILj3Hnfq5Su9suH8DVjRouZnmwmOHcPsb7 IU7w==
X-Gm-Message-State: AOAM532eLl7/rqR9aNnhlBCcOPKwB8rmISG9oGNqiIe1Naz3x9ivvEVu wUoMU7i826sWG+vycLz301i20YzniIUmsqguhZBswA==
X-Google-Smtp-Source: ABdhPJzrgLszZLZevdiK9hE61w5KtuvYhkqeWZRpp3fD9hqyNl0aX0y4UHeIq2DmSRP/nmPFbW3Tjwt5gauCv2F6V8k=
X-Received: by 2002:a37:61d6:: with SMTP id v205mr4964587qkb.447.1592003267134;  Fri, 12 Jun 2020 16:07:47 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
In-Reply-To: <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Fri, 12 Jun 2020 16:07:35 -0700
Message-ID: <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com>
To: Martin Thomson <mt@lowentropy.net>, mknodel@cdt.org
Cc: WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000388a3505a7eb25e0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/Jhk0BCuVwm25fV2ADLFtLa_qbuI>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2020 23:07:51 -0000

--000000000000388a3505a7eb25e0
Content-Type: text/plain; charset="UTF-8"

Hi Martin and Mallory,

As Larry mentioned, when the bundle is unsigned, it's the entity serving
the bundle -- distributor.example here -- who has the ability to change the
content, so they're probably the "true" authority. They're quoting the
original publisher of the content, but there's no way for the user to
verify that the quote is accurate.

Do you support the general goal of giving pairwise-distinct origins to all
of:

1. https://foo.example/page.html
2. https://bar.example/page.html
3. A resource in the bundle at https://foo.example/bundle.wbn named
https://bar.example/page.html.
4. A resource in the bundle at https://foo.example/bundle.wbn named
https://quux.example/page.html.
5. A resource in the bundle at https://foo.example/otherbundle.wbn named
https://bar.example/page.html.

If we say (1) and (3) get the same origin, it means the result can't help
the Internet Archive serve their pages more safely, and we force (3), (4),
and (5) to have the same origins.
If we say (2) and (3) get the same origin, we break the entire web origin
security model. :-D
If we say (3) and (4) get the same origin, it means that El Paquete Semanal
couldn't safely put multiple websites into the same bundle without risking
them stepping on each other's storage. It could put them in separate files,
but then they'd have trouble linking to each other.
If we say (3) and (5) get the same origin, it means that if an archive
stores multiple versions of the same website, but those versions use
storage differently, users couldn't easily try more than one version.

Abandoning some of these use cases definitely makes the URL design easier,
if there's consensus to go that direction.

However, if we want to keep the use cases, and we want to put the bundle's
server in the authority position of the URL, we get something like Larry's
suggestion: pkg+
https://foo.example/bundle.wbn?query#https://bar.example/page.html?q=query%23fragment.
To give (3)-(5) distinct origins, the origin algorithm
<https://url.spec.whatwg.org/#origin> for pkg+https needs to take the
fragment into account, returning something like ("pkg+https",
"foo.example/bundle.wbn?query#https://bar.example", null, null). This
design also makes it possible to resolve relative URLs relative to a
pkg+https:// base URL, and it gives what's probably the wrong
answer, moving relative to the bundle instead of the active subresource.
That's probably ok: links inside a bundle need to explicitly search the
bundle so that absolute references search the bundle first.

If we want to prevent package URLs from being used as base URLs, we could
move to something like "package:
https://foo.example/bundle.wbn?query#https://bar.example/page.html?q=query%23fragment",
which has a similar syntax to blob: URLs and is still more readable than my
original proposal.

Jeffrey

On Thu, Jun 11, 2020 at 5:02 PM Martin Thomson <mt@lowentropy.net> wrote:

> I have a bunch of concerns about this approach, but let's start with a
> fairly major one:
>
> This buries the authority.  If your authority is truly publisher.example,
> then that should be the authority component.  If you regard the rest as a
> split between the remainder of the identity of the resource itself and some
> secondary information about how that resource might be obtained, then you
> might have something closer to how you might want to structure a URI.
>
> On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:
> > Hi all,
> >
> > I wanted to raise awareness of a discussion about the URL scheme for
> > addressing resources within bundles
> > (draft-yasskin-wpack-bundled-exchanges).
> >
> > We seem to be heading toward a URL of the form
> > package:<encoded-package-url>$<encoded-resource-uri>, which for a
> > package URL of https://distributor.example/package.wbn and resource URI
> > of https://publisher.example/page.html?q=query would lead to a URL of:
> >
> >
> *package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query*
> >
> > This arises from several considerations:
> > 1. A bundle is served from a URL.
> > 2. After a user downloads the bundle, it gets a new URL, often
> > file:///...
> > 3. We can also hash the bundle to get a URI that stays stable across
> > transfers.
> > 4. Resources inside a bundle are named by URIs (which, since the bundle
> > has an index, are also URLs even if, like urn:uuid:..., they wouldn't
> > normally be locators).
> > 5. Once a user downloads a bundle, for web browsers to give its content
> > storage that's persistent across reloads, as requested in
> > https://github.com/WICG/webpackage/issues/498, the content needs to be
> > assigned a non-opaque origin.
> >
> > I'm updating one of the documents about this in
> > https://github.com/WICG/webpackage/pull/584 and would welcome comments
> > here or there.
> >
> > The URLs are obviously gross, so
> > https://github.com/WICG/webpackage/pull/560 suggests that browsers
> > avoid showing them to users in most cases.
> >
> > We could potentially simplify things if packages named things with just
> > paths instead of full URIs. We'd then name things based on the bundle's
> > origin. However, this loses archiving use cases.
> >
> > This is all further discussed in the following documents and issues,
> > but you shouldn't feel responsible to read everything here:
> >
> > *
> >
> https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#
> > *
> > https://chromium-review..
> googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80
> <
> https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80
> >
> > * https://github.com/WICG/webpackage/issues/583
> > *
> >
> https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-unsigned-bundles.md#urls-for-bundle-components
> > * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
> >
> > Thanks,
> > Jeffrey
> > _______________________________________________
> > Wpack mailing list
> > Wpack@ietf.org
> > https://www.ietf.org/mailman/listinfo/wpack
> >
>
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org
> https://www.ietf.org/mailman/listinfo/wpack
>

--000000000000388a3505a7eb25e0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi Martin and Mallory,</div><div><br></div><div>As La=
rry mentioned, when the bundle is unsigned, it&#39;s the entity serving the=
 bundle -- distributor.example here -- who has the ability to change the co=
ntent, so they&#39;re probably the &quot;true&quot; authority. They&#39;re =
quoting the original publisher of the content, but there&#39;s no way for t=
he user to verify that the quote is accurate.</div><div><br></div><div>Do y=
ou support the general goal of giving pairwise-distinct origins to all of:<=
/div><div><br></div><div>1. <a href=3D"https://foo.example/page.html">https=
://foo.example/page.html</a></div><div>2.=C2=A0<a href=3D"https://bar.examp=
le/page.html">https://bar.example/page.html</a></div><div>3. A resource in =
the bundle at <a href=3D"https://foo.example/bundle.wbn">https://foo.exampl=
e/bundle.wbn</a> named <a href=3D"https://bar.example/page.html">https://ba=
r.example/page.html</a>.</div><div>4. A resource in the bundle at <a href=
=3D"https://foo.example/bundle.wbn">https://foo.example/bundle.wbn</a> name=
d <a href=3D"https://quux.example/page.html">https://quux.example/page.html=
</a>.</div><div>5. A resource in the bundle at <a href=3D"https://foo.examp=
le/otherbundle.wbn">https://foo.example/otherbundle.wbn</a> named <a href=
=3D"https://bar.example/page.html">https://bar.example/page.html</a>.</div>=
<div><br></div><div>If we say (1) and (3) get the same origin, it means the=
 result can&#39;t help the Internet Archive serve their pages more safely, =
and we force (3), (4), and (5) to have the same origins.</div><div></div><d=
iv>If we say (2) and (3) get the same origin, we break the entire web origi=
n security model. :-D</div><div></div><div>If we say (3) and (4) get the sa=
me origin, it means that El Paquete Semanal couldn&#39;t safely put multipl=
e websites into the same bundle without risking them stepping on each other=
&#39;s storage. It could put them in separate files, but then they&#39;d ha=
ve trouble linking to each other.<br></div><div>If we say (3) and (5) get t=
he same origin, it means that if an archive stores multiple versions of the=
 same website, but those versions use storage differently, users couldn&#39=
;t easily try more than one version.</div><div><br></div><div>Abandoning so=
me of these use cases definitely makes the URL design easier, if there&#39;=
s consensus to go that direction.</div><div><br></div><div>However, if we w=
ant to keep the use cases, and we want to put the bundle&#39;s server in th=
e authority position of the URL, we get something like Larry&#39;s suggesti=
on: pkg+<a href=3D"https://foo.example/bundle.wbn?query#https://bar.example=
/page.html?q=3Dquery%23fragment">https://foo.example/bundle.wbn?query#https=
://bar.example/page.html?q=3Dquery%23fragment</a>. To give (3)-(5) distinct=
 origins, the <a href=3D"https://url.spec.whatwg.org/#origin">origin algori=
thm</a> for pkg+https needs to take the fragment into account, returning so=
mething like (&quot;pkg+https&quot;, &quot;foo.example/bundle.wbn?query#<a =
href=3D"https://bar.example">https://bar.example</a>&quot;, null, null). Th=
is design also makes it possible to resolve relative URLs relative to a pkg=
+https:// base URL, and it gives what&#39;s probably the wrong answer,=C2=
=A0moving relative to the bundle instead of the active subresource. That&#3=
9;s probably=C2=A0ok: links inside a bundle need to explicitly search the b=
undle so that absolute references search the bundle first.</div><div><br></=
div><div>If we want to prevent package URLs from being used as base URLs, w=
e could move to something like &quot;package:<a href=3D"https://foo.example=
/bundle.wbn?query#https://bar.example/page.html?q=3Dquery%23fragment">https=
://foo.example/bundle.wbn?query#https://bar.example/page.html?q=3Dquery%23f=
ragment</a>&quot;, which has a similar syntax to blob: URLs and is still mo=
re readable than my original proposal.</div><div><br></div><div>Jeffrey</di=
v><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On T=
hu, Jun 11, 2020 at 5:02 PM Martin Thomson &lt;<a href=3D"mailto:mt@lowentr=
opy.net">mt@lowentropy.net</a>&gt; wrote:<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2=
04,204);padding-left:1ex">I have a bunch of concerns about this approach, b=
ut let&#39;s start with a fairly major one:<br>
<br>
This buries the authority.=C2=A0 If your authority is truly publisher.examp=
le, then that should be the authority component.=C2=A0 If you regard the re=
st as a split between the remainder of the identity of the resource itself =
and some secondary information about how that resource might be obtained, t=
hen you might have something closer to how you might want to structure a UR=
I.<br>
<br>
On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:<br>
&gt; Hi all,<br>
&gt; <br>
&gt; I wanted to raise awareness of a discussion about the URL scheme for <=
br>
&gt; addressing resources within bundles <br>
&gt; (draft-yasskin-wpack-bundled-exchanges).<br>
&gt; <br>
&gt; We seem to be heading toward a URL of the form <br>
&gt; package:&lt;encoded-package-url&gt;$&lt;encoded-resource-uri&gt;, whic=
h for a <br>
&gt; package URL of <a href=3D"https://distributor.example/package.wbn" rel=
=3D"noreferrer" target=3D"_blank">https://distributor.example/package.wbn</=
a> and resource URI <br>
&gt; of <a href=3D"https://publisher.example/page.html?q=3Dquery" rel=3D"no=
referrer" target=3D"_blank">https://publisher.example/page.html?q=3Dquery</=
a> would lead to a URL of:<br>
&gt; <br>
&gt; *package:https:,,distributor.example,package.wbn;q=3Dquery$https:,,pub=
lisher.example/page.html?q=3Dquery*<br>
&gt; <br>
&gt; This arises from several considerations:<br>
&gt; 1. A bundle is served from a URL.<br>
&gt; 2. After a user downloads the bundle, it gets a new URL, often <br>
&gt; file:///...<br>
&gt; 3. We can also hash the bundle to get a URI that stays stable across <=
br>
&gt; transfers.<br>
&gt; 4. Resources inside a bundle are named by URIs (which, since the bundl=
e <br>
&gt; has an index, are also URLs even if, like urn:uuid:..., they wouldn&#3=
9;t <br>
&gt; normally be locators).<br>
&gt; 5. Once a user downloads a bundle, for web browsers to give its conten=
t <br>
&gt; storage that&#39;s persistent across reloads, as requested in <br>
&gt; <a href=3D"https://github.com/WICG/webpackage/issues/498" rel=3D"noref=
errer" target=3D"_blank">https://github.com/WICG/webpackage/issues/498</a>,=
 the content needs to be <br>
&gt; assigned a non-opaque origin.<br>
&gt; <br>
&gt; I&#39;m updating one of the documents about this in <br>
&gt; <a href=3D"https://github.com/WICG/webpackage/pull/584" rel=3D"norefer=
rer" target=3D"_blank">https://github.com/WICG/webpackage/pull/584</a> and =
would welcome comments <br>
&gt; here or there.<br>
&gt; <br>
&gt; The URLs are obviously gross, so <br>
&gt; <a href=3D"https://github.com/WICG/webpackage/pull/560" rel=3D"norefer=
rer" target=3D"_blank">https://github.com/WICG/webpackage/pull/560</a> sugg=
ests that browsers <br>
&gt; avoid showing them to users in most cases. <br>
&gt; <br>
&gt; We could potentially simplify things if packages named things with jus=
t <br>
&gt; paths instead of full URIs. We&#39;d then name things based on the bun=
dle&#39;s <br>
&gt; origin. However, this loses archiving use cases.<br>
&gt; <br>
&gt; This is all further discussed in the following documents and issues, <=
br>
&gt; but you shouldn&#39;t feel responsible to read everything here:<br>
&gt; <br>
&gt; * <br>
&gt; <a href=3D"https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzE=
utuQAZi1r8Y0pLaFJQoo/edit#" rel=3D"noreferrer" target=3D"_blank">https://do=
cs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pLaFJQoo/edit#=
</a><br>
&gt; * <br>
&gt; <a href=3D"https://chromium-review." rel=3D"noreferrer" target=3D"_bla=
nk">https://chromium-review.</a>.<a href=3D"http://googlesource.com/c/chrom=
ium/src/+/2226248/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80" rel=
=3D"noreferrer" target=3D"_blank">googlesource.com/c/chromium/src/+/2226248=
/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80</a> &lt;<a href=3D"http=
s://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#message-0a3=
efda5aff84770a1729422a5b26aeca3ee4e80" rel=3D"noreferrer" target=3D"_blank"=
>https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#messag=
e-0a3efda5aff84770a1729422a5b26aeca3ee4e80</a>&gt;<br>
&gt; * <a href=3D"https://github.com/WICG/webpackage/issues/583" rel=3D"nor=
eferrer" target=3D"_blank">https://github.com/WICG/webpackage/issues/583</a=
><br>
&gt; * <br>
&gt; <a href=3D"https://github.com/WICG/webpackage/blob/master/explainers/n=
avigation-to-unsigned-bundles.md#urls-for-bundle-components" rel=3D"norefer=
rer" target=3D"_blank">https://github.com/WICG/webpackage/blob/master/expla=
iners/navigation-to-unsigned-bundles.md#urls-for-bundle-components</a><br>
&gt; * <a href=3D"https://lists.w3.org/Archives/Public/uri/2019Nov/0000.htm=
l" rel=3D"noreferrer" target=3D"_blank">https://lists.w3.org/Archives/Publi=
c/uri/2019Nov/0000.html</a><br>
&gt; <br>
&gt; Thanks,<br>
&gt; Jeffrey<br>
&gt; _______________________________________________<br>
&gt; Wpack mailing list<br>
&gt; <a href=3D"mailto:Wpack@ietf.org" target=3D"_blank">Wpack@ietf.org</a>=
<br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/wpack" rel=3D"norefer=
rer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><br>
&gt;<br>
<br>
_______________________________________________<br>
Wpack mailing list<br>
<a href=3D"mailto:Wpack@ietf.org" target=3D"_blank">Wpack@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/wpack" rel=3D"noreferrer" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><br>
</blockquote></div></div>

--000000000000388a3505a7eb25e0--


From nobody Sat Jun 13 20:40:50 2020
Return-Path: <masinter@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C3A383A09F6 for <wpack@ietfa.amsl.com>; Sat, 13 Jun 2020 20:40:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.402
X-Spam-Level: 
X-Spam-Status: No, score=0.402 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id esVscOeQreP1 for <wpack@ietfa.amsl.com>; Sat, 13 Jun 2020 20:40:47 -0700 (PDT)
Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CC603A09F4 for <wpack@ietf.org>; Sat, 13 Jun 2020 20:40:47 -0700 (PDT)
Received: by mail-pl1-x634.google.com with SMTP id d8so5390254plo.12 for <wpack@ietf.org>; Sat, 13 Jun 2020 20:40:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=sender:from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:thread-index:content-language; bh=JeG9nl3KuDgY0k2C8SkDVmvutAOzjLbpwQir+DpGKCQ=; b=m+4EqiDZ3jzzjwSZwJbCEpR59dGxchJI9FfowdNWMsVFRDsI28hQVWgAeAMw7/8Cd7 0j6HFeWm/wOO0csdftKoI17ilDQMgenl3HpDw2hbakDFKW2/Uqr+w6E5V0xLdN0P7v7E RwCBasDmEUqsvJ57pErvIWb01hDhsOlLgKgPf43dCHwXDJ/MTMyU96K50LgvqRoMNVD2 BhR6B/uQUfSncHRHvtgJ5D71I+l8DBCX5MMdsTEEsErNHDFF1ktb9KswVhX7oSfRmoY4 Cc8E6RlIl0yX9dP1wF/mPH8ldScPv1SBMIkIUtxVbAPhLqsh/kSnBk3wIpPL2C6zc4/5 2VPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:references:in-reply-to:subject :date:message-id:mime-version:thread-index:content-language; bh=JeG9nl3KuDgY0k2C8SkDVmvutAOzjLbpwQir+DpGKCQ=; b=BZJ+ua01NUxw+p3vjL/3uHNb8xXC1aOuRNFRNDH2VAjnzI1w5x/tvDHHW1admxggq6 HptQu3kfaA5aNm+4Luulbs/caq3uMlYbSHR3q/rv6kw5wVYLokTmaTqKxrl+16PJrrh5 z1muUPA/AV8GvhRrTl/2L0whSJ5cUq7fVheAhMJVsdX4KNVRm5EiysEYZzzxH3BBB+/Q Kd4zj36EwlKVPOPKA83psFh83eQvV5VRSnN1b9L39I753Zwy62NDlpeU5uCNOMb/yO32 COdVeMK/X0FHOteyhQcW+NcU5UaSmoOls/NzDa5T8376Y3tbOWxrb+sfjgCmZZX++6m6 zI8Q==
X-Gm-Message-State: AOAM532/2CaMYLgpD36C3wV0ES3kulCOXFJ5b7Ur8F69cURNGLMECq2x iTR/saSbHT4DD4/d5FJAWSUVU/5YBrM=
X-Google-Smtp-Source: ABdhPJy2z6pTEz34URu/tsC4eP/K/mzRK02BozI1k2ijF+EI3iefHt5NJDEJqvRonBFzSCZ0WtZ2fQ==
X-Received: by 2002:a17:902:ab98:: with SMTP id f24mr2564203plr.154.1592106046810;  Sat, 13 Jun 2020 20:40:46 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id iq19sm8674218pjb.48.2020.06.13.20.40.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 Jun 2020 20:40:45 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: "'Jeffrey Yasskin'" <jyasskin@chromium.org>, "'Martin Thomson'" <mt@lowentropy.net>, <mknodel@cdt.org>
Cc: "'WPACK List'" <wpack@ietf.org>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com> <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com>
In-Reply-To: <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com>
Date: Sat, 13 Jun 2020 20:40:45 -0700
Message-ID: <006801d641fd$96c67c50$c45374f0$@acm.org>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0069_01D641C2.EA68DCD0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJUN3n7f7U8Tm8IyhTb0CDwyv1MGgIYWzNaAfVnaKynuv/JoA==
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/tG0nDSrLKtT2BFxbgOfHP7B8CiU>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 14 Jun 2020 03:40:50 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0069_01D641C2.EA68DCD0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

The problem I keep coming back to is that there is no firm line between =
the =E2=80=9Carchival=E2=80=9D case and the immediate use case.

As soon as you get a representation of the publisher=E2=80=99s resource, =
it could change.=20

I looked through all of the links you provided and couldn=E2=80=99t find =
any definition
of what a =E2=80=9Csigned bundle=E2=80=9D is, or at least what is a =
bundle that isn=E2=80=99t =E2=80=9Cunsigned=E2=80=9D.

Who signs what, when? And what happens over time with a signed bundle
when sites change, certs expire? How are signatures validated?

=20

You should look at https://url.spec.whatwg.org/#url-rendering for the =
rules you=E2=80=99ll need to modify to get your =E2=80=9Caddress =
bar=E2=80=99 conventions.

=3D=3D

 <https://larrymasinter.net/> https://LarryMasinter.net  =
<https://going-remote.info/> https://going-remote.info

=20

From: Wpack <wpack-bounces@ietf.org> On Behalf Of Jeffrey Yasskin
Sent: Friday, June 12, 2020 4:08 PM
To: Martin Thomson <mt@lowentropy.net>; mknodel@cdt.org
Cc: WPACK List <wpack@ietf.org>
Subject: Re: [Wpack] package: URL scheme

=20

Hi Martin and Mallory,

=20

As Larry mentioned, when the bundle is unsigned, it's the entity serving =
the bundle -- distributor.example here -- who has the ability to change =
the content, so they're probably the "true" authority. They're quoting =
the original publisher of the content, but there's no way for the user =
to verify that the quote is accurate.

=20

Do you support the general goal of giving pairwise-distinct origins to =
all of:

=20

1. https://foo.example/page.html

2. https://bar.example/page.html

3. A resource in the bundle at https://foo.example/bundle.wbn named =
https://bar.example/page.html.

4. A resource in the bundle at https://foo.example/bundle.wbn named =
https://quux.example/page.html.

5. A resource in the bundle at https://foo.example/otherbundle.wbn named =
https://bar.example/page.html.

=20

If we say (1) and (3) get the same origin, it means the result can't =
help the Internet Archive serve their pages more safely, and we force =
(3), (4), and (5) to have the same origins.

If we say (2) and (3) get the same origin, we break the entire web =
origin security model. :-D

If we say (3) and (4) get the same origin, it means that El Paquete =
Semanal couldn't safely put multiple websites into the same bundle =
without risking them stepping on each other's storage. It could put them =
in separate files, but then they'd have trouble linking to each other.

If we say (3) and (5) get the same origin, it means that if an archive =
stores multiple versions of the same website, but those versions use =
storage differently, users couldn't easily try more than one version.

=20

Abandoning some of these use cases definitely makes the URL design =
easier, if there's consensus to go that direction.

=20

However, if we want to keep the use cases, and we want to put the =
bundle's server in the authority position of the URL, we get something =
like Larry's suggestion: =
pkg+https://foo.example/bundle.wbn?query#https://bar.example/page.html?q=3D=
query%23fragment. To give (3)-(5) distinct origins, the origin algorithm =
<https://url.spec.whatwg.org/#origin>  for pkg+https needs to take the =
fragment into account, returning something like ("pkg+https", =
"foo.example/bundle.wbn?query#https://bar.example", null, null). This =
design also makes it possible to resolve relative URLs relative to a =
pkg+https:// base URL, and it gives what's probably the wrong answer, =
moving relative to the bundle instead of the active subresource. That's =
probably ok: links inside a bundle need to explicitly search the bundle =
so that absolute references search the bundle first.

=20

If we want to prevent package URLs from being used as base URLs, we =
could move to something like =
"package:https://foo.example/bundle.wbn?query#https://bar.example/page.ht=
ml?q=3Dquery%23fragment", which has a similar syntax to blob: URLs and =
is still more readable than my original proposal.

=20

Jeffrey

=20

On Thu, Jun 11, 2020 at 5:02 PM Martin Thomson <mt@lowentropy.net =
<mailto:mt@lowentropy.net> > wrote:

I have a bunch of concerns about this approach, but let's start with a =
fairly major one:

This buries the authority.  If your authority is truly =
publisher.example, then that should be the authority component.  If you =
regard the rest as a split between the remainder of the identity of the =
resource itself and some secondary information about how that resource =
might be obtained, then you might have something closer to how you might =
want to structure a URI.

On Thu, Jun 11, 2020, at 08:00, Jeffrey Yasskin wrote:
> Hi all,
>=20
> I wanted to raise awareness of a discussion about the URL scheme for=20
> addressing resources within bundles=20
> (draft-yasskin-wpack-bundled-exchanges).
>=20
> We seem to be heading toward a URL of the form=20
> package:<encoded-package-url>$<encoded-resource-uri>, which for a=20
> package URL of https://distributor.example/package.wbn and resource =
URI=20
> of https://publisher.example/page.html?q=3Dquery would lead to a URL =
of:
>=20
> =
*package:https:,,distributor.example,package.wbn;q=3Dquery$https:,,publis=
her.example/page.html?q=3Dquery*
>=20
> This arises from several considerations:
> 1. A bundle is served from a URL.
> 2. After a user downloads the bundle, it gets a new URL, often=20
> file:///...
> 3. We can also hash the bundle to get a URI that stays stable across=20
> transfers.
> 4. Resources inside a bundle are named by URIs (which, since the =
bundle=20
> has an index, are also URLs even if, like urn:uuid:..., they wouldn't=20
> normally be locators).
> 5. Once a user downloads a bundle, for web browsers to give its =
content=20
> storage that's persistent across reloads, as requested in=20
> https://github.com/WICG/webpackage/issues/498, the content needs to be =

> assigned a non-opaque origin.
>=20
> I'm updating one of the documents about this in=20
> https://github.com/WICG/webpackage/pull/584 and would welcome comments =

> here or there.
>=20
> The URLs are obviously gross, so=20
> https://github.com/WICG/webpackage/pull/560 suggests that browsers=20
> avoid showing them to users in most cases.=20
>=20
> We could potentially simplify things if packages named things with =
just=20
> paths instead of full URIs. We'd then name things based on the =
bundle's=20
> origin. However, this loses archiving use cases.
>=20
> This is all further discussed in the following documents and issues,=20
> but you shouldn't feel responsible to read everything here:
>=20
> *=20
> =
https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0pL=
aFJQoo/edit# =
<https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZi1r8Y0p=
LaFJQoo/edit>=20
> *=20
> =
https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#messa=
ge-0a3efda5aff84770a1729422a5b26aeca3ee4e80 <

=20

https://chromium-review.googlesource.com/c/chromium/src/+/2226248/7#messa=
ge-0a3efda5aff84770a1729422a5b26aeca3ee4e80>
> * https://github.com/WICG/webpackage/issues/583
> *=20
> =
https://github.com/WICG/webpackage/blob/master/explainers/navigation-to-u=
nsigned-bundles.md#urls-for-bundle-components
> * https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html
>=20
> Thanks,
> Jeffrey
> _______________________________________________
> Wpack mailing list
> Wpack@ietf.org <mailto:Wpack@ietf.org>=20
> https://www.ietf.org/mailman/listinfo/wpack
>

_______________________________________________
Wpack mailing list
Wpack@ietf.org <mailto:Wpack@ietf.org>=20
https://www.ietf.org/mailman/listinfo/wpack


------=_NextPart_000_0069_01D641C2.EA68DCD0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style></head><body lang=3DEN-US link=3Dblue vlink=3Dpurple><div =
class=3DWordSection1><p class=3DMsoNormal>The problem I keep coming back =
to is that there is no firm line between the =E2=80=9Carchival=E2=80=9D =
case and the immediate use case.<o:p></o:p></p><p class=3DMsoNormal>As =
soon as you get a representation of the publisher=E2=80=99s resource, it =
could change. <o:p></o:p></p><p class=3DMsoNormal>I looked through all =
of the links you provided and couldn=E2=80=99t find any definition<br>of =
what a =E2=80=9Csigned bundle=E2=80=9D is, or at least what is a bundle =
that isn=E2=80=99t =E2=80=9Cunsigned=E2=80=9D.<o:p></o:p></p><p =
class=3DMsoNormal>Who signs what, when? And what happens over time with =
a signed bundle<br>when sites change, certs expire? How are signatures =
validated?<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>You should look at <a =
href=3D"https://url.spec.whatwg.org/#url-rendering">https://url.spec.what=
wg.org/#url-rendering</a> for the rules you=E2=80=99ll need to modify to =
get your =E2=80=9Caddress bar=E2=80=99 conventions.<o:p></o:p></p><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>=3D=3D<o:p></o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt'><a =
href=3D"https://larrymasinter.net/"><span =
style=3D'color:#0563C1'>https://LarryMasinter.net</span></a> <a =
href=3D"https://going-remote.info/"><span =
style=3D'color:#0563C1'>https://going-remote.info</span></a><o:p></o:p></=
span></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><div =
style=3D'border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt'><div><div style=3D'border:none;border-top:solid #E1E1E1 =
1.0pt;padding:3.0pt 0in 0in 0in'><p class=3DMsoNormal><b>From:</b> Wpack =
&lt;wpack-bounces@ietf.org&gt; <b>On Behalf Of </b>Jeffrey =
Yasskin<br><b>Sent:</b> Friday, June 12, 2020 4:08 PM<br><b>To:</b> =
Martin Thomson &lt;mt@lowentropy.net&gt;; mknodel@cdt.org<br><b>Cc:</b> =
WPACK List &lt;wpack@ietf.org&gt;<br><b>Subject:</b> Re: [Wpack] =
package: URL scheme<o:p></o:p></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>Hi =
Martin and Mallory,<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>As Larry mentioned, when the bundle is unsigned, it's =
the entity serving the bundle -- distributor.example here -- who has the =
ability to change the content, so they're probably the &quot;true&quot; =
authority. They're quoting the original publisher of the content, but =
there's no way for the user to verify that the quote is =
accurate.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Do you support the general goal of giving =
pairwise-distinct origins to all of:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>1. <a =
href=3D"https://foo.example/page.html">https://foo.example/page.html</a><=
o:p></o:p></p></div><div><p class=3DMsoNormal>2.&nbsp;<a =
href=3D"https://bar.example/page.html">https://bar.example/page.html</a><=
o:p></o:p></p></div><div><p class=3DMsoNormal>3. A resource in the =
bundle at <a =
href=3D"https://foo.example/bundle.wbn">https://foo.example/bundle.wbn</a=
> named <a =
href=3D"https://bar.example/page.html">https://bar.example/page.html</a>.=
<o:p></o:p></p></div><div><p class=3DMsoNormal>4. A resource in the =
bundle at <a =
href=3D"https://foo.example/bundle.wbn">https://foo.example/bundle.wbn</a=
> named <a =
href=3D"https://quux.example/page.html">https://quux.example/page.html</a=
>.<o:p></o:p></p></div><div><p class=3DMsoNormal>5. A resource in the =
bundle at <a =
href=3D"https://foo.example/otherbundle.wbn">https://foo.example/otherbun=
dle.wbn</a> named <a =
href=3D"https://bar.example/page.html">https://bar.example/page.html</a>.=
<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>If we say (1) and (3) get the same origin, it means =
the result can't help the Internet Archive serve their pages more =
safely, and we force (3), (4), and (5) to have the same =
origins.<o:p></o:p></p></div><div><p class=3DMsoNormal>If we say (2) and =
(3) get the same origin, we break the entire web origin security model. =
:-D<o:p></o:p></p></div><div><p class=3DMsoNormal>If we say (3) and (4) =
get the same origin, it means that El Paquete Semanal couldn't safely =
put multiple websites into the same bundle without risking them stepping =
on each other's storage. It could put them in separate files, but then =
they'd have trouble linking to each other.<o:p></o:p></p></div><div><p =
class=3DMsoNormal>If we say (3) and (5) get the same origin, it means =
that if an archive stores multiple versions of the same website, but =
those versions use storage differently, users couldn't easily try more =
than one version.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Abandoning some of these use cases definitely makes =
the URL design easier, if there's consensus to go that =
direction.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>However, if we want to keep the use cases, and we want =
to put the bundle's server in the authority position of the URL, we get =
something like Larry's suggestion: pkg+<a =
href=3D"https://foo.example/bundle.wbn?query#https://bar.example/page.htm=
l?q=3Dquery%23fragment">https://foo.example/bundle.wbn?query#https://bar.=
example/page.html?q=3Dquery%23fragment</a>. To give (3)-(5) distinct =
origins, the <a href=3D"https://url.spec.whatwg.org/#origin">origin =
algorithm</a> for pkg+https needs to take the fragment into account, =
returning something like (&quot;pkg+https&quot;, =
&quot;foo.example/bundle.wbn?query#<a =
href=3D"https://bar.example">https://bar.example</a>&quot;, null, null). =
This design also makes it possible to resolve relative URLs relative to =
a pkg+https:// base URL, and it gives what's probably the wrong =
answer,&nbsp;moving relative to the bundle instead of the active =
subresource. That's probably&nbsp;ok: links inside a bundle need to =
explicitly search the bundle so that absolute references search the =
bundle first.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>If we want to prevent package URLs from being used as =
base URLs, we could move to something like &quot;package:<a =
href=3D"https://foo.example/bundle.wbn?query#https://bar.example/page.htm=
l?q=3Dquery%23fragment">https://foo.example/bundle.wbn?query#https://bar.=
example/page.html?q=3Dquery%23fragment</a>&quot;, which has a similar =
syntax to blob: URLs and is still more readable than my original =
proposal.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Jeffrey<o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>On =
Thu, Jun 11, 2020 at 5:02 PM Martin Thomson &lt;<a =
href=3D"mailto:mt@lowentropy.net">mt@lowentropy.net</a>&gt; =
wrote:<o:p></o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in'><p class=3DMsoNormal>I have a =
bunch of concerns about this approach, but let's start with a fairly =
major one:<br><br>This buries the authority.&nbsp; If your authority is =
truly publisher.example, then that should be the authority =
component.&nbsp; If you regard the rest as a split between the remainder =
of the identity of the resource itself and some secondary information =
about how that resource might be obtained, then you might have something =
closer to how you might want to structure a URI.<br><br>On Thu, Jun 11, =
2020, at 08:00, Jeffrey Yasskin wrote:<br>&gt; Hi all,<br>&gt; <br>&gt; =
I wanted to raise awareness of a discussion about the URL scheme for =
<br>&gt; addressing resources within bundles <br>&gt; =
(draft-yasskin-wpack-bundled-exchanges).<br>&gt; <br>&gt; We seem to be =
heading toward a URL of the form <br>&gt; =
package:&lt;encoded-package-url&gt;$&lt;encoded-resource-uri&gt;, which =
for a <br>&gt; package URL of <a =
href=3D"https://distributor.example/package.wbn" =
target=3D"_blank">https://distributor.example/package.wbn</a> and =
resource URI <br>&gt; of <a =
href=3D"https://publisher.example/page.html?q=3Dquery" =
target=3D"_blank">https://publisher.example/page.html?q=3Dquery</a> =
would lead to a URL of:<br>&gt; <br>&gt; =
*package:https:,,distributor.example,package.wbn;q=3Dquery$https:,,publis=
her.example/page.html?q=3Dquery*<br>&gt; <br>&gt; This arises from =
several considerations:<br>&gt; 1. A bundle is served from a =
URL.<br>&gt; 2. After a user downloads the bundle, it gets a new URL, =
often <br>&gt; <a href=3D"file:///">file:///</a>...<br>&gt; 3. We can =
also hash the bundle to get a URI that stays stable across <br>&gt; =
transfers.<br>&gt; 4. Resources inside a bundle are named by URIs =
(which, since the bundle <br>&gt; has an index, are also URLs even if, =
like urn:uuid:..., they wouldn't <br>&gt; normally be locators).<br>&gt; =
5. Once a user downloads a bundle, for web browsers to give its content =
<br>&gt; storage that's persistent across reloads, as requested in =
<br>&gt; <a href=3D"https://github.com/WICG/webpackage/issues/498" =
target=3D"_blank">https://github.com/WICG/webpackage/issues/498</a>, the =
content needs to be <br>&gt; assigned a non-opaque origin.<br>&gt; =
<br>&gt; I'm updating one of the documents about this in <br>&gt; <a =
href=3D"https://github.com/WICG/webpackage/pull/584" =
target=3D"_blank">https://github.com/WICG/webpackage/pull/584</a> and =
would welcome comments <br>&gt; here or there.<br>&gt; <br>&gt; The URLs =
are obviously gross, so <br>&gt; <a =
href=3D"https://github.com/WICG/webpackage/pull/560" =
target=3D"_blank">https://github.com/WICG/webpackage/pull/560</a> =
suggests that browsers <br>&gt; avoid showing them to users in most =
cases. <br>&gt; <br>&gt; We could potentially simplify things if =
packages named things with just <br>&gt; paths instead of full URIs. =
We'd then name things based on the bundle's <br>&gt; origin. However, =
this loses archiving use cases.<br>&gt; <br>&gt; This is all further =
discussed in the following documents and issues, <br>&gt; but you =
shouldn't feel responsible to read everything here:<br>&gt; <br>&gt; * =
<br>&gt; <a =
href=3D"https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3PaoMzEutuQAZ=
i1r8Y0pLaFJQoo/edit" =
target=3D"_blank">https://docs.google.com/document/d/1BYQEi8xkXDAg9lxm3Pa=
oMzEutuQAZi1r8Y0pLaFJQoo/edit#</a><br>&gt; * <br>&gt; =
https://chromium-review.<a =
href=3D"http://googlesource.com/c/chromium/src/+/2226248/7#message-0a3efd=
a5aff84770a1729422a5b26aeca3ee4e80" =
target=3D"_blank">googlesource.com/c/chromium/src/+/2226248/7#message-0a3=
efda5aff84770a1729422a5b26aeca3ee4e80</a> &lt;<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><a =
href=3D"https://chromium-review.googlesource.com/c/chromium/src/+/2226248=
/7#message-0a3efda5aff84770a1729422a5b26aeca3ee4e80">https://chromium-rev=
iew.googlesource.com/c/chromium/src/+/2226248/7#message-0a3efda5aff84770a=
1729422a5b26aeca3ee4e80</a>&gt;<br>&gt; * <a =
href=3D"https://github.com/WICG/webpackage/issues/583" =
target=3D"_blank">https://github.com/WICG/webpackage/issues/583</a><br>&g=
t; * <br>&gt; <a =
href=3D"https://github.com/WICG/webpackage/blob/master/explainers/navigat=
ion-to-unsigned-bundles.md#urls-for-bundle-components" =
target=3D"_blank">https://github.com/WICG/webpackage/blob/master/explaine=
rs/navigation-to-unsigned-bundles.md#urls-for-bundle-components</a><br>&g=
t; * <a =
href=3D"https://lists.w3.org/Archives/Public/uri/2019Nov/0000.html" =
target=3D"_blank">https://lists.w3.org/Archives/Public/uri/2019Nov/0000.h=
tml</a><br>&gt; <br>&gt; Thanks,<br>&gt; Jeffrey<br>&gt; =
_______________________________________________<br>&gt; Wpack mailing =
list<br>&gt; <a href=3D"mailto:Wpack@ietf.org" =
target=3D"_blank">Wpack@ietf.org</a><br>&gt; <a =
href=3D"https://www.ietf.org/mailman/listinfo/wpack" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><br>&gt;=
<br><br>_______________________________________________<br>Wpack mailing =
list<br><a href=3D"mailto:Wpack@ietf.org" =
target=3D"_blank">Wpack@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/wpack" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/wpack</a><o:p></o=
:p></p></blockquote></div></div></div></div></body></html>
------=_NextPart_000_0069_01D641C2.EA68DCD0--


From nobody Sun Jun 14 18:38:19 2020
Return-Path: <mt@lowentropy.net>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4CE1A3A07E7 for <wpack@ietfa.amsl.com>; Sun, 14 Jun 2020 18:38:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=JZaWh4G7; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=AD9N0TxO
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ND4vxXigFocM for <wpack@ietfa.amsl.com>; Sun, 14 Jun 2020 18:38:15 -0700 (PDT)
Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 988C33A085B for <wpack@ietf.org>; Sun, 14 Jun 2020 18:38:13 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id B23B93FB; Sun, 14 Jun 2020 21:38:12 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute2.internal (MEProxy); Sun, 14 Jun 2020 21:38:12 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :cc:subject:content-type; s=fm2; bh=GmBWWK9xc235D7u0cpMDdoxs/4kv iaqSMCsRP0/o2Go=; b=JZaWh4G7tai2KVFjLoiwMhXN95MoTxjeEJYu2D/oTurI NRlpH4qlt9FGXVk7sYxq2SODB5ia5d26AdURr4TXJolkhlEoChCBhLbPjhlEqTcu bIQmEC5e9CvDoKxxdf5NsIf6OlNxjfLHn0kKdJJHPa8fKDdrZ1Ua1Fx3v0c3jnDi xBa0D2UJuA1BRMzmb0BPf1sSkqu5P0jCOcTrSkFLudjHCd+HyfcTknJl4x/yWxIJ 7bSFplZsksQHMjh3rouGn26J0zfdPT94jgsaob/HK2FbW5IvzIpEwQA9NO/29JQO WvmZzRaVpbPIuhBPky+BptCy3m7WWfgpdV7Xh6aICQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=GmBWWK 9xc235D7u0cpMDdoxs/4kviaqSMCsRP0/o2Go=; b=AD9N0TxOR/20hFkaJ+O4Ix AtjK9l3lFAnevOuyMolEx3juGdIRXqCMEELuyEEYebVIytJqCDZsH9BldjkSe7Wi A3dFu+uJMfixBoJmCxp0IoT3pNn7y5U41t5qZT4emiSZDInHQ0xNYfcYQpI07hgg g2hhfnymYoen4UfcwkKNlrpfWoojxEu1VSPkJle5UH82ZzXK3XsRUgIkV33ME9sW f/Xm1hiQLX1ck5UP8Jkc1opaeJjHgde8d/NYaqBT7HzBz5LQdW9g2orfUMTv2ImZ 41lt+J1tzOoa8jurjjieIdmx166u16lNm0lvbpvoS0WAkauM9zLiHOL4wUc6wkpQ ==
X-ME-Sender: <xms:BNHmXvtelTeSnNs3a9eUGFc06yhZgXdYAIKKe6vowmZ4nLMXq89TeQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudeijedghedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvffutgesthdtredtreertdenucfhrhhomhepfdforghr thhinhcuvfhhohhmshhonhdfuceomhhtsehlohifvghnthhrohhphidrnhgvtheqnecugg ftrfgrthhtvghrnhephfdtfedtjeeivdetkeevgfdtieethffhgfetvdejieekkeetvdev ffdtvefggeefnecuffhomhgrihhnpehhthhmlhhqqhhuvghrhidvfehfrhgrghhmvghnth drthhopdifhhgrthifghdrohhrghdpvgigrghmphhlvgdrtghomhenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmtheslhhofigvnhhtrhhoph ihrdhnvght
X-ME-Proxy: <xmx:BNHmXgcPSV_dDjdAwrWuxCGTMaNk5QQ_JxrDViPiw_PBChXQoN8kcw> <xmx:BNHmXiwIcBnMkrliNTP4bRh19rL48JBDouUiNpdbRzd5DhwpZp_rlA> <xmx:BNHmXuNufnGu-Cmd_R9Z-Ufyw_-adSCJM0NBfnpNOaq_fc9nomt5eg> <xmx:BNHmXsJ7h53WwzxEuTm-jdzO1ENOEyVULEyxfKEoVDDyGzT36uQzGw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 0C2E0E00A8; Sun, 14 Jun 2020 21:38:12 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-dev0-525-ge8fa799-fm-20200609.001-ge8fa7990
Mime-Version: 1.0
Message-Id: <c52ed6da-a7fa-4802-8923-d9782f498daf@www.fastmail.com>
In-Reply-To: <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com>
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com> <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com>
Date: Mon, 15 Jun 2020 11:37:25 +1000
From: "Martin Thomson" <mt@lowentropy.net>
To: "Jeffrey Yasskin" <jyasskin@chromium.org>, mknodel@cdt.org
Cc: "WPACK List" <wpack@ietf.org>
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/VrbvoWHJChAoAnWIUc2ZATBv4mI>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 15 Jun 2020 01:38:17 -0000

On Sat, Jun 13, 2020, at 09:07, Jeffrey Yasskin wrote:
> 1. https://foo.example/page.html
> 2. https://bar.example/page.html
> 3. A resource in the bundle at https://foo.example/bundle.wbn named 
> https://bar.example/page.html.
> 4. A resource in the bundle at https://foo.example/bundle.wbn named 
> https://quux.example/page.html.
> 5. A resource in the bundle at https://foo.example/otherbundle.wbn 
> named https://bar.example/page.html.
> 
> If we say (1) and (3) get the same origin, it means the result can't 
> help the Internet Archive serve their pages more safely, and we force 
> (3), (4), and (5) to have the same origins.

Yes, I think that having 1 and 3 being distinct is an important property.  I tend to stop at this point and not try to add too much more, but there you go.

> If we say (2) and (3) get the same origin, we break the entire web 
> origin security model. :-D

(1) and (2) more so.

Part of what we're trying to do is find a way to bring (2) and (3) closer (and (5) too). That doesn't necessarily need to mean that we treat them identically.  Though we might find a path to doing so.

> If we say (3) and (4) get the same origin, it means that El Paquete 
> Semanal couldn't safely put multiple websites into the same bundle 
> without risking them stepping on each other's storage. It could put 
> them in separate files, but then they'd have trouble linking to each 
> other.

What cannot be solved with one level of abstraction might be solved with two.

If the distinctive characteristic of a bundle is that it creates a new origin, then a bundle that contains other bundles can be used to isolate content from different origins.  The El Paquete Semanal as a whole could be assembled from multiple bundles from different "real" origins.

As you say, that complicates the process of inter-origin references.  Say the El Paquete Semanal bundle was served by non-determined means, then you can't rely on having a shared identifier for the outer bundle, unless you have some means of minting one.  (This is a case where you can't refer to the outer bundle from the inner one using content identification, for reasons that I hope are obvious.)  So you mint one (a signing key might suffice) and then you can refer from one inner bundle to another inner bundle via that identifier.

The reference chain might become convoluted, but I don't see a need to constrain URL design to fit that use case.  As long as references are possible, then we can work on making it more usable.  If you have siteA.example and siteB.example served from bundle.example from distributor.example, then my hope would be that your inter-site references are of the form:

<something>://siteX.example/<a hint that mentions bundle.example and maybe distributor.example, but the latter might be best left implied>

I say that because while siteA and siteB might expect to be served from the same meta-bundle, there shouldn't need to be a strong binding to that situation.  If one is and the other not, then I would hope that the identifiers would support that without requiring strong changes.

> If we say (3) and (5) get the same origin, it means that if an archive 
> stores multiple versions of the same website, but those versions use 
> storage differently, users couldn't easily try more than one version.

I think that this is a key question.  My assertion is that maintaining a clean abstraction for bundles is important and that would dictate having (3) and (5) distinct.  At least initially.  Mechanisms that allow transfer of state or content between origins might allow an upgrade to occur from (3) to (5).

> Abandoning some of these use cases definitely makes the URL design 
> easier, if there's consensus to go that direction.
> 
> However, if we want to keep the use cases, and we want to put the 
> bundle's server in the authority position of the URL, we get something 
> like Larry's suggestion: 
> pkg+https://foo.example/bundle.wbn?query#https://bar.example/page.html?q=query%23fragment. To give (3)-(5) distinct origins, the origin algorithm <https://url.spec.whatwg.org/#origin> for pkg+https needs to take the fragment into account, returning something like ("pkg+https", "foo.example/bundle.wbn?query#https://bar.example", null, null). This design also makes it possible to resolve relative URLs relative to a pkg+https:// base URL, and it gives what's probably the wrong answer, moving relative to the bundle instead of the active subresource. That's probably ok: links inside a bundle need to explicitly search the bundle so that absolute references search the bundle first.

Rather than try to work the identity of the serving entity into the origin, it might be better to look to the limits of the origin concept.  We're seeing browsers move more toward placing origins within a greater context.  Double-keying storage by top-level browsing context shows us how maybe the origin isn't able to capture the entire context.  The same might apply here.  Maybe it is important that this bundle originally came from foo.example, but it might not be important to the concept of the origin model.

Relative references within a bundle should be simple and possible, but I fear that expecting fragments to support that is likely to run afoul of all sorts of existing expectations.  Using fragments for bundles is likely good if you don't want to mint a new URI scheme, but if you are in the business of defining a new scheme, then go for it.

If you are defining a new media type, then the fragment can do whatever you like.  With no new URI scheme needed:

https://foo.example/bundle.wbn?query#<use whatever you feel like, but don't expect internal references to work>

Similarly, once you are defining a new URI scheme, then you have a lot of options available.  The URI standard is perhaps unnecessarily narrow in its definition of authority, but there's a lot of room for creative interpretation: a registered name doesn't need to be domain name, and there are no real mechanism that ensure that it is "registered" (whatever that means).

pkg://<the authority for the above bundle, which might not be bar.example>/page.html?q=query%23fragment

The definition of origin necessarily becomes more flexible.  Rather than insist on the reduction to a simple tuple for an origin, we should regard these having a same-origin comparison operation, which sometimes allow two origins to be regarded the same, even with vastly different inputs.  The reduction to a tuple is useful, but potentially quite confining.

If pkg://<bar> and https://<foo> happen to be same origin because we decide that is useful (and safe), then we should be free to define that as we choose, within the constraints of the origin tuple or not.

Despite it being quite clearly invalid for domain name and port, this is completely valid URI if we so choose: <pkg://$:1000000/>. That doesn't mean that it couldn't be same-origin with <https://example.com/>, but it might be a little tricky to reduce to an origin tuple.


From nobody Mon Jun 15 11:17:13 2020
Return-Path: <jyasskin@google.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3D4243A0887 for <wpack@ietfa.amsl.com>; Mon, 15 Jun 2020 11:17:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.25
X-Spam-Level: 
X-Spam-Status: No, score=-9.25 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c33c_KVn7zb1 for <wpack@ietfa.amsl.com>; Mon, 15 Jun 2020 11:17:09 -0700 (PDT)
Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A48823A089C for <wpack@ietf.org>; Mon, 15 Jun 2020 11:17:09 -0700 (PDT)
Received: by mail-qt1-x841.google.com with SMTP id d27so13411512qtg.4 for <wpack@ietf.org>; Mon, 15 Jun 2020 11:17:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qzud+dls6AaR6w8tw5zFm0wVR+KOtt9JvdXmQycdLOc=; b=VfnLAwYIkckPr2rZ+eHxetVHAVlbu358Yf3GxYuupwkpXoGdRckibo1MYpoeSq4ELM 8rcqd5c1CHlr41/hpc/Z8KDWBXt0+X1WnFT9eTCy1BxTJ85YL8fu72uKEaP92joli0Yg TfMyBLyNV3DRu89NanuvP8Ley/5RkQhC+b1Ro=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qzud+dls6AaR6w8tw5zFm0wVR+KOtt9JvdXmQycdLOc=; b=d7mhE9lVgDmZo8W/YxV01nRwUajzN0eqsE3TPjZxL8qscpYlJlgrDExOTwqoXExuIp tn3hy/hcDWsSVhwkFl6r6bFNzjs0WBhZQ2vzNzKpJzEAd4pjSLZZPSHXqUKv95/535wV aMUwQhsgQbuEKgWjYIPyuNfbhYWOI0gsPjdVJF/WE1us8wz6xzBD71shTd/MWFG8DMoq FqZGSDRglYX+7vAa7oKB/BYcQHt1WMaE1u7TpINWnKjlFydB3yBLiOI5CXaX7CXMZGS2 +03t00PGGkm+kzrM0ax8My6njA3qgDt8jwIISKc3LRowYBrGB8PrIZ1oo0G9NOrHspU+ rLcA==
X-Gm-Message-State: AOAM530jp4I+PCwVwuo4oCW8PZsRJxwhrA57epiyyauXLqK/HoeEhyDe 8ww3LvUhgQ87wahA2BTc+lvtgSC3fskTH+qi/CRZ3w==
X-Google-Smtp-Source: ABdhPJysdKr3+smUBDIwJsTJQoC0vBOwqcJPXPhT+3ymZDsTokKMpYVW35BnaZtmSWyJ1/kUHQXVPKWHi/KqB4QWBSo=
X-Received: by 2002:aed:33c1:: with SMTP id v59mr17408250qtd.250.1592245028185;  Mon, 15 Jun 2020 11:17:08 -0700 (PDT)
MIME-Version: 1.0
References: <CANh-dXndPaue3zAADhpc+wyNb8dxs=nVKOAp1n=6SMCKoUe=eQ@mail.gmail.com> <97bcac95-c220-41ae-b957-d93fc57f4a74@www.fastmail.com> <CANh-dXkXnvi+1YK-+CjPaiiN9VhAecLEEjpever7D-gVB-sN0A@mail.gmail.com> <c52ed6da-a7fa-4802-8923-d9782f498daf@www.fastmail.com>
In-Reply-To: <c52ed6da-a7fa-4802-8923-d9782f498daf@www.fastmail.com>
From: Jeffrey Yasskin <jyasskin@chromium.org>
Date: Mon, 15 Jun 2020 11:16:56 -0700
Message-ID: <CANh-dXmoWarbW=9wy1=t6rcFh2T8ph7LhhBg5aZ_6auLSYp7-w@mail.gmail.com>
To: Martin Thomson <mt@lowentropy.net>
Cc: Jeffrey Yasskin <jyasskin@chromium.org>, mknodel@cdt.org, WPACK List <wpack@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004d684f05a8236f5a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/dzx7EoipRrH5FH8JnmBA30FF9ew>
Subject: Re: [Wpack] package: URL scheme
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 15 Jun 2020 18:17:12 -0000

--0000000000004d684f05a8236f5a
Content-Type: text/plain; charset="UTF-8"

Replies inline.

On Sun, Jun 14, 2020 at 6:38 PM Martin Thomson <mt@lowentropy.net> wrote:

> On Sat, Jun 13, 2020, at 09:07, Jeffrey Yasskin wrote:
> > 1. https://foo.example/page.html
> > 2. https://bar.example/page.html
> > 3. A resource in the bundle at https://foo.example/bundle.wbn named
> > https://bar.example/page.html.
> > 4. A resource in the bundle at https://foo.example/bundle.wbn named
> > https://quux.example/page.html.
> > 5. A resource in the bundle at https://foo.example/otherbundle.wbn
> > named https://bar.example/page.html.
> >
> > If we say (1) and (3) get the same origin, it means the result can't
> > help the Internet Archive serve their pages more safely, and we force
> > (3), (4), and (5) to have the same origins.
>
> Yes, I think that having 1 and 3 being distinct is an important property.
> I tend to stop at this point and not try to add too much more, but there
> you go.
>

I think distinguishing (1) and (3) requires a new scheme.

> If we say (2) and (3) get the same origin, we break the entire web
> > origin security model. :-D
>
> (1) and (2) more so.
>
> Part of what we're trying to do is find a way to bring (2) and (3) closer
> (and (5) too). That doesn't necessarily need to mean that we treat them
> identically.  Though we might find a path to doing so.
>

I think the signing or transfer effort described
in draft-thomson-wpack-content-origin
and draft-yasskin-http-origin-signed-responses tries to get (2) and (3)
closer together, but here I'm focusing on use cases that don't need the
browser to recognize (2) and (3) as related at all.

> If we say (3) and (4) get the same origin, it means that El Paquete
> > Semanal couldn't safely put multiple websites into the same bundle
> > without risking them stepping on each other's storage. It could put
> > them in separate files, but then they'd have trouble linking to each
> > other.
>
> What cannot be solved with one level of abstraction might be solved with
> two.
>
> If the distinctive characteristic of a bundle is that it creates a new
> origin, then a bundle that contains other bundles can be used to isolate
> content from different origins.  The El Paquete Semanal as a whole could be
> assembled from multiple bundles from different "real" origins.
>
> As you say, that complicates the process of inter-origin references.  Say
> the El Paquete Semanal bundle was served by non-determined means, then you
> can't rely on having a shared identifier for the outer bundle, unless you
> have some means of minting one.  (This is a case where you can't refer to
> the outer bundle from the inner one using content identification, for
> reasons that I hope are obvious.)  So you mint one (a signing key might
> suffice) and then you can refer from one inner bundle to another inner
> bundle via that identifier.
>
> The reference chain might become convoluted, but I don't see a need to
> constrain URL design to fit that use case.  As long as references are
> possible, then we can work on making it more usable.  If you have
> siteA.example and siteB.example served from bundle.example from
> distributor.example, then my hope would be that your inter-site references
> are of the form:
>
> <something>://siteX.example/<a hint that mentions bundle.example and maybe
> distributor.example, but the latter might be best left implied>
>
> I say that because while siteA and siteB might expect to be served from
> the same meta-bundle, there shouldn't need to be a strong binding to that
> situation.  If one is and the other not, then I would hope that the
> identifiers would support that without requiring strong changes.
>

There's a downside that this still requires rewriting all the cross-origin
links inside the documents, but as El Paquete Semanal is already rewriting
links to put everything on a filesystem, maybe that's not a big problem.

I'm curious what you think the hint could look like. You've sketched it in
the path area, but these URLs also have paths, so we'd need something to
separate the two parts of the path in the same way my first attempt
separated two parts of the authority.

> If we say (3) and (5) get the same origin, it means that if an archive
> > stores multiple versions of the same website, but those versions use
> > storage differently, users couldn't easily try more than one version.
>
> I think that this is a key question.  My assertion is that maintaining a
> clean abstraction for bundles is important and that would dictate having
> (3) and (5) distinct.  At least initially.  Mechanisms that allow transfer
> of state or content between origins might allow an upgrade to occur from
> (3) to (5).
>
> > Abandoning some of these use cases definitely makes the URL design
> > easier, if there's consensus to go that direction.
> >
> > However, if we want to keep the use cases, and we want to put the
> > bundle's server in the authority position of the URL, we get something
> > like Larry's suggestion:
> > pkg+
> https://foo.example/bundle.wbn?query#https://bar.example/page.html?q=query%23fragment.
> To give (3)-(5) distinct origins, the origin algorithm <
> https://url.spec.whatwg.org/#origin> for pkg+https needs to take the
> fragment into account, returning something like ("pkg+https",
> "foo.example/bundle.wbn?query#https://bar.example", null, null). This
> design also makes it possible to resolve relative URLs relative to a
> pkg+https:// base URL, and it gives what's probably the wrong answer,
> moving relative to the bundle instead of the active subresource. That's
> probably ok: links inside a bundle need to explicitly search the bundle so
> that absolute references search the bundle first.
>
> Rather than try to work the identity of the serving entity into the
> origin, it might be better to look to the limits of the origin concept.
> We're seeing browsers move more toward placing origins within a greater
> context.  Double-keying storage by top-level browsing context shows us how
> maybe the origin isn't able to capture the entire context.  The same might
> apply here.  Maybe it is important that this bundle originally came from
> foo.example, but it might not be important to the concept of the origin
> model.
>

This is an interesting point: we could use the new storage keys
<https://storage.spec.whatwg.org/#storage-keys> being created by
https://github.com/privacycg/storage-partitioning to declare that an
environment settings object with a bundle attached uses a storage key
derived from both the bundle's URL and the subresource's URL, instead of
trying to encapsulate both into a single origin.

Relative references within a bundle should be simple and possible, but I
> fear that expecting fragments to support that is likely to run afoul of all
> sorts of existing expectations.  Using fragments for bundles is likely good
> if you don't want to mint a new URI scheme, but if you are in the business
> of defining a new scheme, then go for it.
>
> If you are defining a new media type, then the fragment can do whatever
> you like.  With no new URI scheme needed:
>
> https://foo.example/bundle.wbn?query#<use whatever you feel like, but
> don't expect internal references to work>
>
> Similarly, once you are defining a new URI scheme, then you have a lot of
> options available.  The URI standard is perhaps unnecessarily narrow in its
> definition of authority, but there's a lot of room for creative
> interpretation: a registered name doesn't need to be domain name, and there
> are no real mechanism that ensure that it is "registered" (whatever that
> means).
>
> pkg://<the authority for the above bundle, which might not be
> bar.example>/page.html?q=query%23fragment
>

This is how I got
to package:https:,,distributor.example,package.wbn;q=query$https:,,publisher.example/page.html?q=query
(or package://...). It claims that the "authority" for a subresource inside
a bundle consists of both the bundle's location and the subresource's
origin. arcp:// did the same, but without the subresource's origin, which
would have the effect of unifying (3) and (4).

The definition of origin necessarily becomes more flexible.  Rather than
> insist on the reduction to a simple tuple for an origin, we should regard
> these having a same-origin comparison operation, which sometimes allow two
> origins to be regarded the same, even with vastly different inputs.  The
> reduction to a tuple is useful, but potentially quite confining.
>
> If pkg://<bar> and https://<foo> happen to be same origin because we
> decide that is useful (and safe), then we should be free to define that as
> we choose, within the constraints of the origin tuple or not.
>
> Despite it being quite clearly invalid for domain name and port, this is
> completely valid URI if we so choose: <pkg://$:1000000/>. That doesn't mean
> that it couldn't be same-origin with <https://example.com/>, but it might
> be a little tricky to reduce to an origin tuple.
>

I don't mind diverging from the origin-tuple concept, but so far I haven't
found a need to.

Thanks,
Jeffrey

--0000000000004d684f05a8236f5a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Replies inline.=C2=A0</div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jun 14, 2020 at 6:38 PM =
Martin Thomson &lt;<a href=3D"mailto:mt@lowentropy.net">mt@lowentropy.net</=
a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On=
 Sat, Jun 13, 2020, at 09:07, Jeffrey Yasskin wrote:<br>
&gt; 1. <a href=3D"https://foo.example/page.html" rel=3D"noreferrer" target=
=3D"_blank">https://foo.example/page.html</a><br>
&gt; 2. <a href=3D"https://bar.example/page.html" rel=3D"noreferrer" target=
=3D"_blank">https://bar.example/page.html</a><br>
&gt; 3. A resource in the bundle at <a href=3D"https://foo.example/bundle.w=
bn" rel=3D"noreferrer" target=3D"_blank">https://foo.example/bundle.wbn</a>=
 named <br>
&gt; <a href=3D"https://bar.example/page.html" rel=3D"noreferrer" target=3D=
"_blank">https://bar.example/page.html</a>.<br>
&gt; 4. A resource in the bundle at <a href=3D"https://foo.example/bundle.w=
bn" rel=3D"noreferrer" target=3D"_blank">https://foo.example/bundle.wbn</a>=
 named <br>
&gt; <a href=3D"https://quux.example/page.html" rel=3D"noreferrer" target=
=3D"_blank">https://quux.example/page.html</a>.<br>
&gt; 5. A resource in the bundle at <a href=3D"https://foo.example/otherbun=
dle.wbn" rel=3D"noreferrer" target=3D"_blank">https://foo.example/otherbund=
le.wbn</a> <br>
&gt; named <a href=3D"https://bar.example/page.html" rel=3D"noreferrer" tar=
get=3D"_blank">https://bar.example/page.html</a>.<br>
&gt; <br>
&gt; If we say (1) and (3) get the same origin, it means the result can&#39=
;t <br>
&gt; help the Internet Archive serve their pages more safely, and we force =
<br>
&gt; (3), (4), and (5) to have the same origins.<br>
<br>
Yes, I think that having 1 and 3 being distinct is an important property.=
=C2=A0 I tend to stop at this point and not try to add too much more, but t=
here you go.<br></blockquote><div><br></div><div>I think distinguishing (1)=
 and (3) requires a new scheme.</div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
&gt; If we say (2) and (3) get the same origin, we break the entire web <br=
>
&gt; origin security model. :-D<br>
<br>
(1) and (2) more so.<br>
<br>
Part of what we&#39;re trying to do is find a way to bring (2) and (3) clos=
er (and (5) too). That doesn&#39;t necessarily need to mean that we treat t=
hem identically.=C2=A0 Though we might find a path to doing so.<br></blockq=
uote><div><br></div><div>I think the signing or transfer effort described i=
n=C2=A0draft-thomson-wpack-content-origin and=C2=A0draft-yasskin-http-origi=
n-signed-responses tries to get (2) and (3) closer together, but here I&#39=
;m focusing on use cases that don&#39;t need the browser to recognize (2) a=
nd (3) as related at all.</div><div><br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex">
&gt; If we say (3) and (4) get the same origin, it means that El Paquete <b=
r>
&gt; Semanal couldn&#39;t safely put multiple websites into the same bundle=
 <br>
&gt; without risking them stepping on each other&#39;s storage. It could pu=
t <br>
&gt; them in separate files, but then they&#39;d have trouble linking to ea=
ch <br>
&gt; other.<br>
<br>
What cannot be solved with one level of abstraction might be solved with tw=
o.<br>
<br>
If the distinctive characteristic of a bundle is that it creates a new orig=
in, then a bundle that contains other bundles can be used to isolate conten=
t from different origins.=C2=A0 The El Paquete Semanal as a whole could be =
assembled from multiple bundles from different &quot;real&quot; origins.<br=
>
<br>
As you say, that complicates the process of inter-origin references.=C2=A0 =
Say the El Paquete Semanal bundle was served by non-determined means, then =
you can&#39;t rely on having a shared identifier for the outer bundle, unle=
ss you have some means of minting one.=C2=A0 (This is a case where you can&=
#39;t refer to the outer bundle from the inner one using content identifica=
tion, for reasons that I hope are obvious.)=C2=A0 So you mint one (a signin=
g key might suffice) and then you can refer from one inner bundle to anothe=
r inner bundle via that identifier.<br>
<br>
The reference chain might become convoluted, but I don&#39;t see a need to =
constrain URL design to fit that use case.=C2=A0 As long as references are =
possible, then we can work on making it more usable.=C2=A0 If you have site=
A.example and siteB.example served from bundle.example from distributor.exa=
mple, then my hope would be that your inter-site references are of the form=
:<br>
<br>
&lt;something&gt;://siteX.example/&lt;a hint that mentions bundle.example a=
nd maybe distributor.example, but the latter might be best left implied&gt;=
<br>
<br>
I say that because while siteA and siteB might expect to be served from the=
 same meta-bundle, there shouldn&#39;t need to be a strong binding to that =
situation.=C2=A0 If one is and the other not, then I would hope that the id=
entifiers would support that without requiring strong changes.<br></blockqu=
ote><div><br></div><div>There&#39;s a downside that this still requires rew=
riting all the cross-origin links inside the documents, but as El Paquete S=
emanal is already rewriting links to put everything on a filesystem, maybe =
that&#39;s not a big problem.</div><div><br></div><div>I&#39;m curious what=
 you think the hint could look like. You&#39;ve sketched it in the path are=
a, but these URLs also have paths, so we&#39;d need something to separate t=
he two parts of the path in the same way my first attempt separated two par=
ts of the authority.=C2=A0</div><div><br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">
&gt; If we say (3) and (5) get the same origin, it means that if an archive=
 <br>
&gt; stores multiple versions of the same website, but those versions use <=
br>
&gt; storage differently, users couldn&#39;t easily try more than one versi=
on.<br>
<br>
I think that this is a key question.=C2=A0 My assertion is that maintaining=
 a clean abstraction for bundles is important and that would dictate having=
 (3) and (5) distinct.=C2=A0 At least initially.=C2=A0 Mechanisms that allo=
w transfer of state or content between origins might allow an upgrade to oc=
cur from (3) to (5).<br>
<br>
&gt; Abandoning some of these use cases definitely makes the URL design <br=
>
&gt; easier, if there&#39;s consensus to go that direction.<br>
&gt; <br>
&gt; However, if we want to keep the use cases, and we want to put the <br>
&gt; bundle&#39;s server in the authority position of the URL, we get somet=
hing <br>
&gt; like Larry&#39;s suggestion: <br>
&gt; pkg+<a href=3D"https://foo.example/bundle.wbn?query#https://bar.exampl=
e/page.html?q=3Dquery%23fragment" rel=3D"noreferrer" target=3D"_blank">http=
s://foo.example/bundle.wbn?query#https://bar.example/page.html?q=3Dquery%23=
fragment</a>. To give (3)-(5) distinct origins, the origin algorithm &lt;<a=
 href=3D"https://url.spec.whatwg.org/#origin" rel=3D"noreferrer" target=3D"=
_blank">https://url.spec.whatwg.org/#origin</a>&gt; for pkg+https needs to =
take the fragment into account, returning something like (&quot;pkg+https&q=
uot;, &quot;foo.example/bundle.wbn?query#<a href=3D"https://bar.example" re=
l=3D"noreferrer" target=3D"_blank">https://bar.example</a>&quot;, null, nul=
l). This design also makes it possible to resolve relative URLs relative to=
 a pkg+https:// base URL, and it gives what&#39;s probably the wrong answer=
, moving relative to the bundle instead of the active subresource. That&#39=
;s probably ok: links inside a bundle need to explicitly search the bundle =
so that absolute references search the bundle first.<br>
<br>
Rather than try to work the identity of the serving entity into the origin,=
 it might be better to look to the limits of the origin concept.=C2=A0 We&#=
39;re seeing browsers move more toward placing origins within a greater con=
text.=C2=A0 Double-keying storage by top-level browsing context shows us ho=
w maybe the origin isn&#39;t able to capture the entire context.=C2=A0 The =
same might apply here.=C2=A0 Maybe it is important that this bundle origina=
lly came from foo.example, but it might not be important to the concept of =
the origin model.<br></blockquote><div><br></div><div>This is an interestin=
g point: we could use the new <a href=3D"https://storage.spec.whatwg.org/#s=
torage-keys">storage keys</a>=C2=A0being created by=C2=A0<a href=3D"https:/=
/github.com/privacycg/storage-partitioning">https://github.com/privacycg/st=
orage-partitioning</a>=C2=A0to declare that an environment settings object =
with a bundle attached uses a storage key derived from both the bundle&#39;=
s URL and the subresource&#39;s=C2=A0URL, instead of trying to encapsulate =
both into a single origin.</div><div><br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">
Relative references within a bundle should be simple and possible, but I fe=
ar that expecting fragments to support that is likely to run afoul of all s=
orts of existing expectations.=C2=A0 Using fragments for bundles is likely =
good if you don&#39;t want to mint a new URI scheme, but if you are in the =
business of defining a new scheme, then go for it.<br>
<br>
If you are defining a new media type, then the fragment can do whatever you=
 like.=C2=A0 With no new URI scheme needed:<br>
<br>
<a href=3D"https://foo.example/bundle.wbn?query#" rel=3D"noreferrer" target=
=3D"_blank">https://foo.example/bundle.wbn?query#</a>&lt;use whatever you f=
eel like, but don&#39;t expect internal references to work&gt;<br>
<br>
Similarly, once you are defining a new URI scheme, then you have a lot of o=
ptions available.=C2=A0 The URI standard is perhaps unnecessarily narrow in=
 its definition of authority, but there&#39;s a lot of room for creative in=
terpretation: a registered name doesn&#39;t need to be domain name, and the=
re are no real mechanism that ensure that it is &quot;registered&quot; (wha=
tever that means).<br>
<br>
pkg://&lt;the authority for the above bundle, which might not be bar.exampl=
e&gt;/page.html?q=3Dquery%23fragment<br></blockquote><div><br></div><div>Th=
is is how I got to=C2=A0package:https:,,distributor.example,package.wbn;q=
=3Dquery$https:,,publisher.example/page.html?q=3Dquery (or package://...). =
It claims that the &quot;authority&quot; for a subresource inside a bundle =
consists of both the bundle&#39;s location and the subresource&#39;s origin=
. arcp:// did the same, but without the subresource&#39;s origin, which wou=
ld have the effect of unifying (3) and (4).</div><div><br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);padding-left:1ex">
The definition of origin necessarily becomes more flexible.=C2=A0 Rather th=
an insist on the reduction to a simple tuple for an origin, we should regar=
d these having a same-origin comparison operation, which sometimes allow tw=
o origins to be regarded the same, even with vastly different inputs.=C2=A0=
 The reduction to a tuple is useful, but potentially quite confining.<br>
<br>
If pkg://&lt;bar&gt; and https://&lt;foo&gt; happen to be same origin becau=
se we decide that is useful (and safe), then we should be free to define th=
at as we choose, within the constraints of the origin tuple or not.<br>
<br>
Despite it being quite clearly invalid for domain name and port, this is co=
mpletely valid URI if we so choose: &lt;pkg://$:1000000/&gt;. That doesn&#3=
9;t mean that it couldn&#39;t be same-origin with &lt;<a href=3D"https://ex=
ample.com/" rel=3D"noreferrer" target=3D"_blank">https://example.com/</a>&g=
t;, but it might be a little tricky to reduce to an origin tuple.<br></bloc=
kquote><div><br></div><div>I don&#39;t mind diverging from the origin-tuple=
 concept, but so far I haven&#39;t found a need to.</div><div><br></div><di=
v>Thanks,</div><div>Jeffrey=C2=A0</div></div></div>

--0000000000004d684f05a8236f5a--


From nobody Mon Jun 22 21:13:11 2020
Return-Path: <sean@sn3rd.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1C3983A1734 for <wpack@ietfa.amsl.com>; Mon, 22 Jun 2020 21:13:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=sn3rd.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vAyy8o1MVwb4 for <wpack@ietfa.amsl.com>; Mon, 22 Jun 2020 21:13:08 -0700 (PDT)
Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com [IPv6:2607:f8b0:4864:20::730]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE3EB3A1735 for <wpack@ietf.org>; Mon, 22 Jun 2020 21:13:07 -0700 (PDT)
Received: by mail-qk1-x730.google.com with SMTP id l6so14036006qkc.6 for <wpack@ietf.org>; Mon, 22 Jun 2020 21:13:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sn3rd.com; s=google; h=from:mime-version:subject:message-id:references:to:date; bh=D9ulxBectyoTeBb9XGLzWLLuc7GnJt8WApQtEP5uwsg=; b=ZIPmGicawxmw7tPQiZdRpLpLFPHYsPwK769TqdRBVV7C8BFgXSqdUsJ/xTnEmkJxEX VMJb8tg7ENoSjr8wmYp6NBk25Bx5QpJrrFgk/rr9Q2ZtHltmdQf7jFaj0/rItFgZaa+r UefSkjSoXWRSKl3J/XHIJyVH8nvLfhac2nB08=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:references :to:date; bh=D9ulxBectyoTeBb9XGLzWLLuc7GnJt8WApQtEP5uwsg=; b=sPp5VW37jhEkmaUuBw5OWZMMsvIgfVk1PZnk0YpVTYS2Ably3SosHkdnSvuo0Nph3b /nGNPaUUtSlmSxx62ujbJ1j9SmCUitihSjwwV+4XgnClNX9KF9+6OPAvCifF8s/t5OPz mzu+/LxUP4gg9JxPYiDe783XCJIgHx1YhN7vWE6hQ+IR1lWKW/t0R+ghxrpDi0CJQ6aS wOi9a/gjooqb+ATGaau0Vxg0V+wLa8hGlip27Ol1y6heYBKW04BuAp0CvJGdIUdMxQlI mhZsolWSPKCo9MvFDe7G00NIvfnJTjcOLptn8/GkNTbBdfG0ge5rYzA/IbhMlMTZDtmd KOTw==
X-Gm-Message-State: AOAM530fDug6dTrXp74PE6+YkcUjNK3myn0NnkHVhIvEBM1O1SDGJkpJ 2yUcBv9SQTsTbYeiRguAeBMWB0I4SoE=
X-Google-Smtp-Source: ABdhPJzjMoqkhVr0nqCB6/n7QG4ecPNWUM0Aao5/0K3Ryyk8nBeGXAR62McrYOMaHIdUg0OwpHkWFA==
X-Received: by 2002:a37:4f4f:: with SMTP id d76mr19464618qkb.40.1592885586756;  Mon, 22 Jun 2020 21:13:06 -0700 (PDT)
Received: from sn3rd.lan ([75.102.131.34]) by smtp.gmail.com with ESMTPSA id g145sm5846311qke.17.2020.06.22.21.13.05 for <wpack@ietf.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jun 2020 21:13:06 -0700 (PDT)
From: Sean Turner <sean@sn3rd.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_DB6A67B2-8310-4DA8-8A94-E7AF0BA78180"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Message-Id: <4EF46447-4304-4415-B4B4-955E2ADB96E7@sn3rd.com>
References: <159251992201.11993.15942540018989542642@ietfa.amsl.com>
To: WPACK List <wpack@ietf.org>
Date: Tue, 23 Jun 2020 00:13:04 -0400
X-Mailer: Apple Mail (2.3608.80.23.2.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/Ifl_WlPg9sj_i_J7dHNUVgs1rj8>
Subject: [Wpack] Fwd: Nomcom 2020-2021 Final Call For Volunteers
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jun 2020 04:13:10 -0000

--Apple-Mail=_DB6A67B2-8310-4DA8-8A94-E7AF0BA78180
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

In case you are not on the IETF discuss list.

spt

> Begin forwarded message:
>=20
> From: NomCom Chair 2020 <nomcom-chair-2020@ietf.org>
> Subject: Nomcom 2020-2021 Final Call For Volunteers
> Date: June 18, 2020 at 18:38:42 EDT
> To: "IETF Announcement List" <ietf-announce@ietf.org>
> Cc: ietf@ietf.org
>=20
> Hi IETFers,
> We're down to the last week of accepting NomCom volunteers. And I need =
more! Lots more!
>=20
> I have 64. I'd really like to get another 100 names. Hopefully, some =
of you are checking the volunteer box on IETF 108 registration. But I =
don't have anything from canceled IETF 107 registration, and the NomCom =
question wasn't asked on IETF 106. So I need a flood of volunteers to =
come in over the next week.
> Barbara
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> The IETF NomCom appoints people to fill the open slots on the LLC, =
IETF Trust, the IAB, and the IESG.
>=20
> Ten voting members for the NomCom are selected in a verifiably random =
way from a pool of volunteers. The more volunteers, the better chance we =
have of choosing a random yet representative cross section of the IETF =
population.
>=20
> The details of the operation of the NomCom can be found in BCP 10 (RFC =
8713). RFC 3797 details the selection algorithm.
>=20
> Special for this year (and only this year), we also have RFC 8788 =
(one-off update to RFC 8713 / BCP 10) to tell us who is eligible to =
volunteer:
>=20
>      Members of the IETF community must have attended at least three =
of
>      the last five in-person IETF meetings in order to volunteer.
>=20
>      The five meetings are the five most recent in-person meetings =
that
>      ended prior to the date on which the solicitation for NomCom
>      volunteers was submitted for distribution to the IETF community.
>      Because no IETF 107 in-person meeting was held, for the 2020-2021
>      Nominating Committee those five meetings are IETFs
>        102 [Montreal, Canada; July 2018],
>        103 [Bangkok, Thailand; November 2018],
>        104 [Prague, Czech Republic; March 2019],
>        105 [Montreal, Canada; July 2019], and=20
>        106 [Singapore; November 2019].
>=20
> Keep in mind that eligibility is based on in-person attendance at the =
five listed meetings. You can check your eligibility at: =
https://www.ietf.org/registration/nomcom.py.
>=20
> If you qualify, please volunteer. Before you decide to volunteer, =
please remember that anyone appointed to this NomCom will not be =
considered as a candidate for any of the positions that the 2020 - 2021 =
NomCom is responsible for filling.
>=20
> People commonly volunteer by ticking the box on IETF registration =
forms. The IETF 106 form did not ask whether people were willing to =
volunteer. IETF 107 did ask, but all those registrations were canceled. =
I have asked the Secretariat if it is possible to get the list if =
volunteers from canceled IETF 107 registrations. If that list is =
available, I will contact all who are verified as eligible. But given =
the uncertainty of this process, I would encourage people to volunteer =
directly (see the bottom of this email for instructions). Thank you for =
volunteering!
>=20
> The list of people and posts whose terms end with the March 2021 IETF =
meeting, and thus the positions for which this NomCom is responsible, =
are
>=20
> IETF Trust:
>    Joel Halpern
>=20
> LLC:
>    Maja Andjelkovic
>=20
> IAB:
>    Jari Arkko
>    Jeff Tantsura
>    Mark Nottingham
>    Stephen Farrell
>    Wes Hardaker
>    Zhenbin Li
>=20
> IESG:
>    Alissa Cooper, IETF Chair/GEN AD
>    Alvaro Retana, RTG AD
>    Barry Leiba, ART AD
>    Deborah Brungard, RTG AD
>    =C3=89ric Vyncke, INT AD
>    Magnus Westerlund, TSV AD
>    Roman Danyliw, SEC AD
>    Warren Kumari, OPS AD
>=20
> All appointments are for 2 years. The Routing area has 3 ADs and the =
General area has 1; all other areas have 2 ADs. Thus, all areas (that =
have more than one AD) have at least one continuing AD.
>=20
> The primary activity for this NomCom will begin in July 2020 and =
should be completed in January 2021.  The NomCom will have regularly =
scheduled conference calls to ensure progress. There will be activities =
to collect requirements from the community, review candidate =
questionnaires, review feedback from community members about candidates, =
and talk to candidates.
>=20
> While being a NomCom member does require some time commitment it is =
also a very rewarding experience.
>=20
> As a member of the NomCom it is very important that you be willing and =
able to attend either videoconference or in-person meetings (which may =
not happen) during 14-20 November (IETF 109 - Bangkok) to conduct =
interviews. Videoconference attendance will be supported whether or not =
there are in-person meetings. Orientation and setting of the NomCom =
schedule will be done by videoconference during the week 20-24 July =
(exact time and date to be determined after NomCom membership is =
finalized on July 12), the week prior to IETF 108.  Being at IETF 110 =
(Prague) is not essential.
>=20
> Please volunteer by sending me an email before 23:59 UTC June 24, =
2020, as follows:
>=20
> To: nomcom-chair-2020@ietf.org
> Subject: NomCom 2020-21 Volunteer
>=20
> Please include the following information in the email body:
>=20
> Your Full Name:=20
>    // as you write it on the IETF registration form
>=20
> Current Primary Affiliation:
>    // Typically what goes in the Company field
>    // in the IETF Registration Form
>=20
> Emails:=20
>   // All email addresses used to register for the past 5 IETF meetings
>   // Preferred email address first
>=20
> Telephone:=20
>    // For confirmation if selected
>=20
> You should expect an email response from me within 5 business days =
stating whether or not you are qualified.  If you don't receive this =
response, please re-send your email with the tag "RESEND"" added to the =
subject line.
>=20
> If you are not yet sure if you would like to volunteer, please =
consider that NomCom members play a very important role in shaping the =
leadership of the IETF.  Questions by email or voice are welcome. =
Volunteering for the NomCom is a great way to contribute to the IETF!
>=20
> You can find a detailed timeline on the NomCom web site at:
>    https://datatracker.ietf.org/nomcom/2020/
>=20
> I will be publishing a more detailed target timetable, as well as =
details of the randomness seeds to be used for the RFC 3797 selection =
process, within the next few weeks.
>=20
> Thank you!
>=20
> Barbara Stark
> bs7652 at att dot com
> nomcom-chair-2020 at ietf dot org
>=20


--Apple-Mail=_DB6A67B2-8310-4DA8-8A94-E7AF0BA78180
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">In =
case you are not on the IETF discuss list.<div class=3D""><br =
class=3D""></div><div class=3D"">spt</div><div class=3D""></div><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">Begin =
forwarded message:</div><br class=3D"Apple-interchange-newline"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">NomCom Chair 2020 &lt;<a =
href=3D"mailto:nomcom-chair-2020@ietf.org" =
class=3D"">nomcom-chair-2020@ietf.org</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Nomcom 2020-2021 =
Final Call For Volunteers</b><br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">June 18, 2020 at 18:38:42 =
EDT<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">"IETF Announcement List" &lt;<a =
href=3D"mailto:ietf-announce@ietf.org" =
class=3D"">ietf-announce@ietf.org</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Cc: </b></span><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif;" class=3D""><a href=3D"mailto:ietf@ietf.org" =
class=3D"">ietf@ietf.org</a><br class=3D""></span></div><br =
class=3D""><div class=3D""><div class=3D"">Hi IETFers,<br class=3D"">We're=
 down to the last week of accepting NomCom volunteers. And I need more! =
Lots more!<br class=3D""><br class=3D"">I have 64. I'd really like to =
get another 100 names. Hopefully, some of you are checking the volunteer =
box on IETF 108 registration. But I don't have anything from canceled =
IETF 107 registration, and the NomCom question wasn't asked on IETF 106. =
So I need a flood of volunteers to come in over the next week.<br =
class=3D"">Barbara<br =
class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<b=
r class=3D"">The IETF NomCom appoints people to fill the open slots on =
the LLC, IETF Trust, the IAB, and the IESG.<br class=3D""><br =
class=3D"">Ten voting members for the NomCom are selected in a =
verifiably random way from a pool of volunteers. The more volunteers, =
the better chance we have of choosing a random yet representative cross =
section of the IETF population.<br class=3D""><br class=3D"">The details =
of the operation of the NomCom can be found in BCP 10 (RFC 8713). RFC =
3797 details the selection algorithm.<br class=3D""><br class=3D"">Special=
 for this year (and only this year), we also have RFC 8788 (one-off =
update to RFC 8713 / BCP 10) to tell us who is eligible to volunteer:<br =
class=3D""><br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Members of the =
IETF community must have attended at least three of<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the last five in-person IETF meetings in =
order to volunteer.<br class=3D""><br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The five meetings are the five most recent =
in-person meetings that<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ended prior to the date on which the =
solicitation for NomCom<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volunteers was submitted for distribution =
to the IETF community.<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Because no IETF 107 in-person meeting was =
held, for the 2020-2021<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nominating Committee those five meetings =
are IETFs<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;102 =
[Montreal, Canada; July 2018],<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;103 [Bangkok, Thailand; =
November 2018],<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;104 [Prague, Czech Republic; =
March 2019],<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;105 [Montreal, Canada; July =
2019], and <br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;106 =
[Singapore; November 2019].<br class=3D""><br class=3D"">Keep in mind =
that eligibility is based on in-person attendance at the five listed =
meetings. You can check your eligibility at: <a =
href=3D"https://www.ietf.org/registration/nomcom.py" =
class=3D"">https://www.ietf.org/registration/nomcom.py</a>.<br =
class=3D""><br class=3D"">If you qualify, please volunteer. Before you =
decide to volunteer, please remember that anyone appointed to this =
NomCom will not be considered as a candidate for any of the positions =
that the 2020 - 2021 NomCom is responsible for filling.<br class=3D""><br =
class=3D"">People commonly volunteer by ticking the box on IETF =
registration forms. The IETF 106 form did not ask whether people were =
willing to volunteer. IETF 107 did ask, but all those registrations were =
canceled. I have asked the Secretariat if it is possible to get the list =
if volunteers from canceled IETF 107 registrations. If that list is =
available, I will contact all who are verified as eligible. But given =
the uncertainty of this process, I would encourage people to volunteer =
directly (see the bottom of this email for instructions). Thank you for =
volunteering!<br class=3D""><br class=3D"">The list of people and posts =
whose terms end with the March 2021 IETF meeting, and thus the positions =
for which this NomCom is responsible, are<br class=3D""><br =
class=3D"">IETF Trust:<br class=3D""> &nbsp;&nbsp;&nbsp;Joel Halpern<br =
class=3D""><br class=3D"">LLC:<br class=3D""> &nbsp;&nbsp;&nbsp;Maja =
Andjelkovic<br class=3D""><br class=3D"">IAB:<br class=3D""> =
&nbsp;&nbsp;&nbsp;Jari Arkko<br class=3D""> &nbsp;&nbsp;&nbsp;Jeff =
Tantsura<br class=3D""> &nbsp;&nbsp;&nbsp;Mark Nottingham<br class=3D""> =
&nbsp;&nbsp;&nbsp;Stephen Farrell<br class=3D""> &nbsp;&nbsp;&nbsp;Wes =
Hardaker<br class=3D""> &nbsp;&nbsp;&nbsp;Zhenbin Li<br class=3D""><br =
class=3D"">IESG:<br class=3D""> &nbsp;&nbsp;&nbsp;Alissa Cooper, IETF =
Chair/GEN AD<br class=3D""> &nbsp;&nbsp;&nbsp;Alvaro Retana, RTG AD<br =
class=3D""> &nbsp;&nbsp;&nbsp;Barry Leiba, ART AD<br class=3D""> =
&nbsp;&nbsp;&nbsp;Deborah Brungard, RTG AD<br class=3D""> =
&nbsp;&nbsp;&nbsp;=C3=89ric Vyncke, INT AD<br class=3D""> =
&nbsp;&nbsp;&nbsp;Magnus Westerlund, TSV AD<br class=3D""> =
&nbsp;&nbsp;&nbsp;Roman Danyliw, SEC AD<br class=3D""> =
&nbsp;&nbsp;&nbsp;Warren Kumari, OPS AD<br class=3D""><br class=3D"">All =
appointments are for 2 years. The Routing area has 3 ADs and the General =
area has 1; all other areas have 2 ADs. Thus, all areas (that have more =
than one AD) have at least one continuing AD.<br class=3D""><br =
class=3D"">The primary activity for this NomCom will begin in July 2020 =
and should be completed in January 2021. &nbsp;The NomCom will have =
regularly scheduled conference calls to ensure progress. There will be =
activities to collect requirements from the community, review candidate =
questionnaires, review feedback from community members about candidates, =
and talk to candidates.<br class=3D""><br class=3D"">While being a =
NomCom member does require some time commitment it is also a very =
rewarding experience.<br class=3D""><br class=3D"">As a member of the =
NomCom it is very important that you be willing and able to attend =
either videoconference or in-person meetings (which may not happen) =
during 14-20 November (IETF 109 - Bangkok) to conduct interviews. =
Videoconference attendance will be supported whether or not there are =
in-person meetings. Orientation and setting of the NomCom schedule will =
be done by videoconference during the week 20-24 July (exact time and =
date to be determined after NomCom membership is finalized on July 12), =
the week prior to IETF 108. &nbsp;Being at IETF 110 (Prague) is not =
essential.<br class=3D""><br class=3D"">Please volunteer by sending me =
an email before 23:59 UTC June 24, 2020, as follows:<br class=3D""><br =
class=3D"">To: <a href=3D"mailto:nomcom-chair-2020@ietf.org" =
class=3D"">nomcom-chair-2020@ietf.org</a><br class=3D"">Subject: NomCom =
2020-21 Volunteer<br class=3D""><br class=3D"">Please include the =
following information in the email body:<br class=3D""><br class=3D"">Your=
 Full Name: <br class=3D""> &nbsp;&nbsp;&nbsp;// as you write it on the =
IETF registration form<br class=3D""><br class=3D"">Current Primary =
Affiliation:<br class=3D""> &nbsp;&nbsp;&nbsp;// Typically what goes in =
the Company field<br class=3D""> &nbsp;&nbsp;&nbsp;// in the IETF =
Registration Form<br class=3D""><br class=3D"">Emails: <br class=3D""> =
&nbsp;&nbsp;// All email addresses used to register for the past 5 IETF =
meetings<br class=3D""> &nbsp;&nbsp;// Preferred email address first<br =
class=3D""><br class=3D"">Telephone: <br class=3D""> =
&nbsp;&nbsp;&nbsp;// For confirmation if selected<br class=3D""><br =
class=3D"">You should expect an email response from me within 5 business =
days stating whether or not you are qualified. &nbsp;If you don't =
receive this response, please re-send your email with the tag "RESEND"" =
added to the subject line.<br class=3D""><br class=3D"">If you are not =
yet sure if you would like to volunteer, please consider that NomCom =
members play a very important role in shaping the leadership of the =
IETF. &nbsp;Questions by email or voice are welcome. Volunteering for =
the NomCom is a great way to contribute to the IETF!<br class=3D""><br =
class=3D"">You can find a detailed timeline on the NomCom web site =
at:<br class=3D""> &nbsp;&nbsp;&nbsp;<a =
href=3D"https://datatracker.ietf.org/nomcom/2020/" =
class=3D"">https://datatracker.ietf.org/nomcom/2020/</a><br class=3D""><br=
 class=3D"">I will be publishing a more detailed target timetable, as =
well as details of the randomness seeds to be used for the RFC 3797 =
selection process, within the next few weeks.<br class=3D""><br =
class=3D"">Thank you!<br class=3D""><br class=3D"">Barbara Stark<br =
class=3D"">bs7652 at att dot com<br class=3D"">nomcom-chair-2020 at ietf =
dot org<br class=3D""><br class=3D""></div></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_DB6A67B2-8310-4DA8-8A94-E7AF0BA78180--

