Bug 1446568: Move Reset and ResetToURI to nsIDocument instead of nsDocument. r=smaug
MozReview-Commit-ID: CPj2NHwpOEy
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -2292,18 +2292,19 @@ nsDocument::Reset(nsIChannel* aChannel,
mChromeXHRDocBaseURI = nullptr;
}
}
mChannel = aChannel;
}
void
-nsDocument::ResetToURI(nsIURI *aURI, nsILoadGroup *aLoadGroup,
- nsIPrincipal* aPrincipal)
+nsIDocument::ResetToURI(nsIURI* aURI,
+ nsILoadGroup* aLoadGroup,
+ nsIPrincipal* aPrincipal)
{
NS_PRECONDITION(aURI, "Null URI passed to ResetToURI");
MOZ_LOG(gDocumentLeakPRLog, LogLevel::Debug,
("DOCUMENT %p ResetToURI %s", this, aURI->GetSpecOrDefault().get()));
mSecurityInfo = nullptr;
--- a/dom/base/nsDocument.h
+++ b/dom/base/nsDocument.h
@@ -40,17 +40,16 @@
#include "nsIChannel.h"
#include "nsCycleCollectionParticipant.h"
#include "nsContentList.h"
#include "nsGkAtoms.h"
#include "mozilla/StyleSetHandle.h"
#include "PLDHashTable.h"
#include "nsDOMAttributeMap.h"
#include "imgIRequest.h"
-#include "mozilla/EventListenerManager.h"
#include "mozilla/EventStates.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/PendingAnimationTracker.h"
#include "mozilla/dom/BoxObject.h"
#include "mozilla/dom/DOMImplementation.h"
#include "mozilla/dom/ScriptLoader.h"
#include "mozilla/dom/StyleSheetList.h"
#include "nsDataHashtable.h"
@@ -145,20 +144,16 @@ class nsDocument : public nsIDocument,
public:
typedef mozilla::dom::Element Element;
typedef mozilla::net::ReferrerPolicy ReferrerPolicy;
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_ADDSIZEOFEXCLUDINGTHIS
- virtual void Reset(nsIChannel *aChannel, nsILoadGroup *aLoadGroup) override;
- virtual void ResetToURI(nsIURI *aURI, nsILoadGroup *aLoadGroup,
- nsIPrincipal* aPrincipal) override;
-
already_AddRefed<nsIPrincipal> MaybeDowngradePrincipal(nsIPrincipal* aPrincipal);
// StartDocumentLoad is pure virtual so that subclasses must override it.
// The nsDocument StartDocumentLoad does some setup, but does NOT set
// *aDocListener; this is the job of subclasses.
virtual nsresult StartDocumentLoad(const char* aCommand,
nsIChannel* aChannel,
nsILoadGroup* aLoadGroup,
@@ -366,18 +361,16 @@ public:
// FIXME(emilio): This needs to be here instead of in nsIDocument because Rust
// can't represent alignas(8) values on 32-bit architectures, which would
// cause nsIDocument's layout to be wrong in the Rust side.
//
// This can be fixed after updating to rust 1.25 and updating bindgen to
// include https://github.com/rust-lang-nursery/rust-bindgen/pull/1271.
js::ExpandoAndGeneration mExpandoAndGeneration;
- RefPtr<mozilla::EventListenerManager> mListenerManager;
-
nsClassHashtable<nsStringHashKey, nsRadioGroupStruct> mRadioGroups;
// Parser aborted. True if the parser of this document was forcibly
// terminated instead of letting it finish at its own pace.
bool mParserAborted:1;
friend class nsCallRequestFullScreen;
--- a/dom/base/nsIDocument.h
+++ b/dom/base/nsIDocument.h
@@ -122,16 +122,17 @@ class nsIGlobalObject;
struct nsCSSSelectorList;
namespace mozilla {
class AbstractThread;
class CSSStyleSheet;
class Encoding;
class ErrorResult;
class EventStates;
+class EventListenerManager;
class PendingAnimationTracker;
class StyleSetHandle;
template<typename> class OwningNonNull;
struct URLExtraData;
namespace css {
class Loader;
class ImageLoader;
@@ -2094,25 +2095,26 @@ public:
return mNodeInfoManager;
}
/**
* Reset the document using the given channel and loadgroup. This works
* like ResetToURI, but also sets the document's channel to aChannel.
* The principal of the document will be set from the channel.
*/
- virtual void Reset(nsIChannel* aChannel, nsILoadGroup* aLoadGroup) = 0;
+ virtual void Reset(nsIChannel* aChannel, nsILoadGroup* aLoadGroup);
/**
* Reset this document to aURI, aLoadGroup, and aPrincipal. aURI must not be
* null. If aPrincipal is null, a codebase principal based on aURI will be
* used.
*/
- virtual void ResetToURI(nsIURI *aURI, nsILoadGroup* aLoadGroup,
- nsIPrincipal* aPrincipal) = 0;
+ virtual void ResetToURI(nsIURI* aURI,
+ nsILoadGroup* aLoadGroup,
+ nsIPrincipal* aPrincipal);
/**
* Set the container (docshell) for this document. Virtual so that
* docshell can call it.
*/
virtual void SetContainer(nsDocShell* aContainer);
/**
@@ -4459,16 +4461,18 @@ protected:
// These member variables cache information about the viewport so we don't
// have to recalculate it each time.
mozilla::LayoutDeviceToScreenScale mScaleMinFloat;
mozilla::LayoutDeviceToScreenScale mScaleMaxFloat;
mozilla::LayoutDeviceToScreenScale mScaleFloat;
mozilla::CSSToLayoutDeviceScale mPixelRatio;
mozilla::CSSSize mViewportSize;
+ RefPtr<mozilla::EventListenerManager> mListenerManager;
+
nsTArray<RefPtr<mozilla::StyleSheet>> mOnDemandBuiltInUASheets;
nsTArray<RefPtr<mozilla::StyleSheet>> mAdditionalSheets[AdditionalSheetTypeCount];
// Member to store out last-selected stylesheet set.
nsString mLastStyleSheetSet;
RefPtr<nsDOMStyleSheetSetList> mStyleSheetSetList;
// We lazily calculate declaration blocks for SVG elements with mapped