summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/fileapi
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-18 13:36:51 +0100
committerSteve Block <steveblock@google.com>2011-05-24 15:38:28 +0100
commit2fc2651226baac27029e38c9d6ef883fa32084db (patch)
treee396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/fileapi
parentb3725cedeb43722b3b175aaeff70552e562d2c94 (diff)
downloadexternal_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip
external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz
external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/WebCore/fileapi')
-rw-r--r--Source/WebCore/fileapi/Entry.cpp16
-rw-r--r--Source/WebCore/fileapi/Entry.h2
-rw-r--r--Source/WebCore/fileapi/Entry.idl1
-rw-r--r--Source/WebCore/fileapi/FileStreamProxy.cpp2
4 files changed, 16 insertions, 5 deletions
diff --git a/Source/WebCore/fileapi/Entry.cpp b/Source/WebCore/fileapi/Entry.cpp
index 9c3fa4e..53cd576 100644
--- a/Source/WebCore/fileapi/Entry.cpp
+++ b/Source/WebCore/fileapi/Entry.cpp
@@ -32,13 +32,17 @@
#if ENABLE(FILE_SYSTEM)
+#include "AsyncFileSystem.h"
#include "DirectoryEntry.h"
#include "EntryCallback.h"
#include "ErrorCallback.h"
#include "FileError.h"
#include "FileSystemCallbacks.h"
#include "MetadataCallback.h"
+#include "ScriptExecutionContext.h"
+#include "SecurityOrigin.h"
#include "VoidCallback.h"
+#include <wtf/text/StringBuilder.h>
namespace WebCore {
@@ -82,11 +86,15 @@ void Entry::getParent(PassRefPtr<EntryCallback> successCallback, PassRefPtr<Erro
filesystem()->scheduleCallback(errorCallback.release(), FileError::create(FileError::INVALID_MODIFICATION_ERR));
}
-String Entry::toURI(const String&)
+String Entry::toURI()
{
- // FIXME: to be implemented.
- ASSERT_NOT_REACHED();
- return String();
+ StringBuilder uriBuilder;
+ uriBuilder.append("filesystem:");
+ uriBuilder.append(filesystem()->scriptExecutionContext()->securityOrigin()->toString());
+ uriBuilder.append("/");
+ uriBuilder.append(m_fileSystem->asyncFileSystem()->type() == AsyncFileSystem::Temporary ? "temporary" : "persistent");
+ uriBuilder.append(m_fullPath);
+ return uriBuilder.toString();
}
} // namespace WebCore
diff --git a/Source/WebCore/fileapi/Entry.h b/Source/WebCore/fileapi/Entry.h
index 9367f4f..d871262 100644
--- a/Source/WebCore/fileapi/Entry.h
+++ b/Source/WebCore/fileapi/Entry.h
@@ -57,7 +57,7 @@ public:
void remove(PassRefPtr<VoidCallback> successCallback = 0, PassRefPtr<ErrorCallback> errorCallback = 0) const;
void getParent(PassRefPtr<EntryCallback> successCallback = 0, PassRefPtr<ErrorCallback> errorCallback = 0) const;
- String toURI(const String& mimeType = String());
+ String toURI();
protected:
Entry(PassRefPtr<DOMFileSystemBase>, const String& fullPath);
diff --git a/Source/WebCore/fileapi/Entry.idl b/Source/WebCore/fileapi/Entry.idl
index f6fcdb3..f144b31 100644
--- a/Source/WebCore/fileapi/Entry.idl
+++ b/Source/WebCore/fileapi/Entry.idl
@@ -43,6 +43,7 @@ module storage {
void getMetadata(in [Optional, Callback] MetadataCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
void moveTo(in DirectoryEntry parent, in [Optional, ConvertUndefinedOrNullToNullString] DOMString name, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
void copyTo(in DirectoryEntry parent, in [Optional, ConvertUndefinedOrNullToNullString] DOMString name, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ DOMString toURI();
void remove(in [Optional, Callback] VoidCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
void getParent(in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
};
diff --git a/Source/WebCore/fileapi/FileStreamProxy.cpp b/Source/WebCore/fileapi/FileStreamProxy.cpp
index 5daf983..92b07cd 100644
--- a/Source/WebCore/fileapi/FileStreamProxy.cpp
+++ b/Source/WebCore/fileapi/FileStreamProxy.cpp
@@ -83,6 +83,8 @@ static void didStart(ScriptExecutionContext*, FileStreamProxy* proxy)
void FileStreamProxy::startOnFileThread()
{
+ if (!client())
+ return;
m_stream->start();
m_context->postTask(createCallbackTask(&didStart, this));
}