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

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

Issue 307943002: Oilpan: Prepare moving InspectorController and InspectorAgents to oilpan. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 } 201 }
202 202
203 virtual void merge(PassRefPtrWillBeRawPtr<Action> action) OVERRIDE 203 virtual void merge(PassRefPtrWillBeRawPtr<Action> action) OVERRIDE
204 { 204 {
205 ASSERT(action->mergeId() == mergeId()); 205 ASSERT(action->mergeId() == mergeId());
206 206
207 SetStyleSheetTextAction* other = static_cast<SetStyleSheetTextAction*>(a ction.get()); 207 SetStyleSheetTextAction* other = static_cast<SetStyleSheetTextAction*>(a ction.get());
208 m_text = other->m_text; 208 m_text = other->m_text;
209 } 209 }
210 210
211 virtual void trace(Visitor* visitor) OVERRIDE
212 {
213 visitor->trace(m_styleSheet);
214 InspectorCSSAgent::StyleSheetAction::trace(visitor);
215 }
216
211 private: 217 private:
212 RefPtr<InspectorStyleSheetBase> m_styleSheet; 218 RefPtrWillBeMember<InspectorStyleSheetBase> m_styleSheet;
213 String m_text; 219 String m_text;
214 String m_oldText; 220 String m_oldText;
215 }; 221 };
216 222
217 class InspectorCSSAgent::SetPropertyTextAction FINAL : public InspectorCSSAgent: :StyleSheetAction { 223 class InspectorCSSAgent::SetPropertyTextAction FINAL : public InspectorCSSAgent: :StyleSheetAction {
218 WTF_MAKE_NONCOPYABLE(SetPropertyTextAction); 224 WTF_MAKE_NONCOPYABLE(SetPropertyTextAction);
219 public: 225 public:
220 SetPropertyTextAction(InspectorStyleSheetBase* styleSheet, const InspectorCS SId& cssId, unsigned propertyIndex, const String& text, bool overwrite) 226 SetPropertyTextAction(InspectorStyleSheetBase* styleSheet, const InspectorCS SId& cssId, unsigned propertyIndex, const String& text, bool overwrite)
221 : InspectorCSSAgent::StyleSheetAction("SetPropertyText") 227 : InspectorCSSAgent::StyleSheetAction("SetPropertyText")
222 , m_styleSheet(styleSheet) 228 , m_styleSheet(styleSheet)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 } 263 }
258 264
259 virtual void merge(PassRefPtrWillBeRawPtr<Action> action) OVERRIDE 265 virtual void merge(PassRefPtrWillBeRawPtr<Action> action) OVERRIDE
260 { 266 {
261 ASSERT(action->mergeId() == mergeId()); 267 ASSERT(action->mergeId() == mergeId());
262 268
263 SetPropertyTextAction* other = static_cast<SetPropertyTextAction*>(actio n.get()); 269 SetPropertyTextAction* other = static_cast<SetPropertyTextAction*>(actio n.get());
264 m_text = other->m_text; 270 m_text = other->m_text;
265 } 271 }
266 272
273 virtual void trace(Visitor* visitor) OVERRIDE
274 {
275 visitor->trace(m_styleSheet);
276 InspectorCSSAgent::StyleSheetAction::trace(visitor);
277 }
278
267 private: 279 private:
268 RefPtr<InspectorStyleSheetBase> m_styleSheet; 280 RefPtrWillBeMember<InspectorStyleSheetBase> m_styleSheet;
269 InspectorCSSId m_cssId; 281 InspectorCSSId m_cssId;
270 unsigned m_propertyIndex; 282 unsigned m_propertyIndex;
271 String m_text; 283 String m_text;
272 String m_oldStyleText; 284 String m_oldStyleText;
273 bool m_overwrite; 285 bool m_overwrite;
274 }; 286 };
275 287
276 class InspectorCSSAgent::SetRuleSelectorAction FINAL : public InspectorCSSAgent: :StyleSheetAction { 288 class InspectorCSSAgent::SetRuleSelectorAction FINAL : public InspectorCSSAgent: :StyleSheetAction {
277 WTF_MAKE_NONCOPYABLE(SetRuleSelectorAction); 289 WTF_MAKE_NONCOPYABLE(SetRuleSelectorAction);
278 public: 290 public:
(...skipping 16 matching lines...) Expand all
295 virtual bool undo(ExceptionState& exceptionState) OVERRIDE 307 virtual bool undo(ExceptionState& exceptionState) OVERRIDE
296 { 308 {
297 return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector, exceptionSt ate); 309 return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector, exceptionSt ate);
298 } 310 }
299 311
300 virtual bool redo(ExceptionState& exceptionState) OVERRIDE 312 virtual bool redo(ExceptionState& exceptionState) OVERRIDE
301 { 313 {
302 return m_styleSheet->setRuleSelector(m_cssId, m_selector, exceptionState ); 314 return m_styleSheet->setRuleSelector(m_cssId, m_selector, exceptionState );
303 } 315 }
304 316
317 virtual void trace(Visitor* visitor) OVERRIDE
318 {
319 visitor->trace(m_styleSheet);
320 InspectorCSSAgent::StyleSheetAction::trace(visitor);
321 }
322
305 private: 323 private:
306 RefPtr<InspectorStyleSheet> m_styleSheet; 324 RefPtrWillBeMember<InspectorStyleSheet> m_styleSheet;
307 InspectorCSSId m_cssId; 325 InspectorCSSId m_cssId;
308 String m_selector; 326 String m_selector;
309 String m_oldSelector; 327 String m_oldSelector;
310 }; 328 };
311 329
312 class InspectorCSSAgent::AddRuleAction FINAL : public InspectorCSSAgent::StyleSh eetAction { 330 class InspectorCSSAgent::AddRuleAction FINAL : public InspectorCSSAgent::StyleSh eetAction {
313 WTF_MAKE_NONCOPYABLE(AddRuleAction); 331 WTF_MAKE_NONCOPYABLE(AddRuleAction);
314 public: 332 public:
315 AddRuleAction(InspectorStyleSheet* styleSheet, const String& selector) 333 AddRuleAction(InspectorStyleSheet* styleSheet, const String& selector)
316 : InspectorCSSAgent::StyleSheetAction("AddRule") 334 : InspectorCSSAgent::StyleSheetAction("AddRule")
(...skipping 14 matching lines...) Expand all
331 349
332 virtual bool redo(ExceptionState& exceptionState) OVERRIDE 350 virtual bool redo(ExceptionState& exceptionState) OVERRIDE
333 { 351 {
334 CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, exception State); 352 CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, exception State);
335 if (exceptionState.hadException()) 353 if (exceptionState.hadException())
336 return false; 354 return false;
337 m_newId = m_styleSheet->ruleId(cssStyleRule); 355 m_newId = m_styleSheet->ruleId(cssStyleRule);
338 return true; 356 return true;
339 } 357 }
340 358
359 virtual void trace(Visitor* visitor) OVERRIDE
360 {
361 visitor->trace(m_styleSheet);
362 InspectorCSSAgent::StyleSheetAction::trace(visitor);
363 }
364
341 InspectorCSSId newRuleId() { return m_newId; } 365 InspectorCSSId newRuleId() { return m_newId; }
342 366
343 private: 367 private:
344 RefPtr<InspectorStyleSheet> m_styleSheet; 368 RefPtrWillBeMember<InspectorStyleSheet> m_styleSheet;
345 InspectorCSSId m_newId; 369 InspectorCSSId m_newId;
346 String m_selector; 370 String m_selector;
347 String m_oldSelector; 371 String m_oldSelector;
348 }; 372 };
349 373
350 // static 374 // static
351 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule) 375 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule)
352 { 376 {
353 if (!rule || rule->type() != CSSRule::STYLE_RULE) 377 if (!rule || rule->type() != CSSRule::STYLE_RULE)
354 return 0; 378 return 0;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 ASSERT(m_frontend); 411 ASSERT(m_frontend);
388 ErrorString error; 412 ErrorString error;
389 disable(&error); 413 disable(&error);
390 m_frontend = 0; 414 m_frontend = 0;
391 resetNonPersistentData(); 415 resetNonPersistentData();
392 } 416 }
393 417
394 void InspectorCSSAgent::discardAgent() 418 void InspectorCSSAgent::discardAgent()
395 { 419 {
396 m_domAgent->setDOMListener(0); 420 m_domAgent->setDOMListener(0);
397 m_domAgent = 0; 421 m_domAgent = nullptr;
398 } 422 }
399 423
400 void InspectorCSSAgent::restore() 424 void InspectorCSSAgent::restore()
401 { 425 {
402 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled)) 426 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled))
403 wasEnabled(nullptr); 427 wasEnabled(nullptr);
404 } 428 }
405 429
406 void InspectorCSSAgent::flushPendingFrontendMessages() 430 void InspectorCSSAgent::flushPendingFrontendMessages()
407 { 431 {
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 removedSheets.remove(cssStyleSheet); 593 removedSheets.remove(cssStyleSheet);
570 if (isInitialFrontendLoad) 594 if (isInitialFrontendLoad)
571 addedSheets.add(cssStyleSheet); 595 addedSheets.add(cssStyleSheet);
572 } else { 596 } else {
573 addedSheets.add(cssStyleSheet); 597 addedSheets.add(cssStyleSheet);
574 } 598 }
575 } 599 }
576 600
577 for (HashSet<CSSStyleSheet*>::iterator it = removedSheets.begin(); it != rem ovedSheets.end(); ++it) { 601 for (HashSet<CSSStyleSheet*>::iterator it = removedSheets.begin(); it != rem ovedSheets.end(); ++it) {
578 CSSStyleSheet* cssStyleSheet = *it; 602 CSSStyleSheet* cssStyleSheet = *it;
579 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspe ctorStyleSheet.get(cssStyleSheet); 603 RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyle SheetToInspectorStyleSheet.get(cssStyleSheet);
580 ASSERT(inspectorStyleSheet); 604 ASSERT(inspectorStyleSheet);
581 605
582 documentCSSStyleSheets->remove(cssStyleSheet); 606 documentCSSStyleSheets->remove(cssStyleSheet);
583 if (m_idToInspectorStyleSheet.contains(inspectorStyleSheet->id())) { 607 if (m_idToInspectorStyleSheet.contains(inspectorStyleSheet->id())) {
584 String id = unbindStyleSheet(inspectorStyleSheet.get()); 608 String id = unbindStyleSheet(inspectorStyleSheet.get());
585 if (m_frontend && !isInitialFrontendLoad) 609 if (m_frontend && !isInitialFrontendLoad)
586 m_frontend->styleSheetRemoved(id); 610 m_frontend->styleSheetRemoved(id);
587 } 611 }
588 } 612 }
589 613
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 { 1105 {
1082 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement); 1106 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement);
1083 if (it != m_nodeToInspectorStyleSheet.end()) 1107 if (it != m_nodeToInspectorStyleSheet.end())
1084 return it->value.get(); 1108 return it->value.get();
1085 1109
1086 CSSStyleDeclaration* style = element->isStyledElement() ? element->style() : 0; 1110 CSSStyleDeclaration* style = element->isStyledElement() ? element->style() : 0;
1087 if (!style) 1111 if (!style)
1088 return 0; 1112 return 0;
1089 1113
1090 String newStyleSheetId = String::number(m_lastStyleSheetId++); 1114 String newStyleSheetId = String::number(m_lastStyleSheetId++);
1091 RefPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorSty leSheetForInlineStyle::create(newStyleSheetId, element, this); 1115 RefPtrWillBeRawPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorStyleSheetForInlineStyle::create(newStyleSheetId, element, this);
1092 m_idToInspectorStyleSheetForInlineStyle.set(newStyleSheetId, inspectorStyleS heet); 1116 m_idToInspectorStyleSheetForInlineStyle.set(newStyleSheetId, inspectorStyleS heet);
1093 m_nodeToInspectorStyleSheet.set(element, inspectorStyleSheet); 1117 m_nodeToInspectorStyleSheet.set(element, inspectorStyleSheet);
1094 return inspectorStyleSheet.get(); 1118 return inspectorStyleSheet.get();
1095 } 1119 }
1096 1120
1097 Element* InspectorCSSAgent::elementForId(ErrorString* errorString, int nodeId) 1121 Element* InspectorCSSAgent::elementForId(ErrorString* errorString, int nodeId)
1098 { 1122 {
1099 Node* node = m_domAgent->nodeForId(nodeId); 1123 Node* node = m_domAgent->nodeForId(nodeId);
1100 if (!node) { 1124 if (!node) {
1101 *errorString = "No node with given id found"; 1125 *errorString = "No node with given id found";
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 if (rule->type() == CSSRule::IMPORT_RULE) { 1160 if (rule->type() == CSSRule::IMPORT_RULE) {
1137 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->styleShee t(); 1161 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->styleShee t();
1138 if (importedStyleSheet) 1162 if (importedStyleSheet)
1139 collectStyleSheets(importedStyleSheet, result); 1163 collectStyleSheets(importedStyleSheet, result);
1140 } 1164 }
1141 } 1165 }
1142 } 1166 }
1143 1167
1144 InspectorStyleSheet* InspectorCSSAgent::bindStyleSheet(CSSStyleSheet* styleSheet ) 1168 InspectorStyleSheet* InspectorCSSAgent::bindStyleSheet(CSSStyleSheet* styleSheet )
1145 { 1169 {
1146 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspector StyleSheet.get(styleSheet); 1170 RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleShee tToInspectorStyleSheet.get(styleSheet);
1147 if (!inspectorStyleSheet) { 1171 if (!inspectorStyleSheet) {
1148 String id = String::number(m_lastStyleSheetId++); 1172 String id = String::number(m_lastStyleSheetId++);
1149 Document* document = styleSheet->ownerDocument(); 1173 Document* document = styleSheet->ownerDocument();
1150 inspectorStyleSheet = InspectorStyleSheet::create(m_pageAgent, m_resourc eAgent, id, styleSheet, detectOrigin(styleSheet, document), InspectorDOMAgent::d ocumentURLString(document), this); 1174 inspectorStyleSheet = InspectorStyleSheet::create(m_pageAgent, m_resourc eAgent, id, styleSheet, detectOrigin(styleSheet, document), InspectorDOMAgent::d ocumentURLString(document), this);
1151 m_idToInspectorStyleSheet.set(id, inspectorStyleSheet); 1175 m_idToInspectorStyleSheet.set(id, inspectorStyleSheet);
1152 m_cssStyleSheetToInspectorStyleSheet.set(styleSheet, inspectorStyleSheet ); 1176 m_cssStyleSheetToInspectorStyleSheet.set(styleSheet, inspectorStyleSheet );
1153 if (m_creatingViaInspectorStyleSheet) 1177 if (m_creatingViaInspectorStyleSheet)
1154 m_documentToViaInspectorStyleSheet.add(document, inspectorStyleSheet ); 1178 m_documentToViaInspectorStyleSheet.add(document, inspectorStyleSheet );
1155 } 1179 }
1156 return inspectorStyleSheet.get(); 1180 return inspectorStyleSheet.get();
(...skipping 11 matching lines...) Expand all
1168 InspectorStyleSheet* InspectorCSSAgent::viaInspectorStyleSheet(Document* documen t, bool createIfAbsent) 1192 InspectorStyleSheet* InspectorCSSAgent::viaInspectorStyleSheet(Document* documen t, bool createIfAbsent)
1169 { 1193 {
1170 if (!document) { 1194 if (!document) {
1171 ASSERT(!createIfAbsent); 1195 ASSERT(!createIfAbsent);
1172 return 0; 1196 return 0;
1173 } 1197 }
1174 1198
1175 if (!document->isHTMLDocument() && !document->isSVGDocument()) 1199 if (!document->isHTMLDocument() && !document->isSVGDocument())
1176 return 0; 1200 return 0;
1177 1201
1178 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_documentToViaInspectorSt yleSheet.get(document); 1202 RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_documentToVi aInspectorStyleSheet.get(document);
1179 if (inspectorStyleSheet || !createIfAbsent) 1203 if (inspectorStyleSheet || !createIfAbsent)
1180 return inspectorStyleSheet.get(); 1204 return inspectorStyleSheet.get();
1181 1205
1182 TrackExceptionState exceptionState; 1206 TrackExceptionState exceptionState;
1183 RefPtrWillBeRawPtr<Element> styleElement = document->createElement("style", exceptionState); 1207 RefPtrWillBeRawPtr<Element> styleElement = document->createElement("style", exceptionState);
1184 if (!exceptionState.hadException()) 1208 if (!exceptionState.hadException())
1185 styleElement->setAttribute("type", "text/css", exceptionState); 1209 styleElement->setAttribute("type", "text/css", exceptionState);
1186 if (!exceptionState.hadException()) { 1210 if (!exceptionState.hadException()) {
1187 ContainerNode* targetNode; 1211 ContainerNode* targetNode;
1188 // HEAD is absent in ImageDocuments, for example. 1212 // HEAD is absent in ImageDocuments, for example.
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 Element* element = toElement(m_domAgent->nodeForId(it->key)); 1409 Element* element = toElement(m_domAgent->nodeForId(it->key));
1386 if (element && element->ownerDocument()) 1410 if (element && element->ownerDocument())
1387 documentsToChange.add(element->ownerDocument()); 1411 documentsToChange.add(element->ownerDocument());
1388 } 1412 }
1389 1413
1390 m_nodeIdToForcedPseudoState.clear(); 1414 m_nodeIdToForcedPseudoState.clear();
1391 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it) 1415 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it)
1392 (*it)->setNeedsStyleRecalc(SubtreeStyleChange); 1416 (*it)->setNeedsStyleRecalc(SubtreeStyleChange);
1393 } 1417 }
1394 1418
1419 void InspectorCSSAgent::trace(Visitor* visitor)
1420 {
1421 visitor->trace(m_domAgent);
1422 visitor->trace(m_pageAgent);
1423 visitor->trace(m_resourceAgent);
1424 visitor->trace(m_idToInspectorStyleSheet);
1425 visitor->trace(m_idToInspectorStyleSheetForInlineStyle);
1426 visitor->trace(m_cssStyleSheetToInspectorStyleSheet);
1427 visitor->trace(m_inspectorUserAgentStyleSheet);
1428 visitor->trace(m_nodeToInspectorStyleSheet);
1429 visitor->trace(m_documentToViaInspectorStyleSheet);
1430 InspectorBaseAgent::trace(visitor);
1431 }
1432
1395 } // namespace WebCore 1433 } // namespace WebCore
1396 1434
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698