Bug 1448728 part 1 - Make popular headers not include nsWindowSizes.h. r?njn
MozReview-Commit-ID: EC5J9Im3gfu
--- a/dom/base/CharacterData.cpp
+++ b/dom/base/CharacterData.cpp
@@ -32,16 +32,17 @@
#include "mozilla/dom/DirectionalityUtils.h"
#include "nsBindingManager.h"
#include "nsCCUncollectableMarker.h"
#include "mozAutoDocUpdate.h"
#include "nsTextNode.h"
#include "nsBidiUtils.h"
#include "PLDHashTable.h"
#include "mozilla/Sprintf.h"
+#include "nsWindowSizes.h"
#include "nsWrapperCacheInlines.h"
namespace mozilla {
namespace dom {
CharacterData::CharacterData(already_AddRefed<dom::NodeInfo>& aNodeInfo)
: nsIContent(aNodeInfo)
{
--- a/dom/base/Element.cpp
+++ b/dom/base/Element.cpp
@@ -74,16 +74,17 @@
#include "mozilla/TextEditor.h"
#include "mozilla/TextEvents.h"
#include "nsNodeUtils.h"
#include "mozilla/dom/DirectionalityUtils.h"
#include "nsDocument.h"
#include "nsAttrValueOrString.h"
#include "nsAttrValueInlines.h"
#include "nsCSSPseudoElements.h"
+#include "nsWindowSizes.h"
#ifdef MOZ_XUL
#include "nsXULElement.h"
#endif /* MOZ_XUL */
#include "nsSVGElement.h"
#include "nsFrameSelection.h"
#ifdef DEBUG
#include "nsRange.h"
#endif
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -79,16 +79,17 @@
#include "nsPIDOMWindow.h"
#include "nsPIBoxObject.h"
#include "nsSVGUtils.h"
#include "nsLayoutUtils.h"
#include "nsGkAtoms.h"
#include "nsContentUtils.h"
#include "nsTextFragment.h"
#include "nsContentCID.h"
+#include "nsWindowSizes.h"
#include "nsIDOMEventListener.h"
#include "nsIWebNavigation.h"
#include "nsIBaseWindow.h"
#include "nsIWidget.h"
#include "nsNodeInfoManager.h"
#include "nsICategoryManager.h"
--- a/dom/base/Link.h
+++ b/dom/base/Link.h
@@ -13,16 +13,17 @@
#include "mozilla/MemoryReporting.h"
#include "nsIContent.h" // for nsLinkState
#include "nsIContentPolicy.h"
namespace mozilla {
class EventStates;
+class SizeOfState;
namespace dom {
class Element;
#define MOZILLA_DOM_LINK_IMPLEMENTATION_IID \
{ 0xb25edee6, 0xdd35, 0x4f8b, \
{ 0xab, 0x90, 0x66, 0xd0, 0xbd, 0x3c, 0x22, 0xd5 } }
--- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp
@@ -2400,16 +2400,23 @@ nsINode::AddSizeOfExcludingThis(nsWindow
// - mNodeInfo
// - mSlots
//
// The following members are not measured:
// - mParent, mNextSibling, mPreviousSibling, mFirstChild: because they're
// non-owning
}
+void
+nsINode::AddSizeOfIncludingThis(nsWindowSizes& aSizes, size_t* aNodeSize) const
+{
+ *aNodeSize += aSizes.mState.mMallocSizeOf(this);
+ AddSizeOfExcludingThis(aSizes, aNodeSize);
+}
+
#define EVENT(name_, id_, type_, struct_) \
EventHandlerNonNull* nsINode::GetOn##name_() { \
EventListenerManager *elm = GetExistingListenerManager(); \
return elm ? elm->GetEventHandler(nsGkAtoms::on##name_, EmptyString()) \
: nullptr; \
} \
void nsINode::SetOn##name_(EventHandlerNonNull* handler) \
{ \
--- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h
@@ -12,17 +12,16 @@
#include "nsCOMPtr.h" // for member, local
#include "nsGkAtoms.h" // for nsGkAtoms::baseURIProperty
#include "nsIDOMNode.h"
#include "mozilla/dom/NodeInfo.h" // member (in nsCOMPtr)
#include "nsIVariant.h" // for use in GetUserData()
#include "nsNodeInfoManager.h" // for use in NodePrincipal()
#include "nsPropertyTable.h" // for typedefs
#include "nsTObserverArray.h" // for member
-#include "nsWindowSizes.h" // for nsStyleSizes
#include "mozilla/ErrorResult.h"
#include "mozilla/LinkedList.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/dom/EventTarget.h" // for base class
#include "js/TypeDecls.h" // for Handle, Value, JSObject, JSContext
#include "mozilla/dom/DOMString.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/NodeBinding.h"
@@ -51,16 +50,17 @@ class nsINode;
class nsINodeList;
class nsIPresShell;
class nsIPrincipal;
class nsIURI;
class nsNodeSupportsWeakRefTearoff;
class nsNodeWeakReference;
class nsDOMMutationObserver;
class nsRange;
+class nsWindowSizes;
struct RawServoSelectorList;
namespace mozilla {
class EventListenerManager;
class TextEditor;
namespace dom {
/**
* @return true if aChar is what the WHATWG defines as a 'ascii whitespace'.
@@ -354,21 +354,17 @@ public:
virtual void AddSizeOfExcludingThis(nsWindowSizes& aSizes,
size_t* aNodeSize) const;
// SizeOfIncludingThis doesn't need to be overridden by sub-classes because
// sub-classes of nsINode are guaranteed to be laid out in memory in such a
// way that |this| points to the start of the allocated object, even in
// methods of nsINode's sub-classes, so aSizes.mState.mMallocSizeOf(this) is
// always safe to call no matter which object it was invoked on.
- virtual void AddSizeOfIncludingThis(nsWindowSizes& aSizes,
- size_t* aNodeSize) const {
- *aNodeSize += aSizes.mState.mMallocSizeOf(this);
- AddSizeOfExcludingThis(aSizes, aNodeSize);
- }
+ void AddSizeOfIncludingThis(nsWindowSizes& aSizes, size_t* aNodeSize) const;
friend class nsNodeUtils;
friend class nsNodeWeakReference;
friend class nsNodeSupportsWeakRefTearoff;
friend class nsAttrAndChildArray;
#ifdef MOZILLA_INTERNAL_API
explicit nsINode(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
--- a/dom/html/HTMLAnchorElement.cpp
+++ b/dom/html/HTMLAnchorElement.cpp
@@ -14,16 +14,17 @@
#include "nsContentUtils.h"
#include "nsGkAtoms.h"
#include "nsHTMLDNSPrefetch.h"
#include "nsAttrValueOrString.h"
#include "nsIDocument.h"
#include "nsIPresShell.h"
#include "nsPresContext.h"
#include "nsIURI.h"
+#include "nsWindowSizes.h"
NS_IMPL_NS_NEW_HTML_ELEMENT(Anchor)
namespace mozilla {
namespace dom {
#define ANCHOR_ELEMENT_FLAG_BIT(n_) NODE_FLAG_BIT(ELEMENT_TYPE_SPECIFIC_BITS_OFFSET + (n_))
--- a/dom/html/HTMLAreaElement.cpp
+++ b/dom/html/HTMLAreaElement.cpp
@@ -7,16 +7,17 @@
#include "mozilla/dom/HTMLAreaElement.h"
#include "mozilla/Attributes.h"
#include "mozilla/dom/HTMLAnchorElement.h"
#include "mozilla/dom/HTMLAreaElementBinding.h"
#include "mozilla/EventDispatcher.h"
#include "mozilla/EventStates.h"
#include "mozilla/MemoryReporting.h"
+#include "nsWindowSizes.h"
NS_IMPL_NS_NEW_HTML_ELEMENT(Area)
namespace mozilla {
namespace dom {
HTMLAreaElement::HTMLAreaElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
: nsGenericHTMLElement(aNodeInfo)
--- a/dom/html/HTMLLinkElement.cpp
+++ b/dom/html/HTMLLinkElement.cpp
@@ -23,16 +23,17 @@
#include "nsINode.h"
#include "nsIStyleSheetLinkingElement.h"
#include "nsIURL.h"
#include "nsPIDOMWindow.h"
#include "nsReadableUtils.h"
#include "nsStyleConsts.h"
#include "nsStyleLinkElement.h"
#include "nsUnicharUtils.h"
+#include "nsWindowSizes.h"
#define LINK_ELEMENT_FLAG_BIT(n_) \
NODE_FLAG_BIT(ELEMENT_TYPE_SPECIFIC_BITS_OFFSET + (n_))
// Link element specific bits
enum {
// Indicates that a DNS Prefetch has been requested from this Link element.
HTML_LINK_DNS_PREFETCH_REQUESTED = LINK_ELEMENT_FLAG_BIT(0),
--- a/dom/svg/SVGPathElement.cpp
+++ b/dom/svg/SVGPathElement.cpp
@@ -15,16 +15,17 @@
#include "mozilla/dom/SVGPathElementBinding.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/RefPtr.h"
#include "nsCOMPtr.h"
#include "nsComputedDOMStyle.h"
#include "nsGkAtoms.h"
#include "nsStyleConsts.h"
#include "nsStyleStruct.h"
+#include "nsWindowSizes.h"
#include "SVGContentUtils.h"
NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Path)
using namespace mozilla::gfx;
namespace mozilla {
namespace dom {
--- a/dom/xbl/nsXBLDocumentInfo.cpp
+++ b/dom/xbl/nsXBLDocumentInfo.cpp
@@ -18,16 +18,17 @@
#include "nsIConsoleService.h"
#include "nsIScriptError.h"
#include "nsIChromeRegistry.h"
#include "nsIPrincipal.h"
#include "nsJSPrincipals.h"
#include "nsIScriptSecurityManager.h"
#include "nsContentUtils.h"
#include "nsDOMJSUtils.h"
+#include "nsWindowSizes.h"
#include "mozilla/Services.h"
#include "xpcpublic.h"
#include "mozilla/scache/StartupCache.h"
#include "mozilla/scache/StartupCacheUtils.h"
#include "nsCCUncollectableMarker.h"
#include "mozilla/dom/BindingUtils.h"
#include "mozilla/dom/URL.h"
--- a/image/Image.cpp
+++ b/image/Image.cpp
@@ -1,16 +1,17 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
#include "Image.h"
#include "Layers.h" // for LayerManager
#include "nsRefreshDriver.h"
+#include "mozilla/SizeOfState.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Tuple.h" // for Tie
namespace mozilla {
namespace image {
///////////////////////////////////////////////////////////////////////////////
// Memory Reporting
--- a/image/RasterImage.cpp
+++ b/image/RasterImage.cpp
@@ -33,16 +33,17 @@
#include "mozilla/gfx/2D.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Likely.h"
#include "mozilla/RefPtr.h"
#include "mozilla/Move.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Services.h"
+#include "mozilla/SizeOfState.h"
#include <stdint.h>
#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Tuple.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/gfx/Scale.h"
#include "GeckoProfiler.h"
--- a/js/xpconnect/src/XPCJSRuntime.cpp
+++ b/js/xpconnect/src/XPCJSRuntime.cpp
@@ -22,16 +22,17 @@
#include "nsIMemoryInfoDumper.h"
#include "nsIMemoryReporter.h"
#include "nsIObserverService.h"
#include "nsIDebug2.h"
#include "nsIDocShell.h"
#include "nsIRunnable.h"
#include "nsPIDOMWindow.h"
#include "nsPrintfCString.h"
+#include "nsWindowSizes.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Services.h"
#include "mozilla/dom/ScriptLoader.h"
#include "mozilla/dom/ScriptSettings.h"
#include "nsContentUtils.h"
#include "nsCCUncollectableMarker.h"
--- a/layout/base/nsFrameManager.cpp
+++ b/layout/base/nsFrameManager.cpp
@@ -25,16 +25,17 @@
#include "nsError.h"
#include "nsAutoPtr.h"
#include "nsAbsoluteContainingBlock.h"
#include "ChildIterator.h"
#include "GeckoProfiler.h"
#include "nsIStatefulFrame.h"
#include "nsContainerFrame.h"
+#include "nsWindowSizes.h"
#include "mozilla/MemoryReporting.h"
// #define DEBUG_UNDISPLAYED_MAP
// #define DEBUG_DISPLAY_CONTENTS_MAP
using namespace mozilla;
using namespace mozilla::dom;
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -89,16 +89,17 @@
#include "gfxContext.h"
#include "gfxPrefs.h"
#include "nsAbsoluteContainingBlock.h"
#include "StickyScrollContainer.h"
#include "nsFontInflationData.h"
#include "nsRegion.h"
#include "nsIFrameInlines.h"
#include "nsStyleChangeList.h"
+#include "nsWindowSizes.h"
#include "mozilla/AsyncEventDispatcher.h"
#include "mozilla/EffectCompositor.h"
#include "mozilla/EffectSet.h"
#include "mozilla/EventListenerManager.h"
#include "mozilla/EventStateManager.h"
#include "mozilla/EventStates.h"
#include "mozilla/Preferences.h"
--- a/layout/style/CachedInheritingStyles.cpp
+++ b/layout/style/CachedInheritingStyles.cpp
@@ -4,16 +4,17 @@
* 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/. */
#include "mozilla/CachedInheritingStyles.h"
#include "mozilla/ComputedStyle.h"
#include "nsCOMPtr.h"
#include "nsIMemoryReporter.h"
+#include "nsWindowSizes.h"
namespace mozilla {
void
CachedInheritingStyles::Insert(ComputedStyle* aStyle)
{
MOZ_ASSERT(aStyle);
MOZ_ASSERT(aStyle->IsInheritingAnonBox() || aStyle->IsLazilyCascadedPseudoElement());
--- a/layout/style/ComputedStyle.cpp
+++ b/layout/style/ComputedStyle.cpp
@@ -13,16 +13,17 @@
#include "nsCSSAnonBoxes.h"
#include "nsCSSPseudoElements.h"
#include "nsFontMetrics.h"
#include "nsStyleConsts.h"
#include "nsStyleStruct.h"
#include "nsStyleStructInlines.h"
#include "nsString.h"
#include "nsPresContext.h"
+#include "nsWindowSizes.h"
#include "nsCOMPtr.h"
#include "nsIPresShell.h"
#include "GeckoProfiler.h"
#include "nsIDocument.h"
#include "nsPrintfCString.h"
#include "RubyUtils.h"
@@ -490,9 +491,22 @@ ComputedStyle::GetCachedLazyPseudoStyle(
if (nsCSSPseudoElements::PseudoElementSupportsUserActionState(aPseudo)) {
return nullptr;
}
return mCachedInheritingStyles.Lookup(nsCSSPseudoElements::GetPseudoAtom(aPseudo));
}
+void
+ComputedStyle::AddSizeOfIncludingThis(nsWindowSizes& aSizes,
+ size_t* aCVsSize) const
+{
+ // Note: |this| sits within a servo_arc::Arc, i.e. it is preceded by a
+ // refcount. So we need to measure it with a function that can handle an
+ // interior pointer. We use ServoComputedValuesMallocEnclosingSizeOf to
+ // clearly identify in DMD's output the memory measured here.
+ *aCVsSize += ServoComputedValuesMallocEnclosingSizeOf(this);
+ mSource.AddSizeOfExcludingThis(aSizes);
+ mCachedInheritingStyles.AddSizeOfIncludingThis(aSizes, aCVsSize);
+}
+
} // namespace mozilla
--- a/layout/style/ComputedStyle.h
+++ b/layout/style/ComputedStyle.h
@@ -5,28 +5,28 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* the interface (to internal code) for retrieving computed style data */
#ifndef _ComputedStyle_h_
#define _ComputedStyle_h_
#include "nsIMemoryReporter.h"
-#include "nsWindowSizes.h"
#include <algorithm>
#include "mozilla/Assertions.h"
#include "mozilla/RestyleLogging.h"
#include "mozilla/ServoStyleSet.h"
#include "mozilla/ServoUtils.h"
#include "mozilla/StyleComplexColor.h"
#include "mozilla/CachedInheritingStyles.h"
#include "nsCSSAnonBoxes.h"
class nsAtom;
class nsPresContext;
+class nsWindowSizes;
namespace mozilla {
enum class CSSPseudoElementType : uint8_t;
class ComputedStyle;
extern "C" {
void Servo_ComputedStyle_AddRef(const mozilla::ComputedStyle* aStyle);
@@ -345,26 +345,17 @@ public:
* Makes this context match |aOther| in terms of which style structs have
* been resolved.
*/
inline void ResolveSameStructsAs(const ComputedStyle* aOther);
// The |aCVsSize| outparam on this function is where the actual CVs size
// value is added. It's done that way because the callers know which value
// the size should be added to.
- void AddSizeOfIncludingThis(nsWindowSizes& aSizes, size_t* aCVsSize) const
- {
- // Note: |this| sits within a servo_arc::Arc, i.e. it is preceded by a
- // refcount. So we need to measure it with a function that can handle an
- // interior pointer. We use ServoComputedValuesMallocEnclosingSizeOf to
- // clearly identify in DMD's output the memory measured here.
- *aCVsSize += ServoComputedValuesMallocEnclosingSizeOf(this);
- mSource.AddSizeOfExcludingThis(aSizes);
- mCachedInheritingStyles.AddSizeOfIncludingThis(aSizes, aCVsSize);
- }
+ void AddSizeOfIncludingThis(nsWindowSizes& aSizes, size_t* aCVsSize) const;
// Needs to be public so that we can call it from Servo.
~ComputedStyle() = default;
protected:
nsPresContext* mPresContext;
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -41,16 +41,17 @@
#include "nsNameSpaceManager.h"
#include "nsNetUtil.h"
#include "nsString.h"
#include "nsStyleStruct.h"
#include "nsStyleUtil.h"
#include "nsSVGElement.h"
#include "nsTArray.h"
#include "nsTransitionManager.h"
+#include "nsWindowSizes.h"
#include "mozilla/CORSMode.h"
#include "mozilla/DeclarationBlockInlines.h"
#include "mozilla/EffectCompositor.h"
#include "mozilla/EffectSet.h"
#include "mozilla/EventStates.h"
#include "mozilla/Keyframe.h"
#include "mozilla/Mutex.h"
--- a/layout/style/ServoStyleSet.cpp
+++ b/layout/style/ServoStyleSet.cpp
@@ -31,16 +31,17 @@
#include "nsIAnonymousContentCreator.h"
#include "nsIDocumentInlines.h"
#include "nsMediaFeatures.h"
#include "nsPrintfCString.h"
#include "nsSMILAnimationController.h"
#include "nsXBLPrototypeBinding.h"
#include "gfxUserFontSet.h"
#include "nsBindingManager.h"
+#include "nsWindowSizes.h"
using namespace mozilla;
using namespace mozilla::dom;
#ifdef DEBUG
bool
ServoStyleSet::IsCurrentThreadInServoTraversal()
{