| 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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspe
ctorStyleSheet.get(styleSheet); | 98 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspe
ctorStyleSheet.get(styleSheet); |
| 99 // Avoid creating m_childRuleCSSOMWrappers in the stylesheet if it is in
the process of re-parsing. | 99 // Avoid creating m_childRuleCSSOMWrappers in the stylesheet if it is in
the process of re-parsing. |
| 100 // Otherwise m_childRuleCSSOMWrappers size will be initialized only for
a part of rules, resulting in an ASSERT failure in CSSStyleSheet::item(). | 100 // Otherwise m_childRuleCSSOMWrappers size will be initialized only for
a part of rules, resulting in an ASSERT failure in CSSStyleSheet::item(). |
| 101 // Instead, wait for the RuleMutationScope destruction and handle the co
mplete CSSStyleSheet. | 101 // Instead, wait for the RuleMutationScope destruction and handle the co
mplete CSSStyleSheet. |
| 102 if (inspectorStyleSheet && inspectorStyleSheet->isReparsing()) | 102 if (inspectorStyleSheet && inspectorStyleSheet->isReparsing()) |
| 103 return; | 103 return; |
| 104 m_result.append(styleSheet); | 104 m_result.append(styleSheet); |
| 105 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { | 105 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { |
| 106 CSSRule* rule = styleSheet->item(i); | 106 CSSRule* rule = styleSheet->item(i); |
| 107 if (rule->type() == CSSRule::IMPORT_RULE) { | 107 if (rule->type() == CSSRule::IMPORT_RULE) { |
| 108 CSSStyleSheet* importedStyleSheet = static_cast<CSSImportRule*>(
rule)->styleSheet(); | 108 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->style
Sheet(); |
| 109 if (importedStyleSheet) | 109 if (importedStyleSheet) |
| 110 run(importedStyleSheet); | 110 run(importedStyleSheet); |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 } | 113 } |
| 114 | 114 |
| 115 private: | 115 private: |
| 116 CSSStyleSheetToInspectorStyleSheet& m_cssStyleSheetToInspectorStyleSheet; | 116 CSSStyleSheetToInspectorStyleSheet& m_cssStyleSheetToInspectorStyleSheet; |
| 117 Vector<CSSStyleSheet*>& m_result; | 117 Vector<CSSStyleSheet*>& m_result; |
| 118 }; | 118 }; |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 InspectorCSSId m_newId; | 530 InspectorCSSId m_newId; |
| 531 String m_selector; | 531 String m_selector; |
| 532 String m_oldSelector; | 532 String m_oldSelector; |
| 533 }; | 533 }; |
| 534 | 534 |
| 535 // static | 535 // static |
| 536 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule) | 536 CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule* rule) |
| 537 { | 537 { |
| 538 if (!rule || rule->type() != CSSRule::STYLE_RULE) | 538 if (!rule || rule->type() != CSSRule::STYLE_RULE) |
| 539 return 0; | 539 return 0; |
| 540 return static_cast<CSSStyleRule*>(rule); | 540 return toCSSStyleRule(rule); |
| 541 } | 541 } |
| 542 | 542 |
| 543 template <typename CharType, size_t bufferLength> | 543 template <typename CharType, size_t bufferLength> |
| 544 static size_t vendorPrefixLowerCase(const CharType* string, size_t stringLength,
char (&buffer)[bufferLength]) | 544 static size_t vendorPrefixLowerCase(const CharType* string, size_t stringLength,
char (&buffer)[bufferLength]) |
| 545 { | 545 { |
| 546 static const char lowerCaseOffset = 'a' - 'A'; | 546 static const char lowerCaseOffset = 'a' - 'A'; |
| 547 | 547 |
| 548 if (string[0] != '-') | 548 if (string[0] != '-') |
| 549 return 0; | 549 return 0; |
| 550 | 550 |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1368 CSSRule* parentRule = rule; | 1368 CSSRule* parentRule = rule; |
| 1369 String sourceURL; | 1369 String sourceURL; |
| 1370 while (parentRule) { | 1370 while (parentRule) { |
| 1371 CSSStyleSheet* parentStyleSheet = 0; | 1371 CSSStyleSheet* parentStyleSheet = 0; |
| 1372 bool isMediaRule = true; | 1372 bool isMediaRule = true; |
| 1373 if (parentRule->type() == CSSRule::MEDIA_RULE) { | 1373 if (parentRule->type() == CSSRule::MEDIA_RULE) { |
| 1374 CSSMediaRule* mediaRule = static_cast<CSSMediaRule*>(parentRule); | 1374 CSSMediaRule* mediaRule = static_cast<CSSMediaRule*>(parentRule); |
| 1375 mediaList = mediaRule->media(); | 1375 mediaList = mediaRule->media(); |
| 1376 parentStyleSheet = mediaRule->parentStyleSheet(); | 1376 parentStyleSheet = mediaRule->parentStyleSheet(); |
| 1377 } else if (parentRule->type() == CSSRule::IMPORT_RULE) { | 1377 } else if (parentRule->type() == CSSRule::IMPORT_RULE) { |
| 1378 CSSImportRule* importRule = static_cast<CSSImportRule*>(parentRule); | 1378 CSSImportRule* importRule = toCSSImportRule(parentRule); |
| 1379 mediaList = importRule->media(); | 1379 mediaList = importRule->media(); |
| 1380 parentStyleSheet = importRule->parentStyleSheet(); | 1380 parentStyleSheet = importRule->parentStyleSheet(); |
| 1381 isMediaRule = false; | 1381 isMediaRule = false; |
| 1382 } else { | 1382 } else { |
| 1383 mediaList = 0; | 1383 mediaList = 0; |
| 1384 } | 1384 } |
| 1385 | 1385 |
| 1386 if (parentStyleSheet) { | 1386 if (parentStyleSheet) { |
| 1387 sourceURL = parentStyleSheet->contents()->baseURL(); | 1387 sourceURL = parentStyleSheet->contents()->baseURL(); |
| 1388 if (sourceURL.isEmpty()) | 1388 if (sourceURL.isEmpty()) |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1476 } | 1476 } |
| 1477 } | 1477 } |
| 1478 | 1478 |
| 1479 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, Vector<Ins
pectorStyleSheet*>& result) | 1479 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, Vector<Ins
pectorStyleSheet*>& result) |
| 1480 { | 1480 { |
| 1481 InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(static_cast<CSSSty
leSheet*>(styleSheet)); | 1481 InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(static_cast<CSSSty
leSheet*>(styleSheet)); |
| 1482 result.append(inspectorStyleSheet); | 1482 result.append(inspectorStyleSheet); |
| 1483 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { | 1483 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { |
| 1484 CSSRule* rule = styleSheet->item(i); | 1484 CSSRule* rule = styleSheet->item(i); |
| 1485 if (rule->type() == CSSRule::IMPORT_RULE) { | 1485 if (rule->type() == CSSRule::IMPORT_RULE) { |
| 1486 CSSStyleSheet* importedStyleSheet = static_cast<CSSImportRule*>(rule
)->styleSheet(); | 1486 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->styleShee
t(); |
| 1487 if (importedStyleSheet) | 1487 if (importedStyleSheet) |
| 1488 collectStyleSheets(importedStyleSheet, result); | 1488 collectStyleSheets(importedStyleSheet, result); |
| 1489 } | 1489 } |
| 1490 } | 1490 } |
| 1491 } | 1491 } |
| 1492 | 1492 |
| 1493 InspectorStyleSheet* InspectorCSSAgent::bindStyleSheet(CSSStyleSheet* styleSheet
) | 1493 InspectorStyleSheet* InspectorCSSAgent::bindStyleSheet(CSSStyleSheet* styleSheet
) |
| 1494 { | 1494 { |
| 1495 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspector
StyleSheet.get(styleSheet); | 1495 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspector
StyleSheet.get(styleSheet); |
| 1496 if (!inspectorStyleSheet) { | 1496 if (!inspectorStyleSheet) { |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1799 documentsToChange.add(element->ownerDocument()); | 1799 documentsToChange.add(element->ownerDocument()); |
| 1800 } | 1800 } |
| 1801 | 1801 |
| 1802 m_nodeIdToForcedPseudoState.clear(); | 1802 m_nodeIdToForcedPseudoState.clear(); |
| 1803 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu
mentsToChange.end(); it != end; ++it) | 1803 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu
mentsToChange.end(); it != end; ++it) |
| 1804 (*it)->setNeedsStyleRecalc(); | 1804 (*it)->setNeedsStyleRecalc(); |
| 1805 } | 1805 } |
| 1806 | 1806 |
| 1807 } // namespace WebCore | 1807 } // namespace WebCore |
| 1808 | 1808 |
| OLD | NEW |