input[type=file]: Save and restore webkitRelativePath values

Before this CL, we didn't save webkitRelativePath values on saving
a tab session, and we computed them with the longest common ancestor
directory of all files on restoring the tab session. After this CL,
we save webkitRelativePath values, and restore them without finding
the common ancestor directory.  This CL is a preparation of fixing
crbug.com/124187.

* FileInputType::SaveFormControlState():
Save webktiRelativePath.

* FormStateSignature() in form_controller.cc:
Increment the version string due to the format change.

* FileInputType::RestoreFormControlState():
Create |File| instances from FormControlState directly.  We used to
create a FileChooserFileInfoList from a FormControlState, and
FileInputType::CreateFileList() converted it to |File| instances. We
bypass FileChooserFileInoList because it can't represent
webkitRelativePath.

* FileInputType::FilesFromFormControlState(), HTMLInputElement::
  FilesFromFileInputFormControlState(), and SavedFormState::
  GetReferencedFilePaths():
Pass Vector<String> instead of FileChooserFileInfoList.  These
functions just need Vector<String>.

Bug: 124187
Change-Id: I225463694d164c1f6ed1cb61da8a5bc42e2542c6
Reviewed-on: https://chromium-review.googlesource.com/c/1322671
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606286}
5 files changed