Bug 1452464. r=miko a=abillings

This commit is contained in:
Matt Woodrow 2018-04-21 16:25:33 +12:00
parent 7d4d8e8236
commit 560dfcc99f
2 changed files with 34 additions and 4 deletions

View File

@ -7092,13 +7092,39 @@ nsDisplaySubDocument::nsDisplaySubDocument(nsDisplayListBuilder* aBuilder,
if (*mAnimatedGeometryRoot == mFrame && mAnimatedGeometryRoot->mParentAGR) {
mAnimatedGeometryRoot = mAnimatedGeometryRoot->mParentAGR;
}
if (mSubDocFrame) {
mSubDocFrame->AddDisplayItem(this);
}
}
#ifdef NS_BUILD_REFCNT_LOGGING
nsDisplaySubDocument::~nsDisplaySubDocument() {
MOZ_COUNT_DTOR(nsDisplaySubDocument);
if (mSubDocFrame) {
mSubDocFrame->RemoveDisplayItem(this);
}
}
nsIFrame*
nsDisplaySubDocument::FrameForInvalidation() const
{
return mSubDocFrame ? mSubDocFrame : mFrame;
}
bool
nsDisplaySubDocument::HasDeletedFrame() const
{
return !mSubDocFrame || nsDisplayItem::HasDeletedFrame();
}
void
nsDisplaySubDocument::RemoveFrame(nsIFrame* aFrame)
{
if (aFrame == mSubDocFrame) {
mSubDocFrame = nullptr;
}
nsDisplayItem::RemoveFrame(aFrame);
}
#endif
UniquePtr<ScrollMetadata>
nsDisplaySubDocument::ComputeScrollMetadata(LayerManager* aLayerManager,

View File

@ -5705,9 +5705,7 @@ public:
nsDisplaySubDocument(nsDisplayListBuilder* aBuilder,
nsIFrame* aFrame, nsSubDocumentFrame* aSubDocFrame,
nsDisplayList* aList, nsDisplayOwnLayerFlags aFlags);
#ifdef NS_BUILD_REFCNT_LOGGING
virtual ~nsDisplaySubDocument();
#endif
virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder,
bool* aSnap) const override;
@ -5747,6 +5745,12 @@ public:
mozilla::UniquePtr<ScrollMetadata> ComputeScrollMetadata(LayerManager* aLayerManager,
const ContainerLayerParameters& aContainerParameters);
virtual nsIFrame* FrameForInvalidation() const override;
virtual bool HasDeletedFrame() const override;
virtual void RemoveFrame(nsIFrame* aFrame) override;
protected:
ViewID mScrollParentId;
bool mForceDispatchToContentRegion;