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

Unified Diff: Source/core/css/MediaQueryMatcher.cpp

Issue 396283004: Make the MediaQueryList listener an EventListener (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: argh, forgot a --reset-results Created 6 years, 5 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698