NotionFlow v1.3.3 - Safari Page Context & Desktop Settings Fix
NotionFlow v1.3.3 Release Notes
馃幆 Key Fixes & Architecture Improvements
-
Restored
@grant nonefor Direct Page Execution- Root Cause: Specifying
@grant GM_xmlhttpRequestforced Safari Userscripts extension (and Tampermonkey) to isolate the script inside anISOLATEDcontent-script world. In that isolated world, overrides onwindow.CONFIG,navigator.userAgent, andScreen.prototypenever reached the page'sMAINJavaScript context where Notion's client bundle ran, causing Notion to boot as standard mobile. - Fix: Reverted
@granttononeso the userscript runs uninhibited in the page context. Update checks now leverage nativefetch()with clean error silencing under restrictive page CSP.
- Root Cause: Specifying
-
Strict Desktop Sidebar Targeting for Settings & Notifications
- Root Cause:
findNotionSettingsButton()previously searched document-wide for[aria-label*="Settings"]. Mobile Notion renders a bottom navigation bar with that exact label; clicking it invoked Notion's mobile drawer store (r(86231).O.setState({ open: true })). - Fix: Restricted queries strictly to desktop sidebar containers (
.notion-sidebar-container, .notion-sidebar).
- Root Cause:
-
Native Notion SPA Router Integration (
?openSettingsTab)- By analyzing Notion's client bundle router (
806127), we mapped theopenSettingsTabparameter directly to Notion's desktop space settings store (r(802724).Ay). - NotionFlow now dispatches
?openSettingsTab=accountand?openSettingsTab=notificationsvia history state to reliably invoke Notion's desktop settings modals regardless of sidebar state.
- By analyzing Notion's client bundle router (
-
Preserved Desktop Modal Layout
- Removed destructive CSS (
[role="dialog"] > div { flex-direction: column !important; }) that was squashing Notion's two-column desktop modal into an unreadable vertical mobile layout.
- Removed destructive CSS (
馃摝 Distribution Assets
notion-flow.user.js: Standard userscript for Safari Userscripts extension, Stay, Orion, Tampermonkey.notionflow-injection.js: Standalone bundle for native iOS WKWebView / WKUserScript wrappers.