[webkit-reviews] review denied: [Bug 39083] Refactor FormData and Blob for better support of Blobs synthesized by BlobBuilder : [Attachment 56861] Patch (fixed cr-linux build)
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 24 13:12:20 PDT 2010
Jian Li <jianli at chromium.org> has denied Kinuko Yasuda <kinuko at chromium.org>'s
request for review:
Bug 39083: Refactor FormData and Blob for better support of Blobs synthesized
by BlobBuilder
https://bugs.webkit.org/show_bug.cgi?id=39083
Attachment 56861: Patch (fixed cr-linux build)
https://bugs.webkit.org/attachment.cgi?id=56861&action=review
------- Additional Comments from Jian Li <jianli at chromium.org>
Some more comments. It is very close.
WebCore/html/Blob.h:36
+ #include "TextEncoding.h"
This include seems not to be needed.
WebCore/html/Blob.h:50
+ // FIXME: deprecated method. This is called only from
Please capitalize the 1st letter 'd' after FIXME. Please also change other
FIXMEs.
WebCore/html/File.cpp:38
+ int index = name().reverseFind('.');
Might be better to cache name() first, like:
const String& name = name();
WebCore/html/FileStream.cpp:75
+ // FIXME: need to handle multiple items that may include non-file ones
No need to fold into 2 lines.
WebCore/html/FileStream.cpp:78
+ const FileBlobItem* file = blob->items().at(0)->toFileBlobItem();
Since it will take some time to fix this to support any blob after BlobBuilder
is introduced, I think it will be better to return an error instead of falling
through and hitting a crash when the user passes a binary blob.
Also, I think it will be better to name the variable as fileItem, in order not
to be confused with file object.
ASSERT(blob->items().size() == 1);
const FileBlobItem* fileItem = blob->items().at(0)->toFileBlobItem();
if (!fileItem) {
ASSERT(false);
m_client->didFail(NOT_READABLE_ERR);
return;
}
WebCore/html/FileStream.cpp:98
+ const FileRangeBlobItem* range = file->toFileRangeBlobItem();
Better to name it as fileRangItem.
WebCore/html/FormDataList.h:49
+ void appendBlob(const String& key, PassRefPtr<Blob> blob);
The parameter name 'blob' can be omitted.
WebCore/platform/BlobItem.cpp:62
+ if (static_cast<unsigned long long>(start + length) > size())
I think this check is also needed for non-range file item. How about moving the
logic out, like:
if (static_cast<unsigned long long>(start + length) > size())
length = size() - start;
start += fileRangeItem->start();
const FileRangeBlobItem* fileRangeItem = toFileRangeBlobItem();
double modificationTime = fileRangeItem ?
fileRangeItem->snapshotModificationTime() :
getFileSnapshotModificationTime(fileItem->path());
return FileRangeBlobItem::create(fileItem->path(), start, length,
modificationTime);
WebCore/platform/BlobItem.cpp:79
+ char* DataBlobItem::releaseBuffer() const
I see what you mean. However, the name 'releaseBuffer' suggests to release the
internal buffer while the implementation here does not mean this. Please add a
FIXME to address this issue later. Probably consider renaming the method?
WebCore/platform/BlobItem.h:97
+ friend class Blob;
Probably it is not a good idea to add a non-platform class as a friend. You
might remove the friend definition and move the slice to public as long as
slice does the right check.
WebCore/platform/BlobItem.h:104
+ // In most cases BlobItem's are handled as a list (e.g. in Blob, FormData).
This comment is somewhat confusing. Probably we can remove it.
WebCore/platform/network/FormData.cpp:49
+ const FileRangeBlobItem* range = m_item->toFileRangeBlobItem();
Better to name range as fileRangeItem.
WebKit/chromium/ChangeLog:8
+ Replace FormDataList::Item list with BlobItemList to get it
compiling
compiling => compiled?
More information about the webkit-reviews
mailing list