Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/HTMLDialogElement.cpp |
| diff --git a/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp b/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp |
| index f5af85eb93c424bada4d34ff2055adb825e80561..0f0abaf3a235b2f274e7b5abab4b38d7d5d50456 100644 |
| --- a/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp |
| +++ b/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp |
| @@ -81,6 +81,13 @@ static void SetFocusForDialog(HTMLDialogElement* dialog) { |
| } |
| static void InertSubtreesChanged(Document& document) { |
| + // TODO(kenrb): Am I correct in thinking that this will never get called on |
| + // and element that is in a frame that is already inert? If not, we |
|
dmazzoni
2017/05/18 15:47:06
I don't see how we can know that. A page can alway
kenrb
2017/05/19 17:46:28
Done.
|
| + // need to get the embedding frame's inert value and use that instead of |
| + // false. |
| + if (document.GetFrame()) |
| + document.GetFrame()->SetIsInert(false); |
|
aboxhall
2017/05/18 04:47:27
When does SetIsInert(true) get called?
Also, you
kenrb
2017/05/18 12:21:49
See LocalFrame::SetIsInert(). I should probably ad
|
| + |
| // When a modal dialog opens or closes, nodes all over the accessibility |
| // tree can change inertness which means they must be added or removed from |
| // the tree. The most foolproof way is to clear the entire tree and rebuild |
| @@ -182,7 +189,7 @@ void HTMLDialogElement::showModal(ExceptionState& exception_state) { |
| void HTMLDialogElement::RemovedFrom(ContainerNode* insertion_point) { |
| HTMLElement::RemovedFrom(insertion_point); |
| SetNotCentered(); |
| - // FIXME: We should call inertSubtreesChanged() here. |
| + InertSubtreesChanged(GetDocument()); |
| } |
| void HTMLDialogElement::SetCentered(LayoutUnit centered_position) { |