| Index: Source/core/css/resolver/StyleResolver.cpp
|
| diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp
|
| index c5e87af65b09d46f53801ce646e9b8fb0b3dec66..7293eb0a1a2a80ecf987a62ca95a7ee2e1242b6b 100644
|
| --- a/Source/core/css/resolver/StyleResolver.cpp
|
| +++ b/Source/core/css/resolver/StyleResolver.cpp
|
| @@ -50,6 +50,7 @@
|
| #include "core/css/CSSSelector.h"
|
| #include "core/css/CSSStyleRule.h"
|
| #include "core/css/CSSValueList.h"
|
| +#include "core/css/CSSValuePool.h"
|
| #include "core/css/CSSVariableValue.h"
|
| #include "core/css/ElementRuleCollector.h"
|
| #include "core/css/MediaQueryEvaluator.h"
|
| @@ -73,6 +74,7 @@
|
| #include "core/inspector/InspectorInstrumentation.h"
|
| #include "core/page/Frame.h"
|
| #include "core/page/FrameView.h"
|
| +#include "core/page/PageGroup.h"
|
| #include "core/rendering/RenderView.h"
|
| #include "core/rendering/style/KeyframeList.h"
|
| #include "core/rendering/style/StyleCustomFilterProgramCache.h"
|
| @@ -137,6 +139,13 @@ StyleResolver::StyleResolver(Document* document, bool matchAuthorAndUserStyles)
|
|
|
| m_styleTree.clear();
|
|
|
| + if (document->isXHTMLMobileProfile()) {
|
| + Vector<String> whitelist;
|
| + whitelist.append(document->url());
|
| + static const char* sheet = "@viewport{-internal-priority:1;width:auto;height:auto;zoom:1;}";
|
| + document->page()->group().addUserStyleSheet(sheet, KURL(), whitelist, Vector<String>(), InjectInAllFrames, UserStyleAuthorLevel, InjectInExistingDocuments);
|
| + }
|
| +
|
| DocumentStyleSheetCollection* styleSheetCollection = document->styleSheetCollection();
|
| m_ruleSets.initUserStyle(styleSheetCollection, *m_medium, *this);
|
|
|
| @@ -159,6 +168,7 @@ void StyleResolver::appendAuthorStyleSheets(unsigned firstNew, const Vector<RefP
|
| unsigned size = styleSheets.size();
|
| for (unsigned i = firstNew; i < size; ++i) {
|
| CSSStyleSheet* cssSheet = styleSheets[i].get();
|
| +
|
| ASSERT(!cssSheet->disabled());
|
| if (cssSheet->mediaQueries() && !m_medium->eval(cssSheet->mediaQueries(), this))
|
| continue;
|
| @@ -178,8 +188,7 @@ void StyleResolver::finishAppendAuthorStyleSheets()
|
| if (document()->renderer() && document()->renderer()->style())
|
| document()->renderer()->style()->font().update(fontSelector());
|
|
|
| - if (RuntimeEnabledFeatures::cssViewportEnabled())
|
| - collectViewportRules();
|
| + collectViewportRules();
|
| }
|
|
|
| void StyleResolver::resetAuthorStyle(const ContainerNode* scopingNode)
|
| @@ -1030,12 +1039,12 @@ PassRefPtr<RenderStyle> StyleResolver::styleForPage(int pageIndex)
|
|
|
| void StyleResolver::collectViewportRules()
|
| {
|
| - ASSERT(RuntimeEnabledFeatures::cssViewportEnabled());
|
| -
|
| collectViewportRules(CSSDefaultStyleSheets::defaultStyle);
|
| if (m_ruleSets.userStyle())
|
| collectViewportRules(m_ruleSets.userStyle());
|
|
|
| + // OK to collect here for viewport meta etc, only the parser doesn't allow addition
|
| + // of @viewport with the runtime check.
|
| if (ScopedStyleResolver* scopedResolver = m_styleTree.scopedStyleResolverForDocument())
|
| scopedResolver->collectViewportRulesTo(this);
|
|
|
| @@ -1044,8 +1053,6 @@ void StyleResolver::collectViewportRules()
|
|
|
| void StyleResolver::collectViewportRules(RuleSet* rules)
|
| {
|
| - ASSERT(RuntimeEnabledFeatures::cssViewportEnabled());
|
| -
|
| rules->compactRulesIfNeeded();
|
|
|
| const Vector<StyleRuleViewport*>& viewportRules = rules->viewportRules();
|
| @@ -1503,6 +1510,7 @@ bool StyleResolver::affectedByViewportChange() const
|
| if (m_medium->eval(&m_viewportDependentMediaQueryResults[i]->m_expression) != m_viewportDependentMediaQueryResults[i]->m_result)
|
| return true;
|
| }
|
| +
|
| return false;
|
| }
|
|
|
|
|