While cleaning up $GLOBALS[PAGE_TYPES] with #77360 it was
assumed the keys and values are not evaluated anymore.
But the create pages wizard uses this list to create the types
select box. Add all missing page types in the wizard directly.

The ListViewHelper gets an array with the uids to display in the special
menu, configured from the plug-in.
The rendered elements were not ordered according to the plug-in settings.
With this patch the returned pages are ordered according to the order of
the uids in the array.

This change introduced bugs with storages that were explicitly marked offline.
Besides that, it removed pubic API without deprecation
and lacked (clearly documented) concept on the behavior in the error case.

This patch removes the hard dependency to RsaEncryptionModule and adds
a check if the module can be loaded.

It on the go adds a hardening to the RsaEncryptionModule to avoid
registration of form event handlers twice, which is now needed to cover
all potential loading orders of RsaEncryptionModule and LoginRefresh.

By invoking the ConnectionPool instance, it's possible to use
different database connections and different database platforms
for a particular table. If for instance the system is running on
MySQL in general, but one single table (not pages) uses SQLite,
PageRepository::enableFields() is using quoting characters for
MySQL in the SQLite context - which fails.

When a backend layout is active for a page, editing a content
element will have the "columns" of this layout selectable
in the "colPos" drop down selector.

Now this select box does not include the backend layout columns without
assigned colPos any more, because these are not meant to have content
anyway and selecting such a column would put the content element into column
with colPos 0

The functional tests and acceptance test setup is designed to fetch
database settings from a LocalConfiguration if they are not hand
over as environment variables.
The patch restricts the array to use only sub parts from 'DB' of
LocalConfiguration and not more since otherwise funny side effects
are introduced.
This issue was introduced in master (not 7.6) when the test
bootstrap was refactored and prepared for the acceptance tests.

The acceptance tests are very hard to stabilize on travis
and still flaky. They are disabled for quite a while for
that reason already.
The setup is now removed from travis to not clutter the
core and the config with not needed stuff.
In the unlikely case someone works on that again, they
could still be added again.

For Subresource Integrity to work, the CDN must support
Cross-Origin Resource Sharing (CORS). The `crossorigin` attribute
enforces a CORS-enabled load. The anonymous value means that the
browser should omit any cookies or authentication that the user
may have associated with the domain. This prevents cross-origin
data leaks, and also makes the request smaller.

This patch re-adds the `top.TYPO3.Backend.NavigationContainer.PageTree`
object that is required to execute the `updatePageTree` signal
successfully. With this patch, the page tree gets updated again after
saving anything that triggers the signal.

If the 'id' parameter is not provided in the URL but the
FE|cHashIncludePageId is set to true, TYPO3 will throw an exception. If
id is missing in $_GET, TYPO3 should use the determined id for the
check because in such case the id is assumed to be the uid of the home
page of the current site.

It turned out to be misleading, that additional class loading
information of extensions (in non composer mode) is in the
typo3temp folder. These files were re-generated on the fly to
lower the impact of the new class loader. However the re-generation
can only be triggered at a late point during the bootstrap.

This caused issues, when extensions tried to hook in a earlier point
e.g. for providing an error or exception handler and removing the complete
typo3temp folder e.g. in deployment scenarios.

To make clear, that class loading information is not a cache,
it is moved to typo3conf.
Additionally the re-generation during the late bootstrap
now triggers a deprecation message.

Additionally to make it easy for users that are not familiar with
executing command line scripts, an action is added to the install tool
to dump autoload information.

If there is no configuration for the rootLevel in a tables' TCA, the
NewRecordController silently assumes -1. This means a table can be
inserted on a page AND on root level. This behaviour is wrong because in
TCA documentation per default rootLevel is 0 which means, this table can
only be used on pages.
This patch sets the correct default value for rootLevel if not set.

DBAL's ExpressionBuilder::inSet() currently does not support FIND_IN_SET
for SQLite which is also not supported by the DBMS natively. To achieve
the behavior the field's value is surrounded by commas and then compared
likewise to the accordant value expansion.

If the 'multiple' field in the fieldConfig is set the
$newDatabaseValueArray is returned as is, with duplicate entries. If this
is not the case $newDatabaseValueArray is returned as before, being
modified with the array_unique function.

In the LocalDriver the PHP RecursiveIteratorIterator implementation is
used to recursively iterate over a directory.
If there is a resource child with limited access an exception is thrown
during the initialization of the iterator.
That means you are even not able to iterate over the other folders.

This patch adds a flag that prevents the iterator to throw the exception.