Index: Source/bindings/v8/custom/V8BlobCustomHelpers.h |
diff --git a/Source/bindings/v8/custom/V8BlobCustomHelpers.h b/Source/bindings/v8/custom/V8BlobCustomHelpers.h |
index 8bb22f0dac3b41646943a1244aba78b405b509df..1ce438451338068e4580e33b4ccb35096ceb83e2 100644 |
--- a/Source/bindings/v8/custom/V8BlobCustomHelpers.h |
+++ b/Source/bindings/v8/custom/V8BlobCustomHelpers.h |
@@ -40,12 +40,42 @@ class BlobBuilder; |
// Shared code between the custom constructor bindings for Blob and File. |
namespace V8BlobCustomHelpers { |
-// Extracts the "type" and "endings" properties out of the BlobPropertyBag passed to a Blob constructor. |
-// http://www.w3.org/TR/FileAPI/#constructorParams |
-// Returns true if everything went well, false if a JS exception was thrown. |
-bool processBlobPropertyBag(v8::Local<v8::Value> propertyBag, const char* blobClassName, String& contentType, String& endings, v8::Isolate*); |
+// Parsed properties from a BlobPropertyBag or a FilePropertyBag. |
+// |
+// Instances are stack-allocated by the File and Blob constructor. |
+// |
+// processBlobPropertyBag is only called when constructors receive a value for |
+// the optional BlobPropertyBag / FilePropertyBag argument. The defaults set in |
+// the constructor are used otherwise. |
+class ParsedProperties { |
+public: |
+ explicit ParsedProperties(bool hasFileProperties); |
+ |
+ inline const String& contentType() { return m_contentType; } |
+ inline const String& endings() { return m_endings; } |
kinuko
2013/11/20 10:13:40
nit: no need of 'inline'
Could these method be co
pwnall-personal
2013/11/20 10:40:31
Done.
Thank you!
|
+ void setLastModified(double); |
+ void setDefaultLastModified(); |
+ double lastModified(); |
+ |
+ // Extracts the "type" and "endings" properties out of the BlobPropertyBag passed to a Blob constructor. |
+ // http://www.w3.org/TR/FileAPI/#constructorParams |
+ // Returns true if everything went well, false if a JS exception was thrown. |
+ bool parseBlobPropertyBag(v8::Local<v8::Value> propertyBag, const char* blobClassName, v8::Isolate*); |
+ |
+private: |
+ String m_contentType; |
+ String m_endings; |
+ |
+ // False if this contains the properties of a BlobPropertyBag. |
+ bool m_hasFileProperties; |
+ |
+ double m_lastModified; |
+#ifndef NDEBUG |
+ bool m_hasLastModified; |
+#endif // NDEBUG |
+}; |
-// Appends the blobParts passed to a Blob constructor into a BlobBuilder. |
+// Appends the blobParts passed to a Blob or File constructor into a BlobBuilder. |
// http://www.w3.org/TR/FileAPI/#constructorParams |
// Returns true if everything went well, false if a JS exception was thrown. |
bool processBlobParts(v8::Local<v8::Object> blobParts, uint32_t blobPartsLength, const String& endings, BlobBuilder&, v8::Isolate*); |