Description
Consider the HTML and JavaScript posted at this Stack Overflow question Input file size and content do not update on macOS
HTML
<!DOCTYPE html>
<input type="file" id="file" />
<p id="info"></p>
JavaScript
window.addEventListener('load', function() {
window.setInterval(function() {
var logFile = document.querySelector('#file').files[0];
if (logFile) {
document.querySelector('#info').innerHTML = '<br/>' +
(new Date()).toString() + '<br/>Last modified: ' +
logFile.lastModified +
'<br/>Size: ' +
logFile.size;
}
}, 1000);
});
Reproduce steps as described by OP of the question
Please test with following snippet. Select a file (for example a text file), see last modified timestamp and file size, then change file and look again, if size has changed. On macOS the file size doesn't change.
Using a sample file, for example, https://gist.github.com/guest271314/11edc4566ba94f204dd46e6ae26edaad#file-d134213ba9465cb74dfd36cde47bf102638c4a9f3aca357f79ee747dd5f49f1e0f0de , which contains the text
123
Behaviour
Chromium 65
Once the local file is selected by user action and the local file is changed at a text editor, for example, by typing 4
following the existing 123
at the file (for example, the above linked gist) both lastModified
and size
properties are reflected as being changed client side, indicating changes to local file are being updated in real time though the user has not performed the affirmative action of re-selecting the file.
Firefox Trunk (60)
Once the local file is selected by user action and the local file is changed at a text editor, for example, by typing 4
following the existing 123
at the file (for example, the above linked gist) both lastModified
and size
properties are not reflected as being changed client side, indicating changes to local file are being not updated in real time where the user has not performed the affirmative action of re-selecting the file.
What does the specification define as the expected behaviour of size
and lastModified
properties of a File
object within a FileList
object where changes to an underlying local file are made after user selection of a local file?