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

Unified Diff: Source/core/css/ViewportStyleResolver.cpp

Issue 15072003: Move StyleResolver and related classes to core/css/resolver (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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
« no previous file with comments | « Source/core/css/ViewportStyleResolver.h ('k') | Source/core/css/WebKitCSSMatrix.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/ViewportStyleResolver.cpp
diff --git a/Source/core/css/ViewportStyleResolver.cpp b/Source/core/css/ViewportStyleResolver.cpp
deleted file mode 100644
index 1462971285978ecf3588a6b7ba5cf8289006681f..0000000000000000000000000000000000000000
--- a/Source/core/css/ViewportStyleResolver.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "core/css/ViewportStyleResolver.h"
-
-#if ENABLE(CSS_DEVICE_ADAPTATION)
-
-#include "CSSValueKeywords.h"
-#include "core/css/StylePropertySet.h"
-#include "core/css/StyleRule.h"
-#include "core/dom/Document.h"
-#include "core/dom/ViewportArguments.h"
-#include "core/page/Page.h"
-#include "core/rendering/RenderView.h"
-
-namespace WebCore {
-
-ViewportStyleResolver::ViewportStyleResolver(Document* document)
- : m_document(document)
-{
- ASSERT(m_document);
-}
-
-ViewportStyleResolver::~ViewportStyleResolver()
-{
-}
-
-void ViewportStyleResolver::addViewportRule(StyleRuleViewport* viewportRule)
-{
- StylePropertySet* propertySet = viewportRule->mutableProperties();
-
- unsigned propertyCount = propertySet->propertyCount();
- if (!propertyCount)
- return;
-
- if (!m_propertySet) {
- m_propertySet = propertySet->copy();
- return;
- }
-
- // We cannot use mergeAndOverrideOnConflict() here because it doesn't
- // respect the !important declaration (but addParsedProperty() does).
- for (unsigned i = 0; i < propertyCount; ++i)
- m_propertySet->addParsedProperty(propertySet->propertyAt(i).toCSSProperty());
-}
-
-void ViewportStyleResolver::clearDocument()
-{
- m_document = 0;
-}
-
-void ViewportStyleResolver::resolve()
-{
- if (!m_document || !m_propertySet)
- return;
-
- ViewportArguments arguments(ViewportArguments::CSSDeviceAdaptation);
-
- arguments.userZoom = getViewportArgumentValue(CSSPropertyUserZoom);
- arguments.zoom = getViewportArgumentValue(CSSPropertyZoom);
- arguments.minZoom = getViewportArgumentValue(CSSPropertyMinZoom);
- arguments.maxZoom = getViewportArgumentValue(CSSPropertyMaxZoom);
- arguments.minWidth = getViewportArgumentValue(CSSPropertyMinWidth);
- arguments.maxWidth = getViewportArgumentValue(CSSPropertyMaxWidth);
- arguments.minHeight = getViewportArgumentValue(CSSPropertyMinHeight);
- arguments.maxHeight = getViewportArgumentValue(CSSPropertyMaxHeight);
- arguments.orientation = getViewportArgumentValue(CSSPropertyOrientation);
-
- m_document->setViewportArguments(arguments);
- m_document->updateViewportArguments();
-
- m_propertySet = 0;
-}
-
-float ViewportStyleResolver::getViewportArgumentValue(CSSPropertyID id) const
-{
- float defaultValue = ViewportArguments::ValueAuto;
-
- // UserZoom default value is CSSValueZoom, which maps to true, meaning that
- // yes, it is user scalable. When the value is set to CSSValueFixed, we
- // return false.
- if (id == CSSPropertyUserZoom)
- defaultValue = 1;
-
- RefPtr<CSSValue> value = m_propertySet->getPropertyCSSValue(id);
- if (!value || !value->isPrimitiveValue())
- return defaultValue;
-
- CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value.get());
-
- if (primitiveValue->isNumber() || primitiveValue->isPx())
- return primitiveValue->getFloatValue();
-
- if (primitiveValue->isFontRelativeLength())
- return primitiveValue->getFloatValue() * m_document->documentElement()->renderStyle()->fontDescription().computedSize();
-
- if (primitiveValue->isPercentage()) {
- float percentValue = primitiveValue->getFloatValue() / 100.0f;
- switch (id) {
- case CSSPropertyMaxHeight:
- case CSSPropertyMinHeight:
- ASSERT(m_document->initialViewportSize().height() > 0);
- return percentValue * m_document->initialViewportSize().height();
- case CSSPropertyMaxWidth:
- case CSSPropertyMinWidth:
- ASSERT(m_document->initialViewportSize().width() > 0);
- return percentValue * m_document->initialViewportSize().width();
- case CSSPropertyMaxZoom:
- case CSSPropertyMinZoom:
- case CSSPropertyZoom:
- return percentValue;
- default:
- ASSERT_NOT_REACHED();
- break;
- }
- }
-
- switch (primitiveValue->getIdent()) {
- case CSSValueAuto:
- return defaultValue;
- case CSSValueDeviceHeight:
- return ViewportArguments::ValueDeviceHeight;
- case CSSValueDeviceWidth:
- return ViewportArguments::ValueDeviceWidth;
- case CSSValueLandscape:
- return ViewportArguments::ValueLandscape;
- case CSSValuePortrait:
- return ViewportArguments::ValuePortrait;
- case CSSValueZoom:
- return defaultValue;
- case CSSValueFixed:
- return 0;
- default:
- return defaultValue;
- }
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(CSS_DEVICE_ADAPTATION)
« no previous file with comments | « Source/core/css/ViewportStyleResolver.h ('k') | Source/core/css/WebKitCSSMatrix.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698