Chromium Code Reviews| Index: Source/core/inspector/InspectorStyleSheet.cpp |
| diff --git a/Source/core/inspector/InspectorStyleSheet.cpp b/Source/core/inspector/InspectorStyleSheet.cpp |
| index 7f579714f707f21314191b76756cf9c1dcf2ff02..863a09e37a5e5ee1ce411f0f19c8ffbfdca29f92 100644 |
| --- a/Source/core/inspector/InspectorStyleSheet.cpp |
| +++ b/Source/core/inspector/InspectorStyleSheet.cpp |
| @@ -335,8 +335,7 @@ void StyleSheetHandler::endMediaQuery() |
| } // namespace |
| -class ParsedStyleSheet { |
| - WTF_MAKE_FAST_ALLOCATED(ParsedStyleSheet); |
| +class ParsedStyleSheet : public RefCountedWillBeGarbageCollectedFinalized<ParsedStyleSheet> { |
| public: |
| ParsedStyleSheet(CSSStyleSheet* pageStyleSheet); |
| @@ -348,14 +347,16 @@ public: |
| PassRefPtrWillBeRawPtr<blink::CSSRuleSourceData> ruleSourceDataAt(unsigned) const; |
| unsigned ruleCount() { return m_sourceData->size(); } |
| + DECLARE_TRACE(); |
| + |
| private: |
| void flattenSourceData(RuleSourceDataList*); |
| void setSourceData(PassOwnPtrWillBeRawPtr<RuleSourceDataList>); |
| String m_text; |
| bool m_hasText; |
| - OwnPtrWillBePersistent<RuleSourceDataList> m_sourceData; |
| - RefPtrWillBePersistent<CSSStyleSheet> m_pageStyleSheet; |
| + OwnPtrWillBeMember<RuleSourceDataList> m_sourceData; |
| + RefPtrWillBeMember<CSSStyleSheet> m_pageStyleSheet; |
| }; |
| ParsedStyleSheet::ParsedStyleSheet(CSSStyleSheet* pageStyleSheet) |
| @@ -434,6 +435,12 @@ PassRefPtrWillBeRawPtr<blink::CSSRuleSourceData> ParsedStyleSheet::ruleSourceDat |
| return m_sourceData->at(index); |
| } |
| +DEFINE_TRACE(ParsedStyleSheet) |
| +{ |
| + visitor->trace(m_sourceData); |
| + visitor->trace(m_pageStyleSheet); |
| +} |
| + |
| namespace blink { |
| enum MediaListSource { |
| @@ -936,7 +943,7 @@ InspectorStyleSheet::InspectorStyleSheet(InspectorResourceAgent* resourceAgent, |
| , m_origin(origin) |
| , m_documentURL(documentURL) |
| { |
| - m_parsedStyleSheet = adoptPtr(new ParsedStyleSheet(m_pageStyleSheet.get())); |
|
yurys
2015/06/15 08:21:56
Why was it removed? It should have become adoptPtr
|
| + m_parsedStyleSheet = new ParsedStyleSheet(m_pageStyleSheet.get()); |
| } |
| InspectorStyleSheet::~InspectorStyleSheet() |
| @@ -948,6 +955,7 @@ DEFINE_TRACE(InspectorStyleSheet) |
| visitor->trace(m_cssAgent); |
| visitor->trace(m_resourceAgent); |
| visitor->trace(m_pageStyleSheet); |
| + visitor->trace(m_parsedStyleSheet); |
| visitor->trace(m_flatRules); |
| InspectorStyleSheetBase::trace(visitor); |
| } |
| @@ -968,7 +976,6 @@ String InspectorStyleSheet::finalURL() const |
| bool InspectorStyleSheet::setText(const String& text, ExceptionState& exceptionState) |
| { |
| updateText(text); |
| - m_flatRules.clear(); |
| if (listener()) |
| listener()->willReparseStyleSheet(); |
| @@ -1258,7 +1265,6 @@ CSSStyleRule* InspectorStyleSheet::addRule(const String& ruleText, const SourceR |
| text.insert(ruleText, location.start); |
| updateText(text); |
| - m_flatRules.clear(); |
| onStyleSheetTextChanged(); |
| return styleRule; |
| @@ -1308,7 +1314,6 @@ bool InspectorStyleSheet::deleteRule(unsigned ruleIndex, const String& oldText, |
| return false; |
| updateText(oldText); |
| - m_flatRules.clear(); |
| onStyleSheetTextChanged(); |
| return true; |
| } |
| @@ -1321,6 +1326,7 @@ void InspectorStyleSheet::updateText(const String& newText) |
| else |
| m_cssAgent->addEditedStyleSheet(finalURL(), newText); |
| m_parsedStyleSheet->setText(newText); |
| + m_flatRules.clear(); |
|
lushnikov
2015/06/15 12:21:36
this is wrong - updateText is called from way more
|
| } |
| CSSStyleRule* InspectorStyleSheet::ruleAt(unsigned ruleIndex) const |