| Index: third_party/WebKit/Source/core/dom/Document.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
| index c518dcc62546412e7d180c0de22139abe78270f6..a1481a308f4261799da7bd1290155e90156eb33d 100644
|
| --- a/third_party/WebKit/Source/core/dom/Document.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
| @@ -2473,6 +2473,7 @@ void Document::shutdown() {
|
| // detaching Document is not in a consistent state.
|
| ScriptForbiddenScope forbidScript;
|
|
|
| + m_lifecycle.advanceTo(DocumentLifecycle::Stopping);
|
| view()->dispose();
|
|
|
| // If the FrameViewBase of the document's frame owner doesn't match view()
|
| @@ -2485,8 +2486,6 @@ void Document::shutdown() {
|
|
|
| m_markers->prepareForDestruction();
|
|
|
| - m_lifecycle.advanceTo(DocumentLifecycle::Stopping);
|
| -
|
| if (page())
|
| page()->documentDetached(this);
|
| probe::documentDetached(this);
|
| @@ -4581,13 +4580,19 @@ HTMLFrameOwnerElement* Document::localOwner() const {
|
|
|
| void Document::willChangeFrameOwnerProperties(int marginWidth,
|
| int marginHeight,
|
| - ScrollbarMode scrollingMode) {
|
| - if (!body())
|
| - return;
|
| -
|
| + ScrollbarMode scrollingMode,
|
| + bool isDisplayNone) {
|
| DCHECK(frame() && frame()->owner());
|
| FrameOwner* owner = frame()->owner();
|
|
|
| + if (documentElement()) {
|
| + if (isDisplayNone != owner->isDisplayNone())
|
| + documentElement()->lazyReattachIfAttached();
|
| + }
|
| +
|
| + if (!body())
|
| + return;
|
| +
|
| if (marginWidth != owner->marginWidth())
|
| body()->setIntegralAttribute(marginwidthAttr, marginWidth);
|
| if (marginHeight != owner->marginHeight())
|
|
|