Skip to content

Commit a4a7967

Browse files
committed
Support for themed placeholders.
1 parent 6556b34 commit a4a7967

1 file changed

Lines changed: 31 additions & 6 deletions

File tree

content/PlaceHolder.js

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,41 @@ var PlaceHolder = (() => {
2222
const HANDLERS = new Map();
2323
const CLASS_NAME = "__NoScript_PlaceHolder__ __NoScript_Theme__";
2424
const SELECTOR = `a.${CLASS_NAME.split(/\s+/).join('.')}`;
25-
let checkStyle = async () => {
25+
26+
let checkStyle = () => {
2627
checkStyle = () => {};
2728
if (!ns.embeddingDocument) return;
2829
let replacement = document.querySelector(SELECTOR);
2930
if (!replacement) return;
3031
if (window.getComputedStyle(replacement, null).opacity !== "0.8") {
31-
const sheets = ["/common/themes.css", "/content/content.css"];
32-
await Promise.all(sheets.map(async (url, index) => {
33-
sheets[index] = (await (await fetch(browser.runtime.getURL(url))).text());
34-
}));
35-
document.head.appendChild(createHTMLElement("style")).textContent = sheets.join("\n");
32+
for (let url of ["/common/themes.css", "/content/content.css"]) {
33+
let l = createHTMLElement("link");
34+
l.href = browser.runtime.getURL(url);
35+
l.rel = "stylesheet";
36+
l.type = "text/css";
37+
document.head.appendChild(l);
38+
}
39+
}
40+
};
41+
42+
var theme;
43+
let updateTheme = replacement => {
44+
if (theme === undefined) {
45+
replacement.style.backgroundImage = "none";
46+
(async () => {
47+
try {
48+
theme = await Messages.send("getTheme");
49+
} catch (e) {
50+
theme = "";
51+
}
52+
updateTheme(replacement);
53+
})();
54+
return;
3655
}
56+
if (theme) {
57+
replacement.classList.add(theme);
58+
}
59+
replacement.style.backgroundImage = "";
3760
};
3861

3962

@@ -191,6 +214,8 @@ var PlaceHolder = (() => {
191214
e._placeHolderReplacement = replacement;
192215
}
193216

217+
updateTheme(replacement);
218+
194219
element.replaceWith(replacement);
195220

196221
// do our best to bring it to front

0 commit comments

Comments
 (0)