[TASK] Make module requests Sec-Fetch-Dest aware
This change allows module URLs to be automatically framed by the TYPO3 main controller whenever they are directly opened in the browser address bar in a secure environment (e.g. https:// or .localhost TLD) (In this case the Sec-Fetch-Dest=document is sent by browsers). See: https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header Note: This header is already supported by Chrome, Edge and Firefox nightly, only Safari does not deliver this header yet. Non supporting browsers or unsafe http connections will gracefully fallback to showing the module contents without the TYPO3 main frame being added. This fallback behaviour is only triggered when a link is opened in a new tab. Regular clicks are intercepted and directly dispatched via module-router/iframe, as before. This change allows to render the module menu with anchor tags instead of buttons which lets users decide how and where a module should be opened. Long term goal is to improve accessibility by using real links not only in module menu (as we had in TYPO3 v7), but actually everywhere (for example in the database record list), in order for the user to decide whether to open a link in the current or a new tab. This will require enhancing FormEngine routes with module information and is therefore out of scope for this change. Resolves: #94084 Releases: master Change-Id: Iaad8fe62644ec6c9cb1aaa4c92ce2e8e3eeab7bd Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69058 Tested-by:Oliver Hader <oliver.hader@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benjamin Franzke <bfr@qbus.de>
Showing
- Build/Sources/Sass/scaffold/_modulemenu.scss 5 additions, 0 deletionsBuild/Sources/Sass/scaffold/_modulemenu.scss
- Build/Sources/Sass/scaffold/_scaffold.scss 0 additions, 12 deletionsBuild/Sources/Sass/scaffold/_scaffold.scss
- Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Module.ts 1 addition, 1 deletion.../TypeScript/backend/Resources/Public/TypeScript/Module.ts
- Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ModuleMenu.ts 3 additions, 3 deletions...eScript/backend/Resources/Public/TypeScript/ModuleMenu.ts
- Build/Sources/TypeScript/install/Resources/Public/TypeScript/Router.ts 0 additions, 6 deletions.../TypeScript/install/Resources/Public/TypeScript/Router.ts
- typo3/sysext/backend/Classes/Http/RouteDispatcher.php 26 additions, 0 deletionstypo3/sysext/backend/Classes/Http/RouteDispatcher.php
- typo3/sysext/backend/Classes/ServiceProvider.php 4 additions, 1 deletiontypo3/sysext/backend/Classes/ServiceProvider.php
- typo3/sysext/backend/Resources/Private/Templates/ModuleMenu/Main.html 3 additions, 3 deletions.../backend/Resources/Private/Templates/ModuleMenu/Main.html
- typo3/sysext/backend/Resources/Private/Templates/ToolbarItems/HelpToolbarItemDropDown.html 3 additions, 3 deletions...ivate/Templates/ToolbarItems/HelpToolbarItemDropDown.html
- typo3/sysext/backend/Resources/Private/Templates/ToolbarItems/UserToolbarItemDropDown.html 3 additions, 3 deletions...ivate/Templates/ToolbarItems/UserToolbarItemDropDown.html
- typo3/sysext/backend/Resources/Public/Css/backend.css 1 addition, 1 deletiontypo3/sysext/backend/Resources/Public/Css/backend.css
- typo3/sysext/backend/Resources/Public/JavaScript/Module.js 1 addition, 1 deletiontypo3/sysext/backend/Resources/Public/JavaScript/Module.js
- typo3/sysext/backend/Resources/Public/JavaScript/ModuleMenu.js 1 addition, 1 deletion.../sysext/backend/Resources/Public/JavaScript/ModuleMenu.js
- typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php 17 additions, 8 deletionstypo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php
- typo3/sysext/install/Resources/Private/Partials/Layout/MenuModuleLink.html 3 additions, 3 deletions...all/Resources/Private/Partials/Layout/MenuModuleLink.html
- typo3/sysext/install/Resources/Private/Templates/Layout/MainLayout.html 6 additions, 6 deletions...nstall/Resources/Private/Templates/Layout/MainLayout.html
- typo3/sysext/install/Resources/Public/JavaScript/Router.js 1 addition, 1 deletiontypo3/sysext/install/Resources/Public/JavaScript/Router.js
Please register or sign in to comment