mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
|
||
|
#ifndef nsBlobProtocolHandler_h
|
||
|
#define nsBlobProtocolHandler_h
|
||
|
|
||
|
#include "nsIProtocolHandler.h"
|
||
|
#include "nsIURI.h"
|
||
|
#include "nsCOMPtr.h"
|
||
|
|
||
|
#define BLOBURI_SCHEME "blob"
|
||
|
|
||
|
class nsIDOMBlob;
|
||
|
class nsIPrincipal;
|
||
|
class nsIInputStream;
|
||
|
|
||
|
inline bool IsBlobURI(nsIURI* aUri)
|
||
|
{
|
||
|
bool isBlob;
|
||
|
return NS_SUCCEEDED(aUri->SchemeIs(BLOBURI_SCHEME, &isBlob)) && isBlob;
|
||
|
}
|
||
|
|
||
|
extern nsresult
|
||
|
NS_GetStreamForBlobURI(nsIURI* aURI, nsIInputStream** aStream);
|
||
|
|
||
|
class nsBlobProtocolHandler : public nsIProtocolHandler
|
||
|
{
|
||
|
public:
|
||
|
NS_DECL_ISUPPORTS
|
||
|
|
||
|
// nsIProtocolHandler methods:
|
||
|
NS_DECL_NSIPROTOCOLHANDLER
|
||
|
|
||
|
// nsBlobProtocolHandler methods:
|
||
|
nsBlobProtocolHandler() {}
|
||
|
virtual ~nsBlobProtocolHandler() {}
|
||
|
|
||
|
// Methods for managing uri->file mapping
|
||
|
static void AddFileDataEntry(nsACString& aUri,
|
||
|
nsIDOMBlob* aFile,
|
||
|
nsIPrincipal* aPrincipal);
|
||
|
static void RemoveFileDataEntry(nsACString& aUri);
|
||
|
static nsIPrincipal* GetFileDataEntryPrincipal(nsACString& aUri);
|
||
|
};
|
||
|
|
||
|
#define NS_BLOBPROTOCOLHANDLER_CID \
|
||
|
{ 0xb43964aa, 0xa078, 0x44b2, \
|
||
|
{ 0xb0, 0x6b, 0xfd, 0x4d, 0x1b, 0x17, 0x2e, 0x66 } }
|
||
|
|
||
|
#endif /* nsBlobProtocolHandler_h */
|