Chromium Code Reviews| Index: Source/core/html/HTMLDialogElement.cpp |
| diff --git a/Source/core/html/HTMLDialogElement.cpp b/Source/core/html/HTMLDialogElement.cpp |
| index 42a503d30dcea95d4081a5174ac472d31f69eeed..d77ceb666f0bc692988e0eda70ddde53bd6c838f 100644 |
| --- a/Source/core/html/HTMLDialogElement.cpp |
| +++ b/Source/core/html/HTMLDialogElement.cpp |
| @@ -95,6 +95,7 @@ HTMLDialogElement::HTMLDialogElement(Document& document) |
| , m_centeringMode(Uninitialized) |
| , m_centeredPosition(0) |
| , m_returnValue("") |
| + , m_modal(false) |
| { |
| ScriptWrappable::init(this); |
| } |
| @@ -113,6 +114,12 @@ void HTMLDialogElement::close(const String& returnValue, ExceptionState& excepti |
| closeDialog(returnValue); |
| } |
| +void HTMLDialogElement::removedFrom(ContainerNode* insertionPoint) |
| +{ |
| + document().removeFromModalDialogStack(this); |
|
esprehn
2014/01/21 18:59:05
Remove all this, I don't think you should need the
falken
2014/01/22 06:08:02
OK but we still need removedFrom to reset m_modal.
|
| + HTMLElement::removedFrom(insertionPoint); |
| +} |
| + |
| void HTMLDialogElement::closeDialog(const String& returnValue) |
| { |
| if (!fastHasAttribute(openAttr)) |
| @@ -120,7 +127,7 @@ void HTMLDialogElement::closeDialog(const String& returnValue) |
| setBooleanAttribute(openAttr, false); |
| HTMLDialogElement* activeModalDialog = document().activeModalDialog(); |
| - document().removeFromTopLayer(this); |
| + document().removeFromModalDialogStack(this); |
| if (activeModalDialog == this) |
| inertSubtreesChanged(document()); |
| @@ -157,7 +164,7 @@ void HTMLDialogElement::showModal(ExceptionState& exceptionState) |
| return; |
| } |
| - document().addToTopLayer(this); |
| + document().addToModalDialogStack(this); |
| setBooleanAttribute(openAttr, true); |
| // Throw away the AX cache first, so the subsequent steps don't have a chance of queuing up |