Index: Source/core/css/resolver/ViewportStyleResolver.cpp |
diff --git a/Source/core/css/resolver/ViewportStyleResolver.cpp b/Source/core/css/resolver/ViewportStyleResolver.cpp |
index 7c957ea3d5f14e16d2fca85959c84dabd21a35e4..5111f8cf58160e542c38719b92bce7579c2ffbec 100644 |
--- a/Source/core/css/resolver/ViewportStyleResolver.cpp |
+++ b/Source/core/css/resolver/ViewportStyleResolver.cpp |
@@ -31,14 +31,17 @@ |
#include "core/css/resolver/ViewportStyleResolver.h" |
#include "core/CSSValueKeywords.h" |
+#include "core/css/CSSDefaultStyleSheets.h" |
#include "core/css/CSSPrimitiveValueMappings.h" |
#include "core/css/CSSToLengthConversionData.h" |
#include "core/css/StylePropertySet.h" |
#include "core/css/StyleRule.h" |
+#include "core/css/resolver/ScopedStyleResolver.h" |
#include "core/dom/Document.h" |
#include "core/dom/NodeLayoutStyle.h" |
#include "core/dom/ViewportDescription.h" |
#include "core/frame/FrameView.h" |
+#include "core/inspector/InspectorInstrumentation.h" |
namespace blink { |
@@ -51,11 +54,31 @@ ViewportStyleResolver::ViewportStyleResolver(Document* document) |
ASSERT(m_document); |
} |
+void ViewportStyleResolver::collectViewportRules() |
+{ |
+ CSSDefaultStyleSheets& defaultStyleSheets = CSSDefaultStyleSheets::instance(); |
+ collectViewportRules(defaultStyleSheets.defaultStyle(), UserAgentOrigin); |
+ |
+ RuleSet* rules = defaultStyleSheets.defaultViewportStyle(); |
+ if (InspectorInstrumentation::shouldApplyViewportStyleOverride(m_document)) |
+ rules = defaultStyleSheets.defaultViewportOverrideStyle(); |
+ |
+ collectViewportRules(rules, UserAgentOrigin); |
+ |
+ if (m_document->isMobileDocument()) |
+ collectViewportRules(defaultStyleSheets.defaultXHTMLMobileProfileStyle(), UserAgentOrigin); |
+ |
+ if (ScopedStyleResolver* scopedResolver = m_document->scopedStyleResolver()) |
+ scopedResolver->collectViewportRulesTo(this); |
+ |
+ resolve(); |
+} |
+ |
void ViewportStyleResolver::collectViewportRules(RuleSet* rules, Origin origin) |
{ |
rules->compactRulesIfNeeded(); |
- const WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport> >& viewportRules = rules->viewportRules(); |
+ const WillBeHeapVector<RawPtrWillBeMember<StyleRuleViewport>>& viewportRules = rules->viewportRules(); |
for (size_t i = 0; i < viewportRules.size(); ++i) |
addViewportRule(viewportRules[i], origin); |
} |
@@ -84,9 +107,6 @@ void ViewportStyleResolver::addViewportRule(StyleRuleViewport* viewportRule, Ori |
void ViewportStyleResolver::resolve() |
{ |
- if (!m_document) |
- return; |
- |
if (!m_propertySet) { |
m_document->setViewportDescription(ViewportDescription(ViewportDescription::UserAgentStyleSheet)); |
return; |