diff --git a/typo3/sysext/backend/Classes/Configuration/TsConfigParser.php b/typo3/sysext/backend/Classes/Configuration/TsConfigParser.php
index d4fcc999d0b129bb61e93ab92ae01845f725710c..3ca7f859ce193f5f930edd4fdc6add78373d29e7 100644
--- a/typo3/sysext/backend/Classes/Configuration/TsConfigParser.php
+++ b/typo3/sysext/backend/Classes/Configuration/TsConfigParser.php
@@ -33,6 +33,11 @@ class TsConfigParser extends \TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser
      */
     public $id;
 
+    /**
+     * @var string
+     */
+    public $type;
+
     /**
      * Parses the passed TS-Config using conditions and caching
      *
diff --git a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
index f22692a85346af146ac5170cddc61ee04737c970..ce98bded14b259d0fbd789ca8f32ef9ecd2f3d47 100644
--- a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
+++ b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
@@ -207,6 +207,11 @@ class EditDocumentController extends AbstractModule
      */
     public $returnEditConf;
 
+    /**
+     * @var string
+     */
+    public $localizationMode;
+
     /**
      * Workspace used for the editing action.
      *
diff --git a/typo3/sysext/backend/Classes/Controller/File/ReplaceFileController.php b/typo3/sysext/backend/Classes/Controller/File/ReplaceFileController.php
index 73e45c39551c191b7991419d80c0a1904d19775c..d2be4a1f36a0a2f0783476b9c1a8a925ed7f7d2f 100644
--- a/typo3/sysext/backend/Classes/Controller/File/ReplaceFileController.php
+++ b/typo3/sysext/backend/Classes/Controller/File/ReplaceFileController.php
@@ -19,7 +19,6 @@ use Psr\Http\Message\ServerRequestInterface;
 use TYPO3\CMS\Backend\Module\AbstractModule;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Imaging\Icon;
-use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Resource\Exception\InsufficientFileAccessPermissionsException;
 use TYPO3\CMS\Core\Resource\Folder;
 use TYPO3\CMS\Core\Resource\ResourceFactory;
@@ -81,7 +80,6 @@ class ReplaceFileController extends AbstractModule
     {
         parent::__construct();
         $GLOBALS['SOBE'] = $this;
-        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->init();
     }
 
diff --git a/typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php b/typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php
index d684a70efdd372bd82ff501bcf0cea34f02ed71a..53a958a67d01b435bcef7c8fd4e5e4b846e20b8f 100644
--- a/typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php
+++ b/typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php
@@ -304,7 +304,7 @@ class InlineControlContainer extends AbstractContainer
 
         $html .= '</div>';
 
-        $fieldWizardResult = $this->renderfieldWizard();
+        $fieldWizardResult = $this->renderFieldWizard();
         $fieldWizardHtml = $fieldWizardResult['html'];
         $resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $fieldWizardResult, false);
         $html .= $fieldWizardHtml;
diff --git a/typo3/sysext/backend/Classes/Form/Container/OuterWrapContainer.php b/typo3/sysext/backend/Classes/Form/Container/OuterWrapContainer.php
index c80b755708960270447d5ca90e8f2bb4a82bc2e6..d15fc6164804f9684674ab0222c189e039d4ecac 100644
--- a/typo3/sysext/backend/Classes/Form/Container/OuterWrapContainer.php
+++ b/typo3/sysext/backend/Classes/Form/Container/OuterWrapContainer.php
@@ -133,7 +133,7 @@ class OuterWrapContainer extends AbstractContainer
         $fieldInformationHtml = $fieldInformationResult['html'];
         $result = $this->mergeChildReturnIntoExistingResult($result, $fieldInformationResult, false);
 
-        $fieldWizardResult = $this->renderfieldWizard();
+        $fieldWizardResult = $this->renderFieldWizard();
         $fieldWizardHtml = $fieldWizardResult['html'];
         $result = $this->mergeChildReturnIntoExistingResult($result, $fieldWizardResult, false);
 
diff --git a/typo3/sysext/backend/Classes/History/RecordHistory.php b/typo3/sysext/backend/Classes/History/RecordHistory.php
index 6ec79dabf5a8691daa9633fe9101fa0ccace32e3..ef05e97a35acaf36fba18fbb6ee2996afff4f12a 100644
--- a/typo3/sysext/backend/Classes/History/RecordHistory.php
+++ b/typo3/sysext/backend/Classes/History/RecordHistory.php
@@ -95,6 +95,11 @@ class RecordHistory
      */
     protected $pageAccessCache = [];
 
+    /**
+     * @var string
+     */
+    protected $rollbackFields = '';
+
     /**
      * @var IconFactory
      */
@@ -284,7 +289,7 @@ class RecordHistory
         }
         // Return to normal operation
         $this->lastSyslogId = false;
-        $this->rollbackFields = false;
+        $this->rollbackFields = '';
         $this->createChangeLog();
         $this->view->assign('reloadPageFrame', $reloadPageFrame);
     }
diff --git a/typo3/sysext/backend/Classes/Module/ModuleLoader.php b/typo3/sysext/backend/Classes/Module/ModuleLoader.php
index 8f78fafcbec6dea2437e03f60a63c02fed5a19cb..e3c776a93a9de00ade61857fcbaed4c50cd8a504 100644
--- a/typo3/sysext/backend/Classes/Module/ModuleLoader.php
+++ b/typo3/sysext/backend/Classes/Module/ModuleLoader.php
@@ -212,7 +212,7 @@ class ModuleLoader
      * fetches the conf.php file of a certain module, and also merges that with
      * some additional configuration
      *
-     * @param \string $moduleName the combined name of the module, can be "web", "web_info", or "tools_log"
+     * @param string $moduleName the combined name of the module, can be "web", "web_info", or "tools_log"
      * @return array an array with subarrays, named "configuration" (aka $MCONF), "labels" (previously known as $MLANG) and the stripped path
      */
     protected function getModuleSetupInformation($moduleName)
diff --git a/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php b/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php
index 638de8793b75c7b63c77473506f7b9faab6fbef7..17890be44fd1d4cd09ed7c7363068d26c042e7ad 100644
--- a/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php
+++ b/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeDataProvider.php
@@ -72,7 +72,7 @@ class ExtdirectTreeDataProvider extends \TYPO3\CMS\Backend\Tree\AbstractTree
      * Fetches the next tree level
      *
      * @param int $nodeId
-     * @param stdClass $nodeData
+     * @param \stdClass $nodeData
      * @return array
      */
     public function getNextTreeLevel($nodeId, $nodeData)
@@ -92,7 +92,7 @@ class ExtdirectTreeDataProvider extends \TYPO3\CMS\Backend\Tree\AbstractTree
      * Returns a tree that only contains elements that match the given search string
      *
      * @param int $nodeId
-     * @param stdClass $nodeData
+     * @param \stdClass $nodeData
      * @param string $searchFilter
      * @return array
      */
diff --git a/typo3/sysext/backend/Classes/Tree/Pagetree/PagetreeNode.php b/typo3/sysext/backend/Classes/Tree/Pagetree/PagetreeNode.php
index 82b39f58f3e10ea3ca21ab89f7ad45b2a32df4fa..a417585013c3fad585c16497f9e5fda5c1ccd9ad 100644
--- a/typo3/sysext/backend/Classes/Tree/Pagetree/PagetreeNode.php
+++ b/typo3/sysext/backend/Classes/Tree/Pagetree/PagetreeNode.php
@@ -254,7 +254,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
      */
     public function canBeDisabledAndEnabled()
     {
-        return $this->canEdit($this->record) && $GLOBALS['BE_USER']->checkLanguageAccess(0);
+        return $this->canEdit() && $GLOBALS['BE_USER']->checkLanguageAccess(0);
     }
 
     /**
@@ -265,7 +265,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
     public function canBeCut()
     {
         return
-            $this->canEdit($this->record)
+            $this->canEdit()
             && !VersionState::cast($this->record['t3ver_state'])->equals(VersionState::DELETE_PLACEHOLDER)
             && $GLOBALS['BE_USER']->checkLanguageAccess(0)
         ;
@@ -278,7 +278,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
      */
     public function canBeEdited()
     {
-        return $this->canEdit($this->record) && $GLOBALS['BE_USER']->checkLanguageAccess(0);
+        return $this->canEdit() && $GLOBALS['BE_USER']->checkLanguageAccess(0);
     }
 
     /**
@@ -302,7 +302,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
      */
     public function canCreateNewPages()
     {
-        return $this->canCreate($this->record) && $GLOBALS['BE_USER']->checkLanguageAccess(0);
+        return $this->canCreate() && $GLOBALS['BE_USER']->checkLanguageAccess(0);
     }
 
     /**
@@ -313,7 +313,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
     public function canBeRemoved()
     {
         return
-            $this->canRemove($this->record)
+            $this->canRemove()
             && !VersionState::cast($this->record['t3ver_state'])->equals(VersionState::DELETE_PLACEHOLDER)
             && $GLOBALS['BE_USER']->checkLanguageAccess(0)
         ;
@@ -327,7 +327,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
     public function canBePastedInto()
     {
         return
-            $this->canCreate($this->record)
+            $this->canCreate()
             && !VersionState::cast($this->record['t3ver_state'])->equals(VersionState::DELETE_PLACEHOLDER)
             && $GLOBALS['BE_USER']->checkLanguageAccess(0)
         ;
@@ -341,7 +341,7 @@ class PagetreeNode extends \TYPO3\CMS\Backend\Tree\ExtDirectNode
     public function canBePastedAfter()
     {
         return
-            $this->canCreate($this->record)
+            $this->canCreate()
             && !VersionState::cast($this->record['t3ver_state'])->equals(VersionState::DELETE_PLACEHOLDER)
             && $GLOBALS['BE_USER']->checkLanguageAccess(0)
         ;
diff --git a/typo3/sysext/backend/Classes/Tree/TreeNodeCollection.php b/typo3/sysext/backend/Classes/Tree/TreeNodeCollection.php
index 6027020a626ae71cc6dff9af05d89dd7b93959fc..e04ee1e3b2133891c8443c50677d2f1a3390cd6a 100644
--- a/typo3/sysext/backend/Classes/Tree/TreeNodeCollection.php
+++ b/typo3/sysext/backend/Classes/Tree/TreeNodeCollection.php
@@ -29,6 +29,7 @@ class TreeNodeCollection extends \ArrayObject
      */
     public function __construct(array $data = [])
     {
+        parent::__construct();
         if (!empty($data)) {
             $this->dataFromArray($data);
         }
diff --git a/typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php b/typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
index 760bbcb20d4d195abc3cf7c0d1b5fee11dcb6b64..885d5c8f25b2c1eb9c7617abcba63f72614cac45 100644
--- a/typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
+++ b/typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
@@ -172,7 +172,7 @@ class PagePositionMap
                     // 1) It must be allowed to create a new page and 2) If there are subpages there is no need to render a subpage icon here - it'll be done over the subpages...
                     if (!$this->dontPrintPageInsertIcons && $this->checkNewPageInPid($id) && !($prev_dat['invertedDepth'] > $pageTree->tree[$cc]['invertedDepth'])) {
                         end($lines);
-                        $lines[] = '<li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($id, $id, 1)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li>';
+                        $lines[] = '<li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($id, $id)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li>';
                     }
                 }
                 // If going down
@@ -184,7 +184,7 @@ class PagePositionMap
                     if (!$this->dontPrintPageInsertIcons && $this->checkNewPageInPid($prev_dat['row']['pid'])) {
                         $prevPid = -$prev_dat['row']['uid'];
                         end($lines);
-                        $lines[] = '<li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $prev_dat['row']['pid'], 2)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li>';
+                        $lines[] = '<li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $prev_dat['row']['pid'])) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li>';
                     }
                     // Then set the current prevPid
                     $prevPid = -$prev_dat['row']['pid'];
@@ -201,7 +201,7 @@ class PagePositionMap
             }
             // print arrow on the same level
             if (!$this->dontPrintPageInsertIcons && $this->checkNewPageInPid($dat['row']['pid'])) {
-                $lines[] = '<span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $dat['row']['pid'], 3)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span>';
+                $lines[] = '<span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $dat['row']['pid'])) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span>';
             }
             // The line with the icon and title:
             $toolTip = BackendUtility::getRecordToolTip($dat['row'], 'pages');
@@ -213,7 +213,7 @@ class PagePositionMap
         $prev_dat = end($pageTree->tree);
         if ($prev_dat['row']['uid'] == $id) {
             if (!$this->dontPrintPageInsertIcons && $this->checkNewPageInPid($id)) {
-                $lines[] = '<ul class="list-tree" style="margin-left: 25px"><li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($id, $id, 4)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li></ul>';
+                $lines[] = '<ul class="list-tree" style="margin-left: 25px"><li><span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($id, $id)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span></li></ul>';
             }
         }
         for ($a = $latestInvDepth; $a <= $this->depth; $a++) {
@@ -223,7 +223,7 @@ class PagePositionMap
                 if ($latestInvDepth < $dat['invertedDepth']) {
                     $lines[] = '</ul>';
                 }
-                $lines[] = '<span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $dat['row']['pid'], 5)) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span>';
+                $lines[] = '<span class="text-nowrap"><a href="#" onclick="' . htmlspecialchars($this->onClickEvent($prevPid, $dat['row']['pid'])) . '"><i class="t3-icon fa fa-long-arrow-left" title="' . $this->insertlabel() . '"></i></a></span>';
             }
         }