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

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

Issue 348893004: Rework MediaQueryMatcher to batch up listener notification (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: now with it Created 6 years, 6 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
Index: Source/core/css/MediaQueryList.h
diff --git a/Source/core/css/MediaQueryList.h b/Source/core/css/MediaQueryList.h
index ba04100cc723e42cb75d7e957d579b52408ff66d..73beebd28ff5289dc3eedde5af2fb7f117f28cf1 100644
--- a/Source/core/css/MediaQueryList.h
+++ b/Source/core/css/MediaQueryList.h
@@ -37,28 +37,33 @@ class MediaQuerySet;
// retrieve the current value of the given media query and to add/remove listeners that
// will be called whenever the value of the query changes.
-class MediaQueryList FINAL : public RefCountedWillBeGarbageCollected<MediaQueryList> {
- DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(MediaQueryList);
+class MediaQueryList FINAL : public RefCountedWillBeGarbageCollectedFinalized<MediaQueryList> {
public:
- static PassRefPtrWillBeRawPtr<MediaQueryList> create(PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>, bool);
+ static PassRefPtrWillBeRawPtr<MediaQueryList> create(PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>);
+ virtual ~MediaQueryList();
+
String media() const;
bool matches();
void addListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>);
void removeListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>);
- bool evaluate(MediaQueryEvaluator*);
+ void mediaFeaturesChanged(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> >* toNotify);
void trace(Visitor*);
+ void documentDetached();
+
private:
- MediaQueryList(PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>, bool matches);
- void setMatches(bool);
+ MediaQueryList(PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>);
+
+ bool updateMatches();
RefPtrWillBeMember<MediaQueryMatcher> m_matcher;
RefPtrWillBeMember<MediaQuerySet> m_media;
- unsigned m_evaluationRound; // Indicates if the query has been evaluated after the last style selector change.
- unsigned m_changeRound; // Used to know if the query has changed in the last style selector change.
+ typedef WillBeHeapListHashSet<RefPtrWillBeMember<MediaQueryListListener> > ListenerList;
+ ListenerList m_listeners;
+ bool m_matchesDirty;
bool m_matches;
};
« no previous file with comments | « LayoutTests/fast/media/media-query-list-listener-ordering-expected.txt ('k') | Source/core/css/MediaQueryList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698