Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1836)

Unified Diff: WebCore/platform/network/BlobRegistryImpl.h

Issue 11192017: ********** WebCore blob hacking (Closed) Base URL: http://svn.webkit.org/repository/webkit/trunk/Source/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « WebCore/platform/network/BlobRegistry.cpp ('k') | WebCore/platform/network/BlobRegistryImpl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: WebCore/platform/network/BlobRegistryImpl.h
===================================================================
--- WebCore/platform/network/BlobRegistryImpl.h (revision 140218)
+++ WebCore/platform/network/BlobRegistryImpl.h (working copy)
@@ -48,29 +48,52 @@
class ResourceRequest;
class ResourceResponse;
-// BlobRegistryImpl is not thread-safe. It should only be called from main thread.
class BlobRegistryImpl : public BlobRegistry {
WTF_MAKE_FAST_ALLOCATED;
public:
virtual ~BlobRegistryImpl() { }
- virtual void registerBlobURL(const KURL&, PassOwnPtr<BlobData>);
- virtual void registerBlobURL(const KURL&, const KURL& srcURL);
- virtual void unregisterBlobURL(const KURL&);
- virtual bool loadResourceSynchronously(const ResourceRequest&, ResourceError&, ResourceResponse&, Vector<char>& data);
+ // BlobRegistry interface methods.
+ virtual void registerBlobData(const String& uuid, PassOwnPtr<BlobData>);
+ virtual void addBlobDataRef(const String& uuid);
+ virtual void removeBlobDataRef(const String& uuid);
+ virtual void registerPublicBlobURL(SecurityOrigin*, const KURL&, PassRefPtr<BlobDataHandle>);
+ virtual void revokePublicBlobURL(const KURL&);
+ virtual PassRefPtr<SecurityOrigin> cachedUniqueOrigin(const KURL&);
+ // Extra methods that are not defined in the base class to support BlobURL resource loading
+ // and Form uploads that include blobs as file input elements. In-process implementations need
+ // direct access to the underlying data for these functions, but not all ports need this.
+ // Chromium ports perform these functions out-of-process.
+ // TODO: fix up callsites that currently use FromURL that need to use FromUUID in other ports.
+ PassRefPtr<BlobStorageData> getBlobDataFromUUID(const String&) const;
PassRefPtr<BlobStorageData> getBlobDataFromURL(const KURL&) const;
-
+ bool loadResourceSynchronously(const ResourceRequest&, ResourceError&, ResourceResponse&, Vector<char>& data);
PassRefPtr<ResourceHandle> createResourceHandle(const ResourceRequest&, ResourceHandleClient*);
private:
+ class URLRegistrationHelper;
+ typedef HashMap<String, RefPtr<BlobDataHandle> > BlobURLMap;
+ typedef HashMap<String, std::pair<int, RefPtr<BlobStorageData> > > BlobMap;
+
bool shouldLoadResource(const ResourceRequest& request) const;
void appendStorageItems(BlobStorageData*, const BlobDataItemList&);
void appendStorageItems(BlobStorageData*, const BlobDataItemList&, long long offset, long long length);
- HashMap<String, RefPtr<BlobStorageData> > m_blobs;
+ // The url map is only accessed on the main thread.
+ BlobURLMap m_publicURLs;
+
+ // The blob map is accessed on multiple threads, the mutex protects it from concurrent access.
+ mutable Mutex m_mutex;
+ BlobMap m_blobs;
};
} // namespace WebCore
+#if PLATFORM(CHROMIUM)
+error error error
+just putting junk here for now to see that we're not trying to include this anywhere
+might be worth leaving in for real since it documents that fact that this is n/a for chromium
+#endif
+
#endif // BlobRegistryImpl_h
« no previous file with comments | « WebCore/platform/network/BlobRegistry.cpp ('k') | WebCore/platform/network/BlobRegistryImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698