OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010, Google Inc. All rights reserved. | 2 * Copyright (C) 2010, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 }; | 92 }; |
93 | 93 |
94 static CSSStyleRule* asCSSStyleRule(CSSRule*); | 94 static CSSStyleRule* asCSSStyleRule(CSSRule*); |
95 static CSSMediaRule* asCSSMediaRule(CSSRule*); | 95 static CSSMediaRule* asCSSMediaRule(CSSRule*); |
96 | 96 |
97 static PassOwnPtrWillBeRawPtr<InspectorCSSAgent> create(InspectorDOMAgent* d
omAgent, InspectorPageAgent* pageAgent, InspectorResourceAgent* resourceAgent) | 97 static PassOwnPtrWillBeRawPtr<InspectorCSSAgent> create(InspectorDOMAgent* d
omAgent, InspectorPageAgent* pageAgent, InspectorResourceAgent* resourceAgent) |
98 { | 98 { |
99 return adoptPtrWillBeNoop(new InspectorCSSAgent(domAgent, pageAgent, res
ourceAgent)); | 99 return adoptPtrWillBeNoop(new InspectorCSSAgent(domAgent, pageAgent, res
ourceAgent)); |
100 } | 100 } |
101 | 101 |
102 static void collectAllDocumentStyleSheets(Document*, WillBeHeapVector<RawPtr
WillBeMember<CSSStyleSheet> >&); | 102 static void collectAllDocumentStyleSheets(Document*, WillBeHeapVector<RawPtr
WillBeMember<CSSStyleSheet>>&); |
103 | 103 |
104 virtual ~InspectorCSSAgent(); | 104 virtual ~InspectorCSSAgent(); |
105 virtual void trace(Visitor*) override; | 105 virtual void trace(Visitor*) override; |
106 | 106 |
107 bool forcePseudoState(Element*, CSSSelector::PseudoType); | 107 bool forcePseudoState(Element*, CSSSelector::PseudoType); |
108 virtual void setFrontend(InspectorFrontend*) override; | 108 virtual void setFrontend(InspectorFrontend*) override; |
109 virtual void clearFrontend() override; | 109 virtual void clearFrontend() override; |
110 virtual void discardAgent() override; | 110 virtual void discardAgent() override; |
111 virtual void didCommitLoadForMainFrame() override; | 111 virtual void didCommitLoadForMainFrame() override; |
112 virtual void restore() override; | 112 virtual void restore() override; |
113 virtual void flushPendingProtocolNotifications() override; | 113 virtual void flushPendingProtocolNotifications() override; |
114 virtual void enable(ErrorString*, PassRefPtrWillBeRawPtr<EnableCallback>) ov
erride; | 114 virtual void enable(ErrorString*, PassRefPtrWillBeRawPtr<EnableCallback>) ov
erride; |
115 virtual void disable(ErrorString*) override; | 115 virtual void disable(ErrorString*) override; |
116 void reset(); | 116 void reset(); |
117 void mediaQueryResultChanged(); | 117 void mediaQueryResultChanged(); |
118 void willMutateRules(); | 118 void willMutateRules(); |
119 void didMutateRules(CSSStyleSheet*); | 119 void didMutateRules(CSSStyleSheet*); |
120 void willMutateStyle(); | 120 void willMutateStyle(); |
121 void didMutateStyle(CSSStyleDeclaration*, bool); | 121 void didMutateStyle(CSSStyleDeclaration*, bool); |
122 | 122 |
123 void activeStyleSheetsUpdated(Document*); | 123 void activeStyleSheetsUpdated(Document*); |
124 void documentDetached(Document*); | 124 void documentDetached(Document*); |
125 | 125 |
126 virtual void getComputedStyleForNode(ErrorString*, int nodeId, RefPtr<TypeBu
ilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >&) override; | 126 virtual void getComputedStyleForNode(ErrorString*, int nodeId, RefPtr<TypeBu
ilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty>>&) override; |
127 virtual void getPlatformFontsForNode(ErrorString*, int nodeId, String* cssFa
milyName, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PlatformFontUsage> >&) ove
rride; | 127 virtual void getPlatformFontsForNode(ErrorString*, int nodeId, String* cssFa
milyName, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PlatformFontUsage>>&) over
ride; |
128 virtual void getInlineStylesForNode(ErrorString*, int nodeId, RefPtr<TypeBui
lder::CSS::CSSStyle>& inlineStyle, RefPtr<TypeBuilder::CSS::CSSStyle>& attribute
s) override; | 128 virtual void getInlineStylesForNode(ErrorString*, int nodeId, RefPtr<TypeBui
lder::CSS::CSSStyle>& inlineStyle, RefPtr<TypeBuilder::CSS::CSSStyle>& attribute
s) override; |
129 virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const bool* e
xcludePseudo, const bool* excludeInherited, RefPtr<TypeBuilder::Array<TypeBuilde
r::CSS::RuleMatch> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CS
S::PseudoIdMatches> >&, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedSty
leEntry> >& inheritedEntries) override; | 129 virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const bool* e
xcludePseudo, const bool* excludeInherited, RefPtr<TypeBuilder::Array<TypeBuilde
r::CSS::RuleMatch>>& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS
::PseudoIdMatches>>&, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyle
Entry>>& inheritedEntries) override; |
130 virtual void getStyleSheetText(ErrorString*, const String& styleSheetId, Str
ing* result) override; | 130 virtual void getStyleSheetText(ErrorString*, const String& styleSheetId, Str
ing* result) override; |
131 virtual void setStyleSheetText(ErrorString*, const String& styleSheetId, con
st String& text) override; | 131 virtual void setStyleSheetText(ErrorString*, const String& styleSheetId, con
st String& text) override; |
132 virtual void setPropertyText(ErrorString*, const String& styleSheetId, const
RefPtr<JSONObject>& range, const String& text, RefPtr<TypeBuilder::CSS::CSSStyl
e>& result) override; | 132 virtual void setPropertyText(ErrorString*, const String& styleSheetId, const
RefPtr<JSONObject>& range, const String& text, RefPtr<TypeBuilder::CSS::CSSStyl
e>& result) override; |
133 virtual void setRuleSelector(ErrorString*, const String& styleSheetId, const
RefPtr<JSONObject>& range, const String& selector, RefPtr<TypeBuilder::CSS::CSS
Rule>& result) override; | 133 virtual void setRuleSelector(ErrorString*, const String& styleSheetId, const
RefPtr<JSONObject>& range, const String& selector, RefPtr<TypeBuilder::CSS::CSS
Rule>& result) override; |
134 virtual void setMediaText(ErrorString*, const String& styleSheetId, const Re
fPtr<JSONObject>& range, const String& text, RefPtr<TypeBuilder::CSS::CSSMedia>&
result) override; | 134 virtual void setMediaText(ErrorString*, const String& styleSheetId, const Re
fPtr<JSONObject>& range, const String& text, RefPtr<TypeBuilder::CSS::CSSMedia>&
result) override; |
135 virtual void createStyleSheet(ErrorString*, const String& frameId, TypeBuild
er::CSS::StyleSheetId* outStyleSheetId) override; | 135 virtual void createStyleSheet(ErrorString*, const String& frameId, TypeBuild
er::CSS::StyleSheetId* outStyleSheetId) override; |
136 virtual void addRule(ErrorString*, const String& styleSheetId, const String&
ruleText, const RefPtr<JSONObject>& location, RefPtr<TypeBuilder::CSS::CSSRule>
& result) override; | 136 virtual void addRule(ErrorString*, const String& styleSheetId, const String&
ruleText, const RefPtr<JSONObject>& location, RefPtr<TypeBuilder::CSS::CSSRule>
& result) override; |
137 virtual void forcePseudoState(ErrorString*, int nodeId, const RefPtr<JSONArr
ay>& forcedPseudoClasses) override; | 137 virtual void forcePseudoState(ErrorString*, int nodeId, const RefPtr<JSONArr
ay>& forcedPseudoClasses) override; |
138 virtual void getMediaQueries(ErrorString*, RefPtr<TypeBuilder::Array<TypeBui
lder::CSS::CSSMedia> >& medias) override; | 138 virtual void getMediaQueries(ErrorString*, RefPtr<TypeBuilder::Array<TypeBui
lder::CSS::CSSMedia>>& medias) override; |
139 bool collectMediaQueriesFromRule(CSSRule*, TypeBuilder::Array<TypeBuilder::C
SS::CSSMedia>* mediaArray); | 139 bool collectMediaQueriesFromRule(CSSRule*, TypeBuilder::Array<TypeBuilder::C
SS::CSSMedia>* mediaArray); |
140 bool collectMediaQueriesFromStyleSheet(CSSStyleSheet*, TypeBuilder::Array<Ty
peBuilder::CSS::CSSMedia>* mediaArray); | 140 bool collectMediaQueriesFromStyleSheet(CSSStyleSheet*, TypeBuilder::Array<Ty
peBuilder::CSS::CSSMedia>* mediaArray); |
141 PassRefPtr<TypeBuilder::CSS::CSSMedia> buildMediaObject(const MediaList*, Me
diaListSource, const String&, CSSStyleSheet*); | 141 PassRefPtr<TypeBuilder::CSS::CSSMedia> buildMediaObject(const MediaList*, Me
diaListSource, const String&, CSSStyleSheet*); |
142 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia> > buildMediaListCh
ain(CSSRule*); | 142 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia>> buildMediaListCha
in(CSSRule*); |
143 | 143 |
144 private: | 144 private: |
145 class StyleSheetAction; | 145 class StyleSheetAction; |
146 class SetStyleSheetTextAction; | 146 class SetStyleSheetTextAction; |
147 class SetPropertyTextAction; | 147 class SetPropertyTextAction; |
148 class SetRuleSelectorAction; | 148 class SetRuleSelectorAction; |
149 class SetMediaTextAction; | 149 class SetMediaTextAction; |
150 class AddRuleAction; | 150 class AddRuleAction; |
151 class InspectorResourceContentLoaderCallback; | 151 class InspectorResourceContentLoaderCallback; |
152 | 152 |
153 static void collectStyleSheets(CSSStyleSheet*, WillBeHeapVector<RawPtrWillBe
Member<CSSStyleSheet> >&); | 153 static void collectStyleSheets(CSSStyleSheet*, WillBeHeapVector<RawPtrWillBe
Member<CSSStyleSheet>>&); |
154 | 154 |
155 InspectorCSSAgent(InspectorDOMAgent*, InspectorPageAgent*, InspectorResource
Agent*); | 155 InspectorCSSAgent(InspectorDOMAgent*, InspectorPageAgent*, InspectorResource
Agent*); |
156 | 156 |
157 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheet> >
IdToInspectorStyleSheet; | 157 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheet>> I
dToInspectorStyleSheet; |
158 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheetForI
nlineStyle> > IdToInspectorStyleSheetForInlineStyle; | 158 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheetForI
nlineStyle>> IdToInspectorStyleSheetForInlineStyle; |
159 typedef WillBeHeapHashMap<RawPtrWillBeMember<Node>, RefPtrWillBeMember<Inspe
ctorStyleSheetForInlineStyle> > NodeToInspectorStyleSheet; // bogus "stylesheets
" with elements' inline styles | 159 typedef WillBeHeapHashMap<RawPtrWillBeMember<Node>, RefPtrWillBeMember<Inspe
ctorStyleSheetForInlineStyle>> NodeToInspectorStyleSheet; // bogus "stylesheets"
with elements' inline styles |
160 typedef HashMap<int, unsigned> NodeIdToForcedPseudoState; | 160 typedef HashMap<int, unsigned> NodeIdToForcedPseudoState; |
161 | 161 |
162 void wasEnabled(); | 162 void wasEnabled(); |
163 void resetNonPersistentData(); | 163 void resetNonPersistentData(); |
164 InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element); | 164 InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element); |
165 Element* elementForId(ErrorString*, int nodeId); | 165 Element* elementForId(ErrorString*, int nodeId); |
166 | 166 |
167 void updateActiveStyleSheets(Document*, StyleSheetsUpdateType); | 167 void updateActiveStyleSheets(Document*, StyleSheetsUpdateType); |
168 void setActiveStyleSheets(Document*, const WillBeHeapVector<RawPtrWillBeMemb
er<CSSStyleSheet> >&, StyleSheetsUpdateType); | 168 void setActiveStyleSheets(Document*, const WillBeHeapVector<RawPtrWillBeMemb
er<CSSStyleSheet>>&, StyleSheetsUpdateType); |
169 | 169 |
170 void collectPlatformFontsForRenderer(RenderText*, HashCountedSet<String>*); | 170 void collectPlatformFontsForRenderer(RenderText*, HashCountedSet<String>*); |
171 | 171 |
172 InspectorStyleSheet* bindStyleSheet(CSSStyleSheet*); | 172 InspectorStyleSheet* bindStyleSheet(CSSStyleSheet*); |
173 String unbindStyleSheet(InspectorStyleSheet*); | 173 String unbindStyleSheet(InspectorStyleSheet*); |
174 InspectorStyleSheet* viaInspectorStyleSheet(Document*, bool createIfAbsent); | 174 InspectorStyleSheet* viaInspectorStyleSheet(Document*, bool createIfAbsent); |
175 InspectorStyleSheet* assertInspectorStyleSheetForId(ErrorString*, const Stri
ng&); | 175 InspectorStyleSheet* assertInspectorStyleSheetForId(ErrorString*, const Stri
ng&); |
176 InspectorStyleSheetBase* assertStyleSheetForId(ErrorString*, const String&); | 176 InspectorStyleSheetBase* assertStyleSheetForId(ErrorString*, const String&); |
177 TypeBuilder::CSS::StyleSheetOrigin::Enum detectOrigin(CSSStyleSheet* pageSty
leSheet, Document* ownerDocument); | 177 TypeBuilder::CSS::StyleSheetOrigin::Enum detectOrigin(CSSStyleSheet* pageSty
leSheet, Document* ownerDocument); |
178 bool styleSheetEditInProgress() const { return m_styleSheetsPendingMutation
|| m_styleDeclarationPendingMutation || m_isSettingStyleSheetText; } | 178 bool styleSheetEditInProgress() const { return m_styleSheetsPendingMutation
|| m_styleDeclarationPendingMutation || m_isSettingStyleSheetText; } |
179 | 179 |
180 PassRefPtr<TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*); | 180 PassRefPtr<TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*); |
181 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch> > buildArrayForMa
tchedRuleList(CSSRuleList*, Element*, PseudoId); | 181 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch>> buildArrayForMat
chedRuleList(CSSRuleList*, Element*, PseudoId); |
182 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element
*); | 182 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element
*); |
183 | 183 |
184 // InspectorDOMAgent::DOMListener implementation | 184 // InspectorDOMAgent::DOMListener implementation |
185 virtual void didRemoveDocument(Document*) override; | 185 virtual void didRemoveDocument(Document*) override; |
186 virtual void didRemoveDOMNode(Node*) override; | 186 virtual void didRemoveDOMNode(Node*) override; |
187 virtual void didModifyDOMAttr(Element*) override; | 187 virtual void didModifyDOMAttr(Element*) override; |
188 | 188 |
189 // InspectorStyleSheet::Listener implementation | 189 // InspectorStyleSheet::Listener implementation |
190 virtual void styleSheetChanged(InspectorStyleSheetBase*) override; | 190 virtual void styleSheetChanged(InspectorStyleSheetBase*) override; |
191 virtual void willReparseStyleSheet() override; | 191 virtual void willReparseStyleSheet() override; |
192 virtual void didReparseStyleSheet() override; | 192 virtual void didReparseStyleSheet() override; |
193 | 193 |
194 void resetPseudoStates(); | 194 void resetPseudoStates(); |
195 | 195 |
196 InspectorFrontend::CSS* m_frontend; | 196 InspectorFrontend::CSS* m_frontend; |
197 RawPtrWillBeMember<InspectorDOMAgent> m_domAgent; | 197 RawPtrWillBeMember<InspectorDOMAgent> m_domAgent; |
198 RawPtrWillBeMember<InspectorPageAgent> m_pageAgent; | 198 RawPtrWillBeMember<InspectorPageAgent> m_pageAgent; |
199 RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent; | 199 RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent; |
200 | 200 |
201 IdToInspectorStyleSheet m_idToInspectorStyleSheet; | 201 IdToInspectorStyleSheet m_idToInspectorStyleSheet; |
202 IdToInspectorStyleSheetForInlineStyle m_idToInspectorStyleSheetForInlineStyl
e; | 202 IdToInspectorStyleSheetForInlineStyle m_idToInspectorStyleSheetForInlineStyl
e; |
203 WillBeHeapHashMap<RawPtrWillBeMember<CSSStyleSheet>, RefPtrWillBeMember<Insp
ectorStyleSheet> > m_cssStyleSheetToInspectorStyleSheet; | 203 WillBeHeapHashMap<RawPtrWillBeMember<CSSStyleSheet>, RefPtrWillBeMember<Insp
ectorStyleSheet>> m_cssStyleSheetToInspectorStyleSheet; |
204 typedef WillBeHeapHashMap<RawPtrWillBeMember<Document>, OwnPtrWillBeMember<W
illBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > > > DocumentStyleSheets; | 204 typedef WillBeHeapHashMap<RawPtrWillBeMember<Document>, OwnPtrWillBeMember<W
illBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>>> DocumentStyleSheets; |
205 DocumentStyleSheets m_documentToCSSStyleSheets; | 205 DocumentStyleSheets m_documentToCSSStyleSheets; |
206 WillBeHeapHashSet<RawPtrWillBeMember<Document> > m_invalidatedDocuments; | 206 WillBeHeapHashSet<RawPtrWillBeMember<Document>> m_invalidatedDocuments; |
207 | 207 |
208 NodeToInspectorStyleSheet m_nodeToInspectorStyleSheet; | 208 NodeToInspectorStyleSheet m_nodeToInspectorStyleSheet; |
209 WillBeHeapHashMap<RefPtrWillBeMember<Document>, RefPtrWillBeMember<Inspector
StyleSheet> > m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets | 209 WillBeHeapHashMap<RefPtrWillBeMember<Document>, RefPtrWillBeMember<Inspector
StyleSheet>> m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets |
210 NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState; | 210 NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState; |
211 | 211 |
212 RefPtrWillBeMember<CSSStyleSheet> m_inspectorUserAgentStyleSheet; | 212 RefPtrWillBeMember<CSSStyleSheet> m_inspectorUserAgentStyleSheet; |
213 | 213 |
214 int m_lastStyleSheetId; | 214 int m_lastStyleSheetId; |
215 int m_styleSheetsPendingMutation; | 215 int m_styleSheetsPendingMutation; |
216 bool m_styleDeclarationPendingMutation; | 216 bool m_styleDeclarationPendingMutation; |
217 bool m_creatingViaInspectorStyleSheet; | 217 bool m_creatingViaInspectorStyleSheet; |
218 bool m_isSettingStyleSheetText; | 218 bool m_isSettingStyleSheetText; |
219 | 219 |
220 friend class InspectorResourceContentLoaderCallback; | 220 friend class InspectorResourceContentLoaderCallback; |
221 friend class StyleSheetBinder; | 221 friend class StyleSheetBinder; |
222 }; | 222 }; |
223 | 223 |
224 | 224 |
225 } // namespace blink | 225 } // namespace blink |
226 | 226 |
227 #endif // !defined(InspectorCSSAgent_h) | 227 #endif // !defined(InspectorCSSAgent_h) |
OLD | NEW |