fetch() upload streaming origin trial

72 views
Skip to first unread message

Yoichi Osato

unread,
Apr 13, 2020, 2:01:38 AM4/13/20
to experimentation-dev
Hi. I want to run an origin trial for the feature.
Intent to implement: https://bit.ly/2VpJuvP

We need an OT to verify web-compatibility, specifically that we can do chunked uploads over HTTP/1.1 without breaking middleboxes
with trial API AllowHTTP1ForStreamingUpload (the additional API design is on-going)

Plan: run the trial since M84 for a milestone.

Yoichi Osato

unread,
Apr 19, 2020, 9:24:38 PM4/19/20
to experimentation-dev
Ping?

2020年4月13日(月) 15:01 Yoichi Osato <yoi...@chromium.org>:

Jason Chase

unread,
Apr 21, 2020, 10:33:45 AM4/21/20
to Yoichi Osato, experimentation-dev
Hi,

It sounds like a good idea to use an origin trial to verify web compatibility for this feature.

I'll note that past trials have tried running for a short duration, i.e. one milestone, and ran into issues having developers ready to experiment in time. Do you have partners lined up who will be ready to participate when M84 is rolled out? I would recommend running for a longer duration, even up to the usual 3 milestones, to avoid the overhead of extending the trial. You can always choose to end the trial early, if you gather enough data in one milestone.

The next step is to file an Intent to Experiment (which you can do from chromestatus). You can expect the API owners to ask similar questions to mine above. You don't need to answer my questions here, but I'd suggest covering them in the I2E.

Thanks,
Jason

--
You received this message because you are subscribed to the Google Groups "experimentation-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to experimentation...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/experimentation-dev/CAAEV3pkygSbSo-VrK-RQTSmmkyNOQir4Hjqh_hj4NBMOFq-1Tw%40mail.gmail.com.

Yoichi Osato

unread,
Apr 28, 2020, 2:19:30 AM4/28/20
to Jason Chase, experimentation-dev
Hi, I have another question. (I'm writing an explainer).

Since my feature is a part of fetch API, enabling that doesn't expose any new js property.
Thus, is there any API how web authors know if the feature is actually enabled by the token?
That might look like:
<meta http-equiv="origin-trial" content="XXX">
<scripts>
if (chrome.isOriginTrialEnabled("yoichio-new-feature")) {
  fetch("google.com", {yoichio-new-api: foobar}  );
}
</scripts>

Thanks.

2020年4月21日(火) 23:33 Jason Chase <cha...@chromium.org>:

Yoichi Osato

unread,
May 1, 2020, 1:51:11 AM5/1/20
to Jason Chase, experimentation-dev
Ping.

2020年4月28日(火) 15:19 Yoichi Osato <yoi...@chromium.org>:

Marijn Kruisselbrink

unread,
May 1, 2020, 1:11:35 PM5/1/20
to Yoichi Osato, Jason Chase, experimentation-dev
On Thu, Apr 30, 2020 at 10:51 PM Yoichi Osato <yoi...@chromium.org> wrote:
Ping.

2020年4月28日(火) 15:19 Yoichi Osato <yoi...@chromium.org>:
Hi, I have another question. (I'm writing an explainer).

Since my feature is a part of fetch API, enabling that doesn't expose any new js property.
Thus, is there any API how web authors know if the feature is actually enabled by the token?
That might look like:
<meta http-equiv="origin-trial" content="XXX">
<scripts>
if (chrome.isOriginTrialEnabled("yoichio-new-feature")) {
  fetch("google.com", {yoichio-new-api: foobar}  );
}
</scripts>

It is possible to feature detect new dictionary members like this. You can call fetch with a URL that will fail to parse and an object with a custom getter for the dictionary member you want to feature detect. The fetch call will ultimately reject (since the URL failed to parse), but before it gets to that point per the WebIDL spec all known dictionary members will have been read, so if your custom getter was invoked the feature is supported, while if it wasn't invoked the feature isn't supported.

This question also seems orthogonal to anything origin trial related. Being able to feature detect an API matters just as much when the API is no longer behind an origin trial, but enabled by default (or not available at all) in different browsers?


Thanks.

2020年4月21日(火) 23:33 Jason Chase <cha...@chromium.org>:
Hi,

It sounds like a good idea to use an origin trial to verify web compatibility for this feature.

I'll note that past trials have tried running for a short duration, i.e. one milestone, and ran into issues having developers ready to experiment in time. Do you have partners lined up who will be ready to participate when M84 is rolled out? I would recommend running for a longer duration, even up to the usual 3 milestones, to avoid the overhead of extending the trial. You can always choose to end the trial early, if you gather enough data in one milestone.

The next step is to file an Intent to Experiment (which you can do from chromestatus). You can expect the API owners to ask similar questions to mine above. You don't need to answer my questions here, but I'd suggest covering them in the I2E.

Thanks,
Jason

On Sun, Apr 19, 2020 at 9:24 PM Yoichi Osato <yoi...@chromium.org> wrote:
Ping?

2020年4月13日(月) 15:01 Yoichi Osato <yoi...@chromium.org>:
Hi. I want to run an origin trial for the feature.
Intent to implement: https://bit.ly/2VpJuvP

We need an OT to verify web-compatibility, specifically that we can do chunked uploads over HTTP/1.1 without breaking middleboxes
with trial API AllowHTTP1ForStreamingUpload (the additional API design is on-going)

Plan: run the trial since M84 for a milestone.

--
You received this message because you are subscribed to the Google Groups "experimentation-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to experimentation...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/experimentation-dev/CAAEV3pkygSbSo-VrK-RQTSmmkyNOQir4Hjqh_hj4NBMOFq-1Tw%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "experimentation-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to experimentation...@chromium.org.

Yoichi Osato

unread,
May 11, 2020, 12:17:34 AM5/11/20
to Marijn Kruisselbrink, Jason Chase, experimentation-dev
Thanks for the reply.

> It is possible to feature detect new dictionary members like this. You can call fetch with a URL that will fail to parse and an object with a custom getter for the dictionary member you want to feature detect. The fetch call will ultimately reject (since the URL failed to parse), but before it gets to that point per the WebIDL spec all known dictionary members will have been read, so if your custom getter was invoked the feature is supported, while if it wasn't invoked the feature isn't supported.

var supportsCaptureOption = false;
try {
  addEventListener("test", null, Object.defineProperty({}, 'capture', {get: function () {
    supportsCaptureOption = true;
  }}));
} catch(e) {}
(FYI, though WebIDL people have been discussing alternatives because of the ugliness..)


2020年5月2日(土) 2:11 Marijn Kruisselbrink <m...@chromium.org>:

Yoichi Osato

unread,
Jun 21, 2020, 8:38:03 PM6/21/20
to Marijn Kruisselbrink, Jason Chase, experimentation-dev
Hi.
Since enabling OT patch is about to land, I'd like you to prepare token distribution:
third_party/blink/renderer/platform/runtime_enabled_features.json5
{
      name: "FetchUploadStreaming",
      origin_trial_feature_name: "FetchUploadStreaming",
      status: "experimental",
 },

Thanks. 

2020年5月11日(月) 13:17 Yoichi Osato <yoi...@chromium.org>:

Rodney Ding

unread,
Jun 22, 2020, 8:00:05 PM6/22/20
to experimentation-dev, Yoichi Osato, Jason Chase, experimentation-dev, m...@chromium.org
Hi Yoichi,

Please follow the process documented in running-an-origin-trial. Specifically you will need to file a feature trial request at go/new-origin-trial. This will ensure your trial is tracked correctly in go/origin-trials-feature-pipeline.

Thanks.

Yoichi Osato

unread,
Jul 1, 2020, 1:59:23 AM7/1/20
to Rodney Ding, experimentation-dev, Jason Chase, m...@chromium.org
Hi, I requested at go/new-origin-trial but still no entry in  https://developers.chrome.com/origintrials/#/trials/active.
Any update?

Thanks.

2020年6月23日(火) 9:00 Rodney Ding <rodne...@google.com>:

Jason Chase

unread,
Jul 1, 2020, 11:33:51 AM7/1/20
to Yoichi Osato, Rodney Ding, experimentation-dev, Jason Chase, m...@chromium.org
Hi,

I've completed the trial setup. The trial is now ready to go on the origin trials console.

Thanks,
Jason

Yoichi Osato

unread,
Sep 28, 2020, 9:01:52 PM9/28/20
to experimentation-dev
Hi.
I'd like to extend this trial to M89 because the server side is still preparing and we don't have enough data.

Thanks. 

2020年7月2日(木) 0:33 Jason Chase <cha...@chromium.org>:

Jason Chase

unread,
Sep 29, 2020, 11:31:50 AM9/29/20
to Yoichi Osato, experimentation-dev
Hi,

It's reasonable to extend a trial, when there hasn't been opportunity to collect enough data. However, before extending, I'd recommend you have a firm commitment/schedule from partners that they'll be ready to participate (i.e. the server-side work is complete and ready to go). Without confirmation of readiness, you run the risk of still not collecting enough data even with the extension. You may be better off letting the origin trial end, and then restart later, once the partners are definitely ready.

The next step is to file an intent to extend (as in the process instructions). The API owners will likely want to know about the points I raised above, so you should include more details in your intent.

Thanks,
Jason

Reply all
Reply to author
Forward
0 new messages