Skip to content

Commit d8fb800

Browse files
committed
[mv3][firefox] Fix instanceof quirk; fine tune picker CSS
Related feedback: uBlockOrigin/uBOL-home#548
1 parent 801b467 commit d8fb800

File tree

2 files changed

+18
-23
lines changed

2 files changed

+18
-23
lines changed

platform/mv3/extension/css/picker-ui.css

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#ubol-picker textarea {
3939
border: 0;
4040
box-sizing: border-box;
41+
font-size: var(--monospace-size);
4142
min-height: 5em;
4243
resize: none;
4344
width: 100%;
@@ -49,7 +50,7 @@
4950
color: var(--ink-2);
5051
display: flex;
5152
flex-direction: column;
52-
font-size: small;
53+
font-size: var(--monospace-size);
5354
gap: 0.25em;
5455
}
5556
#ubol-picker .resultsetWidgets > span:first-of-type {
@@ -75,7 +76,7 @@
7576

7677
#ubol-picker #candidateFilters {
7778
font-family: monospace;
78-
font-size: small;
79+
font-size: var(--monospace-size);
7980
max-height: min(20em, 30vh);
8081
min-height: 6em;
8182
overflow-y: auto;
@@ -111,7 +112,7 @@
111112
color: var(--ink-2);
112113
column-gap: 0;
113114
display: grid;
114-
font-size: small;
115+
font-size: var(--font-size-smaller);
115116
grid-template: auto / 1fr 1fr;
116117
justify-items: stretch;
117118
user-select: none;

platform/mv3/extension/js/ext.js

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export const webextFlavor = (( ) => {
3333
return extURL.startsWith('moz-extension:') ? 'firefox' : 'chromium';
3434
})();
3535

36+
const notAnObject = a => typeof a !== 'object' || a === null;
37+
3638
/******************************************************************************/
3739

3840
// The extension's service worker can be evicted at any time, so when we
@@ -47,72 +49,64 @@ export function sendMessage(msg) {
4749
/******************************************************************************/
4850

4951
export async function localRead(key) {
50-
if ( browser.storage instanceof Object === false ) { return; }
51-
if ( browser.storage.local instanceof Object === false ) { return; }
52+
if ( notAnObject(browser?.storage?.local) ) { return; }
5253
try {
5354
const bin = await browser.storage.local.get(key);
54-
if ( bin instanceof Object === false ) { return; }
55+
if ( notAnObject(bin) ) { return; }
5556
return bin[key] ?? undefined;
5657
} catch {
5758
}
5859
}
5960

6061
export async function localWrite(key, value) {
61-
if ( browser.storage instanceof Object === false ) { return; }
62-
if ( browser.storage.local instanceof Object === false ) { return; }
62+
if ( notAnObject(browser?.storage?.local) ) { return; }
6363
return browser.storage.local.set({ [key]: value });
6464
}
6565

6666
export async function localRemove(key) {
67-
if ( browser.storage instanceof Object === false ) { return; }
68-
if ( browser.storage.local instanceof Object === false ) { return; }
67+
if ( notAnObject(browser?.storage?.local) ) { return; }
6968
return browser.storage.local.remove(key);
7069
}
7170

7271
export async function localKeys() {
73-
if ( browser.storage instanceof Object === false ) { return; }
74-
if ( browser.storage.local instanceof Object === false ) { return; }
72+
if ( notAnObject(browser?.storage?.local) ) { return; }
7573
if ( browser.storage.local.getKeys ) {
7674
return browser.storage.local.getKeys();
7775
}
7876
const bin = await browser.storage.local.get(null);
79-
if ( bin instanceof Object === false ) { return; }
77+
if ( notAnObject(bin) ) { return; }
8078
return Object.keys(bin);
8179
}
8280

8381
/******************************************************************************/
8482

8583
export async function sessionRead(key) {
86-
if ( browser.storage instanceof Object === false ) { return; }
87-
if ( browser.storage.session instanceof Object === false ) { return; }
84+
if ( notAnObject(browser?.storage?.session) ) { return; }
8885
try {
8986
const bin = await browser.storage.session.get(key);
90-
if ( bin instanceof Object === false ) { return; }
87+
if ( notAnObject(bin) ) { return; }
9188
return bin[key] ?? undefined;
9289
} catch {
9390
}
9491
}
9592

9693
export async function sessionWrite(key, value) {
97-
if ( browser.storage instanceof Object === false ) { return; }
98-
if ( browser.storage.session instanceof Object === false ) { return; }
94+
if ( notAnObject(browser?.storage?.session) ) { return; }
9995
return browser.storage.session.set({ [key]: value });
10096
}
10197

10298
export async function sessionRemove(key) {
103-
if ( browser.storage instanceof Object === false ) { return; }
104-
if ( browser.storage.session instanceof Object === false ) { return; }
99+
if ( notAnObject(browser?.storage?.session) ) { return; }
105100
return browser.storage.session.remove(key);
106101
}
107102

108103
/******************************************************************************/
109104

110105
export async function adminRead(key) {
111-
if ( browser.storage instanceof Object === false ) { return; }
112-
if ( browser.storage.managed instanceof Object === false ) { return; }
106+
if ( browser?.storage?.managed instanceof Object === false ) { return; }
113107
try {
114108
const bin = await browser.storage.managed.get(key);
115-
if ( bin instanceof Object === false ) { return; }
109+
if ( notAnObject(bin) ) { return; }
116110
return bin[key] ?? undefined;
117111
} catch {
118112
}

0 commit comments

Comments
 (0)