зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1547621 - Move all inline methods of nsIPresShell into mozilla::PresShell r=smaug
And also this patch moves some related methods which use the inline methods and member variables used only by them. Differential Revision: https://phabricator.services.mozilla.com/D29201 --HG-- rename : layout/base/nsIPresShellInlines.h => layout/base/PresShellInlines.h extra : moz-landing-system : lando
This commit is contained in:
Родитель
663f37d827
Коммит
36e5df54ec
|
@ -21,6 +21,7 @@
|
|||
#include "mozilla/EffectSet.h"
|
||||
#include "mozilla/LayerAnimationInfo.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/RestyleManager.h"
|
||||
#include "mozilla/ServoBindings.h" // Servo_GetProperties_Overriding_Animation
|
||||
#include "mozilla/ServoStyleSet.h"
|
||||
|
@ -32,7 +33,6 @@
|
|||
#include "nsCSSProps.h"
|
||||
#include "nsDisplayItemTypes.h"
|
||||
#include "nsAtom.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsLayoutUtils.h"
|
||||
#include "nsTArray.h"
|
||||
#include "PendingAnimationTracker.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "mozilla/LookAndFeel.h" // For LookAndFeel::GetInt
|
||||
#include "mozilla/KeyframeUtils.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/StaticPrefs.h"
|
||||
#include "mozilla/TypeTraits.h"
|
||||
|
@ -32,7 +33,6 @@
|
|||
#include "nsCSSPseudoElements.h" // For PseudoStyleType
|
||||
#include "nsDOMMutationObserver.h" // For nsAutoAnimationMutationBatch
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsIScriptError.h"
|
||||
#include "nsPresContextInlines.h"
|
||||
#include "nsRefreshDriver.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "mozilla/MemoryReporting.h"
|
||||
#include "mozilla/Likely.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/RestyleManager.h"
|
||||
#include "mozilla/StaticPrefs.h"
|
||||
#include "mozilla/URLExtraData.h"
|
||||
|
@ -283,7 +284,6 @@
|
|||
# include "nsXULPopupManager.h"
|
||||
# include "nsIDocShellTreeOwner.h"
|
||||
#endif
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "mozilla/dom/BoxObject.h"
|
||||
|
||||
#include "mozilla/DocLoadingTimelineMarker.h"
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
#include "mozilla/dom/ResponsiveImageSelector.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoStyleSetInlines.h"
|
||||
#include "mozilla/TextUtils.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsPresContext.h"
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include "nsContentUtils.h"
|
||||
#include "nsIXPConnect.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsIScrollable.h"
|
||||
|
@ -79,6 +78,7 @@
|
|||
#include "mozilla/NullPrincipal.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "mozilla/dom/ChromeMessageSender.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
#include "nsContentUtils.h"
|
||||
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "mozilla/dom/HTMLCanvasElement.h"
|
||||
#include "SVGObserverUtils.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsIFrame.h"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include "mozilla/AutoRestore.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/RestyleManager.h"
|
||||
#include "mozilla/SMILTimedElement.h"
|
||||
#include "mozilla/dom/DocumentInlines.h"
|
||||
|
@ -18,7 +19,6 @@
|
|||
#include "nsContentUtils.h"
|
||||
#include "nsCSSProps.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsITimer.h"
|
||||
#include "SMILCompositor.h"
|
||||
#include "SMILCSSProperty.h"
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
#include "nsPresContext.h"
|
||||
#include "nsString.h"
|
||||
#include "nsStyleUtil.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "mozilla/DeclarationBlock.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/StyleAnimationValue.h"
|
||||
#include "mozilla/ServoCSSParser.h"
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "nsIContentInlines.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsIXMLContentSink.h"
|
||||
#include "nsContentCID.h"
|
||||
#include "mozilla/dom/XMLDocument.h"
|
||||
|
@ -51,6 +50,7 @@
|
|||
#include "mozilla/dom/NodeListBinding.h"
|
||||
#include "mozilla/dom/ScriptSettings.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "nsIURI.h"
|
||||
#include "nsIURL.h"
|
||||
#include "nsIChannel.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsString.h"
|
||||
#include "plstr.h"
|
||||
#include "nsIContent.h"
|
||||
|
@ -51,6 +50,7 @@
|
|||
#include "mozilla/EventListenerManager.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoStyleSet.h"
|
||||
#include "mozilla/RestyleManager.h"
|
||||
#include "mozilla/dom/ChildIterator.h"
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/dom/EventTarget.h"
|
||||
#include "mozilla/mozalloc.h"
|
||||
|
@ -27,7 +28,6 @@
|
|||
#include "nsIHTMLObjectResizer.h"
|
||||
#include "nsStubMutationObserver.h"
|
||||
#include "nsINode.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsISupportsImpl.h"
|
||||
#include "nsISupportsUtils.h"
|
||||
#include "nsLiteralString.h"
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "mozilla/Likely.h"
|
||||
#include "mozilla/Logging.h"
|
||||
#include "mozilla/MouseEvents.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Sprintf.h"
|
||||
#include "mozilla/StaticPrefs.h"
|
||||
#include "mozilla/TextEvents.h"
|
||||
|
@ -43,7 +44,6 @@
|
|||
#include "nsContentList.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/dom/PointerEventHandler.h"
|
||||
#include "mozilla/dom/PopupBlocker.h"
|
||||
|
@ -794,13 +794,9 @@ nsIPresShell::nsIPresShell()
|
|||
mIsFirstPaint(false),
|
||||
mObservesMutationsForPrint(false),
|
||||
mWasLastReflowInterrupted(false),
|
||||
mVisualViewportSizeSet(false),
|
||||
mNeedLayoutFlush(true),
|
||||
mNeedStyleFlush(true),
|
||||
mObservingStyleFlushes(false),
|
||||
mObservingLayoutFlushes(false),
|
||||
mResizeEventPending(false),
|
||||
mNeedThrottledAnimationFlush(true),
|
||||
mFontSizeInflationForceEnabled(false),
|
||||
mFontSizeInflationDisabledInMasterProcess(false),
|
||||
mFontSizeInflationEnabled(false),
|
||||
|
@ -821,6 +817,10 @@ PresShell::PresShell()
|
|||
mMouseLocation(NS_UNCONSTRAINEDSIZE, NS_UNCONSTRAINEDSIZE),
|
||||
mAPZFocusSequenceNumber(0),
|
||||
mActiveSuppressDisplayport(0),
|
||||
mNeedLayoutFlush(true),
|
||||
mNeedStyleFlush(true),
|
||||
mNeedThrottledAnimationFlush(true),
|
||||
mVisualViewportSizeSet(false),
|
||||
mDocumentLoading(false),
|
||||
mNoDelayedMouseEvents(false),
|
||||
mNoDelayedKeyEvents(false),
|
||||
|
@ -854,8 +854,6 @@ PresShell::PresShell()
|
|||
mFrozen = false;
|
||||
mRenderFlags = 0;
|
||||
|
||||
mVisualViewportSizeSet = false;
|
||||
|
||||
static bool addedSynthMouseMove = false;
|
||||
if (!addedSynthMouseMove) {
|
||||
Preferences::AddBoolVarCache(&sSynthMouseMove,
|
||||
|
@ -1413,7 +1411,7 @@ nsRefreshDriver* nsIPresShell::GetRefreshDriver() const {
|
|||
return mPresContext ? mPresContext->RefreshDriver() : nullptr;
|
||||
}
|
||||
|
||||
void nsIPresShell::SetAuthorStyleDisabled(bool aStyleDisabled) {
|
||||
void PresShell::SetAuthorStyleDisabled(bool aStyleDisabled) {
|
||||
if (aStyleDisabled != StyleSet()->GetAuthorStyleDisabled()) {
|
||||
StyleSet()->SetAuthorStyleDisabled(aStyleDisabled);
|
||||
mDocument->ApplicableStylesChanged();
|
||||
|
@ -1427,11 +1425,11 @@ void nsIPresShell::SetAuthorStyleDisabled(bool aStyleDisabled) {
|
|||
}
|
||||
}
|
||||
|
||||
bool nsIPresShell::GetAuthorStyleDisabled() const {
|
||||
bool PresShell::GetAuthorStyleDisabled() const {
|
||||
return StyleSet()->GetAuthorStyleDisabled();
|
||||
}
|
||||
|
||||
void nsIPresShell::UpdatePreferenceStyles() {
|
||||
void PresShell::UpdatePreferenceStyles() {
|
||||
if (!mDocument) {
|
||||
return;
|
||||
}
|
||||
|
@ -1471,14 +1469,14 @@ void nsIPresShell::UpdatePreferenceStyles() {
|
|||
mPrefStyleSheet = newPrefSheet;
|
||||
}
|
||||
|
||||
void nsIPresShell::RemovePreferenceStyles() {
|
||||
void PresShell::RemovePreferenceStyles() {
|
||||
if (mPrefStyleSheet) {
|
||||
StyleSet()->RemoveStyleSheet(StyleOrigin::UserAgent, mPrefStyleSheet);
|
||||
mPrefStyleSheet = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void nsIPresShell::AddUserSheet(StyleSheet* aSheet) {
|
||||
void PresShell::AddUserSheet(StyleSheet* aSheet) {
|
||||
// Make sure this does what nsDocumentViewer::CreateStyleSet does wrt
|
||||
// ordering. We want this new sheet to come after all the existing stylesheet
|
||||
// service sheets (which are at the start), but before other user sheets; see
|
||||
|
@ -1513,14 +1511,14 @@ void nsIPresShell::AddUserSheet(StyleSheet* aSheet) {
|
|||
mDocument->ApplicableStylesChanged();
|
||||
}
|
||||
|
||||
void nsIPresShell::AddAgentSheet(StyleSheet* aSheet) {
|
||||
void PresShell::AddAgentSheet(StyleSheet* aSheet) {
|
||||
// Make sure this does what nsDocumentViewer::CreateStyleSet does
|
||||
// wrt ordering.
|
||||
StyleSet()->AppendStyleSheet(StyleOrigin::UserAgent, aSheet);
|
||||
mDocument->ApplicableStylesChanged();
|
||||
}
|
||||
|
||||
void nsIPresShell::AddAuthorSheet(StyleSheet* aSheet) {
|
||||
void PresShell::AddAuthorSheet(StyleSheet* aSheet) {
|
||||
// Document specific "additional" Author sheets should be stronger than the
|
||||
// ones added with the StyleSheetService.
|
||||
StyleSheet* firstAuthorSheet = mDocument->GetFirstAdditionalAuthorSheet();
|
||||
|
@ -1534,7 +1532,7 @@ void nsIPresShell::AddAuthorSheet(StyleSheet* aSheet) {
|
|||
mDocument->ApplicableStylesChanged();
|
||||
}
|
||||
|
||||
void nsIPresShell::RemoveSheet(StyleOrigin aOrigin, StyleSheet* aSheet) {
|
||||
void PresShell::RemoveSheet(StyleOrigin aOrigin, StyleSheet* aSheet) {
|
||||
StyleSet()->RemoveStyleSheet(aOrigin, aSheet);
|
||||
mDocument->ApplicableStylesChanged();
|
||||
}
|
||||
|
@ -2083,7 +2081,7 @@ void nsIPresShell::SetIgnoreFrameDestruction(bool aIgnore) {
|
|||
mIgnoreFrameDestruction = aIgnore;
|
||||
}
|
||||
|
||||
void nsIPresShell::NotifyDestroyingFrame(nsIFrame* aFrame) {
|
||||
void PresShell::NotifyDestroyingFrame(nsIFrame* aFrame) {
|
||||
// We must remove these from FrameLayerBuilder::DisplayItemData::mFrameList
|
||||
// here, otherwise the DisplayItemData destructor will use the destroyed frame
|
||||
// when it tries to remove it from the (array) value of this property.
|
||||
|
@ -2523,7 +2521,7 @@ void PresShell::LoadComplete() {
|
|||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void nsIPresShell::VerifyHasDirtyRootAncestor(nsIFrame* aFrame) {
|
||||
void PresShell::VerifyHasDirtyRootAncestor(nsIFrame* aFrame) {
|
||||
// XXXbz due to bug 372769, can't actually assert anything here...
|
||||
return;
|
||||
|
||||
|
@ -2580,10 +2578,10 @@ void nsIPresShell::FlushPendingScrollAnchorAdjustments() {
|
|||
mPendingScrollAnchorAdjustment.Clear();
|
||||
}
|
||||
|
||||
void nsIPresShell::FrameNeedsReflow(nsIFrame* aFrame,
|
||||
IntrinsicDirty aIntrinsicDirty,
|
||||
nsFrameState aBitToAdd,
|
||||
ReflowRootHandling aRootHandling) {
|
||||
void PresShell::FrameNeedsReflow(nsIFrame* aFrame,
|
||||
IntrinsicDirty aIntrinsicDirty,
|
||||
nsFrameState aBitToAdd,
|
||||
ReflowRootHandling aRootHandling) {
|
||||
MOZ_ASSERT(aBitToAdd == NS_FRAME_IS_DIRTY ||
|
||||
aBitToAdd == NS_FRAME_HAS_DIRTY_CHILDREN || !aBitToAdd,
|
||||
"Unexpected bits being added");
|
||||
|
@ -2745,7 +2743,7 @@ void nsIPresShell::FrameNeedsReflow(nsIFrame* aFrame,
|
|||
MaybeScheduleReflow();
|
||||
}
|
||||
|
||||
void nsIPresShell::FrameNeedsToContinueReflow(nsIFrame* aFrame) {
|
||||
void PresShell::FrameNeedsToContinueReflow(nsIFrame* aFrame) {
|
||||
NS_ASSERTION(mIsReflowing, "Must be in reflow when marking path dirty.");
|
||||
MOZ_ASSERT(mCurrentReflowRoot, "Must have a current reflow root here");
|
||||
NS_ASSERTION(
|
||||
|
@ -7640,7 +7638,7 @@ Document* PresShell::GetPrimaryContentDocument() {
|
|||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void nsIPresShell::ShowEventTargetDebug() {
|
||||
void PresShell::ShowEventTargetDebug() {
|
||||
if (nsFrame::GetShowEventTargetFrameBorder() && GetCurrentEventFrame()) {
|
||||
if (mDrawEventTargetFrame) {
|
||||
mDrawEventTargetFrame->InvalidateFrame();
|
||||
|
@ -9058,8 +9056,8 @@ bool nsIPresShell::ScheduleReflowOffTimer() {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool nsIPresShell::DoReflow(nsIFrame* target, bool aInterruptible,
|
||||
OverflowChangedTracker* aOverflowTracker) {
|
||||
bool PresShell::DoReflow(nsIFrame* target, bool aInterruptible,
|
||||
OverflowChangedTracker* aOverflowTracker) {
|
||||
#ifdef MOZ_GECKO_PROFILER
|
||||
nsIURI* uri = mDocument->GetDocumentURI();
|
||||
AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING(
|
||||
|
@ -9295,7 +9293,7 @@ bool nsIPresShell::DoReflow(nsIFrame* target, bool aInterruptible,
|
|||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void nsIPresShell::DoVerifyReflow() {
|
||||
void PresShell::DoVerifyReflow() {
|
||||
if (GetVerifyReflowEnable()) {
|
||||
// First synchronously render what we have so far so that we can
|
||||
// see it.
|
||||
|
@ -9793,7 +9791,7 @@ FindTopFrame(nsIFrame* aRoot)
|
|||
|
||||
// After an incremental reflow, we verify the correctness by doing a
|
||||
// full reflow into a fresh frame tree.
|
||||
bool nsIPresShell::VerifyIncrementalReflow() {
|
||||
bool PresShell::VerifyIncrementalReflow() {
|
||||
if (VerifyReflowFlags::Noisy & gVerifyReflowFlags) {
|
||||
printf("Building Verification Tree...\n");
|
||||
}
|
||||
|
@ -10575,7 +10573,7 @@ size_t PresShell::SizeOfTextRuns(MallocSizeOf aMallocSizeOf) const {
|
|||
/* clear = */ false);
|
||||
}
|
||||
|
||||
void nsIPresShell::MarkFixedFramesForReflow(IntrinsicDirty aIntrinsicDirty) {
|
||||
void PresShell::MarkFixedFramesForReflow(IntrinsicDirty aIntrinsicDirty) {
|
||||
nsIFrame* rootFrame = mFrameConstructor->GetRootFrame();
|
||||
if (rootFrame) {
|
||||
const nsFrameList& childList =
|
||||
|
@ -10586,7 +10584,7 @@ void nsIPresShell::MarkFixedFramesForReflow(IntrinsicDirty aIntrinsicDirty) {
|
|||
}
|
||||
}
|
||||
|
||||
void nsIPresShell::CompleteChangeToVisualViewportSize() {
|
||||
void PresShell::CompleteChangeToVisualViewportSize() {
|
||||
if (nsIScrollableFrame* rootScrollFrame = GetRootScrollFrameAsScrollable()) {
|
||||
rootScrollFrame->MarkScrollbarsDirtyForReflow();
|
||||
}
|
||||
|
@ -10602,7 +10600,7 @@ void nsIPresShell::CompleteChangeToVisualViewportSize() {
|
|||
}
|
||||
}
|
||||
|
||||
void nsIPresShell::SetVisualViewportSize(nscoord aWidth, nscoord aHeight) {
|
||||
void PresShell::SetVisualViewportSize(nscoord aWidth, nscoord aHeight) {
|
||||
if (!mVisualViewportSizeSet || mVisualViewportSize.width != aWidth ||
|
||||
mVisualViewportSize.height != aHeight) {
|
||||
mVisualViewportSizeSet = true;
|
||||
|
@ -10613,7 +10611,7 @@ void nsIPresShell::SetVisualViewportSize(nscoord aWidth, nscoord aHeight) {
|
|||
}
|
||||
}
|
||||
|
||||
void nsIPresShell::ResetVisualViewportSize() {
|
||||
void PresShell::ResetVisualViewportSize() {
|
||||
if (mVisualViewportSizeSet) {
|
||||
mVisualViewportSizeSet = false;
|
||||
mVisualViewportSize.width = 0;
|
||||
|
@ -10623,8 +10621,8 @@ void nsIPresShell::ResetVisualViewportSize() {
|
|||
}
|
||||
}
|
||||
|
||||
bool nsIPresShell::SetVisualViewportOffset(
|
||||
const nsPoint& aScrollOffset, const nsPoint& aPrevLayoutScrollPos) {
|
||||
bool PresShell::SetVisualViewportOffset(const nsPoint& aScrollOffset,
|
||||
const nsPoint& aPrevLayoutScrollPos) {
|
||||
bool didChange = false;
|
||||
if (GetVisualViewportOffset() != aScrollOffset) {
|
||||
nsPoint prevOffset = GetVisualViewportOffset();
|
||||
|
@ -10687,7 +10685,7 @@ void nsIPresShell::AcknowledgePendingVisualScrollUpdate() {
|
|||
mPendingVisualScrollUpdate->mAcknowledged = true;
|
||||
}
|
||||
|
||||
nsPoint nsIPresShell::GetVisualViewportOffsetRelativeToLayoutViewport() const {
|
||||
nsPoint PresShell::GetVisualViewportOffsetRelativeToLayoutViewport() const {
|
||||
return GetVisualViewportOffset() - GetLayoutViewportOffset();
|
||||
}
|
||||
|
||||
|
@ -10839,8 +10837,8 @@ nsresult nsIPresShell::HasRuleProcessorUsedByMultipleStyleSets(
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
void nsIPresShell::NotifyStyleSheetServiceSheetAdded(StyleSheet* aSheet,
|
||||
uint32_t aSheetType) {
|
||||
void PresShell::NotifyStyleSheetServiceSheetAdded(StyleSheet* aSheet,
|
||||
uint32_t aSheetType) {
|
||||
switch (aSheetType) {
|
||||
case nsIStyleSheetService::AGENT_SHEET:
|
||||
AddAgentSheet(aSheet);
|
||||
|
@ -10857,8 +10855,8 @@ void nsIPresShell::NotifyStyleSheetServiceSheetAdded(StyleSheet* aSheet,
|
|||
}
|
||||
}
|
||||
|
||||
void nsIPresShell::NotifyStyleSheetServiceSheetRemoved(StyleSheet* aSheet,
|
||||
uint32_t aSheetType) {
|
||||
void PresShell::NotifyStyleSheetServiceSheetRemoved(StyleSheet* aSheet,
|
||||
uint32_t aSheetType) {
|
||||
RemoveSheet(ToOrigin(aSheetType), aSheet);
|
||||
}
|
||||
|
||||
|
|
|
@ -140,11 +140,6 @@ class PresShell final : public nsIPresShell,
|
|||
nscoord aWidth, nscoord aHeight, nscoord aOldWidth, nscoord aOldHeight,
|
||||
ResizeReflowOptions aOptions = ResizeReflowOptions::NoOption) override;
|
||||
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void DoFlushPendingNotifications(FlushType aType) override;
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void DoFlushPendingNotifications(ChangesToFlush aType) override;
|
||||
|
||||
RectVisibility GetRectVisibility(nsIFrame* aFrame, const nsRect& aRect,
|
||||
nscoord aMinTwips) const override;
|
||||
|
||||
|
@ -335,6 +330,149 @@ class PresShell final : public nsIPresShell,
|
|||
|
||||
NS_DECL_NSIOBSERVER
|
||||
|
||||
// Inline methods defined in PresShellInlines.h
|
||||
inline void EnsureStyleFlush();
|
||||
inline void SetNeedStyleFlush();
|
||||
inline void SetNeedLayoutFlush();
|
||||
inline void SetNeedThrottledAnimationFlush();
|
||||
inline ServoStyleSet* StyleSet() const;
|
||||
|
||||
/**
|
||||
* Whether we might need a flush for the given flush type. If this
|
||||
* function returns false, we definitely don't need to flush.
|
||||
*
|
||||
* @param aFlushType The flush type to check. This must be
|
||||
* >= FlushType::Style. This also returns true if a throttled
|
||||
* animation flush is required.
|
||||
*/
|
||||
bool NeedFlush(FlushType aType) const {
|
||||
// We check mInFlush to handle re-entrant calls to FlushPendingNotifications
|
||||
// by reporting that we always need a flush in that case. Otherwise,
|
||||
// we could end up missing needed flushes, since we clear the mNeedXXXFlush
|
||||
// flags at the top of FlushPendingNotifications.
|
||||
MOZ_ASSERT(aType >= FlushType::Style);
|
||||
return mNeedStyleFlush ||
|
||||
(mNeedLayoutFlush && aType >= FlushType::InterruptibleLayout) ||
|
||||
aType >= FlushType::Display || mNeedThrottledAnimationFlush ||
|
||||
mInFlush;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if we might need to flush layout, even if we haven't scheduled
|
||||
* one yet (as opposed to HasPendingReflow, which returns true if a flush is
|
||||
* scheduled or will soon be scheduled).
|
||||
*/
|
||||
bool NeedLayoutFlush() const { return mNeedLayoutFlush; }
|
||||
|
||||
bool NeedStyleFlush() const { return mNeedStyleFlush; }
|
||||
|
||||
/**
|
||||
* Flush pending notifications of the type specified. This method
|
||||
* will not affect the content model; it'll just affect style and
|
||||
* frames. Callers that actually want up-to-date presentation (other
|
||||
* than the document itself) should probably be calling
|
||||
* Document::FlushPendingNotifications.
|
||||
*
|
||||
* This method can execute script, which can destroy this presshell object
|
||||
* unless someone is holding a reference to it on the stack. The presshell
|
||||
* itself will ensure it lives up until the method returns, but callers who
|
||||
* plan to use the presshell after this call should hold a strong ref
|
||||
* themselves!
|
||||
*
|
||||
* @param aType the type of notifications to flush
|
||||
*/
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void FlushPendingNotifications(FlushType aType) {
|
||||
if (!NeedFlush(aType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
DoFlushPendingNotifications(aType);
|
||||
}
|
||||
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void FlushPendingNotifications(ChangesToFlush aType) {
|
||||
if (!NeedFlush(aType.mFlushType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
DoFlushPendingNotifications(aType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tell the pres shell that a frame needs to be marked dirty and needs
|
||||
* Reflow. It's OK if this is an ancestor of the frame needing reflow as
|
||||
* long as the ancestor chain between them doesn't cross a reflow root.
|
||||
*
|
||||
* The bit to add should be NS_FRAME_IS_DIRTY, NS_FRAME_HAS_DIRTY_CHILDREN
|
||||
* or nsFrameState(0); passing 0 means that dirty bits won't be set on the
|
||||
* frame or its ancestors/descendants, but that intrinsic widths will still
|
||||
* be marked dirty. Passing aIntrinsicDirty = eResize and aBitToAdd = 0
|
||||
* would result in no work being done, so don't do that.
|
||||
*/
|
||||
void FrameNeedsReflow(
|
||||
nsIFrame* aFrame, IntrinsicDirty aIntrinsicDirty, nsFrameState aBitToAdd,
|
||||
ReflowRootHandling aRootHandling = ReflowRootHandling::InferFromBitToAdd);
|
||||
|
||||
/**
|
||||
* Calls FrameNeedsReflow on all fixed position children of the root frame.
|
||||
*/
|
||||
void MarkFixedFramesForReflow(IntrinsicDirty aIntrinsicDirty);
|
||||
|
||||
// This function handles all the work after VisualViewportSize is set
|
||||
// or reset.
|
||||
void CompleteChangeToVisualViewportSize();
|
||||
|
||||
/**
|
||||
* The return value indicates whether the offset actually changed.
|
||||
*/
|
||||
bool SetVisualViewportOffset(const nsPoint& aScrollOffset,
|
||||
const nsPoint& aPrevLayoutScrollPos);
|
||||
|
||||
nsPoint GetVisualViewportOffset() const {
|
||||
return mVisualViewportOffset.valueOr(nsPoint());
|
||||
}
|
||||
bool IsVisualViewportOffsetSet() const {
|
||||
return mVisualViewportOffset.isSome();
|
||||
}
|
||||
|
||||
void SetVisualViewportSize(nscoord aWidth, nscoord aHeight);
|
||||
void ResetVisualViewportSize();
|
||||
bool IsVisualViewportSizeSet() { return mVisualViewportSizeSet; }
|
||||
nsSize GetVisualViewportSize() {
|
||||
NS_ASSERTION(mVisualViewportSizeSet,
|
||||
"asking for visual viewport size when its not set?");
|
||||
return mVisualViewportSize;
|
||||
}
|
||||
|
||||
nsPoint GetVisualViewportOffsetRelativeToLayoutViewport() const;
|
||||
|
||||
/* Enable/disable author style level. Disabling author style disables the
|
||||
* entire author level of the cascade, including the HTML preshint level.
|
||||
*/
|
||||
// XXX these could easily be inlined, but there is a circular #include
|
||||
// problem with nsStyleSet.
|
||||
void SetAuthorStyleDisabled(bool aDisabled);
|
||||
bool GetAuthorStyleDisabled() const;
|
||||
|
||||
/**
|
||||
* Update the style set somehow to take into account changed prefs which
|
||||
* affect document styling.
|
||||
*/
|
||||
void UpdatePreferenceStyles();
|
||||
|
||||
// aSheetType is one of the nsIStyleSheetService *_SHEET constants.
|
||||
void NotifyStyleSheetServiceSheetAdded(StyleSheet* aSheet,
|
||||
uint32_t aSheetType);
|
||||
void NotifyStyleSheetServiceSheetRemoved(StyleSheet* aSheet,
|
||||
uint32_t aSheetType);
|
||||
|
||||
// DoReflow returns whether the reflow finished without interruption
|
||||
// If aFrame is not the root frame, the caller must pass a non-null
|
||||
// aOverflowTracker.
|
||||
bool DoReflow(nsIFrame* aFrame, bool aInterruptible,
|
||||
OverflowChangedTracker* aOverflowTracker);
|
||||
|
||||
#ifdef MOZ_REFLOW_PERF
|
||||
void DumpReflows() override;
|
||||
void CountReflows(const char* aName, nsIFrame* aFrame) override;
|
||||
|
@ -541,6 +679,30 @@ class PresShell final : public nsIPresShell,
|
|||
// acknowledged, to make sure they don't stick around for the next paint.
|
||||
void EndPaint();
|
||||
|
||||
/**
|
||||
* Tell the presshell that the given frame's reflow was interrupted. This
|
||||
* will mark as having dirty children a path from the given frame (inclusive)
|
||||
* to the nearest ancestor with a dirty subtree, or to the reflow root
|
||||
* currently being reflowed if no such ancestor exists (inclusive). This is
|
||||
* to be done immediately after reflow of the current reflow root completes.
|
||||
* This method must only be called during reflow, and the frame it's being
|
||||
* called on must be in the process of being reflowed when it's called. This
|
||||
* method doesn't mark any intrinsic widths dirty and doesn't add any bits
|
||||
* other than NS_FRAME_HAS_DIRTY_CHILDREN.
|
||||
*/
|
||||
void FrameNeedsToContinueReflow(nsIFrame* aFrame);
|
||||
|
||||
/**
|
||||
* Notification sent by a frame informing the pres shell that it is about to
|
||||
* be destroyed.
|
||||
* This allows any outstanding references to the frame to be cleaned up
|
||||
*/
|
||||
void NotifyDestroyingFrame(nsIFrame* aFrame);
|
||||
|
||||
#ifdef DEBUG
|
||||
nsIFrame* GetDrawEventTargetFrame() { return mDrawEventTargetFrame; }
|
||||
#endif
|
||||
|
||||
private:
|
||||
~PresShell();
|
||||
|
||||
|
@ -564,6 +726,16 @@ class PresShell final : public nsIPresShell,
|
|||
*/
|
||||
MOZ_CAN_RUN_SCRIPT void DoScrollContentIntoView();
|
||||
|
||||
/**
|
||||
* Methods to handle changes to user and UA sheet lists that we get
|
||||
* notified about.
|
||||
*/
|
||||
void AddUserSheet(StyleSheet*);
|
||||
void AddAgentSheet(StyleSheet*);
|
||||
void AddAuthorSheet(StyleSheet*);
|
||||
void RemoveSheet(StyleOrigin, StyleSheet*);
|
||||
void RemovePreferenceStyles();
|
||||
|
||||
/**
|
||||
* Initialize cached font inflation preference values and do an initial
|
||||
* computation to determine if font inflation is enabled.
|
||||
|
@ -574,6 +746,12 @@ class PresShell final : public nsIPresShell,
|
|||
*/
|
||||
void SetupFontInflation();
|
||||
|
||||
/**
|
||||
* Implementation methods for FlushPendingNotifications.
|
||||
*/
|
||||
MOZ_CAN_RUN_SCRIPT void DoFlushPendingNotifications(FlushType aType);
|
||||
MOZ_CAN_RUN_SCRIPT void DoFlushPendingNotifications(ChangesToFlush aType);
|
||||
|
||||
struct RenderingState {
|
||||
explicit RenderingState(PresShell* aPresShell)
|
||||
: mResolution(aPresShell->mResolution),
|
||||
|
@ -1539,6 +1717,20 @@ class PresShell final : public nsIPresShell,
|
|||
nsresult SetResolutionImpl(float aResolution, bool aScaleToResolution,
|
||||
nsAtom* aOrigin);
|
||||
|
||||
#ifdef DEBUG
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY bool VerifyIncrementalReflow();
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY void DoVerifyReflow();
|
||||
void VerifyHasDirtyRootAncestor(nsIFrame* aFrame);
|
||||
void ShowEventTargetDebug();
|
||||
|
||||
bool mInVerifyReflow = false;
|
||||
// The reflow root under which we're currently reflowing. Null when
|
||||
// not in reflow.
|
||||
nsIFrame* mCurrentReflowRoot = nullptr;
|
||||
|
||||
nsIFrame* mDrawEventTargetFrame = nullptr;
|
||||
#endif // #ifdef DEBUG
|
||||
|
||||
// This is used for synthetic mouse events that are sent when what is under
|
||||
// the mouse pointer may have changed without the mouse moving (eg scrolling,
|
||||
// change to the document contents).
|
||||
|
@ -1587,6 +1779,10 @@ class PresShell final : public nsIPresShell,
|
|||
// details for the scroll operation, see ScrollIntoViewData above.
|
||||
nsCOMPtr<nsIContent> mContentToScrollTo;
|
||||
|
||||
nsSize mVisualViewportSize;
|
||||
|
||||
mozilla::Maybe<nsPoint> mVisualViewportOffset;
|
||||
|
||||
TimeStamp mLastOSWake;
|
||||
|
||||
// The focus sequence number of the last processed input event
|
||||
|
@ -1598,6 +1794,18 @@ class PresShell final : public nsIPresShell,
|
|||
|
||||
int32_t mActiveSuppressDisplayport;
|
||||
|
||||
// True if a layout flush might not be a no-op
|
||||
bool mNeedLayoutFlush : 1;
|
||||
|
||||
// True if a style flush might not be a no-op
|
||||
bool mNeedStyleFlush : 1;
|
||||
|
||||
// True if there are throttled animations that would be processed when
|
||||
// performing a flush with mFlushAnimations == true.
|
||||
bool mNeedThrottledAnimationFlush : 1;
|
||||
|
||||
bool mVisualViewportSizeSet : 1;
|
||||
|
||||
bool mDocumentLoading : 1;
|
||||
bool mNoDelayedMouseEvents : 1;
|
||||
bool mNoDelayedKeyEvents : 1;
|
||||
|
|
|
@ -4,18 +4,20 @@
|
|||
* 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 nsIPresShellInlines_h
|
||||
#define nsIPresShellInlines_h
|
||||
#ifndef mozilla_PresShellInlines_h
|
||||
#define mozilla_PresShellInlines_h
|
||||
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
|
||||
void nsIPresShell::SetNeedLayoutFlush() {
|
||||
namespace mozilla {
|
||||
|
||||
void PresShell::SetNeedLayoutFlush() {
|
||||
mNeedLayoutFlush = true;
|
||||
if (mozilla::dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (mozilla::PresShell* shell = doc->GetPresShell()) {
|
||||
shell->mNeedLayoutFlush = true;
|
||||
if (dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (PresShell* presShell = doc->GetPresShell()) {
|
||||
presShell->mNeedLayoutFlush = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,10 +28,10 @@ void nsIPresShell::SetNeedLayoutFlush() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void nsIPresShell::SetNeedStyleFlush() {
|
||||
void PresShell::SetNeedStyleFlush() {
|
||||
mNeedStyleFlush = true;
|
||||
if (mozilla::dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (mozilla::PresShell* presShell = doc->GetPresShell()) {
|
||||
if (dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (PresShell* presShell = doc->GetPresShell()) {
|
||||
presShell->mNeedStyleFlush = true;
|
||||
}
|
||||
}
|
||||
|
@ -41,26 +43,24 @@ void nsIPresShell::SetNeedStyleFlush() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void nsIPresShell::EnsureStyleFlush() {
|
||||
void PresShell::EnsureStyleFlush() {
|
||||
SetNeedStyleFlush();
|
||||
ObserveStyleFlushes();
|
||||
}
|
||||
|
||||
void nsIPresShell::SetNeedThrottledAnimationFlush() {
|
||||
void PresShell::SetNeedThrottledAnimationFlush() {
|
||||
mNeedThrottledAnimationFlush = true;
|
||||
if (mozilla::dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (mozilla::PresShell* presShell = doc->GetPresShell()) {
|
||||
if (dom::Document* doc = mDocument->GetDisplayDocument()) {
|
||||
if (PresShell* presShell = doc->GetPresShell()) {
|
||||
presShell->mNeedThrottledAnimationFlush = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mozilla::ServoStyleSet* nsIPresShell::StyleSet() const {
|
||||
ServoStyleSet* PresShell::StyleSet() const {
|
||||
return mDocument->StyleSetForPresShellOrMediaQueryEvaluation();
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
/* static */
|
||||
inline void PresShell::EventHandler::OnPresShellDestroy(Document* aDocument) {
|
||||
if (sLastKeyDownEventTargetElement &&
|
||||
|
@ -71,4 +71,4 @@ inline void PresShell::EventHandler::OnPresShellDestroy(Document* aDocument) {
|
|||
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // nsIPresShellInlines_h
|
||||
#endif // mozilla_PresShellInlines_h
|
|
@ -16,6 +16,7 @@
|
|||
#include "mozilla/layers/AnimationInfo.h"
|
||||
#include "mozilla/layout/ScrollAnchorContainer.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/ServoStyleSetInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
|
@ -35,7 +36,6 @@
|
|||
#include "nsIFrame.h"
|
||||
#include "nsIFrameInlines.h"
|
||||
#include "nsImageFrame.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsPlaceholderFrame.h"
|
||||
#include "nsPrintfCString.h"
|
||||
#include "nsRefreshDriver.h"
|
||||
|
|
|
@ -53,7 +53,6 @@ EXPORTS += [
|
|||
'nsILayoutDebugger.h',
|
||||
'nsIPercentBSizeObserver.h',
|
||||
'nsIPresShell.h',
|
||||
'nsIPresShellInlines.h',
|
||||
'nsIReflowCallback.h',
|
||||
'nsLayoutUtils.h',
|
||||
'nsPresArena.h',
|
||||
|
@ -81,6 +80,7 @@ EXPORTS.mozilla += [
|
|||
'OverflowChangedTracker.h',
|
||||
'PresShell.h',
|
||||
'PresShellForwards.h',
|
||||
'PresShellInlines.h',
|
||||
'RestyleManager.h',
|
||||
'ScrollStyles.h',
|
||||
'ScrollTypes.h',
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "mozilla/LinkedList.h"
|
||||
#include "mozilla/MemoryReporting.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/ServoStyleSetInlines.h"
|
||||
#include "mozilla/StaticPrefs.h"
|
||||
|
@ -123,7 +124,6 @@
|
|||
#include "nsRefreshDriver.h"
|
||||
#include "nsTextNode.h"
|
||||
#include "ActiveLayerTracker.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
|
|
|
@ -238,26 +238,10 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
}
|
||||
#endif
|
||||
|
||||
inline mozilla::ServoStyleSet* StyleSet() const;
|
||||
|
||||
nsCSSFrameConstructor* FrameConstructor() const {
|
||||
return mFrameConstructor.get();
|
||||
}
|
||||
|
||||
/* Enable/disable author style level. Disabling author style disables the
|
||||
* entire author level of the cascade, including the HTML preshint level.
|
||||
*/
|
||||
// XXX these could easily be inlined, but there is a circular #include
|
||||
// problem with nsStyleSet.
|
||||
void SetAuthorStyleDisabled(bool aDisabled);
|
||||
bool GetAuthorStyleDisabled() const;
|
||||
|
||||
/**
|
||||
* Update the style set somehow to take into account changed prefs which
|
||||
* affect document styling.
|
||||
*/
|
||||
void UpdatePreferenceStyles();
|
||||
|
||||
/**
|
||||
* FrameSelection will return the Frame based selection API.
|
||||
* You cannot go back and forth anymore with QI between nsIDOM sel and
|
||||
|
@ -415,41 +399,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
void PostPendingScrollAnchorAdjustment(
|
||||
mozilla::layout::ScrollAnchorContainer* aContainer);
|
||||
|
||||
/**
|
||||
* Tell the pres shell that a frame needs to be marked dirty and needs
|
||||
* Reflow. It's OK if this is an ancestor of the frame needing reflow as
|
||||
* long as the ancestor chain between them doesn't cross a reflow root.
|
||||
*
|
||||
* The bit to add should be NS_FRAME_IS_DIRTY, NS_FRAME_HAS_DIRTY_CHILDREN
|
||||
* or nsFrameState(0); passing 0 means that dirty bits won't be set on the
|
||||
* frame or its ancestors/descendants, but that intrinsic widths will still
|
||||
* be marked dirty. Passing aIntrinsicDirty = eResize and aBitToAdd = 0
|
||||
* would result in no work being done, so don't do that.
|
||||
*/
|
||||
void FrameNeedsReflow(nsIFrame* aFrame,
|
||||
mozilla::IntrinsicDirty aIntrinsicDirty,
|
||||
nsFrameState aBitToAdd,
|
||||
mozilla::ReflowRootHandling aRootHandling =
|
||||
mozilla::ReflowRootHandling::InferFromBitToAdd);
|
||||
|
||||
/**
|
||||
* Calls FrameNeedsReflow on all fixed position children of the root frame.
|
||||
*/
|
||||
void MarkFixedFramesForReflow(mozilla::IntrinsicDirty aIntrinsicDirty);
|
||||
|
||||
/**
|
||||
* Tell the presshell that the given frame's reflow was interrupted. This
|
||||
* will mark as having dirty children a path from the given frame (inclusive)
|
||||
* to the nearest ancestor with a dirty subtree, or to the reflow root
|
||||
* currently being reflowed if no such ancestor exists (inclusive). This is
|
||||
* to be done immediately after reflow of the current reflow root completes.
|
||||
* This method must only be called during reflow, and the frame it's being
|
||||
* called on must be in the process of being reflowed when it's called. This
|
||||
* method doesn't mark any intrinsic widths dirty and doesn't add any bits
|
||||
* other than NS_FRAME_HAS_DIRTY_CHILDREN.
|
||||
*/
|
||||
void FrameNeedsToContinueReflow(nsIFrame* aFrame);
|
||||
|
||||
void CancelAllPendingReflows();
|
||||
|
||||
void NotifyCounterStylesAreDirty();
|
||||
|
@ -489,75 +438,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
*/
|
||||
void NotifyFontFaceSetOnRefresh();
|
||||
|
||||
/**
|
||||
* Flush pending notifications of the type specified. This method
|
||||
* will not affect the content model; it'll just affect style and
|
||||
* frames. Callers that actually want up-to-date presentation (other
|
||||
* than the document itself) should probably be calling
|
||||
* Document::FlushPendingNotifications.
|
||||
*
|
||||
* This method can execute script, which can destroy this presshell object
|
||||
* unless someone is holding a reference to it on the stack. The presshell
|
||||
* itself will ensure it lives up until the method returns, but callers who
|
||||
* plan to use the presshell after this call should hold a strong ref
|
||||
* themselves!
|
||||
*
|
||||
* @param aType the type of notifications to flush
|
||||
*/
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void FlushPendingNotifications(mozilla::FlushType aType) {
|
||||
if (!NeedFlush(aType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
DoFlushPendingNotifications(aType);
|
||||
}
|
||||
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
void FlushPendingNotifications(mozilla::ChangesToFlush aType) {
|
||||
if (!NeedFlush(aType.mFlushType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
DoFlushPendingNotifications(aType);
|
||||
}
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Implementation methods for FlushPendingNotifications.
|
||||
*/
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
virtual void DoFlushPendingNotifications(mozilla::FlushType aType) = 0;
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
virtual void DoFlushPendingNotifications(mozilla::ChangesToFlush aType) = 0;
|
||||
|
||||
public:
|
||||
/**
|
||||
* Whether we might need a flush for the given flush type. If this
|
||||
* function returns false, we definitely don't need to flush.
|
||||
*
|
||||
* @param aFlushType The flush type to check. This must be
|
||||
* >= FlushType::Style. This also returns true if a throttled
|
||||
* animation flush is required.
|
||||
*/
|
||||
bool NeedFlush(mozilla::FlushType aType) const {
|
||||
// We check mInFlush to handle re-entrant calls to FlushPendingNotifications
|
||||
// by reporting that we always need a flush in that case. Otherwise,
|
||||
// we could end up missing needed flushes, since we clear the mNeedXXXFlush
|
||||
// flags at the top of FlushPendingNotifications.
|
||||
MOZ_ASSERT(aType >= mozilla::FlushType::Style);
|
||||
return mNeedStyleFlush ||
|
||||
(mNeedLayoutFlush &&
|
||||
aType >= mozilla::FlushType::InterruptibleLayout) ||
|
||||
aType >= mozilla::FlushType::Display ||
|
||||
mNeedThrottledAnimationFlush || mInFlush;
|
||||
}
|
||||
|
||||
inline void EnsureStyleFlush();
|
||||
inline void SetNeedStyleFlush();
|
||||
inline void SetNeedLayoutFlush();
|
||||
inline void SetNeedThrottledAnimationFlush();
|
||||
|
||||
// Removes ourself from the list of layout / style / and resize refresh driver
|
||||
// observers.
|
||||
//
|
||||
|
@ -582,14 +462,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
if (!ObservingStyleFlushes()) DoObserveStyleFlushes();
|
||||
}
|
||||
|
||||
bool NeedStyleFlush() const { return mNeedStyleFlush; }
|
||||
/**
|
||||
* Returns true if we might need to flush layout, even if we haven't scheduled
|
||||
* one yet (as opposed to HasPendingReflow, which returns true if a flush is
|
||||
* scheduled or will soon be scheduled).
|
||||
*/
|
||||
bool NeedLayoutFlush() const { return mNeedLayoutFlush; }
|
||||
|
||||
/**
|
||||
* Callbacks will be called even if reflow itself fails for
|
||||
* some reason.
|
||||
|
@ -666,13 +538,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
*/
|
||||
void SetIgnoreFrameDestruction(bool aIgnore);
|
||||
|
||||
/**
|
||||
* Notification sent by a frame informing the pres shell that it is about to
|
||||
* be destroyed.
|
||||
* This allows any outstanding references to the frame to be cleaned up
|
||||
*/
|
||||
void NotifyDestroyingFrame(nsIFrame* aFrame);
|
||||
|
||||
/**
|
||||
* Get the AccessibleCaretEventHub, if it exists. AddRefs it.
|
||||
*/
|
||||
|
@ -990,10 +855,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
void RemoveAutoWeakFrame(AutoWeakFrame* aWeakFrame);
|
||||
void RemoveWeakFrame(WeakFrame* aWeakFrame);
|
||||
|
||||
#ifdef DEBUG
|
||||
nsIFrame* GetDrawEventTargetFrame() { return mDrawEventTargetFrame; }
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Stop or restart non synthetic test mouse event handling on *all*
|
||||
* presShells.
|
||||
|
@ -1328,34 +1189,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
bool AddPostRefreshObserver(nsAPostRefreshObserver* aObserver);
|
||||
bool RemovePostRefreshObserver(nsAPostRefreshObserver* aObserver);
|
||||
|
||||
void SetVisualViewportSize(nscoord aWidth, nscoord aHeight);
|
||||
void ResetVisualViewportSize();
|
||||
bool IsVisualViewportSizeSet() { return mVisualViewportSizeSet; }
|
||||
nsSize GetVisualViewportSize() {
|
||||
NS_ASSERTION(mVisualViewportSizeSet,
|
||||
"asking for visual viewport size when its not set?");
|
||||
return mVisualViewportSize;
|
||||
}
|
||||
|
||||
// This function handles all the work after VisualViewportSize is set
|
||||
// or reset.
|
||||
void CompleteChangeToVisualViewportSize();
|
||||
|
||||
/**
|
||||
* The return value indicates whether the offset actually changed.
|
||||
*/
|
||||
bool SetVisualViewportOffset(const nsPoint& aScrollOffset,
|
||||
const nsPoint& aPrevLayoutScrollPos);
|
||||
|
||||
nsPoint GetVisualViewportOffset() const {
|
||||
return mVisualViewportOffset.valueOr(nsPoint());
|
||||
}
|
||||
bool IsVisualViewportOffsetSet() const {
|
||||
return mVisualViewportOffset.isSome();
|
||||
}
|
||||
|
||||
nsPoint GetVisualViewportOffsetRelativeToLayoutViewport() const;
|
||||
|
||||
// Represents an update to the visual scroll offset that will be sent to APZ.
|
||||
// The update type is used to determine priority compared to other scroll
|
||||
// updates.
|
||||
|
@ -1414,12 +1247,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
|
||||
virtual Document* GetPrimaryContentDocument() = 0;
|
||||
|
||||
// aSheetType is one of the nsIStyleSheetService *_SHEET constants.
|
||||
void NotifyStyleSheetServiceSheetAdded(mozilla::StyleSheet* aSheet,
|
||||
uint32_t aSheetType);
|
||||
void NotifyStyleSheetServiceSheetRemoved(mozilla::StyleSheet* aSheet,
|
||||
uint32_t aSheetType);
|
||||
|
||||
struct MOZ_RAII AutoAssertNoFlush {
|
||||
explicit AutoAssertNoFlush(nsIPresShell& aShell)
|
||||
: mShell(aShell), mOldForbidden(mShell.mForbiddenToFlush) {
|
||||
|
@ -1446,32 +1273,10 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
const nsPoint& aVisualViewportOffset,
|
||||
FrameMetrics::ScrollOffsetUpdateType aUpdateType);
|
||||
|
||||
#ifdef DEBUG
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY bool VerifyIncrementalReflow();
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY void DoVerifyReflow();
|
||||
void VerifyHasDirtyRootAncestor(nsIFrame* aFrame);
|
||||
void ShowEventTargetDebug();
|
||||
|
||||
bool mInVerifyReflow = false;
|
||||
// The reflow root under which we're currently reflowing. Null when
|
||||
// not in reflow.
|
||||
nsIFrame* mCurrentReflowRoot = nullptr;
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_REFLOW_PERF
|
||||
mozilla::UniquePtr<ReflowCountMgr> mReflowCountMgr;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Methods to handle changes to user and UA sheet lists that we get
|
||||
* notified about.
|
||||
*/
|
||||
void AddUserSheet(mozilla::StyleSheet*);
|
||||
void AddAgentSheet(mozilla::StyleSheet*);
|
||||
void AddAuthorSheet(mozilla::StyleSheet*);
|
||||
void RemoveSheet(mozilla::StyleOrigin, mozilla::StyleSheet*);
|
||||
void RemovePreferenceStyles();
|
||||
|
||||
void WillDoReflow();
|
||||
|
||||
// This data is stored as a content property (nsGkAtoms::scrolling) on
|
||||
|
@ -1498,12 +1303,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
// sets up.
|
||||
void ScheduleReflow();
|
||||
|
||||
// DoReflow returns whether the reflow finished without interruption
|
||||
// If aFrame is not the root frame, the caller must pass a non-null
|
||||
// aOverflowTracker.
|
||||
bool DoReflow(nsIFrame* aFrame, bool aInterruptible,
|
||||
mozilla::OverflowChangedTracker* aOverflowTracker);
|
||||
|
||||
// IMPORTANT: The ownership implicit in the following member variables
|
||||
// has been explicitly checked. If you add any members to this class,
|
||||
// please make the ownership explicit (pinkerton, scc).
|
||||
|
@ -1538,10 +1337,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
// moving/sizing loop is running, see bug 491700 for details.
|
||||
nsCOMPtr<nsITimer> mReflowContinueTimer;
|
||||
|
||||
#ifdef DEBUG
|
||||
nsIFrame* mDrawEventTargetFrame = nullptr;
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
|
||||
// We track allocated pointers in a debug-only hashtable to assert against
|
||||
// missing/double frees.
|
||||
|
@ -1551,10 +1346,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
// Count of the number of times this presshell has been painted to a window.
|
||||
uint64_t mPaintCount;
|
||||
|
||||
nsSize mVisualViewportSize;
|
||||
|
||||
mozilla::Maybe<nsPoint> mVisualViewportOffset;
|
||||
|
||||
// A pending visual scroll offset that we will ask APZ to scroll to
|
||||
// during the next transaction. Cleared when we send the transaction.
|
||||
// Only applicable to the RCD pres shell.
|
||||
|
@ -1673,13 +1464,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
|
||||
// Whether the most recent interruptible reflow was actually interrupted:
|
||||
bool mWasLastReflowInterrupted : 1;
|
||||
bool mVisualViewportSizeSet : 1;
|
||||
|
||||
// True if a layout flush might not be a no-op
|
||||
bool mNeedLayoutFlush : 1;
|
||||
|
||||
// True if a style flush might not be a no-op
|
||||
bool mNeedStyleFlush : 1;
|
||||
|
||||
// True if we're observing the refresh driver for style flushes.
|
||||
bool mObservingStyleFlushes : 1;
|
||||
|
@ -1692,10 +1476,6 @@ class nsIPresShell : public nsStubDocumentObserver {
|
|||
|
||||
bool mResizeEventPending : 1;
|
||||
|
||||
// True if there are throttled animations that would be processed when
|
||||
// performing a flush with mFlushAnimations == true.
|
||||
bool mNeedThrottledAnimationFlush : 1;
|
||||
|
||||
bool mFontSizeInflationForceEnabled : 1;
|
||||
bool mFontSizeInflationDisabledInMasterProcess : 1;
|
||||
bool mFontSizeInflationEnabled : 1;
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
#include "mozilla/EventDispatcher.h"
|
||||
#include "mozilla/EventStateManager.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
|
||||
#include "base/basictypes.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsDocShell.h"
|
||||
#include "nsIContentViewer.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "mozilla/MemoryReporting.h"
|
||||
#include "mozilla/PreloadedStyleSheet.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/StyleSheet.h"
|
||||
#include "mozilla/StyleSheetInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
|
@ -25,7 +26,6 @@
|
|||
#include "nsNetUtil.h"
|
||||
#include "nsIConsoleService.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsLayoutStatics.h"
|
||||
#include "nsLayoutUtils.h"
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "nsCSSAnonBoxes.h"
|
||||
#include "nsHTMLParts.h"
|
||||
#include "nsIFormControl.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsNameSpaceManager.h"
|
||||
#include "nsListControlFrame.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
|
@ -47,6 +46,7 @@
|
|||
#include "mozilla/LookAndFeel.h"
|
||||
#include "mozilla/MouseEvents.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "gfx2DGlue.h"
|
||||
#include "mozilla/widget/nsAutoRollup.h"
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
#include "nsPresContextInlines.h"
|
||||
#include "mozilla/ComputedStyle.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/RestyleManager.h"
|
||||
#include "mozilla/ServoStyleSet.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsLineLayout.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsFrameManager.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "mozilla/gfx/gfxVars.h"
|
||||
#include "mozilla/gfx/PathHelpers.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Sprintf.h"
|
||||
#include "mozilla/StaticPrefs.h"
|
||||
|
||||
|
@ -44,7 +45,6 @@
|
|||
#include "nsTableWrapperFrame.h"
|
||||
#include "nsView.h"
|
||||
#include "nsViewManager.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsIScrollableFrame.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsPresContextInlines.h"
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "mozilla/gfx/Helpers.h"
|
||||
#include "mozilla/Likely.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
|
||||
#include "nsGenericHTMLElement.h"
|
||||
#include "nsAttrValueInlines.h"
|
||||
|
@ -24,7 +25,6 @@
|
|||
#include "nsLayoutUtils.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIContentInlines.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsHTMLParts.h"
|
||||
|
|
|
@ -117,7 +117,7 @@ FRAME_STATE_BIT(Generic, 9, NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN)
|
|||
// This bit is cleared by DidReflow after the required call to Reflow has
|
||||
// finished.
|
||||
// Do not set this bit yourself if you plan to pass the frame to
|
||||
// nsIPresShell::FrameNeedsReflow. Pass the right arguments instead.
|
||||
// PresShell::FrameNeedsReflow. Pass the right arguments instead.
|
||||
FRAME_STATE_BIT(Generic, 10, NS_FRAME_IS_DIRTY)
|
||||
|
||||
// If this bit is set then the frame is too deep in the frame tree, and
|
||||
|
@ -141,7 +141,7 @@ FRAME_STATE_BIT(Generic, 11, NS_FRAME_TOO_DEEP_IN_FRAME_TREE)
|
|||
// This bit is cleared by DidReflow after the required call to Reflow has
|
||||
// finished.
|
||||
// Do not set this bit yourself if you plan to pass the frame to
|
||||
// nsIPresShell::FrameNeedsReflow. Pass the right arguments instead.
|
||||
// PresShell::FrameNeedsReflow. Pass the right arguments instead.
|
||||
FRAME_STATE_BIT(Generic, 12, NS_FRAME_HAS_DIRTY_CHILDREN)
|
||||
|
||||
// If this bit is set, the frame has an associated view
|
||||
|
|
|
@ -27,13 +27,13 @@
|
|||
#include "mozilla/layers/WebRenderLayerManager.h"
|
||||
#include "mozilla/MouseEvents.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Unused.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsFontMetrics.h"
|
||||
#include "nsIImageLoadingContent.h"
|
||||
#include "nsImageLoadingContent.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsString.h"
|
||||
#include "nsPrintfCString.h"
|
||||
#include "nsPresContext.h"
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "mozilla/dom/ElementInlines.h"
|
||||
#include "mozilla/gfx/2D.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoStyleSetInlines.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsDisplayList.h"
|
||||
|
@ -23,7 +24,6 @@
|
|||
#include "nsPresContext.h"
|
||||
#include "nsIFrameInlines.h"
|
||||
#include "nsIContentInlines.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::gfx;
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "nsIContentInlines.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsXBLBinding.h"
|
||||
#include "nsXBLPrototypeBinding.h"
|
||||
#include "nsIMutableArray.h"
|
||||
|
@ -29,6 +28,7 @@
|
|||
#include "nsAtom.h"
|
||||
#include "nsRange.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/StyleSheetInlines.h"
|
||||
#include "mozilla/dom/CharacterData.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "mozilla/Logging.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/ServoCSSParser.h"
|
||||
#include "mozilla/ServoStyleSet.h"
|
||||
|
@ -43,7 +44,6 @@
|
|||
#include "mozilla/dom/Document.h"
|
||||
#include "nsILoadContext.h"
|
||||
#include "nsINetworkPredictor.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsISupportsPriority.h"
|
||||
#include "nsIWebNavigation.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "mozilla/ArrayUtils.h"
|
||||
#include "mozilla/MathAlgorithms.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/ServoStyleSet.h"
|
||||
#include "mozilla/Tuple.h"
|
||||
#include "mozilla/UniquePtr.h"
|
||||
|
@ -29,7 +30,6 @@
|
|||
#include "gfxQuaternion.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "gfx2DGlue.h"
|
||||
#include "mozilla/ComputedStyleInlines.h"
|
||||
#include "mozilla/layers/LayersMessages.h"
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
#include "mozilla/FontPropertyTypes.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/StaticPtr.h"
|
||||
|
||||
#include "nsError.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIFrameInlines.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "mozilla/ComputedStyle.h"
|
||||
#include "nsIScrollableFrame.h"
|
||||
#include "nsContentUtils.h"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "mozilla/MathAlgorithms.h"
|
||||
#include "mozilla/IntegerRange.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/WritingModes.h"
|
||||
|
||||
#include "gfxContext.h"
|
||||
|
@ -19,7 +20,6 @@
|
|||
#include "mozilla/ComputedStyle.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsCellMap.h"
|
||||
#include "nsTableCellFrame.h"
|
||||
#include "nsHTMLParts.h"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include "mozilla/MouseEvents.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/PresShellInlines.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/StartupTimeline.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
|
@ -18,7 +19,6 @@
|
|||
#include "nsCOMArray.h"
|
||||
#include "nsIPluginWidget.h"
|
||||
#include "nsXULPopupManager.h"
|
||||
#include "nsIPresShellInlines.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "GeckoProfiler.h"
|
||||
#include "nsRefreshDriver.h"
|
||||
|
|
Загрузка…
Ссылка в новой задаче