mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +02:00
Add per-window theme example: private browsing theme (#307)
This commit is contained in:
9
private-browsing-theme/README.md
Normal file
9
private-browsing-theme/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Private browsing theme
|
||||
|
||||
## What it does
|
||||
|
||||
An example using the theme API to apply a different theme on private windows.
|
||||
|
||||
## What it shows
|
||||
|
||||
How to use the windowId argument of browser.theme.reset() and browser.theme.update().
|
||||
25
private-browsing-theme/background.js
Normal file
25
private-browsing-theme/background.js
Normal file
@@ -0,0 +1,25 @@
|
||||
browser.windows.onCreated.addListener(themeWindow);
|
||||
|
||||
// Theme all currently open windows
|
||||
browser.windows.getAll().then(wins => wins.forEach(themeWindow));
|
||||
|
||||
function themeWindow(window) {
|
||||
// Check if the window is in private browsing
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
images: {
|
||||
headerURL: "",
|
||||
},
|
||||
colors: {
|
||||
accentcolor: "black",
|
||||
textcolor: "white",
|
||||
toolbar: "#333",
|
||||
toolbar_text: "white"
|
||||
}
|
||||
});
|
||||
}
|
||||
// Reset to the default theme otherwise
|
||||
else {
|
||||
browser.theme.reset(window.id);
|
||||
}
|
||||
}
|
||||
16
private-browsing-theme/manifest.json
Normal file
16
private-browsing-theme/manifest.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Private browsing theme",
|
||||
"version": "2.0",
|
||||
"description": "Extension that sets a dark theme for private windows",
|
||||
"background": {
|
||||
"scripts": ["background.js"]
|
||||
},
|
||||
"permissions": ["theme"],
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "private-window-theme@mozilla.org",
|
||||
"strict_min_version": "57.0b14"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user