Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The extension is based on the [Wet Banana extension](https://github.com/jedediah

### 2.15

- Fix a bug where having an empty blacklist would disable the extension for `file:///` URLs.
- Fix a bug where having an empty blocklist would disable the extension for `file:///` URLs.

### 2.14

Expand All @@ -43,7 +43,7 @@ The extension is based on the [Wet Banana extension](https://github.com/jedediah

### 2.11

- Add a blacklist, allowing users to disable scrolling on certain domains.
- Add a blocklist, allowing users to disable scrolling on certain domains.
- Fixed a bug where settings in open multi-frame tabs were not updated.

### 2.10
Expand Down
8 changes: 7 additions & 1 deletion src/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const defaultOptions = {
notext: false,
grab_and_drag: false,
debug: false,
blacklist: '',
blocklist: '',
browser_enabled: true,
}

Expand Down Expand Up @@ -52,6 +52,12 @@ async function getOptionsFromLocalStorage() {

function sanitizeOptions(loadedOptions) {
const sanitizedOptions = {}

// Handle migration from blacklist to blocklist
if (loadedOptions.blacklist && !loadedOptions.blocklist) {
loadedOptions.blocklist = loadedOptions.blacklist
}

for (var key in defaultOptions) {
if (typeof loadedOptions[key] == 'undefined') {
sanitizedOptions[key] = defaultOptions[key]
Expand Down
18 changes: 9 additions & 9 deletions src/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var ScrollbarAnywhere = (function () {
options.notext = isTrue(options.notext)
options.grab_and_drag = isTrue(options.grab_and_drag)
options.debug = isTrue(options.debug)
options.enabled = isEnabled(options.blacklist)
options.enabled = isEnabled(options.blocklist)
options.browser_enabled = isTrue(options.browser_enabled)
debug('Loaded options: ', options)
}
Expand All @@ -36,17 +36,17 @@ var ScrollbarAnywhere = (function () {
return value == true || value == 'true'
}

function isEnabled(blacklist) {
if (!blacklist) {
function isEnabled(blocklist) {
if (!blocklist) {
return true
}
var blacklistedHosts = blacklist.split('\n')
var blocklistedHosts = blocklist.split('\n')
var hostname = document.location.hostname
for (var i = blacklistedHosts.length - 1; i >= 0; i--) {
var blacklistedHost = blacklistedHosts[i].trim()
for (var i = blocklistedHosts.length - 1; i >= 0; i--) {
var blocklistedHost = blocklistedHosts[i].trim()
if (
hostname === blacklistedHost ||
hostname.endsWith('.' + blacklistedHost)
hostname === blocklistedHost ||
hostname.endsWith('.' + blocklistedHost)
) {
return false
}
Expand Down Expand Up @@ -664,7 +664,7 @@ var ScrollbarAnywhere = (function () {
blockContextMenu = false

if (!options.enabled) {
debug('blacklisted domain, ignoring')
debug('blocklisted domain, ignoring')
return true
}

Expand Down
9 changes: 8 additions & 1 deletion src/offscreen.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ document.addEventListener('DOMContentLoaded', () => {
notext: boolean,
grab_and_drag: boolean,
debug: boolean,
blacklist: string,
blacklist: string, // Legacy key for backward compatibility
blocklist: string,
browser_enabled: boolean,
}

Expand All @@ -35,6 +36,12 @@ document.addEventListener('DOMContentLoaded', () => {
}
}
})

// Handle migration from blacklist to blocklist
if (options.blacklist && !options.blocklist) {
options.blocklist = options.blacklist
}

return options
}

Expand Down
4 changes: 2 additions & 2 deletions src/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,12 @@ <h2>Friction</h2>

<tr>
<td class="setting_description">
<h2>Blacklist</h2>
<h2>Blocklist</h2>
Disable this extension on the configured domains and all of their
subdomains.
</td>
<td>
<textarea id="blacklist" rows="5" cols="30"></textarea><br />
<textarea id="blocklist" rows="5" cols="30"></textarea><br />
<sub>One domain name per line.</sub>
</td>
</tr>
Expand Down
10 changes: 5 additions & 5 deletions src/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ function save() {
o['key_' + KEYS[i]] = $('key_' + KEYS[i]).checked
}

x = $('blacklist').value
x = $('blocklist').value
var hosts = x.split('\n')
for (var i = hosts.length - 1; i >= 0; i--) {
var host = hosts[i].trim()
if (!host.match(/^[a-z0-9-.]*$/)) {
error('The blacklisted domain name "' + host + '" is not valid')
error('The blocklisted domain name "' + host + '" is not valid')
}
}
o.blacklist = x
o.blocklist = x

o.cursor = $('cursor').checked
o.notext = $('notext').checked
Expand All @@ -71,7 +71,7 @@ function load(o) {
$('scaling').value = o.scaling * 100
$('speed').value = o.speed
$('friction').value = o.friction
$('blacklist').value = o.blacklist
$('blocklist').value = o.blocklist || o.blacklist || ''

$('cursor').checked = isTrue(o.cursor)
$('notext').checked = isTrue(o.notext)
Expand Down Expand Up @@ -117,7 +117,7 @@ document.addEventListener(
KEYS.forEach(function (key) {
$('key_' + key).addEventListener('change', onUpdate, false)
})
;['scaling', 'speed', 'friction', 'blacklist'].forEach(function (id) {
;['scaling', 'speed', 'friction', 'blocklist'].forEach(function (id) {
$(id).addEventListener('change', onUpdate, true)
$(id).addEventListener('keydown', onUpdate, true)
$(id).addEventListener('mousedown', onUpdate, true)
Expand Down