blob: acc1f153bdfd12691d8cd784d592c89d2e281737 [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 MediaValuesCached_h
#define MediaValuesCached_h
#include "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;
PointerDeviceType pointer;
int defaultFontSize;
bool threeDEnabled;
bool strictMode;
String mediaType;
MediaValuesCachedData()
: viewportWidth(0)
, viewportHeight(0)
, deviceWidth(0)
, deviceHeight(0)
, devicePixelRatio(1.0)
, colorBitsPerComponent(24)
, monochromeBitsPerComponent(0)
, pointer(UnknownPointer)
, 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 PointerDeviceType pointer() 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 // MediaValuesCached_h