Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit 79b8e52

Browse files
authored
Merge pull request #23 from MobileFirstLLC/ff-fix
fix: settings update should notify active tabs (firefox)
2 parents 4949e6c + 1ec99cf commit 79b8e52

2 files changed

Lines changed: 33 additions & 13 deletions

File tree

src/modules/autoblocker.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {alertCap, browserVariant, classFlag} from '../config';
1+
import {alertCap, browserVariant, classFlag, isFirefox} from '../config';
22
import Storage from './storage';
33
import TwitterApi from './twitterApi';
44
import bs from './blockerState'; // most definitely
@@ -47,13 +47,22 @@ export default class AutoBlocker {
4747
* Add message listener to know when to reload settings.
4848
*/
4949
static registerListener() {
50-
window.chrome.runtime.onMessage.addListener(
51-
(request) => {
50+
if (isFirefox) {
51+
browser.runtime.onMessage.addListener(request => {
5252
if (request.updateSettings) {
5353
AutoBlocker.loadSettings();
54-
return true;
5554
}
5655
});
56+
return Promise.resolve();
57+
} else {
58+
window.chrome.runtime.onMessage.addListener(
59+
(request) => {
60+
if (request.updateSettings) {
61+
AutoBlocker.loadSettings();
62+
return true;
63+
}
64+
});
65+
}
5766
}
5867

5968
/**

src/modules/tabs.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// noinspection JSUnresolvedVariable,JSCheckFunctionSignatures,JSUnresolvedFunction,JSIgnoredPromiseFromCall
22

3-
import {browserVariant} from "../config";
3+
import {browserVariant, isFirefox} from '../config';
44

55
/**
66
* @description
@@ -26,13 +26,24 @@ export default class Tabs {
2626
* subscribed tabs.
2727
*/
2828
static notifyTabsOfUpdate() {
29-
browserVariant().tabs.query({}, tabs => {
30-
for (let i = 0; i < tabs.length; ++i) {
31-
// send message to update
32-
browserVariant().tabs.sendMessage(tabs[i].id,
33-
{updateSettings: true}
34-
);
35-
}
36-
});
29+
if (isFirefox) {
30+
browserVariant().tabs.query(
31+
{url: 'https://*.twitter.com/*'})
32+
.then(tabs => {
33+
for (let tab of tabs) {
34+
browser.tabs.sendMessage(
35+
tab.id, {updateSettings: true})
36+
.then().catch();
37+
}
38+
}).catch();
39+
} else {
40+
browserVariant().tabs.query({}, tabs => {
41+
for (let i = 0; i < tabs.length; ++i) {
42+
browserVariant().tabs.sendMessage(tabs[i].id,
43+
{updateSettings: true}
44+
);
45+
}
46+
});
47+
}
3748
}
3849
}

0 commit comments

Comments
 (0)