experiments in a post-browser web
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor(tile-preload,ipc): flip opener-* to strict + delete legacy (Phase 3.6a)

tile-preload.cts already invokes tile:window:opener-postmessage,
tile:window:opener-close, and tile:window:opener-focus (landed in 3.5a).
Delete the three legacy ipcMain.handle('opener-postmessage'|'opener-close'|
'opener-focus') blocks from ipc.ts — no remaining callers use the bare
channel names from tile-preload. app/page/page.js callers are tracked
separately (strict-shadow bucket, later phase).

-74
-74
backend/electron/ipc.ts
··· 3947 3947 return { success: true, data: getPubSubStats() }; 3948 3948 }); 3949 3949 3950 - // ======================================================================== 3951 - // Popup-to-Opener Bridge (OAuth / window.opener shim) — IPC handlers 3952 - // ======================================================================== 3953 - 3954 - // Route postMessage from a popup's webview to the opener's webview. 3955 - // Called by the popup's page.js when it picks up __PEEK_OPENER_POSTMESSAGE__ 3956 - // from the console-message bridge. 3957 - ipcMain.handle('opener-postmessage', (ev, data) => { 3958 - const senderWin = BrowserWindow.fromWebContents(ev.sender); 3959 - if (!senderWin) return { success: false, error: 'No sender window' }; 3960 - 3961 - const openerWindowId = popupToOpener.get(senderWin.id); 3962 - if (!openerWindowId) { 3963 - DEBUG && console.log('[opener-bridge] No opener mapping for window', senderWin.id); 3964 - return { success: false, error: 'No opener window mapped' }; 3965 - } 3966 - 3967 - const openerWin = BrowserWindow.fromId(openerWindowId); 3968 - if (!openerWin || openerWin.isDestroyed()) { 3969 - DEBUG && console.log('[opener-bridge] Opener window', openerWindowId, 'not found or destroyed'); 3970 - popupToOpener.delete(senderWin.id); 3971 - return { success: false, error: 'Opener window not found' }; 3972 - } 3973 - 3974 - // Forward the message to the opener's renderer (page.js) 3975 - // page.js listens for 'opener-message-received' via api.ipc.on() 3976 - openerWin.webContents.send('opener-message-received', { 3977 - message: data.message, 3978 - origin: data.origin || '*', 3979 - popupWindowId: senderWin.id, 3980 - }); 3981 - 3982 - DEBUG && console.log(`[opener-bridge] Routed postMessage from popup ${senderWin.id} to opener ${openerWindowId}`); 3983 - return { success: true }; 3984 - }); 3985 - 3986 - // Route opener.close() from a popup to close the opener window. 3987 - ipcMain.handle('opener-close', (ev) => { 3988 - const senderWin = BrowserWindow.fromWebContents(ev.sender); 3989 - if (!senderWin) return { success: false, error: 'No sender window' }; 3990 - 3991 - const openerWindowId = popupToOpener.get(senderWin.id); 3992 - if (!openerWindowId) return { success: false, error: 'No opener mapped' }; 3993 - 3994 - const openerWin = BrowserWindow.fromId(openerWindowId); 3995 - if (!openerWin || openerWin.isDestroyed()) { 3996 - popupToOpener.delete(senderWin.id); 3997 - return { success: false, error: 'Opener window not found' }; 3998 - } 3999 - 4000 - DEBUG && console.log(`[opener-bridge] Popup ${senderWin.id} requested opener.close() on ${openerWindowId}`); 4001 - closeOrHideWindow(openerWin.id); 4002 - return { success: true }; 4003 - }); 4004 - 4005 - // Route opener.focus() from a popup to focus the opener window. 4006 - ipcMain.handle('opener-focus', (ev) => { 4007 - const senderWin = BrowserWindow.fromWebContents(ev.sender); 4008 - if (!senderWin) return { success: false, error: 'No sender window' }; 4009 - 4010 - const openerWindowId = popupToOpener.get(senderWin.id); 4011 - if (!openerWindowId) return { success: false, error: 'No opener mapped' }; 4012 - 4013 - const openerWin = BrowserWindow.fromId(openerWindowId); 4014 - if (!openerWin || openerWin.isDestroyed()) { 4015 - popupToOpener.delete(senderWin.id); 4016 - return { success: false, error: 'Opener window not found' }; 4017 - } 4018 - 4019 - DEBUG && console.log(`[opener-bridge] Popup ${senderWin.id} requested opener.focus() on ${openerWindowId}`); 4020 - openerWin.show(); 4021 - openerWin.focus(); 4022 - return { success: true }; 4023 - }); 4024 3950 } 4025 3951 4026 3952 /**