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

Unified Diff: third_party/WebKit/Source/core/css/CSSStyleSheet.cpp

Issue 1913833002: Current work-in-progress crbug.com/567021 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More assert fixes Created 4 years, 7 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
Index: third_party/WebKit/Source/core/css/CSSStyleSheet.cpp
diff --git a/third_party/WebKit/Source/core/css/CSSStyleSheet.cpp b/third_party/WebKit/Source/core/css/CSSStyleSheet.cpp
index bd4773f8e3088ca945b3e988e3a68d266b40e041..0163aff08690f32acfdf91cf317612647b1fc14d 100644
--- a/third_party/WebKit/Source/core/css/CSSStyleSheet.cpp
+++ b/third_party/WebKit/Source/core/css/CSSStyleSheet.cpp
@@ -174,19 +174,18 @@ void CSSStyleSheet::didMutateRules()
ASSERT(m_contents->isMutable());
ASSERT(m_contents->clientSize() <= 1);
- didMutate(PartialRuleUpdate);
+ didMutate();
}
-void CSSStyleSheet::didMutate(StyleSheetUpdateType updateType)
+void CSSStyleSheet::didMutate()
{
Document* owner = ownerDocument();
if (!owner)
return;
-
- // Need FullStyleUpdate when insertRule or deleteRule,
- // because StyleSheetCollection::analyzeStyleSheetChange cannot detect partial rule update.
- StyleResolverUpdateMode updateMode = updateType != PartialRuleUpdate ? AnalyzedStyleUpdate : FullStyleUpdate;
- owner->styleEngine().setNeedsActiveStyleUpdate(this, updateMode);
+ if (!ownerNode())
+ return;
+ if (ownerNode()->inShadowIncludingDocument())
+ owner->styleEngine().setNeedsActiveStyleUpdate(ownerNode()->treeScope());
}
void CSSStyleSheet::reattachChildRuleCSSOMWrappers()
@@ -215,6 +214,17 @@ void CSSStyleSheet::setMediaQueries(MediaQuerySet* mediaQueries)
}
+bool CSSStyleSheet::matchesMediaQueries(const MediaQueryEvaluator& evaluator)
+{
+ m_viewportDependentMediaQueryResults.clear();
+ m_deviceDependentMediaQueryResults.clear();
+
+ if (!m_mediaQueries)
+ return true;
+
+ return evaluator.eval(m_mediaQueries, &m_viewportDependentMediaQueryResults, &m_deviceDependentMediaQueryResults);
+}
+
unsigned CSSStyleSheet::length() const
{
return m_contents->ruleCount();
@@ -238,7 +248,7 @@ CSSRule* CSSStyleSheet::item(unsigned index)
void CSSStyleSheet::clearOwnerNode()
{
- didMutate(EntireStyleSheetUpdate);
+ didMutate();
if (m_ownerNode)
m_contents->unregisterClient(this);
m_ownerNode = nullptr;
@@ -438,6 +448,8 @@ DEFINE_TRACE(CSSStyleSheet)
{
visitor->trace(m_contents);
visitor->trace(m_mediaQueries);
+ visitor->trace(m_viewportDependentMediaQueryResults);
+ visitor->trace(m_deviceDependentMediaQueryResults);
visitor->trace(m_ownerNode);
visitor->trace(m_ownerRule);
visitor->trace(m_mediaCSSOMWrapper);
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSStyleSheet.h ('k') | third_party/WebKit/Source/core/css/FontFaceSet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698