diff options
Diffstat (limited to 'Source/WebCore/css/StyleSheetContents.h')
| -rw-r--r-- | Source/WebCore/css/StyleSheetContents.h | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/Source/WebCore/css/StyleSheetContents.h b/Source/WebCore/css/StyleSheetContents.h index 6b4979628..f25662172 100644 --- a/Source/WebCore/css/StyleSheetContents.h +++ b/Source/WebCore/css/StyleSheetContents.h @@ -22,17 +22,20 @@ #define StyleSheetContents_h #include "CSSParserMode.h" -#include "KURL.h" +#include "CachePolicy.h" +#include "URL.h" #include <wtf/HashMap.h> #include <wtf/ListHashSet.h> #include <wtf/RefCounted.h> #include <wtf/Vector.h> #include <wtf/text/AtomicStringHash.h> +#include <wtf/text/TextPosition.h> namespace WebCore { class CSSStyleSheet; class CachedCSSStyleSheet; +class CachedResource; class Document; class Node; class SecurityOrigin; @@ -41,32 +44,34 @@ class StyleRuleImport; class StyleSheetContents : public RefCounted<StyleSheetContents> { public: - static PassRefPtr<StyleSheetContents> create(const CSSParserContext& context = CSSParserContext(CSSStrictMode)) + static Ref<StyleSheetContents> create(const CSSParserContext& context = CSSParserContext(CSSStrictMode)) { - return adoptRef(new StyleSheetContents(0, String(), context)); + return adoptRef(*new StyleSheetContents(0, String(), context)); } - static PassRefPtr<StyleSheetContents> create(const String& originalURL, const CSSParserContext& context) + static Ref<StyleSheetContents> create(const String& originalURL, const CSSParserContext& context) { - return adoptRef(new StyleSheetContents(0, originalURL, context)); + return adoptRef(*new StyleSheetContents(0, originalURL, context)); } - static PassRefPtr<StyleSheetContents> create(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext& context) + static Ref<StyleSheetContents> create(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext& context) { - return adoptRef(new StyleSheetContents(ownerRule, originalURL, 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); void parseAuthorStyleSheet(const CachedCSSStyleSheet*, const SecurityOrigin*); - bool parseString(const String&); - bool parseStringAtLine(const String&, int startLineNumber, bool); + WEBCORE_EXPORT bool parseString(const String&); + bool parseStringAtPosition(const String&, const TextPosition&, bool createdByParser); bool isCacheable() const; bool isLoading() const; + bool subresourcesAllowReuse(CachePolicy) const; + WEBCORE_EXPORT bool isLoadingSubresources() const; void checkLoaded(); void startLoadingDynamicSheet(); @@ -78,10 +83,10 @@ public: const String& charset() const { return m_parserContext.charset; } bool loadCompleted() const { return m_loadCompleted; } - bool hasFailedOrCanceledSubresources() const; - KURL completeURL(const String& url) const; - void addSubresourceStyleURLs(ListHashSet<KURL>&); + URL completeURL(const String& url) const; + void addSubresourceStyleURLs(ListHashSet<URL>&); + bool traverseSubresources(const std::function<bool (const CachedResource&)>& handler) const; void setIsUserStyleSheet(bool b) { m_isUserStyleSheet = b; } bool isUserStyleSheet() const { return m_isUserStyleSheet; } @@ -91,15 +96,16 @@ public: void parserAddNamespace(const AtomicString& prefix, const AtomicString& uri); void parserAppendRule(PassRefPtr<StyleRuleBase>); void parserSetEncodingFromCharsetRule(const String& encoding); - void parserSetUsesRemUnits(bool b) { m_usesRemUnits = b; } + void parserSetUsesRemUnits() { m_usesRemUnits = true; } + 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<RefPtr<StyleRuleBase> >& childRules() const { return m_childRules; } - const Vector<RefPtr<StyleRuleImport> >& importRules() const { return m_importRules; } + const Vector<RefPtr<StyleRuleBase>>& childRules() const { return m_childRules; } + const Vector<RefPtr<StyleRuleImport>>& importRules() const { return m_importRules; } void notifyLoadedSheet(const CachedCSSStyleSheet*); @@ -111,19 +117,20 @@ public: // this style sheet. This property probably isn't useful for much except // the JavaScript binding (which needs to use this value for security). String originalURL() const { return m_originalURL; } - const KURL& baseURL() const { return m_parserContext.baseURL; } + const URL& baseURL() const { return m_parserContext.baseURL; } 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<StyleRuleBase>, unsigned index); void wrapperDeleteRule(unsigned index); - PassRefPtr<StyleSheetContents> copy() const { return adoptRef(new StyleSheetContents(*this)); } + Ref<StyleSheetContents> copy() const { return adoptRef(*new StyleSheetContents(*this)); } void registerClient(CSSStyleSheet*); void unregisterClient(CSSStyleSheet*); @@ -139,7 +146,7 @@ public: void shrinkToFit(); private: - StyleSheetContents(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext&); + WEBCORE_EXPORT StyleSheetContents(StyleRuleImport* ownerRule, const String& originalURL, const CSSParserContext&); StyleSheetContents(const StyleSheetContents&); void clearCharsetRule(); @@ -149,8 +156,8 @@ private: String m_originalURL; String m_encodingFromCharsetRule; - Vector<RefPtr<StyleRuleImport> > m_importRules; - Vector<RefPtr<StyleRuleBase> > m_childRules; + Vector<RefPtr<StyleRuleImport>> m_importRules; + Vector<RefPtr<StyleRuleBase>> m_childRules; typedef HashMap<AtomicString, AtomicString> PrefixNamespaceURIMap; PrefixNamespaceURIMap m_namespaces; @@ -159,6 +166,7 @@ private: bool m_hasSyntacticallyValidCSSHeader : 1; bool m_didLoadErrorOccur : 1; bool m_usesRemUnits : 1; + bool m_usesStyleBasedEditability : 1; bool m_isMutable : 1; bool m_isInMemoryCache : 1; |
