Skip to content

Commit 4941e7f

Browse files
authored
[Fix] Clear cache and storage data on new browser game window (#1194)
* [Fix] clear cache and storage data on new browser game window * [Fix] clear cache from partition only * [Fix] partition naming * [Fix] reduce storage data cleared on new browser game window * chore: pnpm-lock
1 parent ba33509 commit 4941e7f

File tree

1 file changed

+17
-1
lines changed
  • src/backend/storeManagers/storeManagerCommon

1 file changed

+17
-1
lines changed

src/backend/storeManagers/storeManagerCommon/games.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
app,
3131
BrowserWindow,
3232
BrowserWindowConstructorOptions,
33+
session,
3334
WindowOpenHandlerResponse
3435
} from 'electron'
3536
import { gameManagerMap } from '../index'
@@ -145,14 +146,16 @@ const openNewBrowserGameWindow = async (
145146
const hpOverlay = await getHpOverlay()
146147

147148
return new Promise((res) => {
149+
const partition = `persist:${appName}`
148150
const browserGame = new BrowserWindow({
149151
icon: icon,
150152
fullscreen: true,
151153
webPreferences: {
152154
webviewTag: true,
153155
contextIsolation: true,
154156
nodeIntegration: true,
155-
preload: path.join(__dirname, '../preload/preload.js')
157+
preload: path.join(__dirname, '../preload/preload.js'),
158+
partition
156159
},
157160
show: false
158161
})
@@ -215,6 +218,19 @@ const openNewBrowserGameWindow = async (
215218
}
216219
app.on('web-contents-created', interceptFullscreenKeyInput)
217220

221+
// Clear cache on launch to avoid issues with game updates
222+
const gameSession = session.fromPartition(partition)
223+
gameSession.clearCache()
224+
gameSession.clearStorageData({
225+
storages: ['filesystem', 'shadercache', 'cachestorage'],
226+
quotas: ['temporary', 'syncable']
227+
})
228+
229+
// Open DevTools
230+
if (!app.isPackaged || process.env.HP_ENABLE_DEVTOOLS === 'true') {
231+
browserGame.webContents.openDevTools()
232+
}
233+
218234
browserGame.loadURL(url)
219235
// this is electron's suggested way to prevent visual flash
220236
// https://github.com/electron/electron/blob/main/docs/api/browser-window.md#using-the-ready-to-show-event

0 commit comments

Comments
 (0)