| 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 1496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1507 .build(); | 1507 .build(); |
| 1508 } | 1508 } |
| 1509 | 1509 |
| 1510 static bool canBind(const String& origin) { | 1510 static bool canBind(const String& origin) { |
| 1511 return origin != protocol::CSS::StyleSheetOriginEnum::UserAgent && | 1511 return origin != protocol::CSS::StyleSheetOriginEnum::UserAgent && |
| 1512 origin != protocol::CSS::StyleSheetOriginEnum::Injected; | 1512 origin != protocol::CSS::StyleSheetOriginEnum::Injected; |
| 1513 } | 1513 } |
| 1514 | 1514 |
| 1515 std::unique_ptr<protocol::CSS::CSSRule> | 1515 std::unique_ptr<protocol::CSS::CSSRule> |
| 1516 InspectorStyleSheet::buildObjectForRuleWithoutMedia(CSSStyleRule* rule) { | 1516 InspectorStyleSheet::buildObjectForRuleWithoutMedia(CSSStyleRule* rule) { |
| 1517 CSSStyleSheet* styleSheet = pageStyleSheet(); | |
| 1518 if (!styleSheet) | |
| 1519 return nullptr; | |
| 1520 | |
| 1521 std::unique_ptr<protocol::CSS::CSSRule> result = | 1517 std::unique_ptr<protocol::CSS::CSSRule> result = |
| 1522 protocol::CSS::CSSRule::create() | 1518 protocol::CSS::CSSRule::create() |
| 1523 .setSelectorList(buildObjectForSelectorList(rule)) | 1519 .setSelectorList(buildObjectForSelectorList(rule)) |
| 1524 .setOrigin(m_origin) | 1520 .setOrigin(m_origin) |
| 1525 .setStyle(buildObjectForStyle(rule->style())) | 1521 .setStyle(buildObjectForStyle(rule->style())) |
| 1526 .build(); | 1522 .build(); |
| 1527 | 1523 |
| 1528 if (canBind(m_origin)) { | 1524 if (canBind(m_origin)) { |
| 1529 if (!id().isEmpty()) | 1525 if (!id().isEmpty()) |
| 1530 result->setStyleSheetId(id()); | 1526 result->setStyleSheetId(id()); |
| 1531 } | 1527 } |
| 1532 | 1528 |
| 1533 return result; | 1529 return result; |
| 1534 } | 1530 } |
| 1535 | 1531 |
| 1536 std::unique_ptr<protocol::CSS::RuleUsage> | 1532 std::unique_ptr<protocol::CSS::RuleUsage> |
| 1537 InspectorStyleSheet::buildObjectForRuleUsage(CSSRule* rule, bool wasUsed) { | 1533 InspectorStyleSheet::buildObjectForRuleUsage(CSSRule* rule, bool wasUsed) { |
| 1538 CSSStyleSheet* styleSheet = pageStyleSheet(); | |
| 1539 if (!styleSheet) | |
| 1540 return nullptr; | |
| 1541 | |
| 1542 CSSRuleSourceData* sourceData = sourceDataForRule(rule); | 1534 CSSRuleSourceData* sourceData = sourceDataForRule(rule); |
| 1543 | 1535 |
| 1544 if (!sourceData) | 1536 if (!sourceData) |
| 1545 return nullptr; | 1537 return nullptr; |
| 1546 | 1538 |
| 1547 SourceRange wholeRuleRange(sourceData->ruleHeaderRange.start, | 1539 SourceRange wholeRuleRange(sourceData->ruleHeaderRange.start, |
| 1548 sourceData->ruleBodyRange.end + 1); | 1540 sourceData->ruleBodyRange.end + 1); |
| 1549 std::unique_ptr<protocol::CSS::RuleUsage> result = | 1541 std::unique_ptr<protocol::CSS::RuleUsage> result = |
| 1550 protocol::CSS::RuleUsage::create() | 1542 protocol::CSS::RuleUsage::create() |
| 1551 .setStyleSheetId(id()) | 1543 .setStyleSheetId(id()) |
| 1552 .setStartOffset(wholeRuleRange.start) | 1544 .setStartOffset(wholeRuleRange.start) |
| 1553 .setEndOffset(wholeRuleRange.end) | 1545 .setEndOffset(wholeRuleRange.end) |
| 1554 .setUsed(wasUsed) | 1546 .setUsed(wasUsed) |
| 1555 .build(); | 1547 .build(); |
| 1556 | 1548 |
| 1557 return result; | 1549 return result; |
| 1558 } | 1550 } |
| 1559 | 1551 |
| 1560 std::unique_ptr<protocol::CSS::CSSKeyframeRule> | 1552 std::unique_ptr<protocol::CSS::CSSKeyframeRule> |
| 1561 InspectorStyleSheet::buildObjectForKeyframeRule(CSSKeyframeRule* keyframeRule) { | 1553 InspectorStyleSheet::buildObjectForKeyframeRule(CSSKeyframeRule* keyframeRule) { |
| 1562 CSSStyleSheet* styleSheet = pageStyleSheet(); | |
| 1563 if (!styleSheet) | |
| 1564 return nullptr; | |
| 1565 | |
| 1566 std::unique_ptr<protocol::CSS::Value> keyText = | 1554 std::unique_ptr<protocol::CSS::Value> keyText = |
| 1567 protocol::CSS::Value::create().setText(keyframeRule->keyText()).build(); | 1555 protocol::CSS::Value::create().setText(keyframeRule->keyText()).build(); |
| 1568 CSSRuleSourceData* sourceData = sourceDataForRule(keyframeRule); | 1556 CSSRuleSourceData* sourceData = sourceDataForRule(keyframeRule); |
| 1569 if (sourceData) | 1557 if (sourceData) |
| 1570 keyText->setRange(buildSourceRangeObject(sourceData->ruleHeaderRange)); | 1558 keyText->setRange(buildSourceRangeObject(sourceData->ruleHeaderRange)); |
| 1571 std::unique_ptr<protocol::CSS::CSSKeyframeRule> result = | 1559 std::unique_ptr<protocol::CSS::CSSKeyframeRule> result = |
| 1572 protocol::CSS::CSSKeyframeRule::create() | 1560 protocol::CSS::CSSKeyframeRule::create() |
| 1573 // TODO(samli): keyText() normalises 'from' and 'to' keyword values. | 1561 // TODO(samli): keyText() normalises 'from' and 'to' keyword values. |
| 1574 .setKeyText(std::move(keyText)) | 1562 .setKeyText(std::move(keyText)) |
| 1575 .setOrigin(m_origin) | 1563 .setOrigin(m_origin) |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1752 IndexMap::iterator it = m_ruleToSourceData.find(index); | 1740 IndexMap::iterator it = m_ruleToSourceData.find(index); |
| 1753 if (it == m_ruleToSourceData.end()) | 1741 if (it == m_ruleToSourceData.end()) |
| 1754 return nullptr; | 1742 return nullptr; |
| 1755 | 1743 |
| 1756 ASSERT(it->value < m_sourceData->size()); | 1744 ASSERT(it->value < m_sourceData->size()); |
| 1757 | 1745 |
| 1758 // Check that CSSOM did not mutate this rule. | 1746 // Check that CSSOM did not mutate this rule. |
| 1759 CSSRule* parsedRule = m_parsedFlatRules.at(it->value); | 1747 CSSRule* parsedRule = m_parsedFlatRules.at(it->value); |
| 1760 if (canonicalCSSText(rule) != canonicalCSSText(parsedRule)) | 1748 if (canonicalCSSText(rule) != canonicalCSSText(parsedRule)) |
| 1761 return nullptr; | 1749 return nullptr; |
| 1762 | |
| 1763 return m_sourceData->at(it->value).get(); | 1750 return m_sourceData->at(it->value).get(); |
| 1764 } | 1751 } |
| 1765 | 1752 |
| 1766 void InspectorStyleSheet::remapSourceDataToCSSOMIfNecessary() { | 1753 void InspectorStyleSheet::remapSourceDataToCSSOMIfNecessary() { |
| 1767 CSSRuleVector cssomRules; | 1754 CSSRuleVector cssomRules; |
| 1768 collectFlatRules(m_pageStyleSheet.get(), &cssomRules); | 1755 collectFlatRules(m_pageStyleSheet.get(), &cssomRules); |
| 1769 | 1756 |
| 1770 if (cssomRules.size() != m_cssomFlatRules.size()) { | 1757 if (cssomRules.size() != m_cssomFlatRules.size()) { |
| 1771 mapSourceDataToCSSOM(); | 1758 mapSourceDataToCSSOM(); |
| 1772 return; | 1759 return; |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1936 return m_element->getAttribute("style").getString(); | 1923 return m_element->getAttribute("style").getString(); |
| 1937 } | 1924 } |
| 1938 | 1925 |
| 1939 DEFINE_TRACE(InspectorStyleSheetForInlineStyle) { | 1926 DEFINE_TRACE(InspectorStyleSheetForInlineStyle) { |
| 1940 visitor->trace(m_element); | 1927 visitor->trace(m_element); |
| 1941 visitor->trace(m_inspectorStyle); | 1928 visitor->trace(m_inspectorStyle); |
| 1942 InspectorStyleSheetBase::trace(visitor); | 1929 InspectorStyleSheetBase::trace(visitor); |
| 1943 } | 1930 } |
| 1944 | 1931 |
| 1945 } // namespace blink | 1932 } // namespace blink |
| OLD | NEW |