Disable context isolation (to load ffmpeg wasm)

This commit is contained in:
TC
2021-01-13 21:28:42 +01:00
parent 9ad1dad6df
commit 39c8031cd7
6 changed files with 35 additions and 26 deletions

View File

@ -86,7 +86,9 @@ function createMainWindow() {
backgroundColor: "#000",
show: false,
webPreferences: {
contextIsolation: true,
// TODO: re-enable contextIsolation once it can work with ffmepg.wasm
// Possible bundling? https://github.com/ffmpegwasm/ffmpeg.wasm/issues/126
contextIsolation: false,
preload: path.join(__dirname, "preload.js"),
nodeIntegrationInSubFrames: true,
nativeWindowOpen: true, // window.open return Window object(like in regular browsers), not BrowserWindowProxy

View File

@ -30,28 +30,30 @@ const reinit = () => {
}
};
contextBridge.exposeInMainWorld("downloader", {
download: () => {
const videoUrl = window.location.href;
// TODO: re-enable once contextIsolation is set to true
// contextBridge.exposeInMainWorld("downloader", {
// download: () => {
global.download = () => {
const videoUrl = window.location.href;
downloadVideoToMP3(
videoUrl,
(feedback) => {
if (!progress) {
console.warn("Cannot update progress");
} else {
progress.innerHTML = feedback;
}
},
(error) => {
triggerAction(CHANNEL, ACTIONS.ERROR, error);
reinit();
},
reinit,
pluginOptions
);
},
});
downloadVideoToMP3(
videoUrl,
(feedback) => {
if (!progress) {
console.warn("Cannot update progress");
} else {
progress.innerHTML = feedback;
}
},
(error) => {
triggerAction(CHANNEL, ACTIONS.ERROR, error);
reinit();
},
reinit,
pluginOptions
);
};
// });
function observeMenu(options) {
pluginOptions = { ...pluginOptions, ...options };

View File

@ -4,7 +4,7 @@
tabindex="-1"
aria-disabled="false"
aria-selected="false"
onclick="downloader.download()"
onclick="download()"
>
<div
class="menu-icon yt-icon-container yt-icon ytmusic-toggle-menu-service-item-renderer"

View File

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

View File

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

View File

@ -11,7 +11,12 @@ plugins.forEach(([plugin, options]) => {
const pluginPath = path.join(__dirname, "plugins", plugin, "actions.js");
fileExists(pluginPath, () => {
const actions = require(pluginPath).actions || {};
contextBridge.exposeInMainWorld(plugin + "Actions", actions);
// TODO: re-enable once contextIsolation is set to true
// contextBridge.exposeInMainWorld(plugin + "Actions", actions);
Object.keys(actions).forEach((actionName) => {
global[actionName] = actions[actionName];
});
});
});