The FILEUPLOAD data is stored in the session data. The confirmation page
does not create a hidden input element for it. That is the problem.
Solution: extend the detection of the submitted form with a
session lookup.

Fix support for rendering trees in new flexform sections. The javascript
needs to be added to the code executed on click and it needs to be
modified at runtime to ensure unique tree ids get generated before
instantiation.

The make the clipboard more usable, this patch added another menu
item to clear the clipboard. Additionally the label and message
to delete elements is now more precise.
That duplicates the function of the red button with the X, but it
seems that this function was not clear for anyone.

Use the vfsStream wrapper to provide a virtual filesystem on which to
run the unit tests. This allows isolationg the tests for filesystem
operations from the actual implementation of the filesystem and the
capabilities of the user running the test suite.

The group ownership tests were converted to work with numeric group ids
as PHP on OS X has problems changing the group of a file if the group
name contains a dot. This also fixes the selection of the secondary
group on OS X as the static group offset used in the test didn't ensure
that the returned group was different from the effective group at the
time.

Tests using symlinks could not be modified to use vfsStream as the
symlink method only works with real filesystems.

The GeneralUtility test for relative paths could not be changed either
as vfs paths are always "absolute".

This patch repairs the EditDocumentController when called by FE edit.
The main issue was that JavaScripts depends on global objects in ``top``
which are set by BackendController that is only called when one acts
in the fully bootstrapped backend view.

The selected node count for the ExtJS Tree wasn't calculated using the
raw database field value instead of the parsed tree configuration. In
case of empty database values this resulted in a wrong count of selected
nodes, disabling the selection of nodes in the case of maxitems=1 in the
tree configuration.

Frontend previews triggered using the context menu of the page-tree are
causing an exception concerning an "invalid CSRF token". The reason for
this is that URL loaded in the context menu are delivered via ExtDirect
and thus are encoded for a JavaScript context. Ampersands are encoded
as well, using the unicode serialization in JSON ('\u0026').

This issue is solved by decoding the value again and thus resolve the
expected URL to be delivered as XHR result.

The handling of select form elements with renderType "selectTree" has
been cleanly separated into a dedicated pair of element renderer and
data provider.

Methods used by the default select item provider as well as the tree
item provider have been moved into the AbstractItemProvider, the usage
of the AbstractItemProvider class has been cleaned up and is now limited
to data providers that deal with items.

Preparing the javascript for the tree rendering has been moved into a
dedicated method in the SelectTreeElement.

TcaSelectTreeItemsTest only covers the special data parsing/preparation
needed for the tree display, all common test cases for select item
handling are covered in TcaSelectItemsTest which covers the methods
provided by AbstractItemProvider.

File references are currently only represented by the accordant
record uid which should at least be a filename. In a workspace
environment the changed file references shall be visualized
as thumbnails - either being removed or inserted.

In the List module you can select additional fields to be displayed.
For fields referencing files only, the uid is shown which does give
no hint to the real referenced file.
This change selects the uid_local field, which selects the filename
from sys_file for display.

Change the FolderStructure tests to use a vfsStream virtual filesystem
for all tests that work with files, directories and permissions to make
the tests less reliant on the capabilities of the user running the
testsuite and the real filesystem.

The EXT:mediace is now available on TER and GitHub
for further development and is removed from the
Core. An upgrade wizard checks the instance for
usage of plugins of ext:mediace. If found an
upgrade wizard is provided that offers to
activate the extension.

getDynamicTabMenu() from DocumentTemplate is one of the last pieces
where FormEngine indirectly calls PageRenderer to load JS stuff
instead of returning those via the return structure of FormEngine.
This leads to missing JS if tabs are added via ajax dom modification
and parent has none yet.
The patch copies parts of the code to the FormEngine, re-uses the
template, but strips the method down to FormEngines need. As a result
getTabMenuId() can be deprecated in DocumentTemplate and removed in
ModuleTemplate. The patch then re-routes other usages of
getDynamicTabMenu from DocumentTemplate to ModuleTemplate, removes
another obsolete parameter in there and deprecates the method in
DocumentTemplate.

If the extension manager list utility "getAvailableExtensions()" is called
and then a new package is added at the same request, it is not possible
to regenerate the list of availableExtensions as this is cached in a run-time
member variable inside the list utility.

A new method "reloadAvailableExtensions" is added in order to
rebuild the list of available extensions.