diff --git a/gfx/tests/gfxWordCacheTest.cpp b/gfx/tests/gfxWordCacheTest.cpp index 70bed86c1368..16838ec7594d 100644 --- a/gfx/tests/gfxWordCacheTest.cpp +++ b/gfx/tests/gfxWordCacheTest.cpp @@ -15,6 +15,7 @@ #include "gfxPlatform.h" #include "gfxFontTest.h" +#include "mozilla/Attributes.h" #if defined(XP_MACOSX) #include "gfxTestCocoaHelper.h" @@ -31,7 +32,7 @@ static FrameTextRunCache *gTextRuns = nsnull; /* * Cache textruns and expire them after 3*10 seconds of no use. */ -class FrameTextRunCache : public nsExpirationTracker { +class FrameTextRunCache MOZ_FINAL : public nsExpirationTracker { public: enum { TIMEOUT_SECONDS = 10 }; FrameTextRunCache() diff --git a/layout/base/nsFrameTraversal.cpp b/layout/base/nsFrameTraversal.cpp index a0dc0ab2260b..dc4fd4b8223b 100644 --- a/layout/base/nsFrameTraversal.cpp +++ b/layout/base/nsFrameTraversal.cpp @@ -17,6 +17,8 @@ public: NS_DECL_ISUPPORTS + virtual ~nsFrameIterator() {} + virtual void First(); virtual void Next(); virtual nsIFrame* CurrentItem(); diff --git a/layout/base/nsLayoutHistoryState.cpp b/layout/base/nsLayoutHistoryState.cpp index 31aedd928afd..9751b50851fb 100644 --- a/layout/base/nsLayoutHistoryState.cpp +++ b/layout/base/nsLayoutHistoryState.cpp @@ -12,9 +12,10 @@ #include "nsWeakReference.h" #include "nsClassHashtable.h" #include "nsPresState.h" +#include "mozilla/Attributes.h" -class nsLayoutHistoryState : public nsILayoutHistoryState, - public nsSupportsWeakReference +class nsLayoutHistoryState MOZ_FINAL : public nsILayoutHistoryState, + public nsSupportsWeakReference { public: NS_HIDDEN_(nsresult) Init(); diff --git a/layout/base/nsPresShell.h b/layout/base/nsPresShell.h index d42b643815a0..f6ea7f062e07 100644 --- a/layout/base/nsPresShell.h +++ b/layout/base/nsPresShell.h @@ -35,6 +35,7 @@ #include "nsGUIEvent.h" #include "nsContentUtils.h" #include "nsRefreshDriver.h" +#include "mozilla/Attributes.h" class nsRange; class nsIDragService; @@ -596,7 +597,7 @@ protected: // Check if aEvent is a mouse event and record the mouse location for later // synth mouse moves. void RecordMouseLocation(nsGUIEvent* aEvent); - class nsSynthMouseMoveEvent : public nsARefreshObserver { + class nsSynthMouseMoveEvent MOZ_FINAL : public nsARefreshObserver { public: nsSynthMouseMoveEvent(PresShell* aPresShell, bool aFromScroll) : mPresShell(aPresShell), mFromScroll(aFromScroll) { diff --git a/layout/base/nsRefreshDriver.h b/layout/base/nsRefreshDriver.h index 1eabc0f2cf40..0ae6c88e949e 100644 --- a/layout/base/nsRefreshDriver.h +++ b/layout/base/nsRefreshDriver.h @@ -20,6 +20,7 @@ #include "nsAutoPtr.h" #include "nsTHashtable.h" #include "nsHashKeys.h" +#include "mozilla/Attributes.h" class nsPresContext; class nsIPresShell; @@ -45,7 +46,7 @@ public: virtual void WillRefresh(mozilla::TimeStamp aTime) = 0; }; -class nsRefreshDriver : public nsITimerCallback { +class nsRefreshDriver MOZ_FINAL : public nsITimerCallback { public: nsRefreshDriver(nsPresContext *aPresContext); ~nsRefreshDriver(); diff --git a/layout/base/nsStyleSheetService.h b/layout/base/nsStyleSheetService.h index acc6735d7483..7cd7f63b6552 100644 --- a/layout/base/nsStyleSheetService.h +++ b/layout/base/nsStyleSheetService.h @@ -11,6 +11,7 @@ #include "nsIStyleSheetService.h" #include "nsCOMArray.h" #include "nsIStyleSheet.h" +#include "mozilla/Attributes.h" class nsISimpleEnumerator; class nsICategoryManager; @@ -21,7 +22,7 @@ class nsICategoryManager; #define NS_STYLESHEETSERVICE_CONTRACTID \ "@mozilla.org/content/style-sheet-service;1" -class nsStyleSheetService : public nsIStyleSheetService +class nsStyleSheetService MOZ_FINAL : public nsIStyleSheetService { public: nsStyleSheetService() NS_HIDDEN; diff --git a/layout/build/nsLayoutModule.cpp b/layout/build/nsLayoutModule.cpp index c6010235e3d5..def05a4306f5 100644 --- a/layout/build/nsLayoutModule.cpp +++ b/layout/build/nsLayoutModule.cpp @@ -52,6 +52,7 @@ #include "ThirdPartyUtil.h" #include "mozilla/Services.h" #include "nsStructuredCloneContainer.h" +#include "mozilla/Attributes.h" #include "nsIEventListenerService.h" #include "nsIFrameMessageManager.h" @@ -281,7 +282,7 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(SmsRequestManager) // references to objects in other component libraries that have already been // shutdown (and possibly unloaded if 60709 is ever fixed). -class LayoutShutdownObserver : public nsIObserver +class LayoutShutdownObserver MOZ_FINAL : public nsIObserver { public: NS_DECL_ISUPPORTS diff --git a/layout/forms/nsFileControlFrame.h b/layout/forms/nsFileControlFrame.h index d5e3931ae48c..923991851348 100644 --- a/layout/forms/nsFileControlFrame.h +++ b/layout/forms/nsFileControlFrame.h @@ -12,7 +12,6 @@ #include "nsIAnonymousContentCreator.h" #include "nsICapturePicker.h" #include "nsCOMPtr.h" -#include "mozilla/Attributes.h" class nsTextControlFrame; class nsIDOMDragEvent; @@ -78,13 +77,14 @@ protected: class MouseListener; friend class MouseListener; - class MouseListener MOZ_FINAL : public nsIDOMEventListener { + class MouseListener : public nsIDOMEventListener { public: NS_DECL_ISUPPORTS MouseListener(nsFileControlFrame* aFrame) : mFrame(aFrame) {} + virtual ~MouseListener() {} void ForgetFrame() { mFrame = nsnull; diff --git a/layout/forms/nsListControlFrame.cpp b/layout/forms/nsListControlFrame.cpp index c67e062855c8..74d4ee836b51 100644 --- a/layout/forms/nsListControlFrame.cpp +++ b/layout/forms/nsListControlFrame.cpp @@ -48,6 +48,7 @@ #include "nsDisplayList.h" #include "nsContentUtils.h" #include "mozilla/LookAndFeel.h" +#include "mozilla/Attributes.h" using namespace mozilla; @@ -74,7 +75,7 @@ DOMTimeStamp nsListControlFrame::gLastKeyTime = 0; * Frames are not refcounted so they can't be used as event listeners. *****************************************************************************/ -class nsListEventListener : public nsIDOMEventListener +class nsListEventListener MOZ_FINAL : public nsIDOMEventListener { public: nsListEventListener(nsListControlFrame *aFrame) diff --git a/layout/generic/nsAutoCopyListener.h b/layout/generic/nsAutoCopyListener.h index ca5f24d8d4b4..ca33cdc9a1b6 100644 --- a/layout/generic/nsAutoCopyListener.h +++ b/layout/generic/nsAutoCopyListener.h @@ -8,8 +8,9 @@ #include "nsISelectionListener.h" #include "nsISelectionPrivate.h" +#include "mozilla/Attributes.h" -class nsAutoCopyListener : public nsISelectionListener +class nsAutoCopyListener MOZ_FINAL : public nsISelectionListener { public: NS_DECL_ISUPPORTS diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp index 61472e7490fa..52e1c384dc71 100644 --- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -51,6 +51,7 @@ #include "nsSMILKeySpline.h" #include "nsSubDocumentFrame.h" #include "nsSVGOuterSVGFrame.h" +#include "mozilla/Attributes.h" using namespace mozilla; using namespace mozilla::dom; @@ -1281,7 +1282,7 @@ const double kCurrentVelocityWeighting = 0.25; const double kStopDecelerationWeighting = 0.4; // AsyncScroll has ref counting. -class nsGfxScrollFrameInner::AsyncScroll : public nsARefreshObserver { +class nsGfxScrollFrameInner::AsyncScroll MOZ_FINAL : public nsARefreshObserver { public: typedef mozilla::TimeStamp TimeStamp; typedef mozilla::TimeDuration TimeDuration; @@ -1553,7 +1554,7 @@ IsSmoothScrollingEnabled() return Preferences::GetBool(SMOOTH_SCROLL_PREF_NAME, false); } -class ScrollFrameActivityTracker : public nsExpirationTracker { +class ScrollFrameActivityTracker MOZ_FINAL : public nsExpirationTracker { public: // Wait for 3-4s between scrolls before we remove our layers. // That's 4 generations of 1s each. diff --git a/layout/generic/nsImageFrame.h b/layout/generic/nsImageFrame.h index 81450f94d6d4..6f0f4413c3c6 100644 --- a/layout/generic/nsImageFrame.h +++ b/layout/generic/nsImageFrame.h @@ -17,6 +17,7 @@ #include "nsDisplayList.h" #include "imgIContainer.h" +#include "mozilla/Attributes.h" class nsIFrame; class nsImageMap; @@ -309,8 +310,8 @@ private: nsresult LoadIcon(const nsAString& aSpec, nsPresContext *aPresContext, imgIRequest **aRequest); - class IconLoad : public nsIObserver, - public imgIDecoderObserver { + class IconLoad MOZ_FINAL : public nsIObserver, + public imgIDecoderObserver { // private class that wraps the data and logic needed for // broken image and loading image icons public: diff --git a/layout/generic/nsTextFrameThebes.cpp b/layout/generic/nsTextFrameThebes.cpp index 80ba15f08d79..2bcbfc26c79c 100644 --- a/layout/generic/nsTextFrameThebes.cpp +++ b/layout/generic/nsTextFrameThebes.cpp @@ -71,6 +71,7 @@ #include "mozilla/dom/Element.h" #include "mozilla/Util.h" // for DebugOnly #include "mozilla/LookAndFeel.h" +#include "mozilla/Attributes.h" #include "sampler.h" @@ -841,7 +842,7 @@ public: } }; - class BreakSink : public nsILineBreakSink { + class BreakSink MOZ_FINAL : public nsILineBreakSink { public: BreakSink(gfxTextRun* aTextRun, gfxContext* aContext, PRUint32 aOffsetIntoTextRun, bool aExistingTextRun) : diff --git a/layout/mathml/nsMathMLmactionFrame.h b/layout/mathml/nsMathMLmactionFrame.h index 0ff4bde93bdf..dec23b204583 100644 --- a/layout/mathml/nsMathMLmactionFrame.h +++ b/layout/mathml/nsMathMLmactionFrame.h @@ -9,6 +9,7 @@ #include "nsCOMPtr.h" #include "nsMathMLContainerFrame.h" #include "nsIDOMEventListener.h" +#include "mozilla/Attributes.h" // // -- bind actions to a subexpression @@ -60,7 +61,7 @@ private: void MouseOver(); void MouseOut(); - class MouseListener : public nsIDOMEventListener + class MouseListener MOZ_FINAL : public nsIDOMEventListener { NS_DECL_ISUPPORTS NS_DECL_NSIDOMEVENTLISTENER diff --git a/layout/style/nsDOMMediaQueryList.h b/layout/style/nsDOMMediaQueryList.h index de9f6d508a34..ba10c42822d2 100644 --- a/layout/style/nsDOMMediaQueryList.h +++ b/layout/style/nsDOMMediaQueryList.h @@ -14,12 +14,13 @@ #include "nsCOMPtr.h" #include "nsTArray.h" #include "prclist.h" +#include "mozilla/Attributes.h" class nsPresContext; class nsMediaList; -class nsDOMMediaQueryList : public nsIDOMMediaQueryList, - public PRCList +class nsDOMMediaQueryList MOZ_FINAL : public nsIDOMMediaQueryList, + public PRCList { public: // The caller who constructs is responsible for calling Evaluate diff --git a/layout/style/nsHTMLCSSStyleSheet.h b/layout/style/nsHTMLCSSStyleSheet.h index 793cb7db54a8..e9cfa1d04f8f 100644 --- a/layout/style/nsHTMLCSSStyleSheet.h +++ b/layout/style/nsHTMLCSSStyleSheet.h @@ -15,8 +15,8 @@ #include "nsIStyleSheet.h" #include "nsIStyleRuleProcessor.h" -class nsHTMLCSSStyleSheet : public nsIStyleSheet, - public nsIStyleRuleProcessor { +class nsHTMLCSSStyleSheet MOZ_FINAL : public nsIStyleSheet, + public nsIStyleRuleProcessor { public: nsHTMLCSSStyleSheet(); diff --git a/layout/style/nsHTMLStyleSheet.h b/layout/style/nsHTMLStyleSheet.h index 2c4130600c9c..804a77e39e5f 100644 --- a/layout/style/nsHTMLStyleSheet.h +++ b/layout/style/nsHTMLStyleSheet.h @@ -20,9 +20,13 @@ #include "pldhash.h" #include "nsCOMPtr.h" #include "nsColor.h" +#include "mozilla/Attributes.h" + class nsMappedAttributes; -class nsHTMLStyleSheet : public nsIStyleSheet, public nsIStyleRuleProcessor { +class nsHTMLStyleSheet MOZ_FINAL : public nsIStyleSheet, + public nsIStyleRuleProcessor +{ public: nsHTMLStyleSheet(void); nsresult Init(); @@ -83,7 +87,7 @@ private: class HTMLColorRule; friend class HTMLColorRule; - class HTMLColorRule : public nsIStyleRule { + class HTMLColorRule MOZ_FINAL : public nsIStyleRule { public: HTMLColorRule() {} @@ -103,9 +107,10 @@ private: class GenericTableRule; friend class GenericTableRule; - class GenericTableRule: public nsIStyleRule { + class GenericTableRule : public nsIStyleRule { public: GenericTableRule() {} + virtual ~GenericTableRule() {} NS_DECL_ISUPPORTS @@ -119,7 +124,7 @@ private: // this rule handles inheritance class TableTHRule; friend class TableTHRule; - class TableTHRule: public GenericTableRule { + class TableTHRule MOZ_FINAL : public GenericTableRule { public: TableTHRule() {} @@ -127,7 +132,7 @@ private: }; // Rule to handle quirk table colors - class TableQuirkColorRule : public GenericTableRule { + class TableQuirkColorRule MOZ_FINAL : public GenericTableRule { public: TableQuirkColorRule() {} diff --git a/layout/style/nsIMediaList.h b/layout/style/nsIMediaList.h index 9839b4a660b6..bfa50fd5d4c4 100644 --- a/layout/style/nsIMediaList.h +++ b/layout/style/nsIMediaList.h @@ -16,6 +16,7 @@ #include "nsTArray.h" #include "nsIAtom.h" #include "nsCSSValue.h" +#include "mozilla/Attributes.h" class nsPresContext; class nsCSSStyleSheet; @@ -142,7 +143,7 @@ private: nsTArray mExpressions; }; -class nsMediaList : public nsIDOMMediaList { +class nsMediaList MOZ_FINAL : public nsIDOMMediaList { public: nsMediaList(); diff --git a/layout/style/nsLayoutStylesheetCache.h b/layout/style/nsLayoutStylesheetCache.h index e8b78a7b65a5..7d697f348894 100644 --- a/layout/style/nsLayoutStylesheetCache.h +++ b/layout/style/nsLayoutStylesheetCache.h @@ -9,6 +9,7 @@ #include "nsCOMPtr.h" #include "nsIObserver.h" #include "nsAutoPtr.h" +#include "mozilla/Attributes.h" class nsIFile; class nsCSSStyleSheet; @@ -22,7 +23,7 @@ class Loader; class nsIMemoryReporter; -class nsLayoutStylesheetCache +class nsLayoutStylesheetCache MOZ_FINAL : public nsIObserver { NS_DECL_ISUPPORTS diff --git a/layout/style/nsStyleSet.h b/layout/style/nsStyleSet.h index 87ac1050b928..a91e90563753 100644 --- a/layout/style/nsStyleSet.h +++ b/layout/style/nsStyleSet.h @@ -24,6 +24,7 @@ #include "nsIStyleRule.h" #include "nsCSSPseudoElements.h" #include "nsCSSAnonBoxes.h" +#include "mozilla/Attributes.h" class nsIURI; class nsCSSFontFaceRule; @@ -32,7 +33,7 @@ class nsRuleWalker; struct RuleProcessorData; struct TreeMatchContext; -class nsEmptyStyleRule : public nsIStyleRule +class nsEmptyStyleRule MOZ_FINAL : public nsIStyleRule { NS_DECL_ISUPPORTS virtual void MapRuleInfoInto(nsRuleData* aRuleData); @@ -41,7 +42,7 @@ class nsEmptyStyleRule : public nsIStyleRule #endif }; -class nsInitialStyleRule : public nsIStyleRule +class nsInitialStyleRule MOZ_FINAL : public nsIStyleRule { NS_DECL_ISUPPORTS virtual void MapRuleInfoInto(nsRuleData* aRuleData); diff --git a/layout/xul/base/public/nsXULPopupManager.h b/layout/xul/base/public/nsXULPopupManager.h index f7c2b607473f..fea4b2747c4a 100644 --- a/layout/xul/base/public/nsXULPopupManager.h +++ b/layout/xul/base/public/nsXULPopupManager.h @@ -22,6 +22,7 @@ #include "nsIReflowCallback.h" #include "nsThreadUtils.h" #include "nsStyleConsts.h" +#include "mozilla/Attributes.h" // X.h defines KeyPress #ifdef KeyPress @@ -268,10 +269,10 @@ private: CloseMenuMode mCloseMenuMode; }; -class nsXULPopupManager : public nsIDOMEventListener, - public nsIRollupListener, - public nsITimerCallback, - public nsIObserver +class nsXULPopupManager MOZ_FINAL : public nsIDOMEventListener, + public nsIRollupListener, + public nsITimerCallback, + public nsIObserver { public: diff --git a/layout/xul/base/src/nsMenuFrame.h b/layout/xul/base/src/nsMenuFrame.h index ea6276e14f7b..dc4b7e49acff 100644 --- a/layout/xul/base/src/nsMenuFrame.h +++ b/layout/xul/base/src/nsMenuFrame.h @@ -21,6 +21,7 @@ #include "nsXULPopupManager.h" #include "nsITimer.h" #include "nsIContent.h" +#include "mozilla/Attributes.h" nsIFrame* NS_NewMenuFrame(nsIPresShell* aPresShell, nsStyleContext* aContext); nsIFrame* NS_NewMenuItemFrame(nsIPresShell* aPresShell, nsStyleContext* aContext); @@ -55,7 +56,7 @@ class nsMenuFrame; * to it. The callback is delegated to the contained nsMenuFrame as long as * the contained nsMenuFrame has not been destroyed. */ -class nsMenuTimerMediator : public nsITimerCallback +class nsMenuTimerMediator MOZ_FINAL : public nsITimerCallback { public: nsMenuTimerMediator(nsMenuFrame* aFrame); diff --git a/layout/xul/base/src/nsXULTooltipListener.h b/layout/xul/base/src/nsXULTooltipListener.h index 9f044a620799..1cf4395eb3e0 100644 --- a/layout/xul/base/src/nsXULTooltipListener.h +++ b/layout/xul/base/src/nsXULTooltipListener.h @@ -18,8 +18,9 @@ #include "nsITreeColumns.h" #endif #include "nsWeakPtr.h" +#include "mozilla/Attributes.h" -class nsXULTooltipListener : public nsIDOMEventListener +class nsXULTooltipListener MOZ_FINAL : public nsIDOMEventListener { public: NS_DECL_ISUPPORTS diff --git a/layout/xul/base/src/tree/src/nsTreeSelection.h b/layout/xul/base/src/tree/src/nsTreeSelection.h index 5701bc3fed2b..14788a64c2e2 100644 --- a/layout/xul/base/src/tree/src/nsTreeSelection.h +++ b/layout/xul/base/src/tree/src/nsTreeSelection.h @@ -11,11 +11,12 @@ #include "nsITreeColumns.h" #include "nsITimer.h" #include "nsCycleCollectionParticipant.h" +#include "mozilla/Attributes.h" class nsITreeBoxObject; struct nsTreeRange; -class nsTreeSelection : public nsINativeTreeSelection +class nsTreeSelection MOZ_FINAL : public nsINativeTreeSelection { public: nsTreeSelection(nsITreeBoxObject* aTree);