Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 5a09d1d367578cc53657d00fa5ce5ccae1876ee8..d96ecfcd17a33a3e5e78ac892f0f82e081d2a847 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -5094,9 +5094,13 @@ void Document::removeFromTopLayer(Element* element) |
HTMLDialogElement* Document::activeModalDialog() const |
{ |
- if (m_topLayerElements.isEmpty()) |
- return 0; |
- return toHTMLDialogElement(m_topLayerElements.last().get()); |
+ for (auto it = m_topLayerElements.rbegin(); it != m_topLayerElements.rend(); ++it) { |
+ Element* currentTopLayerElement = it->get(); |
+ if (isHTMLDialogElement(currentTopLayerElement)) |
+ return toHTMLDialogElement(currentTopLayerElement); |
+ } |
+ |
+ return 0; |
} |
void Document::exitPointerLock() |