1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/style/nsHTMLCSSStyleSheet.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,59 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +/* 1.10 + * style sheet and style rule processor representing style attributes 1.11 + */ 1.12 + 1.13 +#ifndef nsHTMLCSSStyleSheet_h_ 1.14 +#define nsHTMLCSSStyleSheet_h_ 1.15 + 1.16 +#include "mozilla/Attributes.h" 1.17 +#include "mozilla/MemoryReporting.h" 1.18 + 1.19 +#include "nsDataHashtable.h" 1.20 +#include "nsIStyleRuleProcessor.h" 1.21 + 1.22 +struct MiscContainer; 1.23 + 1.24 +class nsHTMLCSSStyleSheet MOZ_FINAL : public nsIStyleRuleProcessor 1.25 +{ 1.26 +public: 1.27 + nsHTMLCSSStyleSheet(); 1.28 + ~nsHTMLCSSStyleSheet(); 1.29 + 1.30 + NS_DECL_ISUPPORTS 1.31 + 1.32 + // nsIStyleRuleProcessor 1.33 + virtual void RulesMatching(ElementRuleProcessorData* aData) MOZ_OVERRIDE; 1.34 + virtual void RulesMatching(PseudoElementRuleProcessorData* aData) MOZ_OVERRIDE; 1.35 + virtual void RulesMatching(AnonBoxRuleProcessorData* aData) MOZ_OVERRIDE; 1.36 +#ifdef MOZ_XUL 1.37 + virtual void RulesMatching(XULTreeRuleProcessorData* aData) MOZ_OVERRIDE; 1.38 +#endif 1.39 + virtual nsRestyleHint HasStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; 1.40 + virtual nsRestyleHint HasStateDependentStyle(PseudoElementStateRuleProcessorData* aData) MOZ_OVERRIDE; 1.41 + virtual bool HasDocumentStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; 1.42 + virtual nsRestyleHint 1.43 + HasAttributeDependentStyle(AttributeRuleProcessorData* aData) MOZ_OVERRIDE; 1.44 + virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) MOZ_OVERRIDE; 1.45 + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) 1.46 + const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; 1.47 + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) 1.48 + const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; 1.49 + 1.50 + void CacheStyleAttr(const nsAString& aSerialized, MiscContainer* aValue); 1.51 + void EvictStyleAttr(const nsAString& aSerialized, MiscContainer* aValue); 1.52 + MiscContainer* LookupStyleAttr(const nsAString& aSerialized); 1.53 + 1.54 +private: 1.55 + nsHTMLCSSStyleSheet(const nsHTMLCSSStyleSheet& aCopy) MOZ_DELETE; 1.56 + nsHTMLCSSStyleSheet& operator=(const nsHTMLCSSStyleSheet& aCopy) MOZ_DELETE; 1.57 + 1.58 +protected: 1.59 + nsDataHashtable<nsStringHashKey, MiscContainer*> mCachedStyleAttrs; 1.60 +}; 1.61 + 1.62 +#endif /* !defined(nsHTMLCSSStyleSheet_h_) */