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

Side by Side Diff: Source/core/inspector/InspectorCSSAgent.h

Issue 307943002: Oilpan: Prepare moving InspectorController and InspectorAgents to oilpan. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 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 | Annotate | Revision Log
OLDNEW
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 class PlatformFontUsage; 58 class PlatformFontUsage;
59 class RenderText; 59 class RenderText;
60 class StyleResolver; 60 class StyleResolver;
61 61
62 class InspectorCSSAgent FINAL 62 class InspectorCSSAgent FINAL
63 : public InspectorBaseAgent<InspectorCSSAgent> 63 : public InspectorBaseAgent<InspectorCSSAgent>
64 , public InspectorDOMAgent::DOMListener 64 , public InspectorDOMAgent::DOMListener
65 , public InspectorBackendDispatcher::CSSCommandHandler 65 , public InspectorBackendDispatcher::CSSCommandHandler
66 , public InspectorStyleSheetBase::Listener { 66 , public InspectorStyleSheetBase::Listener {
67 WTF_MAKE_NONCOPYABLE(InspectorCSSAgent); 67 WTF_MAKE_NONCOPYABLE(InspectorCSSAgent);
68 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(InspectorCSSAgent);
68 public: 69 public:
69 enum MediaListSource { 70 enum MediaListSource {
70 MediaListSourceLinkedSheet, 71 MediaListSourceLinkedSheet,
71 MediaListSourceInlineSheet, 72 MediaListSourceInlineSheet,
72 MediaListSourceMediaRule, 73 MediaListSourceMediaRule,
73 MediaListSourceImportRule 74 MediaListSourceImportRule
74 }; 75 };
75 76
76 enum StyleSheetsUpdateType { 77 enum StyleSheetsUpdateType {
77 InitialFrontendLoad = 0, 78 InitialFrontendLoad = 0,
(...skipping 12 matching lines...) Expand all
90 { 91 {
91 m_contentSecurityPolicy->setOverrideAllowInlineStyle(false); 92 m_contentSecurityPolicy->setOverrideAllowInlineStyle(false);
92 } 93 }
93 94
94 private: 95 private:
95 ContentSecurityPolicy* m_contentSecurityPolicy; 96 ContentSecurityPolicy* m_contentSecurityPolicy;
96 }; 97 };
97 98
98 static CSSStyleRule* asCSSStyleRule(CSSRule*); 99 static CSSStyleRule* asCSSStyleRule(CSSRule*);
99 100
100 static PassOwnPtr<InspectorCSSAgent> create(InspectorDOMAgent* domAgent, Ins pectorPageAgent* pageAgent, InspectorResourceAgent* resourceAgent) 101 static PassOwnPtrWillBeRawPtr<InspectorCSSAgent> create(InspectorDOMAgent* d omAgent, InspectorPageAgent* pageAgent, InspectorResourceAgent* resourceAgent)
101 { 102 {
102 return adoptPtr(new InspectorCSSAgent(domAgent, pageAgent, resourceAgent )); 103 return adoptPtrWillBeNoop(new InspectorCSSAgent(domAgent, pageAgent, res ourceAgent));
103 } 104 }
104 virtual ~InspectorCSSAgent(); 105 virtual ~InspectorCSSAgent();
106 virtual void trace(Visitor*) OVERRIDE;
105 107
106 bool forcePseudoState(Element*, CSSSelector::PseudoType); 108 bool forcePseudoState(Element*, CSSSelector::PseudoType);
107 virtual void setFrontend(InspectorFrontend*) OVERRIDE; 109 virtual void setFrontend(InspectorFrontend*) OVERRIDE;
108 virtual void clearFrontend() OVERRIDE; 110 virtual void clearFrontend() OVERRIDE;
109 virtual void discardAgent() OVERRIDE; 111 virtual void discardAgent() OVERRIDE;
110 virtual void didCommitLoadForMainFrame() OVERRIDE; 112 virtual void didCommitLoadForMainFrame() OVERRIDE;
111 virtual void restore() OVERRIDE; 113 virtual void restore() OVERRIDE;
112 virtual void flushPendingFrontendMessages() OVERRIDE; 114 virtual void flushPendingFrontendMessages() OVERRIDE;
113 virtual void enable(ErrorString*, PassRefPtr<EnableCallback>) OVERRIDE; 115 virtual void enable(ErrorString*, PassRefPtr<EnableCallback>) OVERRIDE;
114 virtual void disable(ErrorString*) OVERRIDE; 116 virtual void disable(ErrorString*) OVERRIDE;
(...skipping 20 matching lines...) Expand all
135 virtual void addRule(ErrorString*, const String& styleSheetId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) OVERRIDE; 137 virtual void addRule(ErrorString*, const String& styleSheetId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) OVERRIDE;
136 virtual void forcePseudoState(ErrorString*, int nodeId, const RefPtr<JSONArr ay>& forcedPseudoClasses) OVERRIDE; 138 virtual void forcePseudoState(ErrorString*, int nodeId, const RefPtr<JSONArr ay>& forcedPseudoClasses) OVERRIDE;
137 virtual void getMediaQueries(ErrorString*, RefPtr<TypeBuilder::Array<TypeBui lder::CSS::CSSMedia> >& medias) OVERRIDE; 139 virtual void getMediaQueries(ErrorString*, RefPtr<TypeBuilder::Array<TypeBui lder::CSS::CSSMedia> >& medias) OVERRIDE;
138 140
139 141
140 bool collectMediaQueriesFromRule(CSSRule*, TypeBuilder::Array<TypeBuilder::C SS::CSSMedia>* mediaArray); 142 bool collectMediaQueriesFromRule(CSSRule*, TypeBuilder::Array<TypeBuilder::C SS::CSSMedia>* mediaArray);
141 bool collectMediaQueriesFromStyleSheet(CSSStyleSheet*, TypeBuilder::Array<Ty peBuilder::CSS::CSSMedia>* mediaArray); 143 bool collectMediaQueriesFromStyleSheet(CSSStyleSheet*, TypeBuilder::Array<Ty peBuilder::CSS::CSSMedia>* mediaArray);
142 PassRefPtr<TypeBuilder::CSS::CSSMedia> buildMediaObject(const MediaList*, Me diaListSource, const String&, CSSStyleSheet*); 144 PassRefPtr<TypeBuilder::CSS::CSSMedia> buildMediaObject(const MediaList*, Me diaListSource, const String&, CSSStyleSheet*);
143 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia> > buildMediaListCh ain(CSSRule*); 145 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia> > buildMediaListCh ain(CSSRule*);
144 146
145 static void collectAllDocumentStyleSheets(Document*, Vector<CSSStyleSheet*>& ); 147 static void collectAllDocumentStyleSheets(Document*, WillBeHeapVector<RawPtr WillBeMember<CSSStyleSheet> >&);
146 148
147 private: 149 private:
148 class StyleSheetAction; 150 class StyleSheetAction;
149 class SetStyleSheetTextAction; 151 class SetStyleSheetTextAction;
150 class SetPropertyTextAction; 152 class SetPropertyTextAction;
151 class SetRuleSelectorAction; 153 class SetRuleSelectorAction;
152 class AddRuleAction; 154 class AddRuleAction;
153 class InspectorResourceContentLoaderCallback; 155 class InspectorResourceContentLoaderCallback;
154 156
155 InspectorCSSAgent(InspectorDOMAgent*, InspectorPageAgent*, InspectorResource Agent*); 157 InspectorCSSAgent(InspectorDOMAgent*, InspectorPageAgent*, InspectorResource Agent*);
156 158
157 typedef HashMap<String, RefPtr<InspectorStyleSheet> > IdToInspectorStyleShee t; 159 typedef HashMap<String, RefPtr<InspectorStyleSheet> > IdToInspectorStyleShee t;
158 typedef HashMap<String, RefPtr<InspectorStyleSheetForInlineStyle> > IdToInsp ectorStyleSheetForInlineStyle; 160 typedef HashMap<String, RefPtr<InspectorStyleSheetForInlineStyle> > IdToInsp ectorStyleSheetForInlineStyle;
159 typedef HashMap<Node*, RefPtr<InspectorStyleSheetForInlineStyle> > NodeToIns pectorStyleSheet; // bogus "stylesheets" with elements' inline styles 161 typedef HashMap<Node*, RefPtr<InspectorStyleSheetForInlineStyle> > NodeToIns pectorStyleSheet; // bogus "stylesheets" with elements' inline styles
160 typedef HashMap<int, unsigned> NodeIdToForcedPseudoState; 162 typedef HashMap<int, unsigned> NodeIdToForcedPseudoState;
161 163
162 void wasEnabled(); 164 void wasEnabled();
163 void resetNonPersistentData(); 165 void resetNonPersistentData();
164 InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element); 166 InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element);
165 Element* elementForId(ErrorString*, int nodeId); 167 Element* elementForId(ErrorString*, int nodeId);
166 static void collectStyleSheets(CSSStyleSheet*, Vector<CSSStyleSheet*>&); 168 static void collectStyleSheets(CSSStyleSheet*, WillBeHeapVector<RawPtrWillBe Member<CSSStyleSheet> >&);
167 169
168 void updateActiveStyleSheets(Document*, StyleSheetsUpdateType); 170 void updateActiveStyleSheets(Document*, StyleSheetsUpdateType);
169 void setActiveStyleSheets(Document*, const Vector<CSSStyleSheet*>&, StyleShe etsUpdateType); 171 void setActiveStyleSheets(Document*, const WillBeHeapVector<RawPtrWillBeMemb er<CSSStyleSheet> >&, StyleSheetsUpdateType);
170 172
171 void collectPlatformFontsForRenderer(RenderText*, HashCountedSet<String>*); 173 void collectPlatformFontsForRenderer(RenderText*, HashCountedSet<String>*);
172 174
173 InspectorStyleSheet* bindStyleSheet(CSSStyleSheet*); 175 InspectorStyleSheet* bindStyleSheet(CSSStyleSheet*);
174 String unbindStyleSheet(InspectorStyleSheet*); 176 String unbindStyleSheet(InspectorStyleSheet*);
175 InspectorStyleSheet* viaInspectorStyleSheet(Document*, bool createIfAbsent); 177 InspectorStyleSheet* viaInspectorStyleSheet(Document*, bool createIfAbsent);
176 InspectorStyleSheet* assertInspectorStyleSheetForId(ErrorString*, const Stri ng&); 178 InspectorStyleSheet* assertInspectorStyleSheetForId(ErrorString*, const Stri ng&);
177 InspectorStyleSheetBase* assertStyleSheetForId(ErrorString*, const String&); 179 InspectorStyleSheetBase* assertStyleSheetForId(ErrorString*, const String&);
178 TypeBuilder::CSS::StyleSheetOrigin::Enum detectOrigin(CSSStyleSheet* pageSty leSheet, Document* ownerDocument); 180 TypeBuilder::CSS::StyleSheetOrigin::Enum detectOrigin(CSSStyleSheet* pageSty leSheet, Document* ownerDocument);
179 bool styleSheetEditInProgress() const { return m_styleSheetsPendingMutation || m_styleDeclarationPendingMutation || m_isSettingStyleSheetText; } 181 bool styleSheetEditInProgress() const { return m_styleSheetsPendingMutation || m_styleDeclarationPendingMutation || m_isSettingStyleSheetText; }
180 182
181 PassRefPtr<TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*); 183 PassRefPtr<TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*);
182 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch> > buildArrayForMa tchedRuleList(CSSRuleList*, Element*); 184 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch> > buildArrayForMa tchedRuleList(CSSRuleList*, Element*);
183 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element *); 185 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element *);
184 186
185 // InspectorDOMAgent::DOMListener implementation 187 // InspectorDOMAgent::DOMListener implementation
186 virtual void didRemoveDocument(Document*) OVERRIDE; 188 virtual void didRemoveDocument(Document*) OVERRIDE;
187 virtual void didRemoveDOMNode(Node*) OVERRIDE; 189 virtual void didRemoveDOMNode(Node*) OVERRIDE;
188 virtual void didModifyDOMAttr(Element*) OVERRIDE; 190 virtual void didModifyDOMAttr(Element*) OVERRIDE;
189 191
190 // InspectorStyleSheet::Listener implementation 192 // InspectorStyleSheet::Listener implementation
191 virtual void styleSheetChanged(InspectorStyleSheetBase*) OVERRIDE; 193 virtual void styleSheetChanged(InspectorStyleSheetBase*) OVERRIDE;
192 virtual void willReparseStyleSheet() OVERRIDE; 194 virtual void willReparseStyleSheet() OVERRIDE;
193 virtual void didReparseStyleSheet() OVERRIDE; 195 virtual void didReparseStyleSheet() OVERRIDE;
194 196
195 void resetPseudoStates(); 197 void resetPseudoStates();
196 198
197 InspectorFrontend::CSS* m_frontend; 199 InspectorFrontend::CSS* m_frontend;
198 InspectorDOMAgent* m_domAgent; 200 RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
199 InspectorPageAgent* m_pageAgent; 201 RawPtrWillBeMember<InspectorPageAgent> m_pageAgent;
200 InspectorResourceAgent* m_resourceAgent; 202 RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent;
201 203
202 IdToInspectorStyleSheet m_idToInspectorStyleSheet; 204 IdToInspectorStyleSheet m_idToInspectorStyleSheet;
203 IdToInspectorStyleSheetForInlineStyle m_idToInspectorStyleSheetForInlineStyl e; 205 IdToInspectorStyleSheetForInlineStyle m_idToInspectorStyleSheetForInlineStyl e;
204 HashMap<CSSStyleSheet*, RefPtr<InspectorStyleSheet> > m_cssStyleSheetToInspe ctorStyleSheet; 206 WillBeHeapHashMap<RawPtrWillBeMember<CSSStyleSheet>, RefPtr<InspectorStyleSh eet> > m_cssStyleSheetToInspectorStyleSheet;
205 typedef HashMap<Document*, OwnPtr<HashSet<CSSStyleSheet*> > > DocumentStyleS heets; 207 typedef WillBeHeapHashMap<RawPtrWillBeMember<Document>, OwnPtrWillBeMember<W illBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > > > DocumentStyleSheets;
206 DocumentStyleSheets m_documentToCSSStyleSheets; 208 DocumentStyleSheets m_documentToCSSStyleSheets;
207 HashSet<Document*> m_invalidatedDocuments; 209 WillBeHeapHashSet<RawPtrWillBeMember<Document> > m_invalidatedDocuments;
haraken 2014/06/17 14:06:17 I confirmed that these pointers are strong pointer
208 210
209 NodeToInspectorStyleSheet m_nodeToInspectorStyleSheet; 211 NodeToInspectorStyleSheet m_nodeToInspectorStyleSheet;
210 WillBePersistentHeapHashMap<RefPtrWillBeMember<Document>, RefPtr<InspectorSt yleSheet> > m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets 212 WillBeHeapHashMap<RefPtrWillBeMember<Document>, RefPtr<InspectorStyleSheet> > m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets
211 NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState; 213 NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState;
212 214
213 RefPtrWillBePersistent<CSSStyleSheet> m_inspectorUserAgentStyleSheet; 215 RefPtrWillBeMember<CSSStyleSheet> m_inspectorUserAgentStyleSheet;
214 216
215 int m_lastStyleSheetId; 217 int m_lastStyleSheetId;
216 int m_styleSheetsPendingMutation; 218 int m_styleSheetsPendingMutation;
217 bool m_styleDeclarationPendingMutation; 219 bool m_styleDeclarationPendingMutation;
218 bool m_creatingViaInspectorStyleSheet; 220 bool m_creatingViaInspectorStyleSheet;
219 bool m_isSettingStyleSheetText; 221 bool m_isSettingStyleSheetText;
220 222
221 friend class InspectorResourceContentLoaderCallback; 223 friend class InspectorResourceContentLoaderCallback;
222 friend class StyleSheetBinder; 224 friend class StyleSheetBinder;
223 }; 225 };
224 226
225 227
226 } // namespace WebCore 228 } // namespace WebCore
227 229
228 #endif // !defined(InspectorCSSAgent_h) 230 #endif // !defined(InspectorCSSAgent_h)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698