Plugin proxy – handle artifacts hosted on windows.net #889
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes an issue reported by @gziolo:
The culprit was that GitHub hosts that artifact on another domain:
productionresultssa0.blob.core.windows.net
. The currentfile_get_contents
call follows the redirection URL and resends the same HTTP headers. That used to be fine, but now the windows.net host rejects those headers.This PR ensures we don't implicitly follow the 302 redirect, but parse the target URL and send an explicit request with a fresh set of HTTP headers. As a bonus, this makes the download much faster as we now use the
streamHttpResponse
function which immediately passes the response bytes back to the browser instead of buffering the entire response first.This PR also switches from HEAD-request-based PR validation to the same Query params–based one as the wordpress.html previewer uses.
Testing instructions
Try to preview the above PR in the Gutenberg PR previewer on https://playground.wordpress.net/gutenberg.html and confirm that it works now (this fix is already deployed).