[FEATURE] ext:install Core update

The patch provides the code infrastructure to test for possible
core updates using information from get.typo3.org and implements
a "one-click" update within "important actions".

The update itself is implemented as a list of ajax calls performed
after each other to have minimal impact and side effects to current
core code.

The service classes "CoreVersionService" and "CoreUpdateService"
contain the main business logic and may be used in a reports module
or scheduler task later on.

Change-Id: I5947252ca805b237b513fdafcf2696e9da586fc0
Resolves: #52547
Releases: 6.2
Reviewed-on: https://review.typo3.org/24396
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Follow-Up: ext:install Core update

Fix a small mistake in variable usage during creating of the
download directory.

Resolves: #52547
Releases: 6.2
Change-Id: I080d43edfe9d6921d0ccca28a34f42bdb788f630
Reviewed-on: https://review.typo3.org/24476
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
[BUGFIX] Failing test in VersionNumberUtility

The core update patch changed a method in VersionNumberUtility
from protected to public but did not adapt a test that relied
on this. This is fixed with the patch together with a minor cleanup.

Change-Id: I17b1e9e9ba5f3f15ca0483ccf0b1132e26cb27e7
Resolves: #52608
Releases: 6.2
Reviewed-on: https://review.typo3.org/24487
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Add hook to custom header in page mod

Add an hook to allow modifying the header of a page in the page module.
This hook is called before the content of the page is rendered.

Resolves: #52579
Releases: 6.2
Change-Id: I8914f5617d1529e98b9bc2b27cdc5a4378b0a7da
Reviewed-on: https://review.typo3.org/24460
Reviewed-by: Daniel Huf
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Add autofocus to pass input in install

Restore the focus to the password input just after
opening the install tool.

Resolves: #52523
Releases: 6.2
Change-Id: I12ce920791b45b4c8ea2e28838c81e2e3b5af8cd
Reviewed-on: https://review.typo3.org/24489
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Add table as parameter to CObjectViewHelper

When passing a tt_content record with an image to the
CObjectViewHelper it doesn't convert the FAL reference with
an image path. To correct this we add an optional parameter
for the table.

Change-Id: I7d045e4e785cf99410ca359eb1011a59ac5cb0fe
Resolves: #47368
Releases: 6.2, 6.1, 6.0
Reviewed-on: https://review.typo3.org/21096
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Helmut Hummel
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Omit constructor injection for optional parameters

ObjectManager tries to resolve and, in case of objects, inject all
constructor parameters, no matter what the calling function passes
to the constructor.

If the constructor value is optional, and no value or NULL is given
to the call, no constructor injection must take place for this parameter.

Change-Id: I646e6928cbadb486b1e2734efbe1ea5fbd953765
Resolves: #52349
Releases: 6.2
Reviewed-on: https://review.typo3.org/24128
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] Add responsive Image Rendering

The Image cObject can render a sourceCollection to support
different display-resolutions and screen sizes.

Resolves: #49723
Releases: 6.2
Change-Id: Ief02532f8f0a4e8e4b78ba15e7a9fd47c6cbd463
Reviewed-on: https://review.typo3.org/22052
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Sebastian Fischer
Tested-by: Sebastian Fischer
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] ext:install Verify checksum of downloaded core

https://get.typo3.org/json provides checksums of the file content
of each TYPO3 CMS release. The expected sha1 is now compared with
the actual sha1 of the downloaded files to protect upgrades from
broken downloads and some attack vectors.

Change-Id: I1ec604ed2ef5f53abc930ff360ca2d7267e3c64d
Resolves: #52618
Releases: 6.2
Reviewed-on: https://review.typo3.org/24492
Reviewed-by: Sascha Egerer
Tested-by: Sascha Egerer
Reviewed-by: Markus Klein
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[BUGFIX] Follow-up: Responsive image rendering, CGL

Change-Id: I03bd35c36616bae451e7e21e12858f65d13087e5
Resolves: #49723
Releases: 6.2
Reviewed-on: https://review.typo3.org/24525
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Cannot upload an extension as zip

The file extension ".zip" should be systematically removed when
extracting the extension key from the uploaded file name.

Fixes: #52178
Releases: 6.2, 6.1, 6.0
Change-Id: I5316b995533fa324d3b19407ad9bb6365ab8858b
Reviewed-on: https://review.typo3.org/24037
Reviewed-by: Sebastian Fischer
Tested-by: Sebastian Fischer
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] EXT:documentation does not support ext_icon.png

Since TYPO3 6.0, extensions may provide an icon as png instead of gif.

Fixes: #52667
Releases: 6.2
Change-Id: I93eb8790f9f5977b0ac23394f753711450a5ec98
Reviewed-on: https://review.typo3.org/24533
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Enable Content-length header in FE by default

Enabling Content-length header speeds up rendering if pipelining
is enabled in Apache (browser does not have to wait for further
data).

Change-Id: Id6212d0db60732aca035c87e6686711f53eb6fd8
Resolves: #19732
Releases: 6.2
Reviewed-on: https://review.typo3.org/21243
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Thorsten Kahler
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Rename API for ApplicationContext

Use the term "applicationContext" instead of "context",
because it is too general and could lead to confusion.

Resolves: #52678
Releases: 6.2
Change-Id: Ib586d9d1eb69e6ca7981ed638d45f7aa5b6e6c70
Reviewed-on: https://review.typo3.org/24541
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Categorize sys_file table by default

To be able to migrate from DAM, sys_files need to be
categorizable. The core is able to do so, but would
need to be configured manually. To ease migration
this is now activated by default.

If an upgrading installation already modified the
list of categorized tables in its localconf, the
step installer takes care of adding sys_file to
that list silently.

Resolves: #51554
Releases: 6.2
Change-Id: I5a12ddb2ab1da1e7a24b9bfe53af9b0ae33a04a1
Reviewed-on: https://review.typo3.org/23485
Reviewed-by: Frans Saris
Tested-by: Frans Saris
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Change list view delete icon if record is deleted in WS

If a record is deleted in a workspace the delete icon is still
displayed but the function is different. If you click on
the delete icon of a deleted record you will "restore"
the record (remove the deleted flag).
The icon should change if record is marked as deleted.

Resolves: #52554
Releases: 6.2, 6.1, 6.0, 4.5
Change-Id: I9bccc076d06525fad16f9f5ca4b3413e217f32f6
Reviewed-on: https://review.typo3.org/24413
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Timo Webler
Tested-by: Timo Webler
Reviewed-by: Thorsten Kahler
Tested-by: Thorsten Kahler
[FEATURE] Add TypoScript condition for ApplicationContext

The following condition is available in TypoScript and TSconfig
for testing the ApplicationContext:

[applicationContext = value1, value2, ...]

One of the given values matching the applicationContext.
Wildcards + and * are allowed, as well as regular expressions
delimited with /PREG_PATTERN/

Examples:

[applicationContext = Development/Debugging, Development/Profiling]
  # matching exactly "Development/Debugging" or "Development/Profiling"
[global]

[applicationContext = Production*]
  # matching any applicationContext with a rootContext of "Production",
  # for example "Production/Live" or "Production/Staging"
[global]

[applicationContext = /^Production\/Staging\/Server\d+$/]
  # matching "Production/Staging/Server1", "Production/Staging/Server2"
  # and so on
[global]

Resolves: #50132
Documentation: #52701
Releases: 6.2
Change-Id: I4f0f69ca4208d36d8eb8966ec9ef034f6b703b34
Reviewed-on: https://review.typo3.org/22412
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[FEATURE] Control visibility of modules in the BE

Currently there is no way for controlling the visibility
of a module in the BE. The patch introduces User TSconfig
which can be used to hide modules from the main menu.

options.hideModules = file, help

options.hideModules.web := addToList(func,info)

options.hideModules.system = BelogLog

The change only influences the visibility of modules in the menu
and does not control the access (permission) which still must be
done in the ACL of a BE User / Group as usually.

Change-Id: I6c2ec2c389a154440932afa16f9ca3a2cb4b8116
Releases: 6.2
Resolves: #52482
Documentation: #52692
Reviewed-on: https://review.typo3.org/24274
Reviewed-by: Steffen Müller
Tested-by: Steffen Müller
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[TASK] FAL-Drivers: Make getFileInfo more versatile and performant

If a storage needs information about a file, it always has
to retrieve all information about the file from the driver.
This can be very expensive - especially if only the modification
timestamp would be relevant, but sha1 content hash as well
as creation time, access time, size, mimetype ... are detected.
This patch extends the interface with a possibility to only
retrieve a subset of these information. As drivers are only
accessible through an ResourceStorage and the new parameters
are optional this patch does not change behaviour or break
backwards compatiblity.

Releases: 6.2
Resolves: #51515
Change-Id: I45dec41e3f6cfa2d6c8902b795dc224c729296f8
Reviewed-on: https://review.typo3.org/23464
Tested-by: Oliver Hader
Reviewed-by: Oliver Hader
[BUGFIX] Delete modified record in WS just deletes WS version

If you edit a record in a workspace and then you try to
delete the record, the record it not deleted but the
version (workspace-change record) is.

Resolves: #52530
Releases: 6.2, 6.1, 6.0
Change-Id: I6a77f9a398276af98c41d841053641f3e07b2e33
Reviewed-on: https://review.typo3.org/24366
Reviewed-by: Thorsten Kahler
Tested-by: Thorsten Kahler
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring