Giter VIP home page Giter VIP logo

blushproof's Introduction

For users: https://github.com/mozilla/blushproof/wiki

For developers: Requirements: nodejs, volo version 0.2.8 or higher

To checkout:
npm install -g volo git clone https://github.com/mozilla/blushproof
cd blushproof volo add micropilot packages/micropilot cd .git
rm -rf hooks
ln -s ../hooks .

To work:
git checkout -b <your-branch-name>
<do your work>
git add <files-you-edited>
git commit -m <concise-yet-complete-description>

To run:
cfx -b <path-to-nightly> -p <profile-dir> run

Setting the profile_dir is necessary when testing functionality across restarts.

Style guidelines: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

blushproof's People

Contributors

gregglind avatar mozkeeler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

blushproof's Issues

the search bar remembers past queries

As far as I can tell, the search bar will remember queries when you type something in and press enter. We currently catch and prevent the navigation for blushy queries, but that doesn't stop it remembering things.

implement "border of privacy"

The distribution of Potentially Embarrassing sites for any given category has a very long tail (cf. many different niches in the adult category).

It's probably not feasible to statically list all of the sites in a given vertical, given that user behavior is likely to be heterogenous. Instead, if we can start with a small "seed list" and calculate a border of private browsing, that might be more likely to scale well. This only works if Potentially Embarrassing sites like to each other (which they may or may not)

For example, if a user puts "pokerstars" on the naughty list then it is possible that any site that the user navigates to within 2 clicks might also belong on the naughty list.

have a "forget this site" button

If a person navigates to a site without setting PB mode, let them forget the site from their history and also ask if they want to add it to the blushlist.

what categories do we want to include on install?

We have:

  1. adult
  2. gossip
  3. social

We should also include

  1. gambling?
  2. drug related queries, e.g. recreational drug use
  3. medical, e.g. do i have prostate cancer
  4. mental health issues, suicide and depression (medical)
  5. gaming (video games, board game geek)
  6. money, bankruptcy, debt collection
  7. dieting, body issues (related medical)
  8. crimes, how to get away with

naughty list should not incriminate the user

We probably shouldn't expose the list of sites that user wants to keep private in the code itself, especially if we are going to do things like "remember sites that users open in PB mode and add them to the list".

Instead, we should probably do something like keep hashes of URLs on the list, so that if someone finds the list it'll be marginally more difficult to see that the user wants to keep pokerstars or whatever in PB mode.

Obviously this breaks the substring matching that you're using to check to see if new URLs should be opened in PB mode, since hashes don't preserve substrings.

blushproof should intercept some common 'blush' searches.

If I type "facebook" or "xhampster" or "online poker" I don't even want it showing up as a completed search.

This is a very common pattern of urlbar usage, for the Evergreen / Busy Bee audience most helped by this feature :)

Suggested trivial impl: regex search on substrings :) (See the initial checkin)

experimental stub for sharing data

For growing blushlist domains and categories:

When implementing the "Blush this!" button, have a checkbox that says "Share this information to make blushlist better" that doesn't actually do anything, so we gather information whether this will be useful to users.

sync urls and query terms

i.e., "channing tatum" is on the query list but "channingtatum.com" is not.

We should probably take the first hit for each query and put it on the list.

What promises does blushproof make to its users, and who are they?

Were we in UX-Research, we might ask these questions:

  1. Exactly what problems is blushproof trying to solve?
  2. What users / scenarios / personas have those problems?
  3. Are those the most important problems to solve for them? What feature set actually addresses them?

This is a plea to take some thinking time, not just about the technical aspects of how to make this work, but some decisions about how this should work to make people happy!

This is complementary to the technical implementation!

check search results page for hits on url blushlist to add query terms to the blushlist

Say a user wants to go to "somesite.com" - they'll type this in the search bar (or in a search page), go to the results page, and click on the link to "somesite.com". If the navigation to the site would cause blushproof to prompt the user, we should probably catch this at the search step. One solution would be to also check the url blushlist when checking the search term list.

in the prompt, give an explanation of why the blushlist triggered

I may be wrong about this, but I think navigation can happen before the urlbar has been updated, in which case the user will be prompted to go into private browsing before they know exactly where they're going (say, for example, they didn't closely examine the href of a link or they went through a blind redirect or something).

PB mode for sync/picl

Keeler's use case is a bit different. He uses PB mode to prevent data from being synced, since sync works across multiple profiles. We should chat to the picl folks to see if/how this use case is addressed with PB mode and picl.

integrate with micropilot

  1. Measure how often people hit "yes, open in PB mode"
  2. Measure how often people hit "cancel, open in regular"
  3. Measure how often blushlist triggers, as a proportion of normal browsing
  4. Measure how often people hit "blush this" button
  5. Measure how often people enter PB mode, independent of the blushlist
  6. Measure how often people use the "Clear history" or other session data
  7. What other hints do users give that they might be embarrassed? (hitting esc during page load)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.