blob: 3f61e3a14d64641362961df366755055f424bc76 [file] [log] [blame]
// 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.
#ifndef SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_
#define SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_
#include "sky/engine/core/css/MediaValues.h"
namespace blink {
class MediaValuesCached final : public MediaValues {
public:
struct MediaValuesCachedData {
// Members variables must be thread safe, since they're copied to the parser thread
int viewportWidth;
int viewportHeight;
int deviceWidth;
int deviceHeight;
float devicePixelRatio;
int colorBitsPerComponent;
int monochromeBitsPerComponent;
PointerType primaryPointerType;
int availablePointerTypes;
HoverType primaryHoverType;
int availableHoverTypes;
int defaultFontSize;
bool threeDEnabled;
bool strictMode;
String mediaType;
MediaValuesCachedData()
: viewportWidth(0)
, viewportHeight(0)
, deviceWidth(0)
, deviceHeight(0)
, devicePixelRatio(1.0)
, colorBitsPerComponent(24)
, monochromeBitsPerComponent(0)
, primaryPointerType(PointerTypeNone)
, availablePointerTypes(PointerTypeNone)
, primaryHoverType(HoverTypeNone)
, availableHoverTypes(HoverTypeNone)
, defaultFontSize(16)
, threeDEnabled(false)
, strictMode(true)
{
}
};
static PassRefPtr<MediaValues> create();
static PassRefPtr<MediaValues> create(Document&);
static PassRefPtr<MediaValues> create(LocalFrame*);
static PassRefPtr<MediaValues> create(MediaValuesCachedData&);
virtual PassRefPtr<MediaValues> copy() const override;
virtual bool isSafeToSendToAnotherThread() const override;
virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, int& result) const override;
virtual bool computeLength(double value, CSSPrimitiveValue::UnitType, double& result) const override;
virtual int viewportWidth() const override;
virtual int viewportHeight() const override;
virtual int deviceWidth() const override;
virtual int deviceHeight() const override;
virtual float devicePixelRatio() const override;
virtual int colorBitsPerComponent() const override;
virtual int monochromeBitsPerComponent() const override;
virtual PointerType primaryPointerType() const override;
virtual int availablePointerTypes() const override;
virtual HoverType primaryHoverType() const override;
virtual int availableHoverTypes() const override;
virtual bool threeDEnabled() const override;
virtual bool strictMode() const override;
virtual Document* document() const override;
virtual bool hasValues() const override;
virtual const String mediaType() const override;
protected:
MediaValuesCached();
MediaValuesCached(LocalFrame*);
MediaValuesCached(const MediaValuesCachedData&);
MediaValuesCachedData m_data;
};
} // namespace
#endif // SKY_ENGINE_CORE_CSS_MEDIAVALUESCACHED_H_