Index: Source/core/css/MediaQueryMatcher.cpp |
diff --git a/Source/core/css/MediaQueryMatcher.cpp b/Source/core/css/MediaQueryMatcher.cpp |
index 795b2eda01e554d2eadff3c9fa24666bee04c476..066cddc935d7817be427e647dd63e0ce80f17fbe 100644 |
--- a/Source/core/css/MediaQueryMatcher.cpp |
+++ b/Source/core/css/MediaQueryMatcher.cpp |
@@ -23,6 +23,7 @@ |
#include "core/css/MediaList.h" |
#include "core/css/MediaQueryEvaluator.h" |
#include "core/css/MediaQueryList.h" |
+#include "core/css/MediaQueryListEvent.h" |
#include "core/css/MediaQueryListListener.h" |
#include "core/css/resolver/StyleResolver.h" |
#include "core/dom/Document.h" |
@@ -91,7 +92,7 @@ PassRefPtrWillBeRawPtr<MediaQueryList> MediaQueryMatcher::matchMedia(const Strin |
RefPtrWillBeRawPtr<MediaQuerySet> media = MediaQuerySet::create(query); |
// Add warning message to inspector whenever dpi/dpcm values are used for "screen" media. |
reportMediaQueryWarningIfNeeded(m_document, media.get()); |
- return MediaQueryList::create(this, media); |
+ return MediaQueryList::create(this, media, m_document); |
} |
void MediaQueryMatcher::addMediaQueryList(MediaQueryList* query) |
@@ -114,8 +115,13 @@ void MediaQueryMatcher::mediaFeaturesChanged() |
return; |
WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> > listenersToNotify; |
- for (MediaQueryListSet::iterator it = m_mediaLists.begin(); it != m_mediaLists.end(); ++it) |
- (*it)->mediaFeaturesChanged(&listenersToNotify); |
+ for (MediaQueryListSet::iterator it = m_mediaLists.begin(); it != m_mediaLists.end(); ++it) { |
+ if ((*it)->mediaFeaturesChanged(&listenersToNotify)) { |
+ RefPtrWillBeRawPtr<Event> event(MediaQueryListEvent::create((*it)->media(), (*it)->matches())); |
+ event->setTarget(*it); |
+ m_document->enqueuePerFrameEvent(event); |
+ } |
+ } |
m_document->enqueueMediaQueryChangeListeners(listenersToNotify); |
} |