gecko-dev/dom/file/uri/BlobURLChannel.h
Csoregi Natalia 4dcffa68cd Backed out 9 changesets (bug 1619953) for causing leaks. CLOSED TREE
Backed out changeset 9f610c8c44de (bug 1619953)
Backed out changeset 4e66983a4f00 (bug 1619953)
Backed out changeset 38aac5691967 (bug 1619953)
Backed out changeset 062c0c9b132f (bug 1619953)
Backed out changeset 830eb658d70e (bug 1619953)
Backed out changeset fccda4625d51 (bug 1619953)
Backed out changeset 4668c99560de (bug 1619953)
Backed out changeset 77c24528c8c2 (bug 1619953)
Backed out changeset b79dc688bfc9 (bug 1619953)
2020-07-02 17:58:57 +03:00

53 lines
1.5 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 mozilla_dom_BlobURLChannel_h
#define mozilla_dom_BlobURLChannel_h
#include "nsBaseChannel.h"
#include "nsCOMPtr.h"
#include "nsIInputStream.h"
class nsIURI;
namespace mozilla {
namespace dom {
class BlobImpl;
class BlobURLChannel final : public nsBaseChannel {
public:
BlobURLChannel(nsIURI* aURI, nsILoadInfo* aLoadInfo);
// This method is called when there is not a valid BlobImpl for this channel.
// This method will make ::OpenContentStream to return NS_ERROR_MALFORMED_URI.
void InitFailed();
// There is a valid BlobImpl for the channel. The blob's inputStream will be
// used when ::OpenContentStream is called.
void Initialize(BlobImpl* aBlobImpl);
private:
~BlobURLChannel();
nsresult OpenContentStream(bool aAsync, nsIInputStream** aResult,
nsIChannel** aChannel) override;
void OnChannelDone() override;
// If Initialize() is called, this will contain the blob's inputStream.
nsCOMPtr<nsIInputStream> mInputStream;
// This boolean is used to check that InitFailed() or Initialize() are called
// just once.
bool mInitialized;
};
} // namespace dom
} // namespace mozilla
#endif /* mozilla_dom_BlobURLChannel_h */