Skip to content

DBSC refreshes are copies of original requests #155

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

Closed
wants to merge 2 commits into from

Conversation

drubery
Copy link
Collaborator

@drubery drubery commented Apr 28, 2025

There are a lot of fields for requests that we won't change when doing a DBSC refresh or registration. So instead of copying a small number of fields from the originating request, copy everything and change the fields we want to change.

@drubery drubery requested a review from thefrog-gh April 28, 2025 21:14
@drubery drubery force-pushed the push-ulxvtvsqxtxp branch from 99c2fec to 8f32491 Compare April 28, 2025 22:03
spec.html Outdated
@@ -0,0 +1,3178 @@
<!doctype html><html lang="en">
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this new file intended?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nope, I just haven't figured out how to convince bikeshed not to output in the main repo.

@@ -405,16 +405,15 @@ The <dfn>session credential</dfn> is a [=struct=] with the following
with |key pair| and store the result in |signed challenge|.
1. Create a |request| for use in <a
href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">HTTP-network-or-cache
fetch</a>.
fetch</a> as a copy of |originating request|.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm a little hesitant about this, since it means we need to remember to opt out of unintentional properties instead of deciding which properties make sense to copy over. I'm also not convinced at the moment that conceptually it makes sense to consider registration/refresh requests as a slightly tweaked copy of the originating request. I'm not closed to the idea though. I suppose they're kind of the same problem either way, but having to null out the header list (based on the change below) makes me worried there may be other properties we're not aware we should also null out.

Are there any specific fields the spec wasn't already mentioning that prompted you to make this change?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Specifically I was looking at things like client, which I believe will end up owning the session map (PR to come). Right now we don't necessarily have access to that.

I had originally wanted it because I think it gives us a nicer privacy story. "Anything a DBSC request can do could have been done by the original request" is a nice invariant. But I think it's reasonable for that to just be the principle we follow, and for the spec to be more future-proof by only copying the fields it needs.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Up to you. I prefer it the way it was before, but I can see the rationale.

Copy link
Collaborator Author

@drubery drubery May 1, 2025

Choose a reason for hiding this comment

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

No I think you're right. I'll abandon this one.

Daniel Rubery added 2 commits April 30, 2025 13:11
There are a lot of fields for requests that we won't change when doing a
DBSC refresh or registration. So instead of copying a small number of
fields from the originating request, copy everything and change the
fields we want to change.
@drubery drubery force-pushed the push-ulxvtvsqxtxp branch from 8f32491 to ab4b570 Compare April 30, 2025 20:32
@@ -405,16 +405,15 @@ The <dfn>session credential</dfn> is a [=struct=] with the following
with |key pair| and store the result in |signed challenge|.
1. Create a |request| for use in <a
href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">HTTP-network-or-cache
fetch</a>.
fetch</a> as a copy of |originating request|.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Up to you. I prefer it the way it was before, but I can see the rationale.

@drubery drubery closed this May 1, 2025
@drubery drubery deleted the push-ulxvtvsqxtxp branch May 1, 2025 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants