-
Notifications
You must be signed in to change notification settings - Fork 26
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
Traversing the joint session history and forward/back idempotence #73
Comments
Here is an example where going to the most-forward breaks idempotence:
|
And I think this is generally just not solvable. Consider a joint session history where the top frame stays on the same app history entry for, say, 11 joint session history entries, B through L. If the current joint session history entry is D, then But then what possible rule could take us forward to joint session history entry D when we call So I think the conclusion has to be that back/forward traversal is a bit fraught with app history in terms of the impact it'll have on your iframes. |
I think this is acceptable, as long as most people know that the proper API, if you want reasonable navigational behavior, is to use the key-based API to navigate to a specific entry. |
Another case to consider: And iframe-2 is sandboxed.
In the "fewest steps" model we move back to step 3. Things get more confusing in the "most steps" model, which suggests going to step 4. Options:
The "fewest steps" model seems a lot simpler in this case. You still get the situation where iframe-2 cannot call |
https://github.com/WICG/app-history#correspondence-with-the-joint-session-history states
This has the unfortunate consequence that calling
appHistory.back(); appHistory.forward();
does not always take the user back to the view they started on.For example, given the scenario there:
appHistory.back()
. This takes us back to B/O2/I1.appHistory.forward()
. Per the fewest-steps rule, this takes us forward to C/O3/I1.That is, the inner frame is on
https://example.com/inner-start
, instead ofhttps://example.com/inner-end
.This is not great. Can we avoid it, by choosing a different rule, such as always go to the most-forward joint session history entry? Maybe. Or maybe whichever rule we pick, it will have consequences like this in one scenario or another (e.g. maybe it'd make the reverse,
appHistory.forward(); appHistory.back()
, non-idempotent). To be investigated.The text was updated successfully, but these errors were encountered: