Bug 673586 - Implement lastModifiedDate property for the File interface. r=mounir

This commit is contained in:
Doug Turner 2012-05-21 15:11:56 -07:00
Родитель e4638cb898
Коммит 13d425d6fb
4 изменённых файлов: 34 добавлений и 1 удалений

Просмотреть файл

@ -183,6 +183,7 @@ public:
// Overrides
NS_IMETHOD GetSize(PRUint64* aSize);
NS_IMETHOD GetType(nsAString& aType);
NS_IMETHOD GetLastModifiedDate(JSContext* cx, JS::Value *aLastModifiedDate);
NS_IMETHOD GetMozFullPathInternal(nsAString& aFullPath);
NS_IMETHOD GetInternalStream(nsIInputStream**);

Просмотреть файл

@ -56,10 +56,14 @@ interface nsIDOMBlob : nsISupports
[notxpcom] FileInfo getFileInfo(in FileManager aFileManager);
};
[scriptable, builtinclass, uuid(b096ef67-7b77-47f8-8e70-5d8ee36416bf)]
[scriptable, builtinclass, uuid(eee028d1-8ce9-4c6c-b9ce-d89b656e1e17)]
interface nsIDOMFile : nsIDOMBlob
{
readonly attribute DOMString name;
[implicit_jscontext]
readonly attribute jsval lastModifiedDate;
readonly attribute DOMString mozFullPath;
// This performs no security checks!

Просмотреть файл

@ -128,6 +128,13 @@ nsDOMFileBase::GetName(nsAString &aFileName)
return NS_OK;
}
NS_IMETHODIMP
nsDOMFileBase::GetLastModifiedDate(JSContext* cx, JS::Value *aLastModifiedDate)
{
aLastModifiedDate->setNull();
return NS_OK;
}
NS_IMETHODIMP
nsDOMFileBase::GetMozFullPath(nsAString &aFileName)
{
@ -417,6 +424,22 @@ nsDOMFileFile::GetMozFullPathInternal(nsAString &aFilename)
return mFile->GetPath(aFilename);
}
NS_IMETHODIMP
nsDOMFileFile::GetLastModifiedDate(JSContext* cx, JS::Value *aLastModifiedDate)
{
PRTime msecs;
mFile->GetLastModifiedTime(&msecs);
JSObject* date = JS_NewDateObjectMsec(cx, msecs);
if (date) {
aLastModifiedDate->setObject(*date);
}
else {
aLastModifiedDate->setNull();
}
return NS_OK;
}
NS_IMETHODIMP
nsDOMFileFile::GetSize(PRUint64 *aFileSize)
{

Просмотреть файл

@ -34,6 +34,11 @@ var domFile = fileList.files[0];
is(domFile.name, "prefs.js", "fileName should be prefs.js");
ok("lastModifiedDate" in domFile, "lastModifiedDate must be present");
var d = new Date(testFile.lastModifiedTime);
ok(d.getTime() == domFile.lastModifiedDate.getTime(), "lastModifiedDate should be the same.");
</script>
</pre>
</body> </html>