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

Unified Diff: Source/core/inspector/InspectorStyleSheet.cpp

Issue 1186613005: DevTools: migrate inspector's ParsedStyleSheet to Oilpan. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/inspector/InspectorStyleSheet.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « Source/core/inspector/InspectorStyleSheet.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698