Skip to content

Commit

Permalink
Added popup & advanced preventing
Browse files Browse the repository at this point in the history
  • Loading branch information
adokseo committed Sep 14, 2020
1 parent 75ac49c commit 41ad65e
Show file tree
Hide file tree
Showing 10 changed files with 4,010 additions and 1,931 deletions.
149 changes: 149 additions & 0 deletions _locales/en/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"about": {
"message": "About"
},
"accept": {
"message": "Accept"
},
"audioFormats": {
"message": "Audio formats"
},
"backupAndReset": {
"message": "Backup & reset"
},
"browser": {
"message": "Browser"
},
"cancel": {
"message": "Cancel"
},
"cores": {
"message": "Cores"
},
"dateAndTime": {
"message": "Date & time"
},
"device": {
"message": "Device"
},
"disabled": {
"message": "Disabled"
},
"exportSettings": {
"message": "Export settings"
},
"extension": {
"message": "Extension"
},
"flash": {
"message": "Flash"
},
"general": {
"message": "General"
},
"gpu": {
"message": "GPU"
},
"importSettings": {
"message": "Import settings"
},
"invertColors": {
"message": "Invert colors"
},
"language": {
"message": "Language"
},
"languages": {
"message": "Languages"
},
"name": {
"message": "Name"
},
"notAllowedtoAccessThisPage": {
"message": "Not allowed to access this page."
},
"ok": {
"message": "OK"
},
"os": {
"message": "OS"
},
"permissionIsNotGranted": {
"message": "Permission is not granted"
},
"permissions": {
"message": "Permissions"
},
"platform": {
"message": "Platform"
},
"ram": {
"message": "RAM"
},
"remove": {
"message": "Remove"
},
"resetAllSettings": {
"message": "Reset all settings"
},
"resetSettings": {
"message": "Reset settings?"
},
"saveAs": {
"message": "Save as..."
},
"settings": {
"message": "Settings"
},
"successfullyImportedSettings": {
"message": "Successfully imported settings"
},
"sunsetToSunrise": {
"message": "Sunset to sunrise"
},
"systemPeference": {
"message": "System preference"
},
"theListIsEmpty": {
"message": "The list is empty"
},
"thisWillResetAllSettings": {
"message": "This will reset all settings"
},
"type": {
"message": "Type"
},
"use24HourFormat": {
"message": "Use 24-hour format"
},
"version": {
"message": "Version"
},
"videoFormats": {
"message": "Video formats"
},
"websites": {
"message": "Websites"
},
"rateUs": {
"message": "Rate us"
},
"filters": {
"message": "Filters"
},
"global": {
"message": "Global"
},
"current": {
"message": "Current"
},
"addNewFilter": {
"message": "Add new filter"
},
"websites": {
"message": "Websites"
},
"empty": {
"message": "Empty"
}
}
Binary file added assets/fonts/OpenSans-Regular.ttf
Binary file not shown.
Binary file added assets/fonts/OpenSans-SemiBold.ttf
Binary file not shown.
194 changes: 181 additions & 13 deletions content-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,38 +11,206 @@
1.0 FUNCTION
---------------------------------------------------------------*/

var SETTINGS = {
enabled: true
},
HID = {
key: false,
shiftKey: false,
ctrlKey: false,
altKey: false,
click: false,
context: false,
wheel: false
};

function isset(variable) {
if (typeof variable === 'undefined' || variable === null) {
return false;
}

return true;
}

function prevent(event) {
event.stopPropagation();
if (isset(SETTINGS.enabled) === false || SETTINGS.enabled === true) {
for (var key in SETTINGS.data) {
var data = JSON.parse(SETTINGS.data[key]);

if (
data.key === HID.key &&
data.shiftKey === HID.shiftKey &&
data.ctrlKey === HID.ctrlKey &&
data.altKey === HID.altKey &&
data.click === HID.click &&
data.context === HID.context &&
data.wheel === HID.wheel
) {
console.log('STOP');
event.stopPropagation();
}
}
}
}

function hid_keyboard(event) {
HID = {
key: event.key,
shiftKey: event.shiftKey,
ctrlKey: event.ctrlKey,
altKey: event.altKey,
click: false,
context: false,
wheel: false
};

if (HID.key === 'Shift') {
HID.shiftKey = true;
}

if (HID.key === 'Control') {
HID.ctrlKey = true;
}

if (HID.key === 'Alt') {
HID.altKey = true;
}
}

function update() {
chrome.storage.local.get(function(items) {
var host = location.ancestorOrigins && location.ancestorOrigins[0] && location.ancestorOrigins[0].split('/')[2] || location.host;

SETTINGS.data = items.global || {};

if (items.websites && items.websites[host]) {
SETTINGS.enabled = items.websites[host].enabled;

if (items.websites[host].items) {
SETTINGS.data = Object.assign(SETTINGS.data, items.websites[host].items);
}
}
});
}

update();

chrome.storage.onChanged.addListener(update);

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (window.self === window.top && request === 'requestTabUrl') {
sendResponse(location.host);
}
});


/*---------------------------------------------------------------
2.0 KEYBOARD
---------------------------------------------------------------*/

window.addEventListener('keydown', prevent, true);
window.addEventListener('keypress', prevent, true);
window.addEventListener('keyup', prevent, true);
window.addEventListener('keydown', function(event) {
hid_keyboard(event);
prevent(event);
}, true);

window.addEventListener('keypress', function(event) {
hid_keyboard(event);
prevent(event);
}, true);

window.addEventListener('keyup', function(event) {
hid_keyboard(event);
prevent(event);
}, true);


/*---------------------------------------------------------------
3.0 MOUSE
---------------------------------------------------------------*/

window.addEventListener('click', prevent, true);
window.addEventListener('contextmenu', prevent, true);
window.addEventListener('dbclick', prevent, true);
window.addEventListener('mousedown', prevent, true);
window.addEventListener('click', function(event) {
HID.click = true;
HID.context = false;
HID.wheel = false;

prevent(event);

HID = {
key: false,
shiftKey: false,
ctrlKey: false,
altKey: false,
click: false,
context: false,
wheel: false
};
}, true);

window.addEventListener('contextmenu', function(event) {
HID.click = false;
HID.context = true;
HID.wheel = false;

prevent(event);
}, true);

window.addEventListener('wheel', function(event) {
HID.click = false;
HID.context = false;
HID.wheel = true;

prevent(event);
}, true);

window.addEventListener('mousedown', function(event) {
HID.wheel = false;

if (event.button === 0) {
HID.click = true;
HID.context = false;
} else if (event.button === 2) {
HID.click = false;
HID.context = true;
}

prevent(event);
}, true);

window.addEventListener('mouseup', function(event) {
HID.wheel = false;

if (event.button === 0) {
HID.click = true;
HID.context = false;
} else if (event.button === 2) {
HID.click = false;
HID.context = true;
}

prevent(event);

if (event.button === 2) {
HID = {
key: false,
shiftKey: false,
ctrlKey: false,
altKey: false,
click: false,
context: false,
wheel: false
};
}
}, true);

/*window.addEventListener('dbclick', prevent, true);
window.addEventListener('mousemove', prevent, true);
window.addEventListener('mouseup', prevent, true);
window.addEventListener('select', prevent, true);
window.addEventListener('wheel', prevent, true);
window.addEventListener('select', prevent, true);*/


/*---------------------------------------------------------------
4.0 TOUCH
---------------------------------------------------------------*/

window.addEventListener('touchend', prevent, true);
/*window.addEventListener('touchend', prevent, true);
window.addEventListener('touchmove', prevent, true);
window.addEventListener('touchstart', prevent, true);
window.addEventListener('touchstart', prevent, true);*/
13 changes: 12 additions & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
{
"manifest_version": 2,
"name": "HID control prevention",
"version": "0.2",
"version": "0.61",

"default_locale": "en",

"browser_action": {
"default_popup": "popup/index.html"
},

"content_scripts": [
{
Expand All @@ -14,5 +20,10 @@
],
"run_at": "document_start"
}
],

"permissions": [
"storage",
"<all_urls>"
]
}
Loading

0 comments on commit 41ad65e

Please sign in to comment.