brave/tracking-protection

Name: tracking-protection

Owner: Brave Software

Description: Tracking protection engine used in the Brave browser for list like disconnectme.

Created: 2016-01-03 20:12:46.0

Updated: 2018-05-03 16:54:09.0

Pushed: 2018-03-25 02:11:54.0

Homepage: https://www.brave.com

Size: 116

Language: C++

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

tracking-protection

C++ tracking protection filter parser for lists like https://github.com/disconnectme/disconnect-tracking-protection/blob/master/services.json

Setup
install --save tracking-protection
Installation
  1. Clone the git repository from GitHub:

    git clone https://github.com/SergeyZhukovsky/tracking-protection
    
  2. Open the working directory:

    cd tracking-protection
    
  3. Install the Node (v5+) dependencies:

    npm install
    
Sample
lude <iostream>
lude "./TPParser.h"

g std::cout;
g std::endl;

main(int argc, char **argv) {
CTPParser parser;
parser.addTracker("facebook.com");
parser.addTracker("facebook.de");

// Prints matches
if (parser.matchesTracker("facebook.com")) {
    cout << "matches" << endl;
}
else {
    cout << "does not match" << endl;
}

// Prints does not match
if (parser.matchesTracker("facebook1.com")) {
    cout << "matches" << endl;
} else {
    cout << "does not match" << endl;
}

// Prints does not match
if (parser.matchesTracker("subdomain.google-analytics.com.")) {
    cout << "matches" << endl;
} else {
    cout << "does not match" << endl;
}

parser.addFirstPartyHosts("facebook.com", "facebook.fr,facebook.de");
parser.addFirstPartyHosts("google.com", "2mdn.net,admeld.com");
parser.addFirstPartyHosts("subdomain.google.com", "facebook.fr,facebook.de");

// Returns combined result of third party hosts for "google.com" and for "subdomain.google.com"
// "facebook.fr,facebook.de,2mdn.net,admeld.com"
char* thirdPartyHosts = parser.findFirstPartyHosts("subdomain.google.com");
if (nullptr != thirdPartyHosts) {
    cout << thirdPartyHosts << endl;
    delete []thirdPartyHosts;
}

unsigned int totalSize = 0;
// Serialize data
char* data = parser.serialize(&totalSize);

// Deserialize data
parser.deserialize(data);

// Prints matches
if (parser.matchesTracker("facebook.com")) {
    cout << "matches" << endl;
}
else {
    cout << "does not match" << endl;
}
// Prints does not match
if (parser.matchesTracker("facebook1.com")) {
    cout << "matches" << endl;
} else {
    cout << "does not match" << endl;
}

// Prints "2mdn.net,admeld.com"
thirdPartyHosts = parser.findFirstPartyHosts("google.com");
if (nullptr != thirdPartyHosts) {
    cout << thirdPartyHosts << endl;
}

if (data) {
    delete []data;
}

return 0;

Build everything in release

Build everything in debug
 build-debug
Running sample
 sample
Running tests
 test
Clearing build files
 clean

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.