diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2017-06-15 12:13:20 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-06-17 10:46:54 +0000 |
commit | aab669a05f943c587f6acccd94d53a8544170c1c (patch) | |
tree | 2c22545100b500eb80d23f75b8e3180ed9b5f3b7 /Source/WebCore/page/Frame.cpp | |
parent | c119ecc79e19c630a8b1ef10fe01cc567901033f (diff) |
Import WebKit commit 6d0ad27b6bc4209fb8d8cee2692dc0c6a5462051v5.212.0-alpha2
Change-Id: Ifdedb7bc3162434686201813dc1d994cf5ae7e70
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebCore/page/Frame.cpp')
-rw-r--r-- | Source/WebCore/page/Frame.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp index 9315237af..f447d5ded 100644 --- a/Source/WebCore/page/Frame.cpp +++ b/Source/WebCore/page/Frame.cpp @@ -267,6 +267,11 @@ void Frame::setDocument(RefPtr<Document>&& newDocument) { ASSERT(!newDocument || newDocument->frame() == this); + if (m_documentIsBeingReplaced) + return; + + m_documentIsBeingReplaced = true; + if (m_doc && m_doc->pageCacheState() != Document::InPageCache) m_doc->prepareForDestruction(); @@ -280,6 +285,8 @@ void Frame::setDocument(RefPtr<Document>&& newDocument) newDocument->didBecomeCurrentDocumentInFrame(); InspectorInstrumentation::frameDocumentUpdated(this); + + m_documentIsBeingReplaced = false; } #if ENABLE(ORIENTATION_EVENTS) @@ -603,6 +610,8 @@ int Frame::checkOverflowScroll(OverflowScrollAction action) } } + Ref<Frame> protectedThis(*this); + if (action == PerformOverflowScroll && (deltaX || deltaY)) { layer->scrollToOffset(layer->scrollOffset() + IntSize(deltaX, deltaY)); |