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

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

Issue 202103002: DevTools: refactor InspectorStyleSheet (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebaseline Created 6 years, 9 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
« no previous file with comments | « Source/core/inspector/InspectorCSSAgent.h ('k') | Source/core/inspector/InspectorStyleSheet.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 else if (pseudoClass == visited) 114 else if (pseudoClass == visited)
115 result |= PseudoVisited; 115 result |= PseudoVisited;
116 } 116 }
117 117
118 return result; 118 return result;
119 } 119 }
120 120
121 class InspectorCSSAgent::StyleSheetAction : public InspectorHistory::Action { 121 class InspectorCSSAgent::StyleSheetAction : public InspectorHistory::Action {
122 WTF_MAKE_NONCOPYABLE(StyleSheetAction); 122 WTF_MAKE_NONCOPYABLE(StyleSheetAction);
123 public: 123 public:
124 StyleSheetAction(const String& name, InspectorStyleSheet* styleSheet) 124 StyleSheetAction(const String& name)
125 : InspectorHistory::Action(name) 125 : InspectorHistory::Action(name)
126 , m_styleSheet(styleSheet)
127 { 126 {
128 } 127 }
129
130 protected:
131 RefPtr<InspectorStyleSheet> m_styleSheet;
132 }; 128 };
133 129
134 class InspectorCSSAgent::EnableResourceClient FINAL : public StyleSheetResourceC lient { 130 class InspectorCSSAgent::EnableResourceClient FINAL : public StyleSheetResourceC lient {
135 public: 131 public:
136 EnableResourceClient(InspectorCSSAgent*, const Vector<InspectorStyleSheet*>& , PassRefPtr<EnableCallback>); 132 EnableResourceClient(InspectorCSSAgent*, const Vector<InspectorStyleSheet*>& , PassRefPtr<EnableCallback>);
137 133
138 virtual void setCSSStyleSheet(const String&, const KURL&, const String&, con st CSSStyleSheetResource*) OVERRIDE; 134 virtual void setCSSStyleSheet(const String&, const KURL&, const String&, con st CSSStyleSheetResource*) OVERRIDE;
139 135
140 private: 136 private:
141 RefPtr<EnableCallback> m_callback; 137 RefPtr<EnableCallback> m_callback;
(...skipping 26 matching lines...) Expand all
168 164
169 // enable always succeeds. 165 // enable always succeeds.
170 if (m_callback->isActive()) 166 if (m_callback->isActive())
171 m_cssAgent->wasEnabled(m_callback.release()); 167 m_cssAgent->wasEnabled(m_callback.release());
172 delete this; 168 delete this;
173 } 169 }
174 170
175 class InspectorCSSAgent::SetStyleSheetTextAction FINAL : public InspectorCSSAgen t::StyleSheetAction { 171 class InspectorCSSAgent::SetStyleSheetTextAction FINAL : public InspectorCSSAgen t::StyleSheetAction {
176 WTF_MAKE_NONCOPYABLE(SetStyleSheetTextAction); 172 WTF_MAKE_NONCOPYABLE(SetStyleSheetTextAction);
177 public: 173 public:
178 SetStyleSheetTextAction(InspectorStyleSheet* styleSheet, const String& text) 174 SetStyleSheetTextAction(InspectorStyleSheetBase* styleSheet, const String& t ext)
179 : InspectorCSSAgent::StyleSheetAction("SetStyleSheetText", styleSheet) 175 : InspectorCSSAgent::StyleSheetAction("SetStyleSheetText")
176 , m_styleSheet(styleSheet)
180 , m_text(text) 177 , m_text(text)
181 { 178 {
182 } 179 }
183 180
184 virtual bool perform(ExceptionState& exceptionState) OVERRIDE 181 virtual bool perform(ExceptionState& exceptionState) OVERRIDE
185 { 182 {
186 if (!m_styleSheet->getText(&m_oldText)) 183 if (!m_styleSheet->getText(&m_oldText))
187 return false; 184 return false;
188 return redo(exceptionState); 185 return redo(exceptionState);
189 } 186 }
(...skipping 23 matching lines...) Expand all
213 210
214 virtual void merge(PassOwnPtr<Action> action) OVERRIDE 211 virtual void merge(PassOwnPtr<Action> action) OVERRIDE
215 { 212 {
216 ASSERT(action->mergeId() == mergeId()); 213 ASSERT(action->mergeId() == mergeId());
217 214
218 SetStyleSheetTextAction* other = static_cast<SetStyleSheetTextAction*>(a ction.get()); 215 SetStyleSheetTextAction* other = static_cast<SetStyleSheetTextAction*>(a ction.get());
219 m_text = other->m_text; 216 m_text = other->m_text;
220 } 217 }
221 218
222 private: 219 private:
220 RefPtr<InspectorStyleSheetBase> m_styleSheet;
223 String m_text; 221 String m_text;
224 String m_oldText; 222 String m_oldText;
225 }; 223 };
226 224
227 class InspectorCSSAgent::SetPropertyTextAction FINAL : public InspectorCSSAgent: :StyleSheetAction { 225 class InspectorCSSAgent::SetPropertyTextAction FINAL : public InspectorCSSAgent: :StyleSheetAction {
228 WTF_MAKE_NONCOPYABLE(SetPropertyTextAction); 226 WTF_MAKE_NONCOPYABLE(SetPropertyTextAction);
229 public: 227 public:
230 SetPropertyTextAction(InspectorStyleSheet* styleSheet, const InspectorCSSId& cssId, unsigned propertyIndex, const String& text, bool overwrite) 228 SetPropertyTextAction(InspectorStyleSheetBase* styleSheet, const InspectorCS SId& cssId, unsigned propertyIndex, const String& text, bool overwrite)
231 : InspectorCSSAgent::StyleSheetAction("SetPropertyText", styleSheet) 229 : InspectorCSSAgent::StyleSheetAction("SetPropertyText")
230 , m_styleSheet(styleSheet)
232 , m_cssId(cssId) 231 , m_cssId(cssId)
233 , m_propertyIndex(propertyIndex) 232 , m_propertyIndex(propertyIndex)
234 , m_text(text) 233 , m_text(text)
235 , m_overwrite(overwrite) 234 , m_overwrite(overwrite)
236 { 235 {
237 } 236 }
238 237
239 virtual String toString() OVERRIDE 238 virtual String toString() OVERRIDE
240 { 239 {
241 return mergeId() + ": " + m_oldText + " -> " + m_text; 240 return mergeId() + ": " + m_oldText + " -> " + m_text;
(...skipping 25 matching lines...) Expand all
267 266
268 virtual void merge(PassOwnPtr<Action> action) OVERRIDE 267 virtual void merge(PassOwnPtr<Action> action) OVERRIDE
269 { 268 {
270 ASSERT(action->mergeId() == mergeId()); 269 ASSERT(action->mergeId() == mergeId());
271 270
272 SetPropertyTextAction* other = static_cast<SetPropertyTextAction*>(actio n.get()); 271 SetPropertyTextAction* other = static_cast<SetPropertyTextAction*>(actio n.get());
273 m_text = other->m_text; 272 m_text = other->m_text;
274 } 273 }
275 274
276 private: 275 private:
276 RefPtr<InspectorStyleSheetBase> m_styleSheet;
277 InspectorCSSId m_cssId; 277 InspectorCSSId m_cssId;
278 unsigned m_propertyIndex; 278 unsigned m_propertyIndex;
279 String m_text; 279 String m_text;
280 String m_oldText; 280 String m_oldText;
281 bool m_overwrite; 281 bool m_overwrite;
282 }; 282 };
283 283
284 class InspectorCSSAgent::SetRuleSelectorAction FINAL : public InspectorCSSAgent: :StyleSheetAction { 284 class InspectorCSSAgent::SetRuleSelectorAction FINAL : public InspectorCSSAgent: :StyleSheetAction {
285 WTF_MAKE_NONCOPYABLE(SetRuleSelectorAction); 285 WTF_MAKE_NONCOPYABLE(SetRuleSelectorAction);
286 public: 286 public:
287 SetRuleSelectorAction(InspectorStyleSheet* styleSheet, const InspectorCSSId& cssId, const String& selector) 287 SetRuleSelectorAction(InspectorStyleSheet* styleSheet, const InspectorCSSId& cssId, const String& selector)
288 : InspectorCSSAgent::StyleSheetAction("SetRuleSelector", styleSheet) 288 : InspectorCSSAgent::StyleSheetAction("SetRuleSelector")
289 , m_styleSheet(styleSheet)
289 , m_cssId(cssId) 290 , m_cssId(cssId)
290 , m_selector(selector) 291 , m_selector(selector)
291 { 292 {
292 } 293 }
293 294
294 virtual bool perform(ExceptionState& exceptionState) OVERRIDE 295 virtual bool perform(ExceptionState& exceptionState) OVERRIDE
295 { 296 {
296 m_oldSelector = m_styleSheet->ruleSelector(m_cssId, exceptionState); 297 m_oldSelector = m_styleSheet->ruleSelector(m_cssId, exceptionState);
297 if (exceptionState.hadException()) 298 if (exceptionState.hadException())
298 return false; 299 return false;
299 return redo(exceptionState); 300 return redo(exceptionState);
300 } 301 }
301 302
302 virtual bool undo(ExceptionState& exceptionState) OVERRIDE 303 virtual bool undo(ExceptionState& exceptionState) OVERRIDE
303 { 304 {
304 return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector, exceptionSt ate); 305 return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector, exceptionSt ate);
305 } 306 }
306 307
307 virtual bool redo(ExceptionState& exceptionState) OVERRIDE 308 virtual bool redo(ExceptionState& exceptionState) OVERRIDE
308 { 309 {
309 return m_styleSheet->setRuleSelector(m_cssId, m_selector, exceptionState ); 310 return m_styleSheet->setRuleSelector(m_cssId, m_selector, exceptionState );
310 } 311 }
311 312
312 private: 313 private:
314 RefPtr<InspectorStyleSheet> m_styleSheet;
313 InspectorCSSId m_cssId; 315 InspectorCSSId m_cssId;
314 String m_selector; 316 String m_selector;
315 String m_oldSelector; 317 String m_oldSelector;
316 }; 318 };
317 319
318 class InspectorCSSAgent::AddRuleAction FINAL : public InspectorCSSAgent::StyleSh eetAction { 320 class InspectorCSSAgent::AddRuleAction FINAL : public InspectorCSSAgent::StyleSh eetAction {
319 WTF_MAKE_NONCOPYABLE(AddRuleAction); 321 WTF_MAKE_NONCOPYABLE(AddRuleAction);
320 public: 322 public:
321 AddRuleAction(InspectorStyleSheet* styleSheet, const String& selector) 323 AddRuleAction(InspectorStyleSheet* styleSheet, const String& selector)
322 : InspectorCSSAgent::StyleSheetAction("AddRule", styleSheet) 324 : InspectorCSSAgent::StyleSheetAction("AddRule")
325 , m_styleSheet(styleSheet)
323 , m_selector(selector) 326 , m_selector(selector)
324 { 327 {
325 } 328 }
326 329
327 virtual bool perform(ExceptionState& exceptionState) OVERRIDE 330 virtual bool perform(ExceptionState& exceptionState) OVERRIDE
328 { 331 {
329 return redo(exceptionState); 332 return redo(exceptionState);
330 } 333 }
331 334
332 virtual bool undo(ExceptionState& exceptionState) OVERRIDE 335 virtual bool undo(ExceptionState& exceptionState) OVERRIDE
333 { 336 {
334 return m_styleSheet->deleteRule(m_newId, exceptionState); 337 return m_styleSheet->deleteRule(m_newId, exceptionState);
335 } 338 }
336 339
337 virtual bool redo(ExceptionState& exceptionState) OVERRIDE 340 virtual bool redo(ExceptionState& exceptionState) OVERRIDE
338 { 341 {
339 CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, exception State); 342 CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, exception State);
340 if (exceptionState.hadException()) 343 if (exceptionState.hadException())
341 return false; 344 return false;
342 m_newId = m_styleSheet->ruleId(cssStyleRule); 345 m_newId = m_styleSheet->ruleId(cssStyleRule);
343 return true; 346 return true;
344 } 347 }
345 348
346 InspectorCSSId newRuleId() { return m_newId; } 349 InspectorCSSId newRuleId() { return m_newId; }
347 350
348 private: 351 private:
352 RefPtr<InspectorStyleSheet> m_styleSheet;
349 InspectorCSSId m_newId; 353 InspectorCSSId m_newId;
350 String m_selector; 354 String m_selector;
351 String m_oldSelector; 355 String m_oldSelector;
352 }; 356 };
353 357
354 // static 358 // static
355 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule) 359 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule)
356 { 360 {
357 if (!rule || rule->type() != CSSRule::STYLE_RULE) 361 if (!rule || rule->type() != CSSRule::STYLE_RULE)
358 return 0; 362 return 0;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 return; 441 return;
438 HashSet<Document*> invalidatedDocuments; 442 HashSet<Document*> invalidatedDocuments;
439 m_invalidatedDocuments.swap(&invalidatedDocuments); 443 m_invalidatedDocuments.swap(&invalidatedDocuments);
440 for (HashSet<Document*>::iterator it = invalidatedDocuments.begin(); it != i nvalidatedDocuments.end(); ++it) 444 for (HashSet<Document*>::iterator it = invalidatedDocuments.begin(); it != i nvalidatedDocuments.end(); ++it)
441 updateActiveStyleSheets(*it, ExistingFrontendRefresh); 445 updateActiveStyleSheets(*it, ExistingFrontendRefresh);
442 } 446 }
443 447
444 void InspectorCSSAgent::reset() 448 void InspectorCSSAgent::reset()
445 { 449 {
446 m_idToInspectorStyleSheet.clear(); 450 m_idToInspectorStyleSheet.clear();
451 m_idToInspectorStyleSheetForInlineStyle.clear();
447 m_cssStyleSheetToInspectorStyleSheet.clear(); 452 m_cssStyleSheetToInspectorStyleSheet.clear();
448 m_documentToCSSStyleSheets.clear(); 453 m_documentToCSSStyleSheets.clear();
449 m_invalidatedDocuments.clear(); 454 m_invalidatedDocuments.clear();
450 m_nodeToInspectorStyleSheet.clear(); 455 m_nodeToInspectorStyleSheet.clear();
451 m_documentToViaInspectorStyleSheet.clear(); 456 m_documentToViaInspectorStyleSheet.clear();
452 resetNonPersistentData(); 457 resetNonPersistentData();
453 } 458 }
454 459
455 void InspectorCSSAgent::resetNonPersistentData() 460 void InspectorCSSAgent::resetNonPersistentData()
456 { 461 {
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 for (HashCountedSet<String>::iterator it = fontStats.begin(), end = fontStat s.end(); it != end; ++it) { 817 for (HashCountedSet<String>::iterator it = fontStats.begin(), end = fontStat s.end(); it != end; ++it) {
813 RefPtr<TypeBuilder::CSS::PlatformFontUsage> platformFont = TypeBuilder:: CSS::PlatformFontUsage::create() 818 RefPtr<TypeBuilder::CSS::PlatformFontUsage> platformFont = TypeBuilder:: CSS::PlatformFontUsage::create()
814 .setFamilyName(it->key) 819 .setFamilyName(it->key)
815 .setGlyphCount(it->value); 820 .setGlyphCount(it->value);
816 platformFonts->addItem(platformFont); 821 platformFonts->addItem(platformFont);
817 } 822 }
818 } 823 }
819 824
820 void InspectorCSSAgent::getStyleSheetText(ErrorString* errorString, const String & styleSheetId, String* result) 825 void InspectorCSSAgent::getStyleSheetText(ErrorString* errorString, const String & styleSheetId, String* result)
821 { 826 {
822 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , styleSheetId); 827 InspectorStyleSheetBase* inspectorStyleSheet = assertStyleSheetForId(errorSt ring, styleSheetId);
823 if (!inspectorStyleSheet) 828 if (!inspectorStyleSheet)
824 return; 829 return;
825 830
826 inspectorStyleSheet->getText(result); 831 inspectorStyleSheet->getText(result);
827 } 832 }
828 833
829 void InspectorCSSAgent::setStyleSheetText(ErrorString* errorString, const String & styleSheetId, const String& text) 834 void InspectorCSSAgent::setStyleSheetText(ErrorString* errorString, const String & styleSheetId, const String& text)
830 { 835 {
831 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , styleSheetId); 836 InspectorStyleSheetBase* inspectorStyleSheet = assertStyleSheetForId(errorSt ring, styleSheetId);
832 if (!inspectorStyleSheet) { 837 if (!inspectorStyleSheet) {
833 *errorString = "Style sheet with id " + styleSheetId + " not found."; 838 *errorString = "Style sheet with id " + styleSheetId + " not found.";
834 return; 839 return;
835 } 840 }
836 841
837 TrackExceptionState exceptionState; 842 TrackExceptionState exceptionState;
838 m_domAgent->history()->perform(adoptPtr(new SetStyleSheetTextAction(inspecto rStyleSheet, text)), exceptionState); 843 m_domAgent->history()->perform(adoptPtr(new SetStyleSheetTextAction(inspecto rStyleSheet, text)), exceptionState);
839 *errorString = InspectorDOMAgent::toErrorString(exceptionState); 844 *errorString = InspectorDOMAgent::toErrorString(exceptionState);
840 } 845 }
841 846
842 void InspectorCSSAgent::setPropertyText(ErrorString* errorString, const RefPtr<J SONObject>& fullStyleId, int propertyIndex, const String& text, bool overwrite, RefPtr<TypeBuilder::CSS::CSSStyle>& result) 847 void InspectorCSSAgent::setPropertyText(ErrorString* errorString, const RefPtr<J SONObject>& fullStyleId, int propertyIndex, const String& text, bool overwrite, RefPtr<TypeBuilder::CSS::CSSStyle>& result)
843 { 848 {
844 InspectorCSSId compoundId(fullStyleId); 849 InspectorCSSId compoundId(fullStyleId);
845 ASSERT(!compoundId.isEmpty()); 850 ASSERT(!compoundId.isEmpty());
846 851
847 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , compoundId.styleSheetId()); 852 InspectorStyleSheetBase* inspectorStyleSheet = assertStyleSheetForId(errorSt ring, compoundId.styleSheetId());
848 if (!inspectorStyleSheet) 853 if (!inspectorStyleSheet)
849 return; 854 return;
850 855
851 TrackExceptionState exceptionState; 856 TrackExceptionState exceptionState;
852 bool success = m_domAgent->history()->perform(adoptPtr(new SetPropertyTextAc tion(inspectorStyleSheet, compoundId, propertyIndex, text, overwrite)), exceptio nState); 857 bool success = m_domAgent->history()->perform(adoptPtr(new SetPropertyTextAc tion(inspectorStyleSheet, compoundId, propertyIndex, text, overwrite)), exceptio nState);
853 if (success) 858 if (success)
854 result = inspectorStyleSheet->buildObjectForStyle(inspectorStyleSheet->s tyleForId(compoundId)); 859 result = inspectorStyleSheet->buildObjectForStyle(inspectorStyleSheet->s tyleForId(compoundId));
855 *errorString = InspectorDOMAgent::toErrorString(exceptionState); 860 *errorString = InspectorDOMAgent::toErrorString(exceptionState);
856 } 861 }
857 862
858 void InspectorCSSAgent::setRuleSelector(ErrorString* errorString, const RefPtr<J SONObject>& fullRuleId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule >& result) 863 void InspectorCSSAgent::setRuleSelector(ErrorString* errorString, const RefPtr<J SONObject>& fullRuleId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule >& result)
859 { 864 {
860 InspectorCSSId compoundId(fullRuleId); 865 InspectorCSSId compoundId(fullRuleId);
861 ASSERT(!compoundId.isEmpty()); 866 ASSERT(!compoundId.isEmpty());
862 867
863 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , compoundId.styleSheetId()); 868 InspectorStyleSheet* inspectorStyleSheet = assertInspectorStyleSheetForId(er rorString, compoundId.styleSheetId());
864 if (!inspectorStyleSheet) 869 if (!inspectorStyleSheet)
865 return; 870 return;
866 871
867 TrackExceptionState exceptionState; 872 TrackExceptionState exceptionState;
868 bool success = m_domAgent->history()->perform(adoptPtr(new SetRuleSelectorAc tion(inspectorStyleSheet, compoundId, selector)), exceptionState); 873 bool success = m_domAgent->history()->perform(adoptPtr(new SetRuleSelectorAc tion(inspectorStyleSheet, compoundId, selector)), exceptionState);
869 874
870 if (success) { 875 if (success) {
871 CSSStyleRule* rule = inspectorStyleSheet->ruleForId(compoundId); 876 CSSStyleRule* rule = inspectorStyleSheet->ruleForId(compoundId);
872 result = inspectorStyleSheet->buildObjectForRule(rule, buildMediaListCha in(rule)); 877 result = inspectorStyleSheet->buildObjectForRule(rule, buildMediaListCha in(rule));
873 } 878 }
(...skipping 20 matching lines...) Expand all
894 return; 899 return;
895 } 900 }
896 901
897 updateActiveStyleSheets(document, ExistingFrontendRefresh); 902 updateActiveStyleSheets(document, ExistingFrontendRefresh);
898 903
899 *outStyleSheetId = inspectorStyleSheet->id(); 904 *outStyleSheetId = inspectorStyleSheet->id();
900 } 905 }
901 906
902 void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleShe etId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) 907 void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleShe etId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result)
903 { 908 {
904 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , styleSheetId); 909 InspectorStyleSheet* inspectorStyleSheet = assertInspectorStyleSheetForId(er rorString, styleSheetId);
905 if (!inspectorStyleSheet) 910 if (!inspectorStyleSheet)
906 return; 911 return;
907 912
908 TrackExceptionState exceptionState; 913 TrackExceptionState exceptionState;
909 OwnPtr<AddRuleAction> action = adoptPtr(new AddRuleAction(inspectorStyleShee t, selector)); 914 OwnPtr<AddRuleAction> action = adoptPtr(new AddRuleAction(inspectorStyleShee t, selector));
910 AddRuleAction* rawAction = action.get(); 915 AddRuleAction* rawAction = action.get();
911 bool success = m_domAgent->history()->perform(action.release(), exceptionSta te); 916 bool success = m_domAgent->history()->perform(action.release(), exceptionSta te);
912 if (!success) { 917 if (!success) {
913 *errorString = InspectorDOMAgent::toErrorString(exceptionState); 918 *errorString = InspectorDOMAgent::toErrorString(exceptionState);
914 return; 919 return;
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 { 1054 {
1050 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement); 1055 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement);
1051 if (it != m_nodeToInspectorStyleSheet.end()) 1056 if (it != m_nodeToInspectorStyleSheet.end())
1052 return it->value.get(); 1057 return it->value.get();
1053 1058
1054 CSSStyleDeclaration* style = element->isStyledElement() ? element->style() : 0; 1059 CSSStyleDeclaration* style = element->isStyledElement() ? element->style() : 0;
1055 if (!style) 1060 if (!style)
1056 return 0; 1061 return 0;
1057 1062
1058 String newStyleSheetId = String::number(m_lastStyleSheetId++); 1063 String newStyleSheetId = String::number(m_lastStyleSheetId++);
1059 RefPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorSty leSheetForInlineStyle::create(m_pageAgent, m_resourceAgent, newStyleSheetId, ele ment, this); 1064 RefPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorSty leSheetForInlineStyle::create(newStyleSheetId, element, this);
1060 m_idToInspectorStyleSheet.set(newStyleSheetId, inspectorStyleSheet); 1065 m_idToInspectorStyleSheetForInlineStyle.set(newStyleSheetId, inspectorStyleS heet);
1061 m_nodeToInspectorStyleSheet.set(element, inspectorStyleSheet); 1066 m_nodeToInspectorStyleSheet.set(element, inspectorStyleSheet);
1062 return inspectorStyleSheet.get(); 1067 return inspectorStyleSheet.get();
1063 } 1068 }
1064 1069
1065 Element* InspectorCSSAgent::elementForId(ErrorString* errorString, int nodeId) 1070 Element* InspectorCSSAgent::elementForId(ErrorString* errorString, int nodeId)
1066 { 1071 {
1067 Node* node = m_domAgent->nodeForId(nodeId); 1072 Node* node = m_domAgent->nodeForId(nodeId);
1068 if (!node) { 1073 if (!node) {
1069 *errorString = "No node with given id found"; 1074 *errorString = "No node with given id found";
1070 return 0; 1075 return 0;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 // At this point the added stylesheet will get bound through the updateA ctiveStyleSheets() invocation. 1172 // At this point the added stylesheet will get bound through the updateA ctiveStyleSheets() invocation.
1168 // We just need to pick the respective InspectorStyleSheet from m_docume ntToViaInspectorStyleSheet. 1173 // We just need to pick the respective InspectorStyleSheet from m_docume ntToViaInspectorStyleSheet.
1169 m_creatingViaInspectorStyleSheet = false; 1174 m_creatingViaInspectorStyleSheet = false;
1170 } 1175 }
1171 if (exceptionState.hadException()) 1176 if (exceptionState.hadException())
1172 return 0; 1177 return 0;
1173 1178
1174 return m_documentToViaInspectorStyleSheet.get(document); 1179 return m_documentToViaInspectorStyleSheet.get(document);
1175 } 1180 }
1176 1181
1177 InspectorStyleSheet* InspectorCSSAgent::assertStyleSheetForId(ErrorString* error String, const String& styleSheetId) 1182 InspectorStyleSheet* InspectorCSSAgent::assertInspectorStyleSheetForId(ErrorStri ng* errorString, const String& styleSheetId)
1178 { 1183 {
1179 IdToInspectorStyleSheet::iterator it = m_idToInspectorStyleSheet.find(styleS heetId); 1184 IdToInspectorStyleSheet::iterator it = m_idToInspectorStyleSheet.find(styleS heetId);
1180 if (it == m_idToInspectorStyleSheet.end()) { 1185 if (it == m_idToInspectorStyleSheet.end()) {
1181 *errorString = "No style sheet with given id found"; 1186 *errorString = "No style sheet with given id found";
1182 return 0; 1187 return 0;
1183 } 1188 }
1184 return it->value.get(); 1189 return it->value.get();
1185 } 1190 }
1186 1191
1192 InspectorStyleSheetBase* InspectorCSSAgent::assertStyleSheetForId(ErrorString* e rrorString, const String& styleSheetId)
1193 {
1194 String placeholder;
1195 InspectorStyleSheetBase* result = assertInspectorStyleSheetForId(&placeholde r, styleSheetId);
1196 if (result)
1197 return result;
1198 IdToInspectorStyleSheetForInlineStyle::iterator it = m_idToInspectorStyleShe etForInlineStyle.find(styleSheetId);
1199 if (it == m_idToInspectorStyleSheetForInlineStyle.end()) {
1200 *errorString = "No style sheet with given id found";
1201 return 0;
1202 }
1203 return it->value.get();
1204 }
1205
1187 TypeBuilder::CSS::StyleSheetOrigin::Enum InspectorCSSAgent::detectOrigin(CSSStyl eSheet* pageStyleSheet, Document* ownerDocument) 1206 TypeBuilder::CSS::StyleSheetOrigin::Enum InspectorCSSAgent::detectOrigin(CSSStyl eSheet* pageStyleSheet, Document* ownerDocument)
1188 { 1207 {
1189 if (m_creatingViaInspectorStyleSheet) 1208 if (m_creatingViaInspectorStyleSheet)
1190 return TypeBuilder::CSS::StyleSheetOrigin::Inspector; 1209 return TypeBuilder::CSS::StyleSheetOrigin::Inspector;
1191 1210
1192 TypeBuilder::CSS::StyleSheetOrigin::Enum origin = TypeBuilder::CSS::StyleShe etOrigin::Regular; 1211 TypeBuilder::CSS::StyleSheetOrigin::Enum origin = TypeBuilder::CSS::StyleShe etOrigin::Regular;
1193 if (pageStyleSheet && !pageStyleSheet->ownerNode() && pageStyleSheet->href() .isEmpty()) 1212 if (pageStyleSheet && !pageStyleSheet->ownerNode() && pageStyleSheet->href() .isEmpty())
1194 origin = TypeBuilder::CSS::StyleSheetOrigin::User_agent; 1213 origin = TypeBuilder::CSS::StyleSheetOrigin::User_agent;
1195 else if (pageStyleSheet && pageStyleSheet->ownerNode() && pageStyleSheet->ow nerNode()->isDocumentNode()) 1214 else if (pageStyleSheet && pageStyleSheet->ownerNode() && pageStyleSheet->ow nerNode()->isDocumentNode())
1196 origin = TypeBuilder::CSS::StyleSheetOrigin::User; 1215 origin = TypeBuilder::CSS::StyleSheetOrigin::User;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 return; 1310 return;
1292 1311
1293 int nodeId = m_domAgent->boundNodeId(node); 1312 int nodeId = m_domAgent->boundNodeId(node);
1294 if (nodeId) 1313 if (nodeId)
1295 m_nodeIdToForcedPseudoState.remove(nodeId); 1314 m_nodeIdToForcedPseudoState.remove(nodeId);
1296 1315
1297 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(no de); 1316 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(no de);
1298 if (it == m_nodeToInspectorStyleSheet.end()) 1317 if (it == m_nodeToInspectorStyleSheet.end())
1299 return; 1318 return;
1300 1319
1301 m_idToInspectorStyleSheet.remove(it->value->id()); 1320 m_idToInspectorStyleSheetForInlineStyle.remove(it->value->id());
1302 m_nodeToInspectorStyleSheet.remove(node); 1321 m_nodeToInspectorStyleSheet.remove(node);
1303 } 1322 }
1304 1323
1305 void InspectorCSSAgent::didModifyDOMAttr(Element* element) 1324 void InspectorCSSAgent::didModifyDOMAttr(Element* element)
1306 { 1325 {
1307 if (!element) 1326 if (!element)
1308 return; 1327 return;
1309 1328
1310 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement); 1329 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement);
1311 if (it == m_nodeToInspectorStyleSheet.end()) 1330 if (it == m_nodeToInspectorStyleSheet.end())
1312 return; 1331 return;
1313 1332
1314 it->value->didModifyElementAttribute(); 1333 it->value->didModifyElementAttribute();
1315 } 1334 }
1316 1335
1317 void InspectorCSSAgent::styleSheetChanged(InspectorStyleSheet* styleSheet) 1336 void InspectorCSSAgent::styleSheetChanged(InspectorStyleSheetBase* styleSheet)
1318 { 1337 {
1319 flushPendingFrontendMessages(); 1338 flushPendingFrontendMessages();
1320 m_frontend->styleSheetChanged(styleSheet->id()); 1339 m_frontend->styleSheetChanged(styleSheet->id());
1321 } 1340 }
1322 1341
1323 void InspectorCSSAgent::willReparseStyleSheet() 1342 void InspectorCSSAgent::willReparseStyleSheet()
1324 { 1343 {
1325 ASSERT(!m_isSettingStyleSheetText); 1344 ASSERT(!m_isSettingStyleSheetText);
1326 m_isSettingStyleSheetText = true; 1345 m_isSettingStyleSheetText = true;
1327 } 1346 }
(...skipping 13 matching lines...) Expand all
1341 documentsToChange.add(element->ownerDocument()); 1360 documentsToChange.add(element->ownerDocument());
1342 } 1361 }
1343 1362
1344 m_nodeIdToForcedPseudoState.clear(); 1363 m_nodeIdToForcedPseudoState.clear();
1345 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it) 1364 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it)
1346 (*it)->setNeedsStyleRecalc(SubtreeStyleChange); 1365 (*it)->setNeedsStyleRecalc(SubtreeStyleChange);
1347 } 1366 }
1348 1367
1349 } // namespace WebCore 1368 } // namespace WebCore
1350 1369
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorCSSAgent.h ('k') | Source/core/inspector/InspectorStyleSheet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698