Yes, we don't navigate with PUTs, but I have a nagging suspicion we'll end up needing a single utility class/method to of handling redirects that need us to switch URLLoaders
Sorry for the radio silence, two different sheriffing rotations have aligned this week so I've been pretty distracted. Yes I'm planning on writing a patch.
I've been digging a bit into the history of the internal test and the RFCs and I'm beginning to think changing this might be a mistake :)
Specifically https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html sugegsts
notes that "some existing HTTP/1.0 user agents will erroneously change it into a GET request". It doesn't mention PUT.
The other spec https://tools.ietf.org/html/rfc7231#section-6.4.2 mentions
Note: For historical reasons, a user agent MAY change the request
method from POST to GET for the subsequent request. If this
behavior is undesired, the 307 (Temporary Redirect) status code
can be used instead.
It doesn't mention PUT either.
The internal patch circa 2016 claimed it was making a system follow Chrome's behaviour in converting POST -> GET and PUT also. Chrome turns a POST into a GET but doing a little code spelunking* I don't think it's ever turned a PUT into a get. I suspect the patch author was confused.
I think this is probably a WontFix but I'll leave it over the weekend in case somebody knows better.
alexclarke: 303s unconditionally convert non-HEAD requests to GETs and remove the body. 301s and 302s only change the method for POSTs, but that is not the case for 303s.
Comment 1 by rdsmith@chromium.org
, Sep 14 2017