| 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 |