diff --git a/app/extensions/builtins.json b/app/extensions/builtins.json index 2447519..5b6a55f 100644 --- a/app/extensions/builtins.json +++ b/app/extensions/builtins.json @@ -4,7 +4,7 @@ "url": "https://github.com/AgregoreWeb/extension-agregore-history/releases/download/v{version}/agregore-history-v{version}.zip" }, "agregore-renderer": { - "version": "2.1.3", + "version": "2.1.5", "url": "https://github.com/AgregoreWeb/extension-agregore-renderer/releases/download/v{version}/agregore-renderer-v{version}.zip" }, "agregore-qr-share": { diff --git a/app/pages/theme/style.css b/app/pages/theme/style.css index ea47f70..4a9aa57 100644 --- a/app/pages/theme/style.css +++ b/app/pages/theme/style.css @@ -36,6 +36,7 @@ body > h6 { max-width: var(--ag-theme-max-width); margin-left: auto; margin-right: auto; + display: block; } input, button, textarea, select, select *, option { diff --git a/app/window.js b/app/window.js index 6390a5c..89916c0 100644 --- a/app/window.js +++ b/app/window.js @@ -29,6 +29,14 @@ const PERSIST_FILE = path.join(app.getPath('userData'), 'lastOpened.json') const DEFAULT_SAVE_INTERVAL = 30 * 1000 +// See if we have any stylesheets with rules +// If not manually inject styles to be like Agregore +const HAS_SHEET = ` +[...document.styleSheets].filter((sheet) => { +try {sheet.cssRules; return true} catch {return false} +}).length +` + const WINDOW_METHODS = [ 'goBack', 'goForward', @@ -323,6 +331,15 @@ export class Window extends EventEmitter { this.send('update-target-url', url) }) + this.web.on('dom-ready', async () => { + const hasStyles = await this.web.executeJavaScript(HAS_SHEET) + console.log({ hasStyles }) + if (!hasStyles) { + const style = await getDefaultStylesheet(this.web) + await this.web.insertCSS(style) + } + }) + this.web.once('dom-ready', () => { showQueue.add(async () => { await this.window.show() @@ -467,3 +484,16 @@ export class Window extends EventEmitter { return this.window.webContents.id } } + +async function getDefaultStylesheet (webContents) { + const [r1, r2] = await Promise.all([ + webContents.session.fetch('agregore://theme/vars.css'), + webContents.session.fetch('agregore://theme/style.css') + ]) + + const [vars, style] = await Promise.all([ + r1.text(), + r2.text() + ]) + return vars + style +}