// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "sky/engine/core/css/MediaValuesDynamic.h" #include "sky/engine/core/css/CSSHelper.h" #include "sky/engine/core/css/CSSPrimitiveValue.h" #include "sky/engine/core/css/CSSToLengthConversionData.h" #include "sky/engine/core/css/MediaValuesCached.h" #include "sky/engine/core/dom/Document.h" #include "sky/engine/core/frame/LocalFrame.h" namespace blink { PassRefPtr MediaValuesDynamic::create(Document& document) { return MediaValuesDynamic::create(frameFrom(document)); } PassRefPtr MediaValuesDynamic::create(LocalFrame* frame) { if (!frame || !frame->view() || !frame->document() || !frame->document()->renderView()) return MediaValuesCached::create(); return adoptRef(new MediaValuesDynamic(frame)); } MediaValuesDynamic::MediaValuesDynamic(LocalFrame* frame) : m_frame(frame) { ASSERT(m_frame); } PassRefPtr MediaValuesDynamic::copy() const { return adoptRef(new MediaValuesDynamic(m_frame)); } bool MediaValuesDynamic::computeLength(double value, CSSPrimitiveValue::UnitType type, int& result) const { return MediaValues::computeLength(value, type, calculateDefaultFontSize(m_frame), calculateViewportWidth(m_frame), calculateViewportHeight(m_frame), result); } bool MediaValuesDynamic::computeLength(double value, CSSPrimitiveValue::UnitType type, double& result) const { return MediaValues::computeLength(value, type, calculateDefaultFontSize(m_frame), calculateViewportWidth(m_frame), calculateViewportHeight(m_frame), result); } bool MediaValuesDynamic::isSafeToSendToAnotherThread() const { return false; } int MediaValuesDynamic::viewportWidth() const { return calculateViewportWidth(m_frame); } int MediaValuesDynamic::viewportHeight() const { return calculateViewportHeight(m_frame); } int MediaValuesDynamic::deviceWidth() const { return calculateDeviceWidth(m_frame); } int MediaValuesDynamic::deviceHeight() const { return calculateDeviceHeight(m_frame); } float MediaValuesDynamic::devicePixelRatio() const { return calculateDevicePixelRatio(m_frame); } int MediaValuesDynamic::colorBitsPerComponent() const { return calculateColorBitsPerComponent(m_frame); } int MediaValuesDynamic::monochromeBitsPerComponent() const { return calculateMonochromeBitsPerComponent(m_frame); } PointerType MediaValuesDynamic::primaryPointerType() const { return calculatePrimaryPointerType(m_frame); } int MediaValuesDynamic::availablePointerTypes() const { return calculateAvailablePointerTypes(m_frame); } HoverType MediaValuesDynamic::primaryHoverType() const { return calculatePrimaryHoverType(m_frame); } int MediaValuesDynamic::availableHoverTypes() const { return calculateAvailableHoverTypes(m_frame); } bool MediaValuesDynamic::threeDEnabled() const { return calculateThreeDEnabled(m_frame); } const String MediaValuesDynamic::mediaType() const { return calculateMediaType(m_frame); } bool MediaValuesDynamic::strictMode() const { return calculateStrictMode(m_frame); } Document* MediaValuesDynamic::document() const { return m_frame->document(); } bool MediaValuesDynamic::hasValues() const { return m_frame; } } // namespace