Skip to content

Commit 72d00f1

Browse files
committed
feat(electron): display page title in window title
1 parent 83851df commit 72d00f1

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

packages/app-backend-core/src/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,4 +658,22 @@ function connectBridge () {
658658
settings,
659659
})
660660
})
661+
662+
ctx.bridge.send(BridgeEvents.TO_FRONT_TITLE, { title: document.title })
663+
// Watch page title
664+
if (typeof MutationObserver !== 'undefined') {
665+
if (pageTitleObserver) {
666+
pageTitleObserver.disconnect()
667+
}
668+
pageTitleObserver = new MutationObserver((mutations) => {
669+
const title = mutations[0].target as HTMLTitleElement
670+
ctx.bridge.send(BridgeEvents.TO_FRONT_TITLE, { title: title.innerText })
671+
})
672+
pageTitleObserver.observe(
673+
document.querySelector('title'),
674+
{ subtree: true, characterData: true, childList: true },
675+
)
676+
}
661677
}
678+
679+
let pageTitleObserver: MutationObserver

packages/app-frontend/src/app.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import App from './features/App.vue'
22

33
import Vue from 'vue'
4-
import { isChrome, initEnv, SharedData, initSharedData, destroySharedData } from '@vue-devtools/shared-utils'
4+
import { isChrome, initEnv, SharedData, initSharedData, destroySharedData, BridgeEvents } from '@vue-devtools/shared-utils'
55
import { createRouter } from './router'
66
import { getBridge, setBridge } from './features/bridge'
77
import { setAppConnected, setAppInitializing } from './features/connection'
@@ -68,6 +68,10 @@ export function connectApp (app, shell) {
6868

6969
initEnv(Vue)
7070

71+
bridge.on(BridgeEvents.TO_FRONT_TITLE, ({ title }: { title: string }) => {
72+
document.title = `${title} - Vue devtools`
73+
})
74+
7175
await initSharedData({
7276
bridge,
7377
persist: true,

packages/shared-utils/src/consts.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export enum BridgeEvents {
2020
TO_BACK_LOG = 'b:log',
2121
/** Reconnected after background script is terminated (idle) */
2222
TO_FRONT_RECONNECTED = 'f:reconnected',
23+
/** Change app title (electron) */
24+
TO_FRONT_TITLE = 'f:title',
2325

2426
// Apps
2527
/** App was registered */

0 commit comments

Comments
 (0)