Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Navigate: remove "gone async" and define redirect handling #1476

Merged
merged 7 commits into from
Jul 4, 2016

Conversation

annevk
Copy link
Member

@annevk annevk commented Jun 30, 2016

No description provided.

Redirect handling had the following issues that are now fixed:

* /a navigating to /b which redirects to /a#test would not unload /a.
* Headers set on the initial request were not preserved.
* Redirects to javascript URLs would not result in an error.
  Fixes #314.
* Location header was not parsed, and HTTP method was not changed
  where needed. Fixes #461.

Another source of complexity was the "gone async" mechanism, which
was used for two steps that could just as easily be factored out and
had to be since they were run synchronously, but should not be.

Changing that fixes #1446 which discusses the issue around unknown
URL schemes in more detail.
@domenic
Copy link
Member

domenic commented Jun 30, 2016

Does the second commit close #1353?

specified scheme is not one of the supported protocols, then abort these steps and <span
data-x="hand-off to external software">proceed with that mechanism instead</span>.</p></li>
<li><p>Cancel any preexisting but not yet <span data-x="concept-navigate-mature">mature</span>
attempt to navigate <var>browsingContext</var>, including canceling any instances of the <span
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be more precise and use https://fetch.spec.whatwg.org/#concept-fetch-terminate with reason "end-user abort"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this concept is also used when aborting a document. Perhaps fetch should define what "cancel" means?

Can be done in a follow-up if you'd rather.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be done in terms of fetch groups. And yes, we need to carefully consider what termination means in Fetch, especially with regards to cancelable promises and such. I haven't really thought that through and I suspect user agents might reject at the moment for some of this.

@domenic
Copy link
Member

domenic commented Jun 30, 2016

Review done. Very exciting improvements. This section is starting to look manageable after all!!

@annevk
Copy link
Member Author

annevk commented Jul 1, 2016

This commit doesn't exactly close #1353, but we should probably close it anyway since more research is needed around that and how it works exactly.

@domenic
Copy link
Member

domenic commented Jul 1, 2016

@annevk annevk merged commit 8b630f5 into master Jul 4, 2016
@zcorpan zcorpan deleted the navigate-gone-async-gone branch July 4, 2016 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

3 participants