Bug 1458883 - Remove File.lastModifiedDate, r=qdot
authorAndrea Marchesini <amarchesini@mozilla.com>
Fri, 04 May 2018 14:39:53 +0200
changeset 473013 85dfda425103a8fdce2b28d0ca7fae92044283ef
parent 473012 3acb489d2dc8fe7560e1eaf56a955e0075cd1882
child 473014 f6cb88fc621fdc8be0b9426ef9d35becf5321f70
push id1728
push userjlund@mozilla.com
push dateMon, 18 Jun 2018 21:12:27 +0000
treeherdermozilla-release@c296fde26f5f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersqdot
bugs1458883
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1458883 - Remove File.lastModifiedDate, r=qdot
browser/components/resistfingerprinting/test/mochitest/test_reduce_time_precision.html
devtools/client/sourceeditor/tern/browser.js
dom/base/test/test_bug403852.html
dom/file/File.cpp
dom/file/File.h
dom/file/tests/test_file_negative_date.html
dom/locales/en-US/chrome/dom/dom.properties
dom/webidl/File.webidl
dom/workers/test/file_worker.js
dom/workers/test/test_file.xul
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
testing/web-platform/tests/IndexedDB/keypath.htm
testing/web-platform/tests/html/editing/dnd/file/001.html
testing/web-platform/tests/html/editing/dnd/file/002.html
testing/web-platform/tests/html/editing/dnd/file/003.html
testing/web-platform/tests/html/editing/dnd/file/007.html
testing/web-platform/tests/html/editing/dnd/file/008.html
testing/web-platform/tests/html/editing/dnd/file/011.html
--- a/browser/components/resistfingerprinting/test/mochitest/test_reduce_time_precision.html
+++ b/browser/components/resistfingerprinting/test/mochitest/test_reduce_time_precision.html
@@ -31,17 +31,16 @@ https://trac.torproject.org/projects/tor
   let canvasStream = canvas.captureStream(25);
 
   // Known ways to generate time stamps, in milliseconds
   const timeStampCodes = [
     "performance.now()",
     "new Date().getTime()",
     "new Event(\"\").timeStamp",
     "new File([], \"\").lastModified",
-    "new File([], \"\").lastModifiedDate.getTime()",
   ];
   // These are measured in seconds, so we need to scale them up
   var timeStampCodesDOM = timeStampCodes.concat([
     "audioContext.currentTime * 1000",
     "canvasStream.currentTime * 1000",
   ]);
 
   let isRounded = (x, expectedPrecision) => {
--- a/devtools/client/sourceeditor/tern/browser.js
+++ b/devtools/client/sourceeditor/tern/browser.js
@@ -1874,21 +1874,16 @@ module.exports = {
         "!url": "https://developer.mozilla.org/en/docs/DOM/File.fileName",
         "!doc": "Returns the name of the file. For security reasons the path is excluded from this property."
       },
       "fileSize": {
         "!type": "number",
         "!url": "https://developer.mozilla.org/en/docs/DOM/File.fileSize",
         "!doc": "Returns the size of a file in bytes."
       },
-      "lastModifiedDate": {
-        "!type": "?",
-        "!url": "https://developer.mozilla.org/en/docs/DOM/File.lastModifiedDate",
-        "!doc": "Returns the last modified date of the file. Files without a known last modified date use the current date instead."
-      },
       "name": {
         "!type": "string",
         "!url": "https://developer.mozilla.org/en/docs/DOM/File.name",
         "!doc": "Returns the name of the file. For security reasons, the path is excluded from this property."
       }
     },
     "!url": "https://developer.mozilla.org/en/docs/DOM/File",
     "!doc": "The File object provides information about -- and access to the contents of -- files. These are generally retrieved from a FileList object returned as a result of a user selecting files using the input element, or from a drag and drop operation's DataTransfer object."
--- a/dom/base/test/test_bug403852.html
+++ b/dom/base/test/test_bug403852.html
@@ -35,36 +35,32 @@ function onOpened(message) {
   var fileList = document.getElementById('fileList');
   SpecialPowers.wrap(fileList).mozSetFileArray([message.file]);
 
   // Make sure the file is accessible with indexed notation
   var domFile = fileList.files[0];
 
   is(domFile.name, "prefs.js", "fileName should be prefs.js");
 
-  ok("lastModifiedDate" in domFile, "lastModifiedDate must be present");
+  ok("lastModified" in domFile, "lastModified must be present");
 
   var d = new Date(message.mtime);
-  is(d.getTime(), domFile.lastModifiedDate.getTime(), "lastModifiedDate should be the same");
+  is(d.getTime(), (new Date(domFile.lastModified)).getTime(), "lastModified should be the same");
 
   var x = new Date();
 
-  // In our implementation of File object, lastModifiedDate is unknown only for new objects.
-  // Using canvas or input[type=file] elements, we 'often' have a valid lastModifiedDate values.
-  // For canvas we use memory files and the lastModifiedDate is now().
+  // In our implementation of File object, lastModified is unknown only for new objects.
+  // Using canvas or input[type=file] elements, we 'often' have a valid lastModified values.
+  // For canvas we use memory files and the lastModified is now().
   var f = new File([new Blob(['test'], {type: 'text/plain'})], "test-name");
 
-  var y = f.lastModifiedDate;
+  var y = new Date(f.lastModified);
   var z = new Date();
 
-  ok((x.getTime() <= y.getTime()) && (y.getTime() <= z.getTime()), "lastModifiedDate of file which does not have last modified date should be current time");
-
-
-  var d = new Date(message.fileDate);
-  is(d.getTime(), message.fileWithDate.lastModifiedDate.getTime(), "lastModifiedDate should be the same when lastModified is set: " + message.fileWithDate.lastModified);
+  ok((x.getTime() <= y.getTime()) && (y.getTime() <= z.getTime()), "lastModified of file which does not have last modified date should be current time");
 
   script.destroy();
   SimpleTest.finish();
 }
 
 </script>
 </pre>
 </body> </html>
--- a/dom/file/File.cpp
+++ b/dom/file/File.cpp
@@ -98,27 +98,16 @@ File::GetRelativePath(nsAString& aPath) 
 
   // WebkitRelativePath doesn't start with '/'
   if (!path.IsEmpty()) {
     MOZ_ASSERT(path[0] == FILESYSTEM_DOM_PATH_SEPARATOR_CHAR);
     aPath.Assign(Substring(path, 1));
   }
 }
 
-Date
-File::GetLastModifiedDate(ErrorResult& aRv)
-{
-  int64_t value = GetLastModified(aRv);
-  if (aRv.Failed()) {
-    return Date();
-  }
-
-  return Date(JS::TimeClip(value));
-}
-
 int64_t
 File::GetLastModified(ErrorResult& aRv)
 {
   return mImpl->GetLastModified(aRv);
 }
 
 void
 File::GetMozFullPath(nsAString& aFilename, SystemCallerGuarantee aGuarantee,
--- a/dom/file/File.h
+++ b/dom/file/File.h
@@ -83,18 +83,16 @@ public:
                     const ChromeFilePropertyBag& aBag,
                     SystemCallerGuarantee aGuarantee,
                     ErrorResult& aRv);
 
   void GetName(nsAString& aName) const;
 
   int64_t GetLastModified(ErrorResult& aRv);
 
-  Date GetLastModifiedDate(ErrorResult& aRv);
-
   void GetRelativePath(nsAString& aPath) const;
 
   void GetMozFullPath(nsAString& aFilename, SystemCallerGuarantee aGuarantee,
                       ErrorResult& aRv) const;
 
   void GetMozFullPathInternal(nsAString& aName, ErrorResult& aRv) const;
 
 protected:
--- a/dom/file/tests/test_file_negative_date.html
+++ b/dom/file/tests/test_file_negative_date.html
@@ -16,18 +16,15 @@ https://bugzilla.mozilla.org/show_bug.cg
 "use strict";
 
 var blob = new Blob(['hello world']);
 var f1 = new File([blob], 'f1.txt', { lastModified: 0 });
 var f2 = new File([blob], 'f2.txt', { lastModified: -1 });
 var f3 = new File([blob], 'f3.txt', { lastModified: -1000 });
 
 is(f1.lastModified, 0, "lastModified == 0 is supported");
-ok(f1.lastModifiedDate.toString(), (new Date(0)).toString(), "Correct f1.lastModifiedDate value");
 is(f2.lastModified, -1, "lastModified == -1 is supported");
-ok(f2.lastModifiedDate.toString(), (new Date(-1)).toString(), "Correct f2.lastModifiedDate value");
 is(f3.lastModified, -1000, "lastModified == -1000 is supported");
-ok(f3.lastModifiedDate.toString(), (new Date(-1000)).toString(), "Correct f3.lastModifiedDate value");
 
 </script>
 </body>
 </html>
 
--- a/dom/locales/en-US/chrome/dom/dom.properties
+++ b/dom/locales/en-US/chrome/dom/dom.properties
@@ -289,17 +289,16 @@ PushMessageBadRecordSize=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘rs‘ parameter of the ‘Encryption‘ header must be between %2$S and 2^36-31, or omitted entirely. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
 # (1 for aesgcm128, 2 for aesgcm).
 PushMessageBadPaddingError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. A record in the encrypted message was not padded correctly. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
 # LOCALIZATION NOTE: This error is reported when push message decryption fails
 # and no specific error info is available. Do not translate "ServiceWorker".
 # %1$S is the ServiceWorker scope URL.
 PushMessageBadCryptoError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. For help with encryption, please see https://developer.mozilla.org/docs/Web/API/Push_API/Using_the_Push_API#Encryption
 # LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
 PreventDefaultFromPassiveListenerWarning=Ignoring ‘preventDefault()’ call on event of type ‘%1$S’ from a listener registered as ‘passive’.
-FileLastModifiedDateWarning=File.lastModifiedDate is deprecated. Use File.lastModified instead.
 # LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
 ImageBitmapRenderingContext_TransferImageBitmap=ImageBitmapRenderingContext.transferImageBitmap is deprecated and will be removed soon. Use ImageBitmapRenderingContext.transferFromImageBitmap instead.
 IIRFilterChannelCountChangeWarning=IIRFilterNode channel count changes may produce audio glitches.
 BiquadFilterChannelCountChangeWarning=BiquadFilterNode channel count changes may produce audio glitches.
 # LOCALIZATION NOTE: Do not translate ".jpeg"
 GenericImageNameJPEG=image.jpeg
 # LOCALIZATION NOTE: Do not translate ".gif"
 GenericImageNameGIF=image.gif
--- a/dom/webidl/File.webidl
+++ b/dom/webidl/File.webidl
@@ -26,19 +26,16 @@ dictionary FilePropertyBag {
 
 dictionary ChromeFilePropertyBag : FilePropertyBag {
   DOMString name = "";
   boolean existenceCheck = true;
 };
 
 // Mozilla extensions
 partial interface File {
-  [GetterThrows, Deprecated="FileLastModifiedDate"]
-  readonly attribute Date lastModifiedDate;
-
   [BinaryName="relativePath", Func="mozilla::dom::DOMPrefs::WebkitBlinkDirectoryPickerEnabled"]
   readonly attribute USVString webkitRelativePath;
 
   [GetterThrows, ChromeOnly, NeedsCallerType]
   readonly attribute DOMString mozFullPath;
 };
 
 // Mozilla extensions
--- a/dom/workers/test/file_worker.js
+++ b/dom/workers/test/file_worker.js
@@ -5,12 +5,12 @@ onmessage = function(event) {
   var file = event.data;
 
   var rtnObj = new Object();
 
   rtnObj.size = file.size;
   rtnObj.type = file.type;
   rtnObj.name = file.name;
   rtnObj.path = file.path;
-  rtnObj.lastModifiedDate = file.lastModifiedDate;
+  rtnObj.lastModified = file.lastModified;
 
   postMessage(rtnObj);
 };
--- a/dom/workers/test/test_file.xul
+++ b/dom/workers/test/test_file.xul
@@ -64,17 +64,17 @@ https://bugzilla.mozilla.org/show_bug.cg
       ok(false, "Worker had an error: " + event.message);
       finish();
     };
 
     worker.onmessage = function(event) {
       is(event.data.size, expectedSize, "size proproperty accessed from worker is not the same as on main thread.");
       is(event.data.type, expectedType, "type proproperty accessed from worker is incorrect.");
       is(event.data.name, file.name, "name proproperty accessed from worker is incorrect.");
-      is(event.data.lastModifiedDate.toString(), file.lastModifiedDate.toString(), "lastModifiedDate proproperty accessed from worker is incorrect.");
+      is(event.data.lastModified, file.lastModified, "lastModified proproperty accessed from worker is incorrect.");
       finish();
     };
 
     worker.postMessage(file);
   }
 
   // Empty file.
   accessFileProperties(createFileWithData(""), 0, "");
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -402749,21 +402749,21 @@
    "5418ba477143b61dd8e02a691ee90b3c49726e83",
    "testharness"
   ],
   "IndexedDB/keypath-exceptions.htm": [
    "5992b8baa05e57279efd2ba4098529676314a9f4",
    "testharness"
   ],
   "IndexedDB/keypath-special-identifiers.htm": [
-   "588026e7e95192b98b594e77fafe67495d5cd481",
+   "0392d5dc6be8c17d435f2e0382e378521551c4fb",
    "testharness"
   ],
   "IndexedDB/keypath.htm": [
-   "a21b6eecc56a924bdf017d9053be2f0eecd25eeb",
+   "169a6f8e0f70ecf9089e2a6aa9232f632fe24e9a",
    "testharness"
   ],
   "IndexedDB/keypath_invalid.htm": [
    "7d6bf2f7cf77bdafd5b3b5e3f82299f844bd7225",
    "testharness"
   ],
   "IndexedDB/keypath_maxsize.htm": [
    "ef0680b2623521388e23654b5428cbfb553b4ee8",
@@ -558181,17 +558181,17 @@
    "9465007a35059e9d72d4ab1dd8bff0d44f47c3d6",
    "testharness"
   ],
   "fetch/api/abort/general.any.js": [
    "83da4c7859ee4d1a6a386b75c12b8a87e1347fe8",
    "testharness"
   ],
   "fetch/api/abort/serviceworker-intercepted.https.html": [
-   "ee3512098bed44d034d9a0e6f2ccdbd5a07c7e42",
+   "b5169e88b2146712ee98cd2c6f7575ce3f2999a3",
    "testharness"
   ],
   "fetch/api/basic/accept-header.any.js": [
    "ab322023411faca98534f620806b2418a6767e64",
    "testharness"
   ],
   "fetch/api/basic/block-mime-as-script.html": [
    "63ec2123a1f652ddd34d63bed20494068222c98d",
@@ -565917,57 +565917,57 @@
    "14a572f8bfa03bbc9acab61cb67e89acca40a02a",
    "support"
   ],
   "html/editing/dnd/events/relatedTarget-attribute-manual.html": [
    "473744413151ae7e8e25a4a3eccfad837b19bc02",
    "manual"
   ],
   "html/editing/dnd/file/001.html": [
-   "28e4e1d0e06a8c300c116aeb2d07e4808bdf56fe",
+   "9a004cc780577f28242feeedce7a15deb7849c8c",
    "support"
   ],
   "html/editing/dnd/file/002.html": [
-   "62f40d477019e663e377f314947c28ea6b556864",
+   "fdb4d92324f81cd4412fa8334aeb75fa79044804",
    "support"
   ],
   "html/editing/dnd/file/003.html": [
-   "df5bb0614ea6c7135caead8c5a1258bf981aeb13",
+   "578bc2823d303d41577abc9c0a855af338baf8be",
    "support"
   ],
   "html/editing/dnd/file/004.html": [
    "9f73256a0c120d543fe395764a0030ba05c0bb76",
    "support"
   ],
   "html/editing/dnd/file/005.html": [
    "850559ce2ec7a47699770b66e8e9ceb1dded3e8f",
    "support"
   ],
   "html/editing/dnd/file/006.html": [
    "23699891a80a21e3ca978d8c8eaf6246e6959997",
    "support"
   ],
   "html/editing/dnd/file/007.html": [
-   "21851c97db234d854576e3ea6e1029ffed38a761",
+   "bb927ac9126c217f7cb0bcf07e58f6e8f756fc06",
    "support"
   ],
   "html/editing/dnd/file/008.html": [
-   "081def5342c9b8bb426812bef312e6cdee3dd66e",
+   "b632d267d0c66c631670957566e763d8511efbe4",
    "support"
   ],
   "html/editing/dnd/file/009.html": [
    "158cfaff623b49064b60dcca151906ca0a95b507",
    "support"
   ],
   "html/editing/dnd/file/010.html": [
    "1ef3da51d85dab71e9986645a1ffecfed8fa2436",
    "support"
   ],
   "html/editing/dnd/file/011.html": [
-   "6c5de23f6a63e817d60d1357020ee90f71193372",
+   "4e78bcbbdd8b8f220e1b431f964c299636d2a064",
    "support"
   ],
   "html/editing/dnd/file/fail.txt": [
    "fd6a5ecb0c6d5148842ac5a363fcb56a58341f32",
    "support"
   ],
   "html/editing/dnd/file/prompt/001.html": [
    "a3c1af868a0d519cb3b814b8f9bfd9a4f721f8ed",
@@ -610949,17 +610949,17 @@
    "08d4414ce915f1ebe7825d5d99e204dc331fe155",
    "wdspec"
   ],
   "webdriver/tests/navigation/current_url.py": [
    "828e40301838c99aa2978733bbce3db3acc185a0",
    "wdspec"
   ],
   "webdriver/tests/navigation/get_title.py": [
-   "2ee18932a8ae3c4190b37e2b28141a6af49cc507",
+   "23adf150ec59de0748c12ad1025b0be251619bff",
    "wdspec"
   ],
   "webdriver/tests/sessions/get_timeouts.py": [
    "eaee354d16aa8c3a0fc960198fa4c5d9365bdee5",
    "wdspec"
   ],
   "webdriver/tests/sessions/new_session/conftest.py": [
    "d2df38e506cb9a3e501f03fe03e2a31af42d6f04",
--- a/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
+++ b/testing/web-platform/tests/IndexedDB/keypath-special-identifiers.htm
@@ -33,21 +33,16 @@
     property: 'name',
     instance: new File([''], 'foo'),
   },
   {
     type: 'File',
     property: 'lastModified',
     instance: new File([''], '', {lastModified: 123}),
   },
-  {
-    type: 'File',
-    property: 'lastModifiedDate',
-    instance: new File([''], '', {lastModified: 123}),
-  },
 ].forEach(function(testcase) {
   indexeddb_test(
     (t, db) => {
       db.createObjectStore(
           'store', {autoIncrement: true, keyPath: testcase.property});
     },
     (t, db) => {
       const key = testcase.instance[testcase.property];
--- a/testing/web-platform/tests/IndexedDB/keypath.htm
+++ b/testing/web-platform/tests/IndexedDB/keypath.htm
@@ -120,17 +120,17 @@
     if (false) {
         var myblob = Blob(["Yoda"], {type:'suprawsum'});
         keypath(['length', 'type'],
             [ myblob ],
             [ 4, 'suprawsum' ],
             "[Blob.length, Blob.type]");
     }
 
-    // File.name and File.lastModifiedDate is not testable automatically
+    // File.name and File.lastModified is not testable automatically
 
     keypath(['name', 'type'],
         [ { name: "orange", type: "fruit" }, { name: "orange", type: ["telecom", "french"] } ],
         [ ["orange", "fruit"], ["orange", ["telecom", "french"]] ]);
 
     keypath(['name', 'type.name'],
         [ { name: "orange", type: { name: "fruit" }}, { name: "orange", type: { name: "telecom" }} ],
         [ ["orange", "fruit"], ["orange", "telecom" ] ]);
--- a/testing/web-platform/tests/html/editing/dnd/file/001.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/001.html
@@ -50,18 +50,18 @@ window.onload = function() {
       fails[fails.length] = 'no dataTransfer.files[0] for drop';
       finish();
       return;
     }
     if( e.dataTransfer.files[0].size != filesize ) {
       fails[fails.length] = 'dataTransfer.files[0].size '+e.dataTransfer.files[0].size+' instead of '+filesize;
     }
     /*
-    if( !e.dataTransfer.files[0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files[0].lastModifiedDate';
+    if( !e.dataTransfer.files[0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files[0].lastModified';
     }
     */
     if( e.dataTransfer.files[0].name != filename ) {
       fails[fails.length] = 'dataTransfer.files[0].name '+e.dataTransfer.files[0].name+' instead of '+filename;
     }
     if( e.dataTransfer.files[0].type != filetype ) {
       fails[fails.length] = 'dataTransfer.files[0].type '+e.dataTransfer.files[0].type+' instead of '+filetype;
     }
--- a/testing/web-platform/tests/html/editing/dnd/file/002.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/002.html
@@ -61,32 +61,32 @@ window.onload = function() {
     if( e.dataTransfer.files[0].name == filename2 ) {
       i0 = 1;
       i1 = 0;
     }
     if( e.dataTransfer.files[i0].size != filesize1 ) {
       fails[fails.length] = 'dataTransfer.files['+i0+'].size '+e.dataTransfer.files[i0].size+' instead of '+filesize1;
     }
     /*
-    if( !e.dataTransfer.files[i0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files['+i0+'].lastModifiedDate';
+    if( !e.dataTransfer.files[i0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files['+i0+'].lastModified';
     }
     */
     if( e.dataTransfer.files[i0].name != filename1 ) {
       fails[fails.length] = 'dataTransfer.files['+i0+'].name '+e.dataTransfer.files[i0].name+' instead of '+filename1;
     }
     if( e.dataTransfer.files[i0].type != filetype1 ) {
       fails[fails.length] = 'dataTransfer.files['+i0+'].type '+e.dataTransfer.files[i0].type+' instead of '+filetype1;
     }
     if( e.dataTransfer.files[i1].size != filesize2 ) {
       fails[fails.length] = 'dataTransfer.files['+i1+'].size '+e.dataTransfer.files[i1].size+' instead of '+filesize2;
     }
     /*
-    if( !e.dataTransfer.files[i1].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files['+i1+'].lastModifiedDate';
+    if( !e.dataTransfer.files[i1].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files['+i1+'].lastModified';
     }
     */
     if( e.dataTransfer.files[i1].name != filename2 ) {
       fails[fails.length] = 'dataTransfer.files['+i1+'].name '+e.dataTransfer.files[i1].name+' instead of '+filename2;
     }
     if( e.dataTransfer.files[i1].type != filetype2 ) {
       fails[fails.length] = 'dataTransfer.files['+i1+'].type '+e.dataTransfer.files[i1].type+' instead of '+filetype2;
     }
--- a/testing/web-platform/tests/html/editing/dnd/file/003.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/003.html
@@ -37,18 +37,18 @@ window.onload = function() {
       fails[fails.length] = 'no dataTransfer.files[0] for drop';
       finish();
       return;
     }
     if( e.dataTransfer.files[0].size != filesize ) {
       fails[fails.length] = 'dataTransfer.files[0].size '+e.dataTransfer.files[0].size+' instead of '+filesize;
     }
     /*
-    if( !e.dataTransfer.files[0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files[0].lastModifiedDate';
+    if( !e.dataTransfer.files[0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files[0].lastModified';
     }
     */
     if( e.dataTransfer.files[0].name != filename ) {
       fails[fails.length] = 'dataTransfer.files[0].name '+e.dataTransfer.files[0].name+' instead of '+filename;
     }
     if( e.dataTransfer.files[0].type != filetype ) {
       fails[fails.length] = 'dataTransfer.files[0].type '+e.dataTransfer.files[0].type+' instead of '+filetype;
     }
--- a/testing/web-platform/tests/html/editing/dnd/file/007.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/007.html
@@ -52,18 +52,18 @@ window.onload = function() {
       fails[fails.length] = 'no dataTransfer.files[0] for drop';
       finish();
       return;
     }
     if( e.dataTransfer.files[0].size != filesize1 && e.dataTransfer.files[0].size != filesize2 ) {
       fails[fails.length] = 'dataTransfer.files[0].size '+e.dataTransfer.files[0].size+' instead of '+filesize1+' or '+filesize2;
     }
     /*
-    if( !e.dataTransfer.files[0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files[0].lastModifiedDate';
+    if( !e.dataTransfer.files[0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files[0].lastModified';
     }
     */
     if( !window.FileReader ) {
       fails[fails.length] = 'No FileReader constructor';
       finish();
       return;
     }
     var reader = new FileReader();
--- a/testing/web-platform/tests/html/editing/dnd/file/008.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/008.html
@@ -55,18 +55,18 @@ window.onload = function() {
     Windows 7 sometimes randomly assigns size to folders, and that is presented to the browser.
     Strangely, packing and unpacking that folder can remove its size.
     Since this is an OS quirk that we have no control over, the test will not check the size.
     if( e.dataTransfer.files[0].size ) {
       fails[fails.length] = 'dataTransfer.files[0].size '+e.dataTransfer.files[0].size+' instead of 0';
     }
     */
     /*
-    if( !e.dataTransfer.files[0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files[0].lastModifiedDate';
+    if( !e.dataTransfer.files[0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files[0].lastModified';
     }
     */
     if( !window.FileReader ) {
       fails[fails.length] = 'No FileReader constructor';
       finish();
       return;
     }
     var reader = new FileReader();
--- a/testing/web-platform/tests/html/editing/dnd/file/011.html
+++ b/testing/web-platform/tests/html/editing/dnd/file/011.html
@@ -40,18 +40,18 @@ window.onload = function() {
       fails[fails.length] = 'no dataTransfer.files[0] for drop';
       finish();
       return;
     }
     if( e.dataTransfer.files[0].size != filesize ) {
       fails[fails.length] = 'dataTransfer.files[0].size '+e.dataTransfer.files[0].size+' instead of '+filesize;
     }
     /*
-    if( !e.dataTransfer.files[0].lastModifiedDate ) {
-      fails[fails.length] = 'no dataTransfer.files[0].lastModifiedDate';
+    if( !e.dataTransfer.files[0].lastModified ) {
+      fails[fails.length] = 'no dataTransfer.files[0].lastModified';
     }
     */
     if( e.dataTransfer.files[0].name != filename ) {
       fails[fails.length] = 'dataTransfer.files[0].name '+e.dataTransfer.files[0].name+' instead of '+filename;
     }
     if( e.dataTransfer.files[0].type != filetype ) {
       fails[fails.length] = 'dataTransfer.files[0].type '+e.dataTransfer.files[0].type+' instead of '+filetype;
     }