1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef CONTENT_CHILD_WEBBLOBREGISTRY_IMPL_H_ 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define CONTENT_CHILD_WEBBLOBREGISTRY_IMPL_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/ref_counted.h" 11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebBlobRegistry.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ThreadSafeSender; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebBlobRegistryImpl : public blink::WebBlobRegistry { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit WebBlobRegistryImpl(ThreadSafeSender* sender); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~WebBlobRegistryImpl(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void registerBlobData(const blink::WebString& uuid, 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebBlobData& data); 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void addBlobDataRef(const blink::WebString& uuid); 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void removeBlobDataRef(const blink::WebString& uuid); 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void registerPublicBlobURL(const blink::WebURL&, 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& uuid); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void revokePublicBlobURL(const blink::WebURL&); 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Additional support for Streams. 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void registerStreamURL(const blink::WebURL& url, 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& content_type); 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void registerStreamURL(const blink::WebURL& url, 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& src_url); 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void addDataToStream(const blink::WebURL& url, 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebThreadSafeData& data); 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void finalizeStream(const blink::WebURL& url); 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void abortStream(const blink::WebURL& url); 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void unregisterStreamURL(const blink::WebURL& url); 392385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void SendDataForBlob(const std::string& uuid_str, 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebThreadSafeData& data); 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<ThreadSafeSender> sender_; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif // CONTENT_CHILD_FILEAPI_WEBBLOBREGISTRY_IMPL_H_ 50