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

[SearchProvider/SetDSE] Add Explainer #917

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions SearchProvider/explainer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Search Provider --- Set Default Search Engine

## Authors:

- [Wei Gu](mailto:[email protected])

## Status of this Document

This document is a starting point for engaging the community and standards
bodies in developing collaborative solutions fit for the Web. As the solutions
to problems described in this document progress along the standards-track, we
will retain this document as an archive and use this section to keep the
community up-to-date with the most current standards venue and content location
of future work and discussions.

* This document status: **Active**
* Expected venue: [W3C Web Incubator Community Group](https://wicg.io/)
* **Current version: this document**

## Introduction

Browsers have a list of search engines and user can set default search engine from settings.
This proposal aims to standardize the API that could be leveraged by search providers to upsell to ask user
to set their search engine as default.

## Goals

The goals of the API are:

- Provide an API to detect whether a search engine is default search engine.
- Privide an API to set search engine as deafault by name.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Provide


## Non-Goals

The API is not intended to be used for:

- Update a search engine.
- Delete a search engine.

## Use Cases

The feature is intended to be used by any search provider page that wants to do upsell asking users to set their search provider as default. Here are some scenarios in which this can be useful to users:
- On a search engine results page (SERP)
>>![upsell](upsell.png)
- On a SERP page, serp page could show upsell to users.
- User could accept/ignore to set the search provider as default.
- After acception, browser should use the accepeted search provider as default.

## Proposed Solution

### Detect whether search engine is default by name

```js
chrome.searchProvider.canSetDefault(name:string, (success: boolean) => void);
```
> #### NOTE
> This API will return false if a search provider is already the default one or not existing in the search engine list.

### Set search engine as default by name

```js
chrome.searchProvider.setDefault(name:string, (success: boolean) => void)
```
> #### NOTE
> This API will return false if a search provider is already the default one or not existing in the search engine list.

## Security and Privacy Considerations

The API does not introduce any new security or privacy
considerations.
77 changes: 77 additions & 0 deletions SearchProvider/security-privacy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Early Self-Review Questionnaire: Security and Privacy

## Security and Privacy questionnaire for [`SetDefaultSearchEngine`](explainer.md)

1. **What information might this feature expose to Web sites or other parties, and for what purposes is that exposure necessary?**

This feature exposes information to the origin if the web site from a search provider.

It is necessary to allow SERP page from a search provider to set itself as default search engine for the browser.

2. **Do features in your specification expose the minimum amount of information necessary to enable their intended uses?**

Yes.

3. **How do the features in your specification deal with personal information, personally-identifiable information (PII), or information derived from them?**

There is no information of this type being handled by the feature.

4. **How do the features in your specification deal with sensitive information?**

There is no sensitive information handled by the feature.

5. **Do the features in your specification introduce new state for an origin that persists across browsing sessions?**

No, this feature does not introduce new states tied to an origin.

6. **Do the features in your specification expose information about the underlying platform to origins?**

No.

7. **Does this specification allow an origin to send data to the underlying platform?**

No.

8. **Do features in this specification enable access to device sensors?**

No.

9. **Do features in this specification enable new script execution/loading mechanisms?**

No.

10. **Do features in this specification allow an origin to access other devices?**

No.

11. **Do features in this specification allow an origin some measure of control over a user agent’s native UI?**

No.

12. **What temporary identifiers do the features in this specification create or expose to the web?**

None.

13. **How does this specification distinguish between behavior in first-party and third-party contexts?**

It does not make such distinction.

14. **How do the features in this specification work in the context of a browser’s Private Browsing or Incognito mode?**

No difference.

15. **Does this specification have both "Security Considerations" and "Privacy Considerations" sections?**

The API does not introduce any new security or privacy considerations.

16. **Do features in your specification enable origins to downgrade default security protections?**

No.

17. **How does your feature handle non-"fully active" documents?**

No difference.

18. **What should this questionnaire have asked?**

N/A.
Binary file added SearchProvider/upsell.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.