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

Unified Diff: third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Issue 1583913003: Introduce deviceDependentMediaQueries (similar to viewportDependent). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review fixes Created 4 years, 11 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/resolver/StyleResolver.cpp
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
index 280f83976659adc4c11dc90096f926add1edb9e8..4be7bd2628790818727edacab4bb03bbf75cfa59 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
@@ -201,7 +201,7 @@ void StyleResolver::appendCSSStyleSheet(CSSStyleSheet& cssSheet)
ASSERT(cssSheet.ownerNode());
ASSERT(isHTMLStyleElement(cssSheet.ownerNode()) || isSVGStyleElement(cssSheet.ownerNode()) || cssSheet.ownerNode()->treeScope() == cssSheet.ownerDocument());
- if (cssSheet.mediaQueries() && !m_medium->eval(cssSheet.mediaQueries(), &m_viewportDependentMediaQueryResults))
+ if (cssSheet.mediaQueries() && !m_medium->eval(cssSheet.mediaQueries(), &m_viewportDependentMediaQueryResults, &m_deviceDependentMediaQueryResults))
return;
TreeScope* treeScope = &cssSheet.ownerNode()->treeScope();
@@ -1530,12 +1530,18 @@ void StyleResolver::computeFont(ComputedStyle* style, const StylePropertySet& pr
}
}
-void StyleResolver::addMediaQueryResults(const MediaQueryResultList& list)
+void StyleResolver::addViewportDependentMediaQueries(const MediaQueryResultList& list)
{
for (size_t i = 0; i < list.size(); ++i)
m_viewportDependentMediaQueryResults.append(list[i]);
}
+void StyleResolver::addDeviceDependentMediaQueries(const MediaQueryResultList& list)
+{
+ for (size_t i = 0; i < list.size(); ++i)
+ m_deviceDependentMediaQueryResults.append(list[i]);
+}
+
bool StyleResolver::mediaQueryAffectedByViewportChange() const
{
for (unsigned i = 0; i < m_viewportDependentMediaQueryResults.size(); ++i) {
@@ -1545,12 +1551,22 @@ bool StyleResolver::mediaQueryAffectedByViewportChange() const
return false;
}
+bool StyleResolver::mediaQueryAffectedByDeviceChange() const
+{
+ for (unsigned i = 0; i < m_deviceDependentMediaQueryResults.size(); ++i) {
+ if (m_medium->eval(m_deviceDependentMediaQueryResults[i]->expression()) != m_deviceDependentMediaQueryResults[i]->result())
+ return true;
+ }
+ return false;
+}
+
DEFINE_TRACE(StyleResolver)
{
#if ENABLE(OILPAN)
visitor->trace(m_matchedPropertiesCache);
visitor->trace(m_medium);
visitor->trace(m_viewportDependentMediaQueryResults);
+ visitor->trace(m_deviceDependentMediaQueryResults);
visitor->trace(m_selectorFilter);
visitor->trace(m_viewportStyleResolver);
visitor->trace(m_features);
« no previous file with comments | « third_party/WebKit/Source/core/css/resolver/StyleResolver.h ('k') | third_party/WebKit/Source/core/frame/FrameView.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698