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

Unified Diff: Source/core/css/MediaValues.h

Issue 224733011: A sizes attribute parser (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixed rebase Created 6 years, 8 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/MediaQuerySetTest.cpp ('k') | Source/core/css/MediaValues.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/MediaValues.h
diff --git a/Source/core/css/MediaValues.h b/Source/core/css/MediaValues.h
index d399a76c6f548b3724de4ee10d609cbc3d8b255a..60ac92840d56cc6bd2046ba4efa56fb671ad6546 100644
--- a/Source/core/css/MediaValues.h
+++ b/Source/core/css/MediaValues.h
@@ -5,107 +5,78 @@
#ifndef MediaValues_h
#define MediaValues_h
-#include "core/css/MediaQueryEvaluator.h"
-#include "core/css/resolver/StyleResolverState.h"
-#include "core/rendering/style/RenderStyle.h"
+#include "core/frame/LocalFrame.h"
#include "wtf/RefCounted.h"
#include "wtf/RefPtr.h"
-#include "wtf/text/WTFString.h"
namespace WebCore {
class Document;
+class RenderStyle;
+class CSSPrimitiveValue;
class MediaValues : public RefCounted<MediaValues> {
public:
- enum MediaValuesMode { CachingMode,
- DynamicMode };
- enum PointerDeviceType { TouchPointer,
+ enum MediaValuesMode {
+ CachingMode,
+ DynamicMode
+ };
+
+ enum PointerDeviceType {
+ TouchPointer,
MousePointer,
NoPointer,
- UnknownPointer };
+ UnknownPointer
+ };
+ virtual ~MediaValues() { }
- static PassRefPtr<MediaValues> create(Document*, MediaValuesMode);
- static PassRefPtr<MediaValues> create(LocalFrame*, RenderStyle*, MediaValuesMode);
- static PassRefPtr<MediaValues> create(MediaValuesMode,
- int viewportWidth,
- int viewportHeight,
- int deviceWidth,
- int deviceHeight,
- float devicePixelRatio,
- int colorBitsPerComponent,
- int monochromeBitsPerComponent,
- PointerDeviceType,
- int defaultFontSize,
- bool threeDEnabled,
- bool scanMediaType,
- bool screenMediaType,
- bool printMediaType,
- bool strictMode);
- PassRefPtr<MediaValues> copy() const;
- bool isSafeToSendToAnotherThread() const;
+ virtual PassRefPtr<MediaValues> copy() const = 0;
+ virtual bool isSafeToSendToAnotherThread() const = 0;
+ virtual bool computeLength(double value, unsigned short type, int& result) const = 0;
- int viewportWidth() const;
- int viewportHeight() const;
- int deviceWidth() const;
- int deviceHeight() const;
- float devicePixelRatio() const;
- int colorBitsPerComponent() const;
- int monochromeBitsPerComponent() const;
- PointerDeviceType pointer() const;
- int defaultFontSize() const;
- bool threeDEnabled() const;
- bool scanMediaType() const;
- bool screenMediaType() const;
- bool printMediaType() const;
- bool strictMode() const;
- RenderStyle* style() const { return m_style.get(); }
- Document* document() const;
+ virtual int viewportWidth() const = 0;
+ virtual int viewportHeight() const = 0;
+ virtual int deviceWidth() const = 0;
+ virtual int deviceHeight() const = 0;
+ virtual float devicePixelRatio() const = 0;
+ virtual int colorBitsPerComponent() const = 0;
+ virtual int monochromeBitsPerComponent() const = 0;
+ virtual PointerDeviceType pointer() const = 0;
+ virtual bool threeDEnabled() const = 0;
+ virtual bool scanMediaType() const = 0;
+ virtual bool screenMediaType() const = 0;
+ virtual bool printMediaType() const = 0;
+ virtual bool strictMode() const = 0;
+ virtual Document* document() const = 0;
+ virtual bool hasValues() const = 0;
-private:
- MediaValues(LocalFrame* frame, PassRefPtr<RenderStyle> style, MediaValuesMode mode)
- : m_style(style)
- , m_frame(frame)
- , m_mode(mode)
- , m_viewportWidth(0)
- , m_viewportHeight(0)
- , m_deviceWidth(0)
- , m_deviceHeight(0)
- , m_devicePixelRatio(0)
- , m_colorBitsPerComponent(0)
- , m_monochromeBitsPerComponent(0)
- , m_pointer(UnknownPointer)
- , m_defaultFontSize(0)
- , m_threeDEnabled(false)
- , m_scanMediaType(false)
- , m_screenMediaType(false)
- , m_printMediaType(false)
- , m_strictMode(false)
- {
- }
+protected:
+ static Document* getExecutingDocument(Document&);
- RefPtr<RenderStyle> m_style;
- LocalFrame* m_frame;
- MediaValuesMode m_mode;
+ int calculateViewportWidth(LocalFrame*) const;
+ int calculateViewportHeight(LocalFrame*) const;
+ int calculateDeviceWidth(LocalFrame*) const;
+ int calculateDeviceHeight(LocalFrame*) const;
+ bool calculateStrictMode(LocalFrame*) const;
+ float calculateDevicePixelRatio(LocalFrame*) const;
+ int calculateColorBitsPerComponent(LocalFrame*) const;
+ int calculateMonochromeBitsPerComponent(LocalFrame*) const;
+ int calculateDefaultFontSize(RenderStyle*) const;
+ int calculateComputedFontSize(RenderStyle*) const;
+ bool calculateHasXHeight(RenderStyle*) const;
+ double calculateXHeight(RenderStyle*) const;
+ double calculateZeroWidth(RenderStyle*) const;
+ bool calculateScanMediaType(LocalFrame*) const;
+ bool calculateScreenMediaType(LocalFrame*) const;
+ bool calculatePrintMediaType(LocalFrame*) const;
+ bool calculateThreeDEnabled(LocalFrame*) const;
+ float calculateEffectiveZoom(RenderStyle*) const;
+ MediaValues::PointerDeviceType calculateLeastCapablePrimaryPointerDeviceType(LocalFrame*) const;
- // Members variables beyond this point must be thread safe, since they're copied to the parser thread
- int m_viewportWidth;
- int m_viewportHeight;
- int m_deviceWidth;
- int m_deviceHeight;
- float m_devicePixelRatio;
- int m_colorBitsPerComponent;
- int m_monochromeBitsPerComponent;
- PointerDeviceType m_pointer;
- int m_defaultFontSize;
- bool m_threeDEnabled;
- bool m_scanMediaType;
- bool m_screenMediaType;
- bool m_printMediaType;
- bool m_strictMode;
};
} // namespace
-#endif
+
+#endif // MediaValues_h
« no previous file with comments | « Source/core/css/MediaQuerySetTest.cpp ('k') | Source/core/css/MediaValues.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698