Use contextBridge in preload script + update navigation plugin

This commit is contained in:
TC
2021-01-12 22:54:04 +01:00
parent 79e8fc2fac
commit 9ad1dad6df
5 changed files with 21 additions and 23 deletions

View File

@ -1,24 +1,24 @@
const { triggerAction } = require('../utils'); const { triggerAction } = require("../utils");
const CHANNEL = "navigation"; const CHANNEL = "navigation";
const ACTIONS = { const ACTIONS = {
NEXT: "next", NEXT: "next",
BACK: 'back', BACK: "back",
} };
function goToNextPage() { function goToNextPage() {
triggerAction(CHANNEL, ACTIONS.NEXT); triggerAction(CHANNEL, ACTIONS.NEXT);
} }
function goToPreviousPage() { function goToPreviousPage() {
triggerAction(CHANNEL, ACTIONS.BACK); triggerAction(CHANNEL, ACTIONS.BACK);
} }
module.exports = { module.exports = {
CHANNEL: CHANNEL, CHANNEL: CHANNEL,
ACTIONS: ACTIONS, ACTIONS: ACTIONS,
global: { actions: {
goToNextPage: goToNextPage, goToNextPage: goToNextPage,
goToPreviousPage: goToPreviousPage, goToPreviousPage: goToPreviousPage,
} },
}; };

View File

@ -1,23 +1,23 @@
const path = require("path"); const path = require("path");
const { injectCSS, listenAction } = require("../utils"); const { injectCSS, listenAction } = require("../utils");
const { ACTIONS, CHANNEL } = require("./actions.js"); const { ACTIONS, CHANNEL } = require("./actions.js");
function handle(win) { function handle(win) {
injectCSS(win.webContents, path.join(__dirname, "style.css")); injectCSS(win.webContents, path.join(__dirname, "style.css"));
listenAction(CHANNEL, (event, action) => { listenAction(CHANNEL, (event, action) => {
switch (action) { switch (action) {
case ACTIONS.NEXT: case ACTIONS.NEXT:
if (win.webContents.canGoForward()) { if (win.webContents.canGoForward()) {
win.webContents.goForward(); win.webContents.goForward();
} }
break; break;
case ACTIONS.BACK: case ACTIONS.BACK:
if (win.webContents.canGoBack()) { if (win.webContents.canGoBack()) {
win.webContents.goBack(); win.webContents.goBack();
} }
break; break;
default: default:
console.log("Unknown action: " + action); console.log("Unknown action: " + action);
} }
}); });

View File

@ -2,7 +2,7 @@
class="style-scope ytmusic-pivot-bar-renderer navigation-item" class="style-scope ytmusic-pivot-bar-renderer navigation-item"
tab-id="FEmusic_back" tab-id="FEmusic_back"
role="tab" role="tab"
onclick="goToPreviousPage()" onclick="navigationActions.goToPreviousPage()"
> >
<div <div
class="search-icon style-scope ytmusic-search-box" class="search-icon style-scope ytmusic-search-box"

View File

@ -2,7 +2,7 @@
class="style-scope ytmusic-pivot-bar-renderer navigation-item" class="style-scope ytmusic-pivot-bar-renderer navigation-item"
tab-id="FEmusic_next" tab-id="FEmusic_next"
role="tab" role="tab"
onclick="goToNextPage()" onclick="navigationActions.goToNextPage()"
> >
<div <div
class="search-icon style-scope ytmusic-search-box" class="search-icon style-scope ytmusic-search-box"

View File

@ -1,6 +1,6 @@
const path = require("path"); const path = require("path");
const { remote } = require("electron"); const { contextBridge, remote } = require("electron");
const config = require("./config"); const config = require("./config");
const { fileExists } = require("./plugins/utils"); const { fileExists } = require("./plugins/utils");
@ -10,10 +10,8 @@ const plugins = config.plugins.getEnabled();
plugins.forEach(([plugin, options]) => { plugins.forEach(([plugin, options]) => {
const pluginPath = path.join(__dirname, "plugins", plugin, "actions.js"); const pluginPath = path.join(__dirname, "plugins", plugin, "actions.js");
fileExists(pluginPath, () => { fileExists(pluginPath, () => {
const actions = require(pluginPath).global || {}; const actions = require(pluginPath).actions || {};
Object.keys(actions).forEach((actionName) => { contextBridge.exposeInMainWorld(plugin + "Actions", actions);
global[actionName] = actions[actionName];
});
}); });
}); });