Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Side by Side Diff: third_party/WebKit/Source/core/css/CSSStyleSheet.h

Issue 1913833002: Current work-in-progress crbug.com/567021 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More assert fixes Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details. 13 * Library General Public License for more details.
14 * 14 *
15 * You should have received a copy of the GNU Library General Public License 15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to 16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA. 18 * Boston, MA 02110-1301, USA.
19 */ 19 */
20 20
21 #ifndef CSSStyleSheet_h 21 #ifndef CSSStyleSheet_h
22 #define CSSStyleSheet_h 22 #define CSSStyleSheet_h
23 23
24 #include "core/CoreExport.h" 24 #include "core/CoreExport.h"
25 #include "core/css/CSSRule.h" 25 #include "core/css/CSSRule.h"
26 #include "core/css/MediaQueryEvaluator.h"
26 #include "core/css/StyleSheet.h" 27 #include "core/css/StyleSheet.h"
27 #include "platform/heap/Handle.h" 28 #include "platform/heap/Handle.h"
28 #include "wtf/Noncopyable.h" 29 #include "wtf/Noncopyable.h"
29 #include "wtf/text/TextPosition.h" 30 #include "wtf/text/TextPosition.h"
30 31
31 namespace blink { 32 namespace blink {
32 33
33 class CSSImportRule; 34 class CSSImportRule;
34 class CSSRule; 35 class CSSRule;
35 class CSSRuleList; 36 class CSSRuleList;
36 class CSSStyleSheet; 37 class CSSStyleSheet;
37 class Document; 38 class Document;
38 class ExceptionState; 39 class ExceptionState;
39 class MediaQuerySet; 40 class MediaQuerySet;
40 class SecurityOrigin; 41 class SecurityOrigin;
41 class StyleSheetContents; 42 class StyleSheetContents;
42 43
43 enum StyleSheetUpdateType {
44 PartialRuleUpdate,
45 EntireStyleSheetUpdate
46 };
47
48 class CORE_EXPORT CSSStyleSheet final : public StyleSheet { 44 class CORE_EXPORT CSSStyleSheet final : public StyleSheet {
49 DEFINE_WRAPPERTYPEINFO(); 45 DEFINE_WRAPPERTYPEINFO();
50 WTF_MAKE_NONCOPYABLE(CSSStyleSheet); 46 WTF_MAKE_NONCOPYABLE(CSSStyleSheet);
51 public: 47 public:
52 static CSSStyleSheet* create(StyleSheetContents*, CSSImportRule* ownerRule = 0); 48 static CSSStyleSheet* create(StyleSheetContents*, CSSImportRule* ownerRule = 0);
53 static CSSStyleSheet* create(StyleSheetContents*, Node* ownerNode); 49 static CSSStyleSheet* create(StyleSheetContents*, Node* ownerNode);
54 static CSSStyleSheet* createInline(Node*, const KURL&, const TextPosition& s tartPosition = TextPosition::minimumPosition(), const String& encoding = String( )); 50 static CSSStyleSheet* createInline(Node*, const KURL&, const TextPosition& s tartPosition = TextPosition::minimumPosition(), const String& encoding = String( ));
55 static CSSStyleSheet* createInline(StyleSheetContents*, Node* ownerNode, con st TextPosition& startPosition = TextPosition::minimumPosition()); 51 static CSSStyleSheet* createInline(StyleSheetContents*, Node* ownerNode, con st TextPosition& startPosition = TextPosition::minimumPosition());
56 52
57 ~CSSStyleSheet() override; 53 ~CSSStyleSheet() override;
(...skipping 24 matching lines...) Expand all
82 void clearOwnerNode() override; 78 void clearOwnerNode() override;
83 79
84 CSSRule* ownerRule() const override { return m_ownerRule; } 80 CSSRule* ownerRule() const override { return m_ownerRule; }
85 KURL baseURL() const override; 81 KURL baseURL() const override;
86 bool isLoading() const override; 82 bool isLoading() const override;
87 83
88 void clearOwnerRule() { m_ownerRule = nullptr; } 84 void clearOwnerRule() { m_ownerRule = nullptr; }
89 Document* ownerDocument() const; 85 Document* ownerDocument() const;
90 MediaQuerySet* mediaQueries() const { return m_mediaQueries.get(); } 86 MediaQuerySet* mediaQueries() const { return m_mediaQueries.get(); }
91 void setMediaQueries(MediaQuerySet*); 87 void setMediaQueries(MediaQuerySet*);
88 bool matchesMediaQueries(const MediaQueryEvaluator&);
89 const MediaQueryResultList& viewportDependentMediaQueryResults() const { ret urn m_viewportDependentMediaQueryResults; }
90 const MediaQueryResultList& deviceDependentMediaQueryResults() const { retur n m_deviceDependentMediaQueryResults; }
92 void setTitle(const String& title) { m_title = title; } 91 void setTitle(const String& title) { m_title = title; }
93 // Set by LinkStyle iff CORS-enabled fetch of stylesheet succeeded from this origin. 92 // Set by LinkStyle iff CORS-enabled fetch of stylesheet succeeded from this origin.
94 void setAllowRuleAccessFromOrigin(PassRefPtr<SecurityOrigin> allowedOrigin); 93 void setAllowRuleAccessFromOrigin(PassRefPtr<SecurityOrigin> allowedOrigin);
95 94
96 class RuleMutationScope { 95 class RuleMutationScope {
97 WTF_MAKE_NONCOPYABLE(RuleMutationScope); 96 WTF_MAKE_NONCOPYABLE(RuleMutationScope);
98 STACK_ALLOCATED(); 97 STACK_ALLOCATED();
99 public: 98 public:
100 explicit RuleMutationScope(CSSStyleSheet*); 99 explicit RuleMutationScope(CSSStyleSheet*);
101 explicit RuleMutationScope(CSSRule*); 100 explicit RuleMutationScope(CSSRule*);
102 ~RuleMutationScope(); 101 ~RuleMutationScope();
103 102
104 private: 103 private:
105 Member<CSSStyleSheet> m_styleSheet; 104 Member<CSSStyleSheet> m_styleSheet;
106 }; 105 };
107 106
108 void willMutateRules(); 107 void willMutateRules();
109 void didMutateRules(); 108 void didMutateRules();
110 void didMutate(StyleSheetUpdateType = PartialRuleUpdate); 109 void didMutate();
111 110
112 StyleSheetContents* contents() const { return m_contents.get(); } 111 StyleSheetContents* contents() const { return m_contents.get(); }
113 112
114 bool isInline() const { return m_isInlineStylesheet; } 113 bool isInline() const { return m_isInlineStylesheet; }
115 TextPosition startPositionInSource() const { return m_startPosition; } 114 TextPosition startPositionInSource() const { return m_startPosition; }
116 115
117 bool sheetLoaded(); 116 bool sheetLoaded();
118 bool loadCompleted() const { return m_loadCompleted; } 117 bool loadCompleted() const { return m_loadCompleted; }
119 void startLoadingDynamicSheet(); 118 void startLoadingDynamicSheet();
120 void setText(const String&); 119 void setText(const String&);
(...skipping 11 matching lines...) Expand all
132 131
133 bool canAccessRules() const; 132 bool canAccessRules() const;
134 133
135 void setLoadCompleted(bool); 134 void setLoadCompleted(bool);
136 135
137 Member<StyleSheetContents> m_contents; 136 Member<StyleSheetContents> m_contents;
138 bool m_isInlineStylesheet; 137 bool m_isInlineStylesheet;
139 bool m_isDisabled; 138 bool m_isDisabled;
140 String m_title; 139 String m_title;
141 Member<MediaQuerySet> m_mediaQueries; 140 Member<MediaQuerySet> m_mediaQueries;
141 MediaQueryResultList m_viewportDependentMediaQueryResults;
142 MediaQueryResultList m_deviceDependentMediaQueryResults;
142 143
143 RefPtr<SecurityOrigin> m_allowRuleAccessFromOrigin; 144 RefPtr<SecurityOrigin> m_allowRuleAccessFromOrigin;
144 145
145 Member<Node> m_ownerNode; 146 Member<Node> m_ownerNode;
146 Member<CSSRule> m_ownerRule; 147 Member<CSSRule> m_ownerRule;
147 148
148 TextPosition m_startPosition; 149 TextPosition m_startPosition;
149 bool m_loadCompleted; 150 bool m_loadCompleted;
150 mutable Member<MediaList> m_mediaCSSOMWrapper; 151 mutable Member<MediaList> m_mediaCSSOMWrapper;
151 mutable HeapVector<Member<CSSRule>> m_childRuleCSSOMWrappers; 152 mutable HeapVector<Member<CSSRule>> m_childRuleCSSOMWrappers;
(...skipping 18 matching lines...) Expand all
170 { 171 {
171 if (m_styleSheet) 172 if (m_styleSheet)
172 m_styleSheet->didMutateRules(); 173 m_styleSheet->didMutateRules();
173 } 174 }
174 175
175 DEFINE_TYPE_CASTS(CSSStyleSheet, StyleSheet, sheet, sheet->isCSSStyleSheet(), sh eet.isCSSStyleSheet()); 176 DEFINE_TYPE_CASTS(CSSStyleSheet, StyleSheet, sheet, sheet->isCSSStyleSheet(), sh eet.isCSSStyleSheet());
176 177
177 } // namespace blink 178 } // namespace blink
178 179
179 #endif 180 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSGlobalRuleSet.cpp ('k') | third_party/WebKit/Source/core/css/CSSStyleSheet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698