Index: Source/core/css/MediaQueryMatcher.cpp |
diff --git a/Source/core/css/MediaQueryMatcher.cpp b/Source/core/css/MediaQueryMatcher.cpp |
index 12d21b0148b004e3fbec10a2b2f61028124f7164..84758e10f7c31b4b3afe0aa8af2d21a4490e233c 100644 |
--- a/Source/core/css/MediaQueryMatcher.cpp |
+++ b/Source/core/css/MediaQueryMatcher.cpp |
@@ -100,6 +100,20 @@ void MediaQueryMatcher::removeMediaQueryList(MediaQueryList* query) |
m_mediaLists.remove(query); |
} |
+void MediaQueryMatcher::addViewportListener(MediaQueryListListener* listener) |
+{ |
+ if (!m_document) |
+ return; |
+ m_viewportListeners.add(listener); |
+} |
+ |
+void MediaQueryMatcher::removeViewportListener(MediaQueryListListener* listener) |
+{ |
+ if (!m_document) |
+ return; |
+ m_viewportListeners.remove(listener); |
+} |
+ |
void MediaQueryMatcher::mediaFeaturesChanged() |
{ |
if (!m_document) |
@@ -108,6 +122,17 @@ void MediaQueryMatcher::mediaFeaturesChanged() |
WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> > listenersToNotify; |
for (MediaQueryListSet::iterator it = m_mediaLists.begin(); it != m_mediaLists.end(); ++it) |
(*it)->mediaFeaturesChanged(&listenersToNotify); |
+ m_document->enqueueMediaQueryChangeListeners(listenersToNotify); |
+} |
+ |
+void MediaQueryMatcher::viewportChanged() |
+{ |
+ if (!m_document) |
+ return; |
+ |
+ WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener> > listenersToNotify; |
+ for (ViewportListenerSet::iterator it = m_viewportListeners.begin(); it != m_viewportListeners.end(); ++it) |
+ listenersToNotify.append(*it); |
m_document->enqueueMediaQueryChangeListeners(listenersToNotify); |
} |