Giter Club home page Giter Club logo

fpfool's Introduction

Top Langs

Visits

fpfool's People

Contributors

malte311 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ishandutta2007

fpfool's Issues

Repeat

Maybe the extension could start its work again after some time after it has finished its work.

Statistics overview

The extension page (the page which is loaded when clicking on the extension icon next to the search bar) could display some statistics, e.g.

  • Total amount of visited sites
  • Total amount of clicked links
  • Total amount of searches (maybe even more details about the search terms)
  • ...

User Interface

Add an user interface to make the application parameterizable.

TravisCI JSDoc

Use TravisCI for automatically generating JSDoc on gh-pages branch.

Algorithm execution

The following algorithms need to be implemented:

  • The default algorithm - execDefault() (maybe just open a connection and do nothing, then close the connection after a while)
  • The history algorithm - execHistory() (especially update the browserHistory variable after visiting sites and remember to keep it up to date even in case the history gets cleaned up)
  • ...

History algorithm

Some more ideas to improve this algorithm:

  • Choose entries based on time interval (changeable)
  • Choose entries based on a number (changeable)
  • Open random sites in addition to sites from history
  • Open sites which are connected to sites from history (use a tool like Lightbeam for this)
  • How often visit sites? Be careful of captchas or similar things.

IndexedDB

Take a look at IndexedDB and maybe use it for search term generation.

Get search terms reliably

We can not get search terms from many urls at the moment. It works only for a small number of sites. The goal is that this works for more sites.

Extension is executed too often?

After a while in the browser, even without closing the window, the extension seems to start again. It should not restart in the mid of a session - only at the beginning of a new session.

Queue size

When saving the queue, the size can explode. Either do not save the queue, i.e., reset it on every browser restart, or make sure it's size does not explode.

Algorithm selection

Creating always the same fake connections could have contra-productive effects. Therefore, the idea is to change the algorithm based on some criteria. These criteria could be:

  • The device (use a different algorithm for a different device). Maybe we could use a fingerprint in order to make this happen.
  • ...

Removing tabs from the currentTabs array causes trouble

Removing tabs from the currentTabs array causes trouble when multiple content scripts are executed at once.

When content scripts are working in parallel, they close their tabs in parallel, which leads to removing tabs from the currentTabs array simultaneously.
In addition to that, there is a chance that at the same time a different content script asks if it should get executed ('isExec'), which can lead to a undefined response message.

.json file for constants

Maybe it could be useful to have a .json file containing constants.
At the moment, some constants are declared multiple times, because they are in different scopes (e.g. one time in content script and another time in background script). If one wants to change a constant, then it has to be changed at two different places, which is not preferable.

Browser history clean up

Since this extension visits websites, these websites are saved in the user's browser history. This can be confusing to the user because he or she did not visit these sites at all.

Therefore, it could be a good idea to clean up the history every time a tab has been closed (or whenever the browser is quit, i.e. the onSuspend event is fired).

Add tab id to log

It could be useful to display the id of the corresponding tab as well.

Keep window size

At the moment, the extension does not keep the usual window size. The problem is that the hidden window gets closed after the real window such that chrome saves the size of the hidden window for the next start.

Reliable clean up

At the moment, the extension does not close the extra window in case the user closes his real browser window.
Maybe it could even be useful to not close the extra window. In this case: When should the window be closed?

Choose terms at random

Choose terms randomly, even if the first try fails. At the moment only the first try is random, afterwards we choose sequentially.

Update statistics

Statistics are loaded only once. They should be updated when the page is kept open and some values change.

Save the queue persistently

Use the chrome.storage.sync api to store the queue persistently. We could do the same with the browser history.

More realistic user behavior

In order to make the behavior of the extension to look like a real human interaction, there should be some delays:

  • No instant clicks on links
  • No instant searches
  • Staying on a site for some time (this time could be used to simulate scrolling)
  • ...

Create a readme

Create a readme.md file containing relevant information for this project.

Wait for search params call

When search params do not exist yet, wait for the next getSearchTerm(...) call until the first call is over, because the first call will get the search params such that the following calls do not need to do the same work again.

Calculation of connectionLimit

Current formula is connectionLimit = result.connectionLimitFactor * sum;.
Problem is that the sum of visits increases due to the extension. This means that the limit increases from day to day, which should not happen.

Searching algorithm

Searching for random words is not the most realistic way to search for something. Therefore, it could be useful to adopt the searching algorithm. Some ideas:

  • Choose the search term from a dictionary (which is in fact searching for random words). Save the dictionary in an extra file (preferably .json)
  • Choose the search term based on previous searches
  • Use a tool to find corresponding words to previous searches and search for these corresponding words instead
  • Use a tool to find opposite words to previous searches and search for these opposite words instead
  • ...

Delete dummy searches reliably

Dummy searches are being deleted, but it seems that this does not work always. The database should not contain any dummy search terms!

Search terms not only for a specific url

Search terms should be available for all domains of the same website, e.g. google.com and google.com/search should be able to use the same search terms. This should also apply to subdomains.

Update user settings

Remove the Max. history entries setting and add a Max. number of tabs setting instead.

currentTabs array size

The size is limited to maxConnectCount, which is now a scaling factor only. It should be rather set to connectionLimit.

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.