| 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 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 RefPtr<MutableStylePropertySet> tempMutableStyle = MutableStylePropertyS
et::create(); | 566 RefPtr<MutableStylePropertySet> tempMutableStyle = MutableStylePropertyS
et::create(); |
| 567 String declarationText = propertyText + " " + bogusPropertyName + ": non
e"; | 567 String declarationText = propertyText + " " + bogusPropertyName + ": non
e"; |
| 568 RuleSourceDataList sourceData; | 568 RuleSourceDataList sourceData; |
| 569 StyleSheetHandler handler(declarationText, ownerDocument(), m_style->par
entStyleSheet()->contents(), &sourceData); | 569 StyleSheetHandler handler(declarationText, ownerDocument(), m_style->par
entStyleSheet()->contents(), &sourceData); |
| 570 createCSSParser(ownerDocument())->parseDeclaration(tempMutableStyle.get(
), declarationText, &handler, m_style->parentStyleSheet()->contents()); | 570 createCSSParser(ownerDocument())->parseDeclaration(tempMutableStyle.get(
), declarationText, &handler, m_style->parentStyleSheet()->contents()); |
| 571 Vector<CSSPropertySourceData>& propertyData = sourceData.first()->styleS
ourceData->propertyData; | 571 Vector<CSSPropertySourceData>& propertyData = sourceData.first()->styleS
ourceData->propertyData; |
| 572 unsigned propertyCount = propertyData.size(); | 572 unsigned propertyCount = propertyData.size(); |
| 573 | 573 |
| 574 // At least one property + the bogus property added just above should be
present. | 574 // At least one property + the bogus property added just above should be
present. |
| 575 if (propertyCount < 2) { | 575 if (propertyCount < 2) { |
| 576 ec = SYNTAX_ERR; | 576 ec = SyntaxError; |
| 577 return false; | 577 return false; |
| 578 } | 578 } |
| 579 | 579 |
| 580 // Check for the proper propertyText termination (the parser could at le
ast restore to the PROPERTY_NAME state). | 580 // Check for the proper propertyText termination (the parser could at le
ast restore to the PROPERTY_NAME state). |
| 581 if (propertyData.at(propertyCount - 1).name != bogusPropertyName) { | 581 if (propertyData.at(propertyCount - 1).name != bogusPropertyName) { |
| 582 ec = SYNTAX_ERR; | 582 ec = SyntaxError; |
| 583 return false; | 583 return false; |
| 584 } | 584 } |
| 585 } | 585 } |
| 586 | 586 |
| 587 RefPtr<CSSRuleSourceData> sourceData = extractSourceData(); | 587 RefPtr<CSSRuleSourceData> sourceData = extractSourceData(); |
| 588 if (!sourceData) { | 588 if (!sourceData) { |
| 589 ec = NotFoundError; | 589 ec = NotFoundError; |
| 590 return false; | 590 return false; |
| 591 } | 591 } |
| 592 | 592 |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 CSSSelectorList selectorList; | 1080 CSSSelectorList selectorList; |
| 1081 createCSSParser(document)->parseSelector(selector, selectorList); | 1081 createCSSParser(document)->parseSelector(selector, selectorList); |
| 1082 return selectorList.isValid(); | 1082 return selectorList.isValid(); |
| 1083 } | 1083 } |
| 1084 | 1084 |
| 1085 CSSStyleRule* InspectorStyleSheet::addRule(const String& selector, ExceptionCode
& ec) | 1085 CSSStyleRule* InspectorStyleSheet::addRule(const String& selector, ExceptionCode
& ec) |
| 1086 { | 1086 { |
| 1087 if (!checkPageStyleSheet(ec)) | 1087 if (!checkPageStyleSheet(ec)) |
| 1088 return 0; | 1088 return 0; |
| 1089 if (!checkStyleRuleSelector(m_pageStyleSheet->ownerDocument(), selector)) { | 1089 if (!checkStyleRuleSelector(m_pageStyleSheet->ownerDocument(), selector)) { |
| 1090 ec = SYNTAX_ERR; | 1090 ec = SyntaxError; |
| 1091 return 0; | 1091 return 0; |
| 1092 } | 1092 } |
| 1093 | 1093 |
| 1094 String text; | 1094 String text; |
| 1095 bool success = getText(&text); | 1095 bool success = getText(&text); |
| 1096 if (!success) { | 1096 if (!success) { |
| 1097 ec = NotFoundError; | 1097 ec = NotFoundError; |
| 1098 return 0; | 1098 return 0; |
| 1099 } | 1099 } |
| 1100 StringBuilder styleSheetText; | 1100 StringBuilder styleSheetText; |
| 1101 styleSheetText.append(text); | 1101 styleSheetText.append(text); |
| 1102 | 1102 |
| 1103 m_pageStyleSheet->addRule(selector, "", ec); | 1103 m_pageStyleSheet->addRule(selector, "", ec); |
| 1104 if (ec) | 1104 if (ec) |
| 1105 return 0; | 1105 return 0; |
| 1106 ASSERT(m_pageStyleSheet->length()); | 1106 ASSERT(m_pageStyleSheet->length()); |
| 1107 unsigned lastRuleIndex = m_pageStyleSheet->length() - 1; | 1107 unsigned lastRuleIndex = m_pageStyleSheet->length() - 1; |
| 1108 CSSRule* rule = m_pageStyleSheet->item(lastRuleIndex); | 1108 CSSRule* rule = m_pageStyleSheet->item(lastRuleIndex); |
| 1109 ASSERT(rule); | 1109 ASSERT(rule); |
| 1110 | 1110 |
| 1111 CSSStyleRule* styleRule = InspectorCSSAgent::asCSSStyleRule(rule); | 1111 CSSStyleRule* styleRule = InspectorCSSAgent::asCSSStyleRule(rule); |
| 1112 if (!styleRule) { | 1112 if (!styleRule) { |
| 1113 // What we just added has to be a CSSStyleRule - we cannot handle other
types of rules yet. | 1113 // What we just added has to be a CSSStyleRule - we cannot handle other
types of rules yet. |
| 1114 // If it is not a style rule, pretend we never touched the stylesheet. | 1114 // If it is not a style rule, pretend we never touched the stylesheet. |
| 1115 m_pageStyleSheet->deleteRule(lastRuleIndex, ASSERT_NO_EXCEPTION); | 1115 m_pageStyleSheet->deleteRule(lastRuleIndex, ASSERT_NO_EXCEPTION); |
| 1116 ec = SYNTAX_ERR; | 1116 ec = SyntaxError; |
| 1117 return 0; | 1117 return 0; |
| 1118 } | 1118 } |
| 1119 | 1119 |
| 1120 if (!styleSheetText.isEmpty()) | 1120 if (!styleSheetText.isEmpty()) |
| 1121 styleSheetText.append('\n'); | 1121 styleSheetText.append('\n'); |
| 1122 | 1122 |
| 1123 styleSheetText.append(selector); | 1123 styleSheetText.append(selector); |
| 1124 styleSheetText.appendLiteral(" {}"); | 1124 styleSheetText.appendLiteral(" {}"); |
| 1125 // Using setText() as this operation changes the style sheet rule set. | 1125 // Using setText() as this operation changes the style sheet rule set. |
| 1126 setText(styleSheetText.toString(), ASSERT_NO_EXCEPTION); | 1126 setText(styleSheetText.toString(), ASSERT_NO_EXCEPTION); |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 bool success = inspectorStyle->styleText(oldText); | 1334 bool success = inspectorStyle->styleText(oldText); |
| 1335 if (!success) { | 1335 if (!success) { |
| 1336 ec = NotFoundError; | 1336 ec = NotFoundError; |
| 1337 return false; | 1337 return false; |
| 1338 } | 1338 } |
| 1339 | 1339 |
| 1340 success = setStyleText(inspectorStyle->cssStyle(), text); | 1340 success = setStyleText(inspectorStyle->cssStyle(), text); |
| 1341 if (success) | 1341 if (success) |
| 1342 fireStyleSheetChanged(); | 1342 fireStyleSheetChanged(); |
| 1343 else | 1343 else |
| 1344 ec = SYNTAX_ERR; | 1344 ec = SyntaxError; |
| 1345 return success; | 1345 return success; |
| 1346 } | 1346 } |
| 1347 | 1347 |
| 1348 bool InspectorStyleSheet::setPropertyText(const InspectorCSSId& id, unsigned pro
pertyIndex, const String& text, bool overwrite, String* oldText, ExceptionCode&
ec) | 1348 bool InspectorStyleSheet::setPropertyText(const InspectorCSSId& id, unsigned pro
pertyIndex, const String& text, bool overwrite, String* oldText, ExceptionCode&
ec) |
| 1349 { | 1349 { |
| 1350 RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id); | 1350 RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id); |
| 1351 if (!inspectorStyle) { | 1351 if (!inspectorStyle) { |
| 1352 ec = NotFoundError; | 1352 ec = NotFoundError; |
| 1353 return false; | 1353 return false; |
| 1354 } | 1354 } |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1809 | 1809 |
| 1810 RefPtr<MutableStylePropertySet> tempDeclaration = MutableStylePropertySet::c
reate(); | 1810 RefPtr<MutableStylePropertySet> tempDeclaration = MutableStylePropertySet::c
reate(); |
| 1811 RuleSourceDataList ruleSourceDataResult; | 1811 RuleSourceDataList ruleSourceDataResult; |
| 1812 StyleSheetHandler handler(m_styleText, m_element->document(), m_element->doc
ument()->elementSheet()->contents(), &ruleSourceDataResult); | 1812 StyleSheetHandler handler(m_styleText, m_element->document(), m_element->doc
ument()->elementSheet()->contents(), &ruleSourceDataResult); |
| 1813 createCSSParser(m_element->document())->parseDeclaration(tempDeclaration.get
(), m_styleText, &handler, m_element->document()->elementSheet()->contents()); | 1813 createCSSParser(m_element->document())->parseDeclaration(tempDeclaration.get
(), m_styleText, &handler, m_element->document()->elementSheet()->contents()); |
| 1814 return ruleSourceDataResult.first().release(); | 1814 return ruleSourceDataResult.first().release(); |
| 1815 } | 1815 } |
| 1816 | 1816 |
| 1817 } // namespace WebCore | 1817 } // namespace WebCore |
| 1818 | 1818 |
| OLD | NEW |