From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/css/MediaQueryMatcher.h | 47 ++++++++++++++-------------------- 1 file changed, 19 insertions(+), 28 deletions(-) (limited to 'Source/WebCore/css/MediaQueryMatcher.h') diff --git a/Source/WebCore/css/MediaQueryMatcher.h b/Source/WebCore/css/MediaQueryMatcher.h index 4d549b96a..7510710d9 100644 --- a/Source/WebCore/css/MediaQueryMatcher.h +++ b/Source/WebCore/css/MediaQueryMatcher.h @@ -17,8 +17,7 @@ * Boston, MA 02110-1301, USA. */ -#ifndef MediaQueryMatcher_h -#define MediaQueryMatcher_h +#pragma once #include #include @@ -32,56 +31,48 @@ class MediaQueryList; class MediaQueryListListener; class MediaQueryEvaluator; class MediaQuerySet; +class RenderStyle; // MediaQueryMatcher class is responsible for keeping a vector of pairs // MediaQueryList x MediaQueryListListener. It is responsible for evaluating the queries // whenever it is needed and to call the listeners if the corresponding query has changed. -// The listeners must be called in the very same order in which they have been added. +// The listeners must be called in the order in which they were added. -class MediaQueryMatcher : public RefCounted { +class MediaQueryMatcher final : public RefCounted { public: - static PassRefPtr create(Document* document) { return adoptRef(new MediaQueryMatcher(document)); } + static Ref create(Document& document) { return adoptRef(*new MediaQueryMatcher(document)); } ~MediaQueryMatcher(); + void documentDestroyed(); - void addListener(PassRefPtr, PassRefPtr); - void removeListener(MediaQueryListListener*, MediaQueryList*); + void addListener(Ref&&, MediaQueryList&); + void removeListener(MediaQueryListListener&, MediaQueryList&); - PassRefPtr matchMedia(const String&); + RefPtr matchMedia(const String&); unsigned evaluationRound() const { return m_evaluationRound; } - void styleResolverChanged(); - bool evaluate(const MediaQuerySet*); - -private: - class Listener { - public: - Listener(PassRefPtr, PassRefPtr); - ~Listener(); - void evaluate(MediaQueryEvaluator*); + void styleResolverChanged(); - MediaQueryListListener* listener() { return m_listener.get(); } - MediaQueryList* query() { return m_query.get(); } + bool evaluate(const MediaQuerySet&); - private: - RefPtr m_listener; - RefPtr m_query; +private: + struct Listener { + Ref listener; + Ref query; }; - MediaQueryMatcher(Document*); - std::unique_ptr prepareEvaluator() const; + explicit MediaQueryMatcher(Document&); + std::unique_ptr documentElementUserAgentStyle() const; String mediaType() const; Document* m_document; - Vector> m_listeners; + Vector m_listeners; // This value is incremented at style selector changes. // It is used to avoid evaluating queries more then once and to make sure // that a media query result change is notified exactly once. - unsigned m_evaluationRound; + unsigned m_evaluationRound { 1 }; }; } // namespace WebCore - -#endif // MediaQueryMatcher_h -- cgit v1.2.1