Index: third_party/WebKit/Source/core/dom/StyleEngine.cpp |
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.cpp b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
index 8d064daae7b4616bf5b20da5bfe97e7391e6d664..6ff6b18a295c537935e2ef94d45f731e93831b29 100644 |
--- a/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
@@ -37,6 +37,7 @@ |
#include "core/css/StyleSheetContents.h" |
#include "core/css/invalidation/InvalidationSet.h" |
#include "core/css/resolver/ScopedStyleResolver.h" |
+#include "core/css/resolver/ViewportStyleResolver.h" |
#include "core/dom/DocumentStyleSheetCollector.h" |
#include "core/dom/Element.h" |
#include "core/dom/ElementTraversal.h" |
@@ -393,6 +394,8 @@ void StyleEngine::shadowRootRemovedFromDocument(ShadowRoot* shadowRoot) { |
void StyleEngine::appendActiveAuthorStyleSheets() { |
DCHECK(isMaster()); |
+ documentStyleSheetCollection().updateViewport(); |
+ |
m_resolver->appendAuthorStyleSheets( |
documentStyleSheetCollection().activeAuthorStyleSheets()); |
for (TreeScope* treeScope : m_activeTreeScopes) { |
@@ -442,6 +445,7 @@ void StyleEngine::clearMasterResolver() { |
void StyleEngine::didDetach() { |
clearResolver(); |
+ m_viewportResolver.clear(); |
} |
bool StyleEngine::shouldClearResolver() const { |
@@ -499,6 +503,12 @@ void StyleEngine::removeFontFaceRules( |
m_resolver->invalidateMatchedPropertiesCache(); |
} |
+ViewportStyleResolver& StyleEngine::ensureViewportStyleResolver() { |
+ if (!m_viewportResolver) |
+ m_viewportResolver = ViewportStyleResolver::create(m_document); |
+ return *m_viewportResolver.get(); |
+} |
+ |
void StyleEngine::markTreeScopeDirty(TreeScope& scope) { |
if (scope == m_document) { |
markDocumentDirty(); |
@@ -947,6 +957,12 @@ void StyleEngine::ensureFullscreenUAStyle() { |
m_resolver->resetRuleFeatures(); |
} |
+void StyleEngine::initialViewportChanged() { |
+ if (m_viewportResolver && |
+ m_viewportResolver->isAffectedByInitialViewportChange()) |
+ updateViewport(); |
+} |
+ |
DEFINE_TRACE(StyleEngine) { |
visitor->trace(m_document); |
visitor->trace(m_injectedAuthorStyleSheets); |
@@ -954,6 +970,7 @@ DEFINE_TRACE(StyleEngine) { |
visitor->trace(m_documentStyleSheetCollection); |
visitor->trace(m_styleSheetCollectionMap); |
visitor->trace(m_resolver); |
+ visitor->trace(m_viewportResolver); |
visitor->trace(m_styleInvalidator); |
visitor->trace(m_dirtyTreeScopes); |
visitor->trace(m_activeTreeScopes); |