From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/css/StyleSheetContents.h | 73 ++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 32 deletions(-) (limited to 'Source/WebCore/css/StyleSheetContents.h') diff --git a/Source/WebCore/css/StyleSheetContents.h b/Source/WebCore/css/StyleSheetContents.h index 817e723a0..da6f6591d 100644 --- a/Source/WebCore/css/StyleSheetContents.h +++ b/Source/WebCore/css/StyleSheetContents.h @@ -18,55 +18,61 @@ * Boston, MA 02110-1301, USA. */ -#ifndef StyleSheetContents_h -#define StyleSheetContents_h +#pragma once #include "CSSParserMode.h" +#include "CachePolicy.h" #include "URL.h" #include #include #include #include +#include #include +#include namespace WebCore { class CSSStyleSheet; class CachedCSSStyleSheet; +class CachedResource; class Document; class Node; class SecurityOrigin; class StyleRuleBase; class StyleRuleImport; +class StyleRuleNamespace; -class StyleSheetContents : public RefCounted { +class StyleSheetContents final : public RefCounted { public: - static PassRef create(const CSSParserContext& context = CSSParserContext(CSSStrictMode)) + static Ref create(const CSSParserContext& context = CSSParserContext(HTMLStandardMode)) { return adoptRef(*new StyleSheetContents(0, String(), context)); } - static PassRef create(const String& originalURL, const CSSParserContext& context) + static Ref create(const String& originalURL, const CSSParserContext& context) { return adoptRef(*new StyleSheetContents(0, originalURL, context)); } - static PassRef create(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext& context) + static Ref create(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext& context) { return adoptRef(*new StyleSheetContents(ownerRule, originalURL, context)); } - ~StyleSheetContents(); + WEBCORE_EXPORT ~StyleSheetContents(); const CSSParserContext& parserContext() const { return m_parserContext; } - - const AtomicString& determineNamespace(const AtomicString& prefix); + + const AtomicString& defaultNamespace() { return m_defaultNamespace; } + const AtomicString& namespaceURIFromPrefix(const AtomicString& prefix); void parseAuthorStyleSheet(const CachedCSSStyleSheet*, const SecurityOrigin*); - bool parseString(const String&); - bool parseStringAtLine(const String&, int startLineNumber, bool); + WEBCORE_EXPORT bool parseString(const String&); bool isCacheable() const; bool isLoading() const; + bool subresourcesAllowReuse(CachePolicy) const; + WEBCORE_EXPORT bool isLoadingSubresources() const; void checkLoaded(); void startLoadingDynamicSheet(); @@ -78,10 +84,9 @@ public: const String& charset() const { return m_parserContext.charset; } bool loadCompleted() const { return m_loadCompleted; } - bool hasFailedOrCanceledSubresources() const; URL completeURL(const String& url) const; - void addSubresourceStyleURLs(ListHashSet&); + bool traverseSubresources(const std::function& handler) const; void setIsUserStyleSheet(bool b) { m_isUserStyleSheet = b; } bool isUserStyleSheet() const { return m_isUserStyleSheet; } @@ -89,17 +94,17 @@ public: bool hasSyntacticallyValidCSSHeader() const { return m_hasSyntacticallyValidCSSHeader; } void parserAddNamespace(const AtomicString& prefix, const AtomicString& uri); - void parserAppendRule(PassRefPtr); + void parserAppendRule(Ref&&); void parserSetEncodingFromCharsetRule(const String& encoding); - void parserSetUsesRemUnits(bool b) { m_usesRemUnits = b; } + void parserSetUsesStyleBasedEditability() { m_usesStyleBasedEditability = true; } void clearRules(); - bool hasCharsetRule() const { return !m_encodingFromCharsetRule.isNull(); } String encodingFromCharsetRule() const { return m_encodingFromCharsetRule; } // Rules other than @charset and @import. const Vector>& childRules() const { return m_childRules; } const Vector>& importRules() const { return m_importRules; } + const Vector>& namespaceRules() const { return m_namespaceRules; } void notifyLoadedSheet(const CachedCSSStyleSheet*); @@ -116,14 +121,14 @@ public: unsigned ruleCount() const; StyleRuleBase* ruleAt(unsigned index) const; - bool usesRemUnits() const { return m_usesRemUnits; } + bool usesStyleBasedEditability() const { return m_usesStyleBasedEditability; } unsigned estimatedSizeInBytes() const; - bool wrapperInsertRule(PassRefPtr, unsigned index); + bool wrapperInsertRule(Ref&&, unsigned index); void wrapperDeleteRule(unsigned index); - PassRef copy() const { return adoptRef(*new StyleSheetContents(*this)); } + Ref copy() const { return adoptRef(*new StyleSheetContents(*this)); } void registerClient(CSSStyleSheet*); void unregisterClient(CSSStyleSheet*); @@ -132,14 +137,16 @@ public: bool isMutable() const { return m_isMutable; } void setMutable() { m_isMutable = true; } - bool isInMemoryCache() const { return m_isInMemoryCache; } + bool isInMemoryCache() const { return m_inMemoryCacheCount; } void addedToMemoryCache(); void removedFromMemoryCache(); void shrinkToFit(); + WeakPtr createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); } + private: - StyleSheetContents(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext&); + WEBCORE_EXPORT StyleSheetContents(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext&); StyleSheetContents(const StyleSheetContents&); void clearCharsetRule(); @@ -150,23 +157,25 @@ private: String m_encodingFromCharsetRule; Vector> m_importRules; + Vector> m_namespaceRules; Vector> m_childRules; typedef HashMap PrefixNamespaceURIMap; PrefixNamespaceURIMap m_namespaces; + AtomicString m_defaultNamespace; + + bool m_isUserStyleSheet; + bool m_loadCompleted { false }; + bool m_hasSyntacticallyValidCSSHeader { true }; + bool m_didLoadErrorOccur { false }; + bool m_usesStyleBasedEditability { false }; + bool m_isMutable { false }; + unsigned m_inMemoryCacheCount { 0 }; - bool m_loadCompleted : 1; - bool m_isUserStyleSheet : 1; - bool m_hasSyntacticallyValidCSSHeader : 1; - bool m_didLoadErrorOccur : 1; - bool m_usesRemUnits : 1; - bool m_isMutable : 1; - bool m_isInMemoryCache : 1; - CSSParserContext m_parserContext; Vector m_clients; + + WeakPtrFactory m_weakPtrFactory { this }; }; -} // namespace - -#endif +} // namespace WebCore -- cgit v1.2.1