Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 5a09d1d367578cc53657d00fa5ce5ccae1876ee8..abd5e8b85a29630ae357eb61eaa183f492f005b5 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -5094,9 +5094,15 @@ void Document::removeFromTopLayer(Element* element) |
HTMLDialogElement* Document::activeModalDialog() const |
{ |
- if (m_topLayerElements.isEmpty()) |
- return 0; |
- return toHTMLDialogElement(m_topLayerElements.last().get()); |
+ WillBeHeapVector<RefPtrWillBeMember<Element>>::const_reverse_iterator end = m_topLayerElements.rend(); |
+ WillBeHeapVector<RefPtrWillBeMember<Element>>::const_reverse_iterator it = m_topLayerElements.rbegin(); |
+ for (; it != end; ++it) { |
esprehn
2014/12/15 09:45:32
Use C++11 for loop.
Julien - ping for review
2014/12/15 17:02:53
Done
Julien - ping for review
2014/12/15 21:32:03
Actually I probably didn't do what asked for: we c
|
+ Element* currentTopLayerElement = it->get(); |
+ if (isHTMLDialogElement(currentTopLayerElement)) |
+ return toHTMLDialogElement(currentTopLayerElement); |
+ } |
+ |
+ return 0; |
} |
void Document::exitPointerLock() |