| 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..6e7cbea36925eaf19cdcf17f5188621c402b35fa 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLDialogElement.cpp
|
| @@ -33,6 +33,7 @@
|
| #include "core/frame/FrameView.h"
|
| #include "core/frame/UseCounter.h"
|
| #include "core/html/HTMLFormControlElement.h"
|
| +#include "core/html/HTMLFrameOwnerElement.h"
|
| #include "core/style/ComputedStyle.h"
|
|
|
| namespace blink {
|
| @@ -81,6 +82,13 @@ static void SetFocusForDialog(HTMLDialogElement* dialog) {
|
| }
|
|
|
| static void InertSubtreesChanged(Document& document) {
|
| + if (document.GetFrame()) {
|
| + // SetIsInert recurses through subframes to propagate the inert bit as
|
| + // needed.
|
| + document.GetFrame()->SetIsInert(document.LocalOwner() &&
|
| + document.LocalOwner()->IsInert());
|
| + }
|
| +
|
| // 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 +190,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) {
|
|
|