[Resource Timing] Gather timing information with reliable responseEnd time
[WebKit-https.git] / Source / WebCore / fileapi / FileReaderLoader.h
index ec1bdfd..d15ddac 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef FileReaderLoader_h
-#define FileReaderLoader_h
-
-#if ENABLE(BLOB)
+#pragma once
 
+#include "BlobResourceHandle.h"
 #include "FileError.h"
-#include "KURL.h"
+#include "URL.h"
 #include "TextEncoding.h"
 #include "ThreadableLoaderClient.h"
 #include <wtf/Forward.h>
 #include <wtf/text/WTFString.h>
 
+namespace JSC {
+class ArrayBuffer;
+}
+
 namespace WebCore {
 
 class Blob;
@@ -62,29 +64,23 @@ public:
     FileReaderLoader(ReadType, FileReaderLoaderClient*);
     ~FileReaderLoader();
 
-    void start(ScriptExecutionContext*, Blob*);
+    void start(ScriptExecutionContext*, Blob&);
     void cancel();
 
     // ThreadableLoaderClient
-    virtual void didReceiveResponse(unsigned long, const ResourceResponse&);
-    virtual void didReceiveData(const char*, int);
-    virtual void didFinishLoading(unsigned long, double);
-    virtual void didFail(const ResourceError&);
+    void didReceiveResponse(unsigned long, const ResourceResponse&) override;
+    void didReceiveData(const char*, int) override;
+    void didFinishLoading(unsigned long) override;
+    void didFail(const ResourceError&) override;
 
     String stringResult();
-    PassRefPtr<ArrayBuffer> arrayBufferResult() const;
-#if ENABLE(STREAM)
-    PassRefPtr<Blob> blobResult();
-#endif // ENABLE(STREAM)
+    RefPtr<JSC::ArrayBuffer> arrayBufferResult() const;
     unsigned bytesLoaded() const { return m_bytesLoaded; }
     unsigned totalBytes() const { return m_totalBytes; }
     int errorCode() const { return m_errorCode; }
 
     void setEncoding(const String&);
     void setDataType(const String& dataType) { m_dataType = dataType; }
-#if ENABLE(STREAM)
-    void setRange(unsigned, unsigned);
-#endif // ENABLE(STREAM)
 
 private:
     void terminate();
@@ -96,16 +92,17 @@ private:
     bool isCompleted() const;
 
     static FileError::ErrorCode httpStatusCodeToErrorCode(int);
+    static FileError::ErrorCode toErrorCode(BlobResourceHandle::Error);
 
     ReadType m_readType;
     FileReaderLoaderClient* m_client;
     TextEncoding m_encoding;
     String m_dataType;
 
-    KURL m_urlForReading;
+    URL m_urlForReading;
     RefPtr<ThreadableLoader> m_loader;
 
-    RefPtr<ArrayBuffer> m_rawData;
+    RefPtr<JSC::ArrayBuffer> m_rawData;
     bool m_isRawDataConverted;
 
     String m_stringResult;
@@ -118,15 +115,7 @@ private:
     unsigned m_bytesLoaded;
     unsigned m_totalBytes;
 
-    bool m_hasRange;
-    unsigned m_rangeStart;
-    unsigned m_rangeEnd;
-
     int m_errorCode;
 };
 
 } // namespace WebCore
-
-#endif // ENABLE(BLOB)
-
-#endif // FileReaderLoader_h