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

port RequestPolicy to Chromium (Google Chrome) #83

Open
jsamuel opened this issue Dec 22, 2011 · 8 comments
Open

port RequestPolicy to Chromium (Google Chrome) #83

jsamuel opened this issue Dec 22, 2011 · 8 comments
Labels

Comments

@jsamuel
Copy link
Member

jsamuel commented Dec 22, 2011

imported trac ticket
created: 2010-03-04 12:13:24
reporter: avicarmi

any chance of porting this to Chrome?

I am considering making it my default browser, now that it has extensions, but there are a few "must haves" on my list, the top of which is RequestPolicy.

thanks,

-avi

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-03-21 16:14:50
author: justin

This request comes up pretty frequently. I'll use this ticket to track the status of Chromium APIs that would be needed for a Chromium implementation of !RequestPolicy. (I'm going to try to stick to calling it Chromium instead of Chrome.)

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-03-21 16:21:09
author: justin

!RequestPolicy can't be implemented for Chromium at the moment. The fundamental problem is that Chromium's extension API still lacks features necessary for certain security extensions. AFAIK, one can't reliably stop many requests from Chromium extensions, and that's why there aren't some of the good security extensions in Chromium that people are used to in Firefox. See http://hackademix.net/2009/12/10/why-chrome-has-no-noscript/ for another example besides RP.

These lacking API features are known problems. For example, "interception" shows up here on this API wish list:

http://dev.chromium.org/developers/design-documents/extensions/apiwishlist

and here's a draft of what one part of the APIs might look like (look for "Synchronous (blocking) notifications?" on this page):

http://www.chromium.org/developers/design-documents/extensions/notifications-of-web-request-and-navigation

I haven't looked at this very closely because it's far enough in the future for me that the API may change significantly between now and then.

I'd be happy if someone could correct me on the feasibility of any of this. For example, it's likely that other people notice before I do when these APIs have been implemented.

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-05-04 05:58:15
author: Dan

Justin,

Thanks for keeping up on this issue. I would love to be able to use your extension on chrome. I noticed this API has recently become available, is this what we have been waiting on to create RP for chrome?

https://code.google.com/chrome/extensions/experimental.webRequest.html

I am by no means an extension programmer so if this is not what you are looking for, sorry for wasting your time. Keep up the good work!

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-05-04 16:56:21
author: justin

Hi Dan,

Thanks for the link. I just noticed this recently when the https-everywhere folks were talking about it. This appears to be most (all?) of what I was waiting for, so now I need to get to prototyping RP for Chrome.

I wasn't really expecting this until later this year, so I may change my priorities with respect to Chrome and Firefox Mobile. What I'm thinking now is:

  • 2 months from now: Have the wildcards/blacklists/subscriptions changes I'm working on be in a very usable alpha state for Firefox and start getting feedback from users.
  • 4 months from now: have a working prototype on Chrome and identify whether there is anything I need that is still missing from the Chrome APIs.
  • 6 months from now: launch the major RP changes to all RP users.
  • 6+ months from now: work on RP for Firefox Mobile and Chrome.

Part of the reason for wanting to wait longer on Firefox Mobile is that I really feel that the whitelist/blacklist subscription and blacklist-only mode will be tremendously useful on Firefox Mobile. It seems like interacting with RP will be quite a bit more of a pain on a mobile device, so I'd rather have people's first impressions of RP on those devices be a good one. It will take some time to develop the subscriptions, including the infrastructure needed to manage them well and allow easier community participation. So, making mobile users wait for a good experience seems like an acceptable tradeoff.

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-09-12 04:40:47
author: zappe

So, four months is gone.

Is there any prototype nearby?

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-11-17 10:27:04
author: justin

Unfortunately, I was being much too optimistic and there's no way I'm going to be able to prototype a Chrome port of RP at least until 2013 (that's not a typo: I really mean some time after 2012). I don't have enough time in the coming year to both make RP on Firefox great and work on a Chrome port. So, I'm going to work on making RP on Firefox great before porting to additional browsers.

@jsamuel
Copy link
Member Author

jsamuel commented Dec 22, 2011

imported trac comment
created: 2011-12-20 17:56:22
author: justin

There's a new Chrome extension, KISS, that offers functionality similar to !RequestPolicy.

http://silentorbit.com/kiss/

The author of KISS, Peter Hultqvist, asked if he could post some information about the extension here in this thread. Peter, please do!

I like that KISS is thinking about how to approach the UI differently from RP. For RP 1.0, I've got some mockups of html-based interfaces but I have nothing implemented yet. I'd love to see great UI innovation from KISS that RP could borrow from.

@hultqvist
Copy link

I love the simple idea that RequestPolicy use for ad/trackblocking and I always use the addon in Firefox. A year ago I switched to chrome and wrote a HTTP proxy called HitProxy with similar features that I have used since then. KISS is a rewrite from scratch with the same ideas as in HitProxy.

Therefore the UI has been used by myself during the last year even if this extension is only a week old.
So any fresh ideas are welcome, I have already got one from Justin about displaying active filters in the popup for which a first attempt now is live.

Now it has been a year since I used RequestPolicy regularly but this is what I would say is different in my chrome extension.

  • User set wildcard for domains, user can edit the domain names and add wildcard(checkbox) at the start before adding a rule.
  • More actions, other than blocking or not there is room for other actions, currently we have "clear" which allows the request but removes all HTTP referrers and cookies from the request.

The extension also does a few other unrelated things such as skipping one of the google search results click tracking and removing parts of the user-agent.

You have seen the address in Justins post above and there you will find a direct installation.
Source code and the issue tracker are hosted here on GitHub at https://github.com/hultqvist/Kiss
I can also be contacted at phq@silentorbit.com

Merry Christmas

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

No branches or pull requests

2 participants