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

Build opinionated web browsers #4

Closed
tomayac opened this issue Apr 20, 2022 · 7 comments
Closed

Build opinionated web browsers #4

tomayac opened this issue Apr 20, 2022 · 7 comments

Comments

@tomayac
Copy link

tomayac commented Apr 20, 2022

Use case name

Build opinionated web browsers.

Submitter(s)

Thomas Steiner (@tomayac)

Motivation

Create web experiences that follow an opinionated style, for example, with removed ads or removed trackers.

Stakeholders

Companies with opinionated views on how people should experience the web.

Analysis

I looked at one concrete instance of such an opinionated web browser: DuckDuckGo's privacy-focused macOS browser (careful, automatically downloads a 17.2MB .dmg file) is essentially a WKWebView with default- or opt-in-injected scripts for content blocking (e.g., contentblocker.js) and cookie consent (e.g., autoconsent).

Screen Shot 2022-04-20 at 11 34 04

Related W3C deliverables and/or work items

N/A

How is the issue solved in the Browser, and what’s more is needed?

Currently this use case is solved by injecting user scripts. One improvement I could imagine would be for companies to have a desire to keep their secrets. As you can see from the screenshot above, Web Inspector shows all these user scripts transparently.

@QingAn
Copy link
Contributor

QingAn commented May 6, 2022

This is also related to #10

Try to summarize, is it about supporting UserScript injection in WebView plus better confidentiality/privacy?

@tomayac
Copy link
Author

tomayac commented May 6, 2022

#10 is related, yet different.

  • Build opinionated web browsers #4 (this issue): The objective is to build a browser that can display any webpage on the planet and where the user is in full control. An example is DuckDuckGo's browser on macOS.
  • UserScript injection in WebView #10: The objective is to fit limited web content into an existing app where the user is not in full control. An example is an airline that uses the web-based seat allocation logic on both the app and the web. When seat allocation logic is displayed in a regular browser, the header and footer would be shown. When the seat allocation is displayed in the context of the app, user scripts would hide the header and footer. I have seen this pattern used in practice with BA.com.

@muodov
Copy link
Contributor

muodov commented Jun 10, 2022

@tomayac thank you for raising this!
Our source code is mostly open, so keeping user scripts secret would probably not be the main concern for DuckDuckGo. We do face several platform-specific issues with WebView that we'd like to surface though. I'm currently collecting info on them internally, hope to follow up soon.

@muodov
Copy link
Contributor

muodov commented Jul 5, 2022

Judging by the other use-case issues, and previous discussions, I understand that we are focusing on more granular, technical use-cases from developer perspective, as opposed to product-oriented or user-oriented ones. (@QingAn please correct me if I'm wrong :)

As such, I think this issue might be a bit too broad, since full-featured browsers have many components, and would likely need most of the features provided by WebViews. For example, both #12 and #6 (comment) are relevant to DuckDuckGo browsers, as well as several other issues that I'm going to write up.

If there is interest in the possibility of hiding injected scripts in the devtools, perhaps we could narrow this issue to that? Otherwise, would it make sense to close it in favour of more specific use-cases?

@QingAn QingAn added the Agenda+ label Jul 6, 2022
@QingAn
Copy link
Contributor

QingAn commented Jul 6, 2022

@muodov Yes, sub-categorize and narrow down the use cases would be helpful.

@QingAn
Copy link
Contributor

QingAn commented Jul 7, 2022

As discussed in 2022-07-06 meeting, @muodov and I suggest that it would be better to focus on more granular, technical use-cases, and so to close this issue. @tomayac we would like to ask your opinion whether it is ok to close this one and focus on #20 and more which will be submitted by @muodov ?

@tomayac
Copy link
Author

tomayac commented Jul 7, 2022

Fine with me, especially since #20 was submitted by an actual DuckDuckGo employee. Closing my Issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants