<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[168382] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/168382">168382</a></dd>
<dt>Author</dt> <dd>ap@apple.com</dd>
<dt>Date</dt> <dd>2014-05-06 15:11:07 -0700 (Tue, 06 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Eliminate BlobStorageData
https://bugs.webkit.org/show_bug.cgi?id=132617

Reviewed by Anders Carlsson.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/BlobData.h:
(WebCore::BlobData::create):
(WebCore::BlobData::BlobData):
* platform/network/BlobRegistryImpl.cpp:
(WebCore::loadResourceSynchronously):
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
(WebCore::BlobRegistryImpl::getBlobDataFromURL):
(WebCore::BlobRegistryImpl::blobSize):
* platform/network/BlobRegistryImpl.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync):
(WebCore::BlobResourceHandle::loadResourceSynchronously):
(WebCore::BlobResourceHandle::BlobResourceHandle):
(WebCore::BlobResourceHandle::doStart):
(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::didGetSize):
(WebCore::BlobResourceHandle::seek):
(WebCore::BlobResourceHandle::readSync):
(WebCore::BlobResourceHandle::readDataSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readAsync):
(WebCore::BlobResourceHandle::readDataAsync):
(WebCore::BlobResourceHandle::readFileAsync):
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
* platform/network/BlobResourceHandle.h:
* platform/network/BlobStorageData.h: Removed.
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::addEncodedBlobToSoupMessageBody):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobDatah">trunk/Source/WebCore/platform/network/BlobData.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobRegistryImplcpp">trunk/Source/WebCore/platform/network/BlobRegistryImpl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobRegistryImplh">trunk/Source/WebCore/platform/network/BlobRegistryImpl.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp">trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobResourceHandleh">trunk/Source/WebCore/platform/network/BlobResourceHandle.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkFormDatacpp">trunk/Source/WebCore/platform/network/FormData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupResourceHandleSoupcpp">trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobStorageDatah">trunk/Source/WebCore/platform/network/BlobStorageData.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/ChangeLog        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -1,3 +1,47 @@
</span><ins>+2014-05-06  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        Eliminate BlobStorageData
+        https://bugs.webkit.org/show_bug.cgi?id=132617
+
+        Reviewed by Anders Carlsson.
+
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/network/BlobData.h:
+        (WebCore::BlobData::create):
+        (WebCore::BlobData::BlobData):
+        * platform/network/BlobRegistryImpl.cpp:
+        (WebCore::loadResourceSynchronously):
+        (WebCore::BlobRegistryImpl::appendStorageItems):
+        (WebCore::BlobRegistryImpl::registerFileBlobURL):
+        (WebCore::BlobRegistryImpl::registerBlobURL):
+        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
+        (WebCore::BlobRegistryImpl::getBlobDataFromURL):
+        (WebCore::BlobRegistryImpl::blobSize):
+        * platform/network/BlobRegistryImpl.h:
+        * platform/network/BlobResourceHandle.cpp:
+        (WebCore::BlobResourceHandle::createAsync):
+        (WebCore::BlobResourceHandle::loadResourceSynchronously):
+        (WebCore::BlobResourceHandle::BlobResourceHandle):
+        (WebCore::BlobResourceHandle::doStart):
+        (WebCore::BlobResourceHandle::getSizeForNext):
+        (WebCore::BlobResourceHandle::didGetSize):
+        (WebCore::BlobResourceHandle::seek):
+        (WebCore::BlobResourceHandle::readSync):
+        (WebCore::BlobResourceHandle::readDataSync):
+        (WebCore::BlobResourceHandle::readFileSync):
+        (WebCore::BlobResourceHandle::readAsync):
+        (WebCore::BlobResourceHandle::readDataAsync):
+        (WebCore::BlobResourceHandle::readFileAsync):
+        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
+        * platform/network/BlobResourceHandle.h:
+        * platform/network/BlobStorageData.h: Removed.
+        * platform/network/FormData.cpp:
+        (WebCore::appendBlobResolved):
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::addEncodedBlobToSoupMessageBody):
+
</ins><span class="cx"> 2014-05-06  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix the iOS build.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -19567,7 +19567,6 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\BlobRegistry.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\BlobRegistryImpl.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\BlobResourceHandle.h&quot; /&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\platform\network\BlobStorageData.h&quot; /&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\CookieStorage.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\Credential.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\CredentialStorage.h&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -8659,9 +8659,6 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\BlobResourceHandle.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\network&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\platform\network\BlobStorageData.h&quot;&gt;
-      &lt;Filter&gt;platform\network&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\platform\network\CookieStorage.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\network&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -1146,7 +1146,6 @@
</span><span class="cx">                 2EDEF1F5121B0EFC00726DB2 /* BlobRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EDEF1EF121B0EFC00726DB2 /* BlobRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 2EDEF1F6121B0EFC00726DB2 /* BlobRegistryImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2EDEF1F0121B0EFC00726DB2 /* BlobRegistryImpl.cpp */; };
</span><span class="cx">                 2EDEF1F7121B0EFC00726DB2 /* BlobRegistryImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EDEF1F1121B0EFC00726DB2 /* BlobRegistryImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                2EDEF1F8121B0EFC00726DB2 /* BlobStorageData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EDEF1F2121B0EFC00726DB2 /* BlobStorageData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 2EDF369C122C94B4002F7D4E /* FileReaderSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2EDF369A122C94B4002F7D4E /* FileReaderSync.cpp */; };
</span><span class="cx">                 2EDF369D122C94B4002F7D4E /* FileReaderSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EDF369B122C94B4002F7D4E /* FileReaderSync.h */; };
</span><span class="cx">                 2EDF369F122C94C8002F7D4E /* FileException.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EDF369E122C94C8002F7D4E /* FileException.h */; };
</span><span class="lines">@@ -8062,7 +8061,6 @@
</span><span class="cx">                 2EDEF1EF121B0EFC00726DB2 /* BlobRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlobRegistry.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2EDEF1F0121B0EFC00726DB2 /* BlobRegistryImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BlobRegistryImpl.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2EDEF1F1121B0EFC00726DB2 /* BlobRegistryImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlobRegistryImpl.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                2EDEF1F2121B0EFC00726DB2 /* BlobStorageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlobStorageData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 2EDF369A122C94B4002F7D4E /* FileReaderSync.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileReaderSync.cpp; path = fileapi/FileReaderSync.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2EDF369B122C94B4002F7D4E /* FileReaderSync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileReaderSync.h; path = fileapi/FileReaderSync.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2EDF369E122C94C8002F7D4E /* FileException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileException.h; path = fileapi/FileException.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16064,7 +16062,6 @@
</span><span class="cx">                                 2EDEF1F1121B0EFC00726DB2 /* BlobRegistryImpl.h */,
</span><span class="cx">                                 2EB4BCD0121F03E300EC4885 /* BlobResourceHandle.cpp */,
</span><span class="cx">                                 2EB4BCD1121F03E300EC4885 /* BlobResourceHandle.h */,
</span><del>-                                2EDEF1F2121B0EFC00726DB2 /* BlobStorageData.h */,
</del><span class="cx">                                 E13F01EA1270E10D00DFBA71 /* CookieStorage.h */,
</span><span class="cx">                                 514C76580CE923A1007EF3CD /* Credential.cpp */,
</span><span class="cx">                                 514C76590CE923A1007EF3CD /* Credential.h */,
</span><span class="lines">@@ -23104,7 +23101,6 @@
</span><span class="cx">                                 2EDEF1F5121B0EFC00726DB2 /* BlobRegistry.h in Headers */,
</span><span class="cx">                                 2EDEF1F7121B0EFC00726DB2 /* BlobRegistryImpl.h in Headers */,
</span><span class="cx">                                 2EB4BCD3121F03E300EC4885 /* BlobResourceHandle.h in Headers */,
</span><del>-                                2EDEF1F8121B0EFC00726DB2 /* BlobStorageData.h in Headers */,
</del><span class="cx">                                 A5F36D3B18F758720054C024 /* PageScriptDebugServer.h in Headers */,
</span><span class="cx">                                 976D6C7F122B8A3D001FD1F7 /* BlobURL.h in Headers */,
</span><span class="cx">                                 93F199BE08245E59001E9ABC /* BlockExceptions.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobData.h (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobData.h        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobData.h        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/PassOwnPtr.h&gt;
</span><ins>+#include &lt;wtf/RefCounted.h&gt;
</ins><span class="cx"> #include &lt;wtf/ThreadSafeRefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -154,10 +155,12 @@
</span><span class="cx"> 
</span><span class="cx"> typedef Vector&lt;BlobDataItem&gt; BlobDataItemList;
</span><span class="cx"> 
</span><del>-class BlobData {
-    WTF_MAKE_FAST_ALLOCATED;
</del><ins>+class BlobData : public RefCounted&lt;BlobData&gt; {
</ins><span class="cx"> public:
</span><del>-    BlobData() { }
</del><ins>+    static PassRefPtr&lt;BlobData&gt; create()
+    {
+        return adoptRef(new BlobData);
+    }
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; contentType() const { return m_contentType; }
</span><span class="cx">     void setContentType(const String&amp;);
</span><span class="lines">@@ -172,10 +175,8 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class BlobRegistryImpl;
</span><del>-    friend class BlobStorageData;
</del><span class="cx"> 
</span><del>-    // This is only exposed to BlobStorageData.
-    void appendData(const RawData&amp;, long long offset, long long length);
</del><ins>+    BlobData() { }
</ins><span class="cx"> 
</span><span class="cx">     String m_contentType;
</span><span class="cx">     String m_contentDisposition;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobRegistryImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobRegistryImpl.cpp (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobRegistryImpl.cpp        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobRegistryImpl.cpp        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -34,9 +34,9 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(BLOB)
</span><span class="cx"> 
</span><ins>+#include &quot;BlobData.h&quot;
</ins><span class="cx"> #include &quot;BlobPart.h&quot;
</span><span class="cx"> #include &quot;BlobResourceHandle.h&quot;
</span><del>-#include &quot;BlobStorageData.h&quot;
</del><span class="cx"> #include &quot;FileMetadata.h&quot;
</span><span class="cx"> #include &quot;FileSystem.h&quot;
</span><span class="cx"> #include &quot;ResourceError.h&quot;
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void loadResourceSynchronously(NetworkingContext*, const ResourceRequest&amp; request, StoredCredentials, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data)
</span><span class="cx"> {
</span><del>-    BlobStorageData* blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(request.url());
</del><ins>+    BlobData* blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(request.url());
</ins><span class="cx">     BlobResourceHandle::loadResourceSynchronously(blobData, request, error, response, data);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     return handle.release();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void BlobRegistryImpl::appendStorageItems(BlobStorageData* blobStorageData, const BlobDataItemList&amp; items, long long offset, long long length)
</del><ins>+void BlobRegistryImpl::appendStorageItems(BlobData* blobData, const BlobDataItemList&amp; items, long long offset, long long length)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(length != BlobDataItem::toEndOfFile);
</span><span class="cx"> 
</span><span class="lines">@@ -106,10 +106,10 @@
</span><span class="cx">         long long currentLength = iter-&gt;length - offset;
</span><span class="cx">         long long newLength = currentLength &gt; length ? length : currentLength;
</span><span class="cx">         if (iter-&gt;type == BlobDataItem::Data)
</span><del>-            blobStorageData-&gt;m_data.appendData(iter-&gt;data, iter-&gt;offset + offset, newLength);
</del><ins>+            blobData-&gt;appendData(iter-&gt;data, iter-&gt;offset + offset, newLength);
</ins><span class="cx">         else {
</span><span class="cx">             ASSERT(iter-&gt;type == BlobDataItem::File);
</span><del>-            blobStorageData-&gt;m_data.appendFile(iter-&gt;path, iter-&gt;offset + offset, newLength, iter-&gt;expectedModificationTime);
</del><ins>+            blobData-&gt;appendFile(iter-&gt;path, iter-&gt;offset + offset, newLength, iter-&gt;expectedModificationTime);
</ins><span class="cx">         }
</span><span class="cx">         length -= newLength;
</span><span class="cx">         offset = 0;
</span><span class="lines">@@ -122,15 +122,16 @@
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     registerBlobResourceHandleConstructor();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;BlobStorageData&gt; blobStorageData = BlobStorageData::create(contentType);
</del><ins>+    RefPtr&lt;BlobData&gt; blobData = BlobData::create();
+    blobData-&gt;setContentType(contentType);
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Factor out size and modification tracking for a cleaner implementation.
</span><span class="cx">     FileMetadata metadata;
</span><span class="cx">     if (!getFileMetadata(path, metadata))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    blobStorageData-&gt;m_data.appendFile(path, 0, metadata.length, metadata.modificationTime);
-    m_blobs.set(url.string(), blobStorageData);
</del><ins>+    blobData-&gt;appendFile(path, 0, metadata.length, metadata.modificationTime);
+    m_blobs.set(url.string(), blobData.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned long long BlobRegistryImpl::registerBlobURL(const URL&amp; url, Vector&lt;BlobPart&gt; blobParts, const String&amp; contentType)
</span><span class="lines">@@ -138,7 +139,8 @@
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     registerBlobResourceHandleConstructor();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;BlobStorageData&gt; blobStorageData = BlobStorageData::create(contentType);
</del><ins>+    RefPtr&lt;BlobData&gt; blobData = BlobData::create();
+    blobData-&gt;setContentType(contentType);
</ins><span class="cx"> 
</span><span class="cx">     // The blob data is stored in the &quot;canonical&quot; way. That is, it only contains a list of Data and File items.
</span><span class="cx">     // 1) The Data item is denoted by the raw data and the range.
</span><span class="lines">@@ -153,7 +155,7 @@
</span><span class="cx">             unsigned long long partSize = part.data().size();
</span><span class="cx">             RefPtr&lt;RawData&gt; rawData = RawData::create(part.moveData());
</span><span class="cx">             size += partSize;
</span><del>-            blobStorageData-&gt;m_data.appendData(rawData.release(), 0, partSize);
</del><ins>+            blobData-&gt;appendData(rawData.release(), 0, partSize);
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case BlobPart::Blob: {
</span><span class="lines">@@ -161,22 +163,21 @@
</span><span class="cx">                 return 0;
</span><span class="cx">             unsigned long long partSize = blobSize(part.url()); // As a side effect, this calculates sizes of all files in the blob.
</span><span class="cx">             size += partSize;
</span><del>-            appendStorageItems(blobStorageData.get(), m_blobs.get(part.url().string())-&gt;items(), 0, partSize);
</del><ins>+            appendStorageItems(blobData.get(), m_blobs.get(part.url().string())-&gt;items(), 0, partSize);
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_blobs.set(url.string(), blobStorageData);
</del><ins>+    m_blobs.set(url.string(), blobData.release());
</ins><span class="cx">     return size;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void BlobRegistryImpl::registerBlobURL(const URL&amp; url, const URL&amp; srcURL)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    registerBlobResourceHandleConstructor();
</del><span class="cx"> 
</span><del>-    RefPtr&lt;BlobStorageData&gt; src = m_blobs.get(srcURL.string());
</del><ins>+    BlobData* src = getBlobDataFromURL(srcURL);
</ins><span class="cx">     if (!src)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -186,8 +187,8 @@
</span><span class="cx"> unsigned long long BlobRegistryImpl::registerBlobURLForSlice(const URL&amp; url, const URL&amp; srcURL, long long start, long long end)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    BlobStorageData* originalStorageData = m_blobs.get(srcURL.string());
-    if (!originalStorageData)
</del><ins>+    BlobData* originalData = getBlobDataFromURL(srcURL);
+    if (!originalData)
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     unsigned long long originalSize = blobSize(srcURL);
</span><span class="lines">@@ -212,11 +213,12 @@
</span><span class="cx">         end = originalSize;
</span><span class="cx"> 
</span><span class="cx">     unsigned long long newLength = end - start;
</span><del>-    RefPtr&lt;BlobStorageData&gt; newStorageData = BlobStorageData::create(originalStorageData-&gt;contentType());
</del><ins>+    RefPtr&lt;BlobData&gt; newData = BlobData::create();
+    newData-&gt;setContentType(originalData-&gt;contentType());
</ins><span class="cx"> 
</span><del>-    appendStorageItems(newStorageData.get(), originalStorageData-&gt;items(), start, newLength);
</del><ins>+    appendStorageItems(newData.get(), originalData-&gt;items(), start, newLength);
</ins><span class="cx"> 
</span><del>-    m_blobs.set(url.string(), newStorageData.release());
</del><ins>+    m_blobs.set(url.string(), newData.release());
</ins><span class="cx">     return newLength;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -226,7 +228,7 @@
</span><span class="cx">     m_blobs.remove(url.string());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-BlobStorageData* BlobRegistryImpl::getBlobDataFromURL(const URL&amp; url) const
</del><ins>+BlobData* BlobRegistryImpl::getBlobDataFromURL(const URL&amp; url) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     return m_blobs.get(url.string());
</span><span class="lines">@@ -235,12 +237,12 @@
</span><span class="cx"> unsigned long long BlobRegistryImpl::blobSize(const URL&amp; url)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    BlobStorageData* storageData = m_blobs.get(url.string());
-    if (!storageData)
</del><ins>+    BlobData* data = getBlobDataFromURL(url);
+    if (!data)
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     unsigned long long result = 0;
</span><del>-    for (const BlobDataItem&amp; item : storageData-&gt;items()) {
</del><ins>+    for (const BlobDataItem&amp; item : data-&gt;items()) {
</ins><span class="cx">         if (item.length == BlobDataItem::toEndOfFile) {
</span><span class="cx">             FileMetadata metadata;
</span><span class="cx">             if (!getFileMetadata(item.path, metadata))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobRegistryImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobRegistryImpl.h (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobRegistryImpl.h        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobRegistryImpl.h        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -31,8 +31,8 @@
</span><span class="cx"> #ifndef BlobRegistryImpl_h
</span><span class="cx"> #define BlobRegistryImpl_h
</span><span class="cx"> 
</span><ins>+#include &quot;BlobData.h&quot;
</ins><span class="cx"> #include &quot;BlobRegistry.h&quot;
</span><del>-#include &quot;BlobStorageData.h&quot;
</del><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -50,12 +50,12 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~BlobRegistryImpl();
</span><span class="cx"> 
</span><del>-    BlobStorageData* getBlobDataFromURL(const URL&amp;) const;
</del><ins>+    BlobData* getBlobDataFromURL(const URL&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;ResourceHandle&gt; createResourceHandle(const ResourceRequest&amp;, ResourceHandleClient*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    void appendStorageItems(BlobStorageData*, const BlobDataItemList&amp;, long long offset, long long length);
</del><ins>+    void appendStorageItems(BlobData*, const BlobDataItemList&amp;, long long offset, long long length);
</ins><span class="cx"> 
</span><span class="cx">     virtual void registerFileBlobURL(const WebCore::URL&amp;, const String&amp; path, const String&amp; contentType) override;
</span><span class="cx">     virtual unsigned long long registerBlobURL(const URL&amp;, Vector&lt;BlobPart&gt;, const String&amp; contentType) override;
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned long long blobSize(const URL&amp;);
</span><span class="cx"> 
</span><del>-    HashMap&lt;String, RefPtr&lt;BlobStorageData&gt;&gt; m_blobs;
</del><ins>+    HashMap&lt;String, RefPtr&lt;BlobData&gt;&gt; m_blobs;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> #include &quot;BlobResourceHandle.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;AsyncFileStream.h&quot;
</span><del>-#include &quot;BlobStorageData.h&quot;
</del><ins>+#include &quot;BlobData.h&quot;
</ins><span class="cx"> #include &quot;FileStream.h&quot;
</span><span class="cx"> #include &quot;FileSystem.h&quot;
</span><span class="cx"> #include &quot;HTTPParsers.h&quot;
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> ///////////////////////////////////////////////////////////////////////////////
</span><span class="cx"> // BlobResourceHandle
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;BlobResourceHandle&gt; BlobResourceHandle::createAsync(BlobStorageData* blobData, const ResourceRequest&amp; request, ResourceHandleClient* client)
</del><ins>+PassRefPtr&lt;BlobResourceHandle&gt; BlobResourceHandle::createAsync(BlobData* blobData, const ResourceRequest&amp; request, ResourceHandleClient* client)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Should probably call didFail() instead of blocking the load without explanation.
</span><span class="cx">     if (!equalIgnoringCase(request.httpMethod(), &quot;GET&quot;))
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     return adoptRef(new BlobResourceHandle(blobData, request, client, true));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void BlobResourceHandle::loadResourceSynchronously(BlobStorageData* blobData, const ResourceRequest&amp; request, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data)
</del><ins>+void BlobResourceHandle::loadResourceSynchronously(BlobData* blobData, const ResourceRequest&amp; request, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data)
</ins><span class="cx"> {
</span><span class="cx">     if (!equalIgnoringCase(request.httpMethod(), &quot;GET&quot;)) {
</span><span class="cx">         error = ResourceError(webKitBlobResourceDomain, methodNotAllowed, response.url(), &quot;Request method must be GET&quot;);
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">     handle-&gt;start();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-BlobResourceHandle::BlobResourceHandle(PassRefPtr&lt;BlobStorageData&gt; blobData, const ResourceRequest&amp; request, ResourceHandleClient* client, bool async)
</del><ins>+BlobResourceHandle::BlobResourceHandle(BlobData* blobData, const ResourceRequest&amp; request, ResourceHandleClient* client, bool async)
</ins><span class="cx">     : ResourceHandle(0, request, client, false, false)
</span><span class="cx">     , m_blobData(blobData)
</span><span class="cx">     , m_async(async)
</span><span class="lines">@@ -224,6 +224,8 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::doStart()
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     // Do not continue if the request is aborted or an error occurs.
</span><span class="cx">     if (m_aborted || m_errorCode)
</span><span class="cx">         return;
</span><span class="lines">@@ -255,6 +257,8 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::getSizeForNext()
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     // Do we finish validating and counting size for all items?
</span><span class="cx">     if (m_sizeItemCount &gt;= m_blobData-&gt;items().size()) {
</span><span class="cx">         seek();
</span><span class="lines">@@ -287,6 +291,8 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::didGetSize(long long size)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     // Do not continue if the request is aborted or an error occurs.
</span><span class="cx">     if (m_aborted || m_errorCode)
</span><span class="cx">         return;
</span><span class="lines">@@ -316,6 +322,8 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::seek()
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     // Convert from the suffix length to the range.
</span><span class="cx">     if (m_rangeSuffixLength != positionNotSpecified) {
</span><span class="cx">         m_rangeOffset = m_totalRemainingSize - m_rangeSuffixLength;
</span><span class="lines">@@ -345,6 +353,8 @@
</span><span class="cx"> 
</span><span class="cx"> int BlobResourceHandle::readSync(char* buf, int length)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     ASSERT(!m_async);
</span><span class="cx">     Ref&lt;BlobResourceHandle&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -391,6 +401,8 @@
</span><span class="cx"> 
</span><span class="cx"> int BlobResourceHandle::readDataSync(const BlobDataItem&amp; item, char* buf, int length)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     ASSERT(!m_async);
</span><span class="cx"> 
</span><span class="cx">     long long remaining = item.length - m_currentItemReadSize;
</span><span class="lines">@@ -411,6 +423,8 @@
</span><span class="cx"> 
</span><span class="cx"> int BlobResourceHandle::readFileSync(const BlobDataItem&amp; item, char* buf, int length)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     ASSERT(!m_async);
</span><span class="cx"> 
</span><span class="cx">     if (!m_fileOpened) {
</span><span class="lines">@@ -444,6 +458,7 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::readAsync()
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
</ins><span class="cx">     ASSERT(m_async);
</span><span class="cx"> 
</span><span class="cx">     // Do not continue if the request is aborted or an error occurs.
</span><span class="lines">@@ -467,6 +482,7 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::readDataAsync(const BlobDataItem&amp; item)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
</ins><span class="cx">     ASSERT(m_async);
</span><span class="cx">     Ref&lt;BlobResourceHandle&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -479,6 +495,7 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::readFileAsync(const BlobDataItem&amp; item)
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
</ins><span class="cx">     ASSERT(m_async);
</span><span class="cx"> 
</span><span class="cx">     if (m_fileOpened) {
</span><span class="lines">@@ -577,6 +594,8 @@
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::notifyResponseOnSuccess()
</span><span class="cx"> {
</span><ins>+    ASSERT(isMainThread());
+
</ins><span class="cx">     bool isRangeRequest = m_rangeOffset != positionNotSpecified;
</span><span class="cx">     ResourceResponse response(firstRequest().url(), m_blobData-&gt;contentType(), m_totalRemainingSize, String(), String());
</span><span class="cx">     response.setExpectedContentLength(m_totalRemainingSize);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobResourceHandleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.h (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobResourceHandle.h        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobResourceHandle.h        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AsyncFileStream;
</span><del>-class BlobStorageData;
</del><ins>+class BlobData;
</ins><span class="cx"> class FileStream;
</span><span class="cx"> class ResourceHandleClient;
</span><span class="cx"> class ResourceRequest;
</span><span class="lines">@@ -50,9 +50,9 @@
</span><span class="cx"> 
</span><span class="cx"> class BlobResourceHandle : public FileStreamClient, public ResourceHandle  {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;BlobResourceHandle&gt; createAsync(BlobStorageData*, const ResourceRequest&amp;, ResourceHandleClient*);
</del><ins>+    static PassRefPtr&lt;BlobResourceHandle&gt; createAsync(BlobData*, const ResourceRequest&amp;, ResourceHandleClient*);
</ins><span class="cx"> 
</span><del>-    static void loadResourceSynchronously(BlobStorageData* blobData, const ResourceRequest&amp; request, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data);
</del><ins>+    static void loadResourceSynchronously(BlobData* blobData, const ResourceRequest&amp; request, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data);
</ins><span class="cx"> 
</span><span class="cx">     // FileStreamClient methods.
</span><span class="cx">     virtual void didGetSize(long long) override;
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> private:
</span><span class="cx">     friend void delayedStartBlobResourceHandle(void*);
</span><span class="cx"> 
</span><del>-    BlobResourceHandle(PassRefPtr&lt;BlobStorageData&gt;, const ResourceRequest&amp;, ResourceHandleClient*, bool async);
</del><ins>+    BlobResourceHandle(BlobData*, const ResourceRequest&amp;, ResourceHandleClient*, bool async);
</ins><span class="cx">     virtual ~BlobResourceHandle();
</span><span class="cx"> 
</span><span class="cx">     void doStart();
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     void notifyFail(int errorCode);
</span><span class="cx">     void notifyFinish();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;BlobStorageData&gt; m_blobData;
</del><ins>+    RefPtr&lt;BlobData&gt; m_blobData;
</ins><span class="cx">     bool m_async;
</span><span class="cx">     RefPtr&lt;AsyncFileStream&gt; m_asyncStream; // For asynchronous loading.
</span><span class="cx">     RefPtr&lt;FileStream&gt; m_stream; // For synchronous loading.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobStorageDatah"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/network/BlobStorageData.h (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobStorageData.h        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/BlobStorageData.h        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -1,63 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BlobStorageData_h
-#define BlobStorageData_h
-
-#include &quot;BlobData.h&quot;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-
-namespace WebCore {
-
-class BlobStorageData : public RefCounted&lt;BlobStorageData&gt; {
-public:
-    static PassRefPtr&lt;BlobStorageData&gt; create(const String&amp; contentType)
-    {
-        return adoptRef(new BlobStorageData(contentType));
-    }
-
-    const String&amp; contentType() const { return m_data.contentType(); }
-    const BlobDataItemList&amp; items() const { return m_data.items(); }
-
-private:
-    friend class BlobRegistryImpl;
-
-    BlobStorageData(const String&amp; contentType)
-    {
-        m_data.setContentType(contentType);
-    }
-
-    BlobData m_data;
-};
-
-} // namespace WebCore
-
-#endif // BlobStorageData_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkFormDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/FormData.cpp (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/FormData.cpp        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/FormData.cpp        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include &quot;FormData.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BlobRegistryImpl.h&quot;
</span><del>-#include &quot;BlobStorageData.h&quot;
</del><span class="cx"> #include &quot;BlobURL.h&quot;
</span><span class="cx"> #include &quot;Chrome.h&quot;
</span><span class="cx"> #include &quot;ChromeClient.h&quot;
</span><span class="lines">@@ -302,7 +301,7 @@
</span><span class="cx">         LOG_ERROR(&quot;Tried to resolve a blob without a usable registry&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    BlobStorageData* blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(URL(ParsedURLString, url));
</del><ins>+    BlobData* blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(URL(ParsedURLString, url));
</ins><span class="cx">     if (!blobData) {
</span><span class="cx">         LOG_ERROR(&quot;Could not get blob data from a registry&quot;);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupResourceHandleSoupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (168381 => 168382)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2014-05-06 21:45:08 UTC (rev 168381)
+++ trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp        2014-05-06 22:11:07 UTC (rev 168382)
</span><span class="lines">@@ -66,7 +66,6 @@
</span><span class="cx"> #if ENABLE(BLOB)
</span><span class="cx"> #include &quot;BlobData.h&quot;
</span><span class="cx"> #include &quot;BlobRegistryImpl.h&quot;
</span><del>-#include &quot;BlobStorageData.h&quot;
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="lines">@@ -798,7 +797,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void addEncodedBlobToSoupMessageBody(SoupMessage* message, const FormDataElement&amp; element, unsigned long&amp; totalBodySize)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;BlobStorageData&gt; blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(URL(ParsedURLString, element.m_url));
</del><ins>+    RefPtr&lt;BlobData&gt; blobData = static_cast&lt;BlobRegistryImpl&amp;&gt;(blobRegistry()).getBlobDataFromURL(URL(ParsedURLString, element.m_url));
</ins><span class="cx">     if (!blobData)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>