From c979328aeec2b1e31a27d15719799cec01612089 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:02:37 +0200 Subject: [PATCH] Remove glasstron and tabs completely --- src/content/css/tabs.css | 46 ------------------------ src/content/setup.html | 9 ++--- src/ipc.ts | 10 ++---- src/main.ts | 30 +++------------- src/preload/preload.ts | 4 --- src/preload/tabs.ts | 26 -------------- src/settings/settings.html | 2 -- src/utils.ts | 2 -- src/window.ts | 74 +------------------------------------- 9 files changed, 11 insertions(+), 192 deletions(-) delete mode 100644 src/content/css/tabs.css delete mode 100644 src/preload/tabs.ts diff --git a/src/content/css/tabs.css b/src/content/css/tabs.css deleted file mode 100644 index d8f10cb..0000000 --- a/src/content/css/tabs.css +++ /dev/null @@ -1,46 +0,0 @@ -.tabs { - display: block; - top: 0; - left: 0; - right: 0; - flex-shrink: 0; - overflow: hidden; - zoom: 1; - box-sizing: border-box; - width: 100%; - clear: both; - height: 30px; - line-height: 30px; - background-color: #202225; - -webkit-app-region: drag; - width: 100%; - user-select: none; - -webkit-user-select: none; - position: fixed; - z-index: 99999; -} - -.tabs #tabs-controls-container { - float: left; - width: 150px; - height: 100%; - line-height: 30px; - background-color: #202225; - -webkit-app-region: no-drag; -} -.tabs-buttons { - color: white; - background-color: inherit; - float: left; - border: none; - outline: none; - cursor: pointer; - transition: 0.3s; - font-size: 20px; -} -.tabs-buttons:hover { - background-color: #4e515a; -} -.withFrame-haYltI { - height: 30px !important; -} diff --git a/src/content/setup.html b/src/content/setup.html index 04b743c..cdf790a 100644 --- a/src/content/setup.html +++ b/src/content/setup.html @@ -123,8 +123,7 @@ automaticPatches: false, mods: "cumcord", inviteWebsocket: true, - performanceMode: "none", - blurType: "acrylic" + performanceMode: "none" }); setTimeout(() => window.armcordinternal.restart(), 5000); }); @@ -155,8 +154,7 @@ automaticPatches: false, performanceMode: "none", mods: options.mod, - inviteWebsocket: true, - blurType: "acrylic" + inviteWebsocket: true }); setTimeout(() => window.armcordinternal.restart(), 500); }); @@ -170,8 +168,7 @@ autoLaunch: true, mods: "none", performanceMode: "none", - inviteWebsocket: true, - blurType: "acrylic" + inviteWebsocket: true }); setTimeout(() => window.armcordinternal.restart(), 500); } diff --git a/src/ipc.ts b/src/ipc.ts index a8b7606..5ad4e44 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -1,16 +1,13 @@ //ipc stuff import {app, ipcMain, shell, desktopCapturer} from "electron"; -import {createTabsGuest, mainWindow} from "./window"; +import {mainWindow} from "./window"; import {setConfigBulk, getVersion, getConfig, setLang, getLang} from "./utils"; -import {customTitlebar, tabs} from "./main"; +import {customTitlebar} from "./main"; import {createSettingsWindow} from "./settings/main"; export function registerIpc() { ipcMain.on("get-app-path", (event, arg) => { event.reply("app-path", app.getAppPath()); }); - ipcMain.on("openTab", (event, number: number) => { - createTabsGuest(number); - }); ipcMain.on("setLang", (event, lang: string) => { setLang(lang); }); @@ -66,9 +63,6 @@ export function registerIpc() { ipcMain.on("titlebar", (event, arg) => { event.returnValue = customTitlebar; }); - ipcMain.on("tabs", (event, arg) => { - event.returnValue = tabs; - }); ipcMain.on("shouldPatch", async (event, arg) => { event.returnValue = await getConfig("automaticPatches"); }); diff --git a/src/main.ts b/src/main.ts index 8d1abb9..096e8b7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,16 +1,15 @@ // Modules to control application life and create native browser window -import {app, BrowserWindow, session, dialog} from "electron"; +import {app, BrowserWindow, session} from "electron"; import "v8-compile-cache"; -import {getConfig, setup, checkIfConfigExists, injectElectronFlags} from "./utils"; +import {getConfig, checkIfConfigExists, injectElectronFlags} from "./utils"; import "./extensions/mods"; import "./extensions/plugin"; import "./tray"; -import {createCustomWindow, createNativeWindow, createTabsHost} from "./window"; +import {createCustomWindow, createNativeWindow} from "./window"; import "./shortcuts"; export var settings: any; export var customTitlebar: boolean; -export var tabs: boolean; if (process.platform == "linux") { @@ -38,17 +37,6 @@ app.whenReady().then(async () => { case "discord": createNativeWindow(); break; - case "glasstron": - dialog.showErrorBox( - "Glasstron is unsupported.", - "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" - ); - app.quit(); - break; - case "tabs": - createTabsHost(); - tabs = true; - break; default: createCustomWindow(); customTitlebar = true; @@ -73,16 +61,8 @@ app.whenReady().then(async () => { case "native": createNativeWindow(); break; - case "glasstron": - dialog.showErrorBox( - "Glasstron is unsupported.", - "This build doesn't include Glasstron functionality, please edit windowStyle value in your settings.json to something different (default for example)" - ); - app.quit(); - break; - case "tabs": - createTabsHost(); - tabs = true; + case "discord": + createNativeWindow(); break; default: createCustomWindow(); diff --git a/src/preload/preload.ts b/src/preload/preload.ts index 8b6ac48..1b58435 100644 --- a/src/preload/preload.ts +++ b/src/preload/preload.ts @@ -6,7 +6,6 @@ import * as path from "path"; import {injectTitlebar} from "./titlebar"; import {sleep, addStyle, injectJS, addScript} from "../utils"; import {ipcRenderer} from "electron"; -import {injectTabs} from "./tabs"; var version = ipcRenderer.sendSync("get-app-version", "app-version"); async function updateLang() { if (window.location.href.indexOf("setup.html") > -1) { @@ -35,9 +34,6 @@ if (window.location.href.indexOf("splash.html") > -1) { if (ipcRenderer.sendSync("titlebar")) { injectTitlebar(); } - if (ipcRenderer.sendSync("tabs")) { - injectTabs(); - } sleep(5000).then(async () => { const cssPath = path.join(__dirname, "../", "/content/css/discord.css"); addStyle(fs.readFileSync(cssPath, "utf8")); diff --git a/src/preload/tabs.ts b/src/preload/tabs.ts deleted file mode 100644 index 960dc16..0000000 --- a/src/preload/tabs.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {addStyle} from "../utils"; -import * as fs from "fs"; -import * as path from "path"; -export function injectTabs() { - document.addEventListener("DOMContentLoaded", function (event) { - var elem = document.createElement("div"); - elem.innerHTML = ``; - elem.classList.add("withFrame-haYltI"); - if (document.getElementById("app-mount") == null) { - document.body.appendChild(elem); - } else { - document.getElementById("app-mount")!.prepend(elem); - } - const cssPath = path.join(__dirname, "../", "/content/css/tabs.css"); - addStyle(fs.readFileSync(cssPath, "utf8")); - }); -} diff --git a/src/settings/settings.html b/src/settings/settings.html index e352741..4b0b806 100644 --- a/src/settings/settings.html +++ b/src/settings/settings.html @@ -104,7 +104,6 @@ } loadSettings(); document.getElementById("settings-save").addEventListener("click", function () { - //function saveSettings(windowStyle: string, channelSetting: string, armcordCSPSetting: boolean, minimizeToTray: boolean, automaticPatches: boolean,modsSetting: string, blurType: string) settings.save({ windowStyle: document.getElementById("theme").value, channel: document.getElementById("channel").value, @@ -112,7 +111,6 @@ minimizeToTray: document.getElementById("tray").checked, automaticPatches: document.getElementById("patches").checked, mods: document.getElementById("mod").value, - blurType: "acrylic", inviteWebsocket: document.getElementById("websocket").checked, performanceMode: document.getElementById("prfmMode").value, doneSetup: true diff --git a/src/utils.ts b/src/utils.ts index 04fe9e2..c3b5bf2 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -42,7 +42,6 @@ export function setup() { minimizeToTray: true, automaticPatches: false, mods: "cumcord", - blurType: "acrylic", performanceMode: "none", inviteWebsocket: true, doneSetup: false @@ -148,7 +147,6 @@ export interface Settings { automaticPatches: boolean; mods: string; performanceMode: string; - blurType: string; inviteWebsocket: boolean; doneSetup: boolean; } diff --git a/src/window.ts b/src/window.ts index be75b59..d523314 100644 --- a/src/window.ts +++ b/src/window.ts @@ -2,7 +2,7 @@ // I had to add most of the window creation code here to split both into seperete functions // WHY? Because I can't use the same code for both due to annoying bug with value `frame` not responding to variables // I'm sorry for this mess but I'm not sure how to fix it. -import {BrowserWindow, shell, app, ipcMain, dialog, clipboard} from "electron"; +import {BrowserWindow, shell, app, dialog} from "electron"; import path from "path"; import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang} from "./utils"; import {registerIpc} from "./ipc"; @@ -12,7 +12,6 @@ import os from "os"; export var icon: string; export let mainWindow: BrowserWindow; export let inviteWindow: BrowserWindow; -let guestWindows: BrowserWindow[] = []; var osType = os.type() contextMenu({ @@ -154,77 +153,6 @@ export function createNativeWindow() { doAfterDefiningTheWindow(); } -export function createTabsHost() { - dialog.showErrorBox( - "READ THIS BEFORE USING THE APP", - "ArmCord Tabs are highly experimental and should be only used for strict testing purposes. Please don't ask for support, however you can still report bugs!" - ); - guestWindows[1] = mainWindow; - mainWindow = new BrowserWindow({ - width: 300, - height: 350, - title: "ArmCord", - darkTheme: true, - icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), - frame: true, - autoHideMenuBar: true, - webPreferences: { - preload: path.join(__dirname, "preload/preload.js") - } - }); - doAfterDefiningTheWindow(); -} -export function createTabsGuest(number: number) { - console.log(guestWindows); - if (guestWindows[number] !== undefined || null) { - try { - console.log("Showing Guest Window " + number); - mainWindow.hide(); - guestWindows[number].show(); - mainWindow = guestWindows[number]; - } catch (e) { - console.error(e); - } - } else { - console.log("Creating Guest Window " + number); - mainWindow.hide(); - - guestWindows[number] = new BrowserWindow({ - width: 800, - height: 600, - title: "ArmCord Guest Window " + number, - darkTheme: true, - icon: path.join(__dirname, "../", "/assets/ac_icon_transparent.png"), - frame: true, - autoHideMenuBar: true, - webPreferences: { - preload: path.join(__dirname, "preload/preload.js") - } - }); - - mainWindow = guestWindows[number]; - ipcMain.on("tab" + number, (event) => { - event.returnValue = true; //return true so we know the tab exists - }); - - guestWindows[number].webContents.userAgent = - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"; //fake useragent for screenshare to work - - guestWindows[number].webContents.setWindowOpenHandler(({url}) => { - shell.openExternal(url); - return {action: "deny"}; - }); - - guestWindows[number].webContents.session.webRequest.onBeforeRequest( - (details: {url: string}, callback: (arg0: {cancel?: boolean}) => any) => { - if (/api\/v\d\/science$/g.test(details.url)) return callback({cancel: true}); - return callback({}); - } - ); - - guestWindows[number].loadURL("https://discord.com/app"); - } -} export function createInviteWindow() { inviteWindow = new BrowserWindow({ width: 800,