-
Notifications
You must be signed in to change notification settings - Fork 68
Proposal: add cookies.removeAll() method #690
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
base: main
Are you sure you want to change the base?
Conversation
Initial draft
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This generally looks good, thanks! I left a couple of comments.
Wanted to add some context to why I'm proposing this. When working on updating the implementation of the cookies API to include the Despite the behavior being a bug, I found the ability to delete multiple cookies with the same call to be quite useful and thought it made sense to add it to the cookies api. |
Updating parameters to explicitly reference cookies.remove Co-authored-by: Rob Wu <[email protected]>
Add more related issues Update the motivation language to reflect the related issues.
Add link to bug in the motivation
Update the objective to be more explicit about the pain point for developers.
Update language in objective.
Update language to make `{}` and error
Update case: `partitionKey : {}` to match `cookies.getAll`
Update requirements of details object.
Added more detailed description of host permissions impact on API call
Made update to remove the `top-level site` as an optional stand alone parameter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me! Adding @rdcronin to make sure he is happy before we land.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some examples with non-trivial cases would be nice, but
> | ||
>A `string` representing the ID of the cookie store to find the cookie in. If unspecified, the cookie is looked for by default in the current execution context's cookie store. | ||
> | ||
>[`url`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/remove#url) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
>[`url`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/remove#url) | |
>[`url`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/remove#url) optional |
The sentence two lines below implies that url
can be optional.
|
||
### Behavior | ||
|
||
The API will remove all cookies that match the `details` object parameter with the exception of the cases outlined in the implementation details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"all cookies that match" is doing some heavy lifting. Would it be meaningful to refer to cookies.getAll
as the primitive? Or are there differences?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @aselya ! Generally LG, but a few comments.
> | ||
>A `string` representing the URL associated with the cookie. | ||
> | ||
>A details object must contain a `url` and/or a `topLevelSite`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: topLevelSite is not a (direct) property here, so maybe tweak to:
>A details object must contain at least a `url` a `partitionKey` with a valid `topLevelSite`.
|
||
##### Return | ||
|
||
> `Promise<Cookie[]>`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/cc @Rob--W since I know he normally has thoughts on performance-related aspects.
The existing remove() method doesn't return a full cookie, but rather a subset of its properties: name, partitionKey, storeId, and url. I'm curious if we should perhaps lean on that instead, which avoids serializing quite as much data -- in particular, it avoids passing all the values to the extension (which may be quite large in practice).
WDYT?
(If we go that route, we could introduce a common type for it -- CookieSummary
, CookieMetadata
, or similar?)
Proposal introducing a new API cookies.removeAll()