Chromium Code Reviews| Index: Source/core/css/MediaQueryList.h |
| diff --git a/Source/core/css/MediaQueryList.h b/Source/core/css/MediaQueryList.h |
| index 52c73ef0a7ec4f39b30c8a495257824be1a3d9cb..a5e43bb763191f61495ad5c4d6c00cb1af007252 100644 |
| --- a/Source/core/css/MediaQueryList.h |
| +++ b/Source/core/css/MediaQueryList.h |
| @@ -21,6 +21,7 @@ |
| #define MediaQueryList_h |
| #include "core/dom/ActiveDOMObject.h" |
| +#include "core/events/EventTarget.h" |
| #include "platform/heap/Handle.h" |
| #include "wtf/Forward.h" |
| #include "wtf/RefCounted.h" |
| @@ -28,6 +29,7 @@ |
| namespace blink { |
| +class Document; |
| class ExecutionContext; |
| class MediaQueryListListener; |
| class MediaQueryEvaluator; |
| @@ -39,7 +41,11 @@ 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 RefCountedWillBeGarbageCollectedFinalized<MediaQueryList>, public ActiveDOMObject { |
| +class MediaQueryList FINAL : public RefCountedWillBeGarbageCollectedFinalized<MediaQueryList>, public EventTargetWithInlineData, public ActiveDOMObject { |
| +#if !ENABLE_OILPAN |
| + REFCOUNTED_EVENT_TARGET(MediaQueryList); |
|
haraken
2014/07/20 05:14:49
You can use DEFINE_EVENT_TARGET_REFCOUNTING_WILL_B
cbiesinger
2014/07/21 22:07:19
Hm... then I'd have to duplicate the superclass na
haraken
2014/07/22 01:30:12
We normally duplicate the superclass name... proba
|
| +#endif |
| + WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaQueryList); |
| public: |
| static PassRefPtrWillBeRawPtr<MediaQueryList> create(ExecutionContext*, PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>); |
| virtual ~MediaQueryList(); |
| @@ -47,10 +53,18 @@ public: |
| String media() const; |
| bool matches(); |
| - void addListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>); |
| - void removeListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>); |
| + DEFINE_ATTRIBUTE_EVENT_LISTENER(change); |
| - void mediaFeaturesChanged(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> >* listenersToNotify); |
| + // These two functions are provided for compatibility with JS code |
| + // written before the change listener became a DOM event. |
| + void addListener(PassRefPtr<EventListener>); |
| + void removeListener(PassRefPtr<EventListener>); |
|
haraken
2014/07/20 05:14:49
Shall we rename these methods to addDeprecatedList
cbiesinger
2014/07/21 22:07:19
That's a great suggestion! Thanks, done.
|
| + |
| + void addMediaQueryListListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>); |
| + void removeMediaQueryListListener(PassRefPtrWillBeRawPtr<MediaQueryListListener>); |
| + |
| + // Will return true if a DOM event should be scheduled. |
| + bool mediaFeaturesChanged(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> >* listenersToNotify); |
| void trace(Visitor*); |
| @@ -58,6 +72,9 @@ public: |
| virtual bool hasPendingActivity() const OVERRIDE; |
| virtual void stop() OVERRIDE; |
| + virtual const AtomicString& interfaceName() const OVERRIDE; |
| + virtual ExecutionContext* executionContext() const OVERRIDE; |
| + |
| private: |
| MediaQueryList(ExecutionContext*, PassRefPtrWillBeRawPtr<MediaQueryMatcher>, PassRefPtrWillBeRawPtr<MediaQuerySet>); |