| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index b296bc131d40aea6bdf021f90fa105adad0f7928..59580fe49cb933c4c4e3f51ff2b4f71c55ee690a 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -4666,12 +4666,19 @@ void Document::enqueuePopstateEvent(PassRefPtr<SerializedScriptValue> stateObjec
|
| dispatchWindowEvent(PopStateEvent::create(stateObject, domWindow() ? domWindow()->history() : 0));
|
| }
|
|
|
| -void Document::addToTopLayer(Element* element)
|
| +void Document::addToTopLayer(Element* element, const Element* before)
|
| {
|
| if (element->isInTopLayer())
|
| return;
|
| +
|
| ASSERT(!m_topLayerElements.contains(element));
|
| - m_topLayerElements.append(element);
|
| + ASSERT(!before || m_topLayerElements.contains(before));
|
| + if (before) {
|
| + size_t beforePosition = m_topLayerElements.find(before);
|
| + m_topLayerElements.insert(beforePosition, element);
|
| + } else {
|
| + m_topLayerElements.append(element);
|
| + }
|
| element->setIsInTopLayer(true);
|
| }
|
|
|
|
|