2018-11-30 22:52:05 +03:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
2015-08-06 00:25:39 +03:00
|
|
|
*
|
|
|
|
* 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 WebBrowserPersistRemoteDocument_h__
|
|
|
|
#define WebBrowserPersistRemoteDocument_h__
|
|
|
|
|
|
|
|
#include "mozilla/Maybe.h"
|
|
|
|
#include "mozilla/PWebBrowserPersistDocumentParent.h"
|
|
|
|
#include "nsCOMPtr.h"
|
|
|
|
#include "nsIWebBrowserPersistDocument.h"
|
|
|
|
#include "nsIInputStream.h"
|
|
|
|
|
2018-06-22 17:41:39 +03:00
|
|
|
class nsIPrincipal;
|
|
|
|
|
2015-08-06 00:25:39 +03:00
|
|
|
// This class is the XPCOM half of the glue between the
|
|
|
|
// nsIWebBrowserPersistDocument interface and a remote document; it is
|
|
|
|
// created by WebBrowserPersistDocumentParent when (and if) it
|
|
|
|
// receives the information needed to populate the interface's
|
|
|
|
// properties.
|
|
|
|
//
|
|
|
|
// This object has a normal refcounted lifetime. The corresponding
|
|
|
|
// IPC actor holds a weak reference to this class; when the last
|
|
|
|
// strong reference is released, it sends an IPC delete message and
|
|
|
|
// thereby removes that reference.
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
|
|
|
|
class WebBrowserPersistDocumentParent;
|
|
|
|
|
|
|
|
class WebBrowserPersistRemoteDocument final
|
|
|
|
: public nsIWebBrowserPersistDocument {
|
|
|
|
public:
|
|
|
|
NS_DECL_ISUPPORTS
|
|
|
|
NS_DECL_NSIWEBBROWSERPERSISTDOCUMENT
|
2018-11-30 13:46:48 +03:00
|
|
|
|
2015-08-06 00:25:39 +03:00
|
|
|
private:
|
|
|
|
using Attrs = WebBrowserPersistDocumentAttrs;
|
|
|
|
WebBrowserPersistDocumentParent* mActor;
|
|
|
|
Attrs mAttrs;
|
2019-03-21 23:33:51 +03:00
|
|
|
nsCOMPtr<nsISHEntry> mSHEntry;
|
2015-08-06 00:25:39 +03:00
|
|
|
nsCOMPtr<nsIInputStream> mPostData;
|
2018-06-22 17:41:39 +03:00
|
|
|
nsCOMPtr<nsIPrincipal> mPrincipal;
|
2018-11-30 13:46:48 +03:00
|
|
|
|
2015-08-06 00:25:39 +03:00
|
|
|
friend class WebBrowserPersistDocumentParent;
|
|
|
|
WebBrowserPersistRemoteDocument(WebBrowserPersistDocumentParent* aActor,
|
|
|
|
const Attrs& aAttrs,
|
|
|
|
nsIInputStream* aPostData);
|
|
|
|
~WebBrowserPersistRemoteDocument();
|
2018-11-30 13:46:48 +03:00
|
|
|
|
2015-08-06 00:25:39 +03:00
|
|
|
void ActorDestroy(void);
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace mozilla
|
|
|
|
|
|
|
|
#endif // WebBrowserPersistRemoteDocument_h__
|