WebKit Bugzilla
Attachment 360202 Details for
Bug 193860
: REGRESSION (r238818): Snapshot is removed too late after swiping back on Twitter
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193860-20190125181847.patch (text/plain), 4.47 KB, created by
Tim Horton
on 2019-01-25 18:18:48 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Tim Horton
Created:
2019-01-25 18:18:48 PST
Size:
4.47 KB
patch
obsolete
>Subversion Revision: 240534 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 6e98674cd9c572db1c7edd0b4b402133207a1550..b4137b901d3f110c4ed8fe0828c7f9dfe91eb55b 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,21 @@ >+2019-01-25 Tim Horton <timothy_horton@apple.com> >+ >+ REGRESSION (r238818): Snapshot is removed too late after swiping back on Twitter >+ https://bugs.webkit.org/show_bug.cgi?id=193860 >+ <rdar://problem/47535022> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/Cocoa/ViewGestureController.cpp: >+ (WebKit::ViewGestureController::didStartProvisionalOrSameDocumentLoadForMainFrame): >+ (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame): >+ (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): >+ * UIProcess/Cocoa/ViewGestureController.h: >+ Treat provisional load and same document load the same: they already both >+ unpause the snapshot removal tracker, request render tree size notifications, >+ but same-document navigation was missing the call to dispatchAfterEnsuringDrawing >+ and thus would get stuck waiting for RepaintAfterNavigation. >+ > 2019-01-25 Dean Jackson <dino@apple.com> > > REGRESSION: Some USDz from 3rd party websites don't go directly to AR QL >diff --git a/Source/WebKit/UIProcess/Cocoa/ViewGestureController.cpp b/Source/WebKit/UIProcess/Cocoa/ViewGestureController.cpp >index 6fb5fbe7b04481a212cdc0ac7e4393aefa2aae2c..2b7030b4ffcd9fbfe644689fe7c93f2c019b4d21 100644 >--- a/Source/WebKit/UIProcess/Cocoa/ViewGestureController.cpp >+++ b/Source/WebKit/UIProcess/Cocoa/ViewGestureController.cpp >@@ -145,15 +145,20 @@ bool ViewGestureController::canSwipeInDirection(SwipeDirection direction) const > return !!backForwardList.forwardItem(); > } > >-void ViewGestureController::didStartProvisionalLoadForMainFrame() >+void ViewGestureController::didStartProvisionalOrSameDocumentLoadForMainFrame() > { > m_snapshotRemovalTracker.resume(); > #if PLATFORM(MAC) > requestRenderTreeSizeNotificationIfNeeded(); > #endif > >- if (auto provisionalLoadCallback = WTFMove(m_provisionalLoadCallback)) >- provisionalLoadCallback(); >+ if (auto loadCallback = WTFMove(m_loadCallback)) >+ loadCallback(); >+} >+ >+void ViewGestureController::didStartProvisionalLoadForMainFrame() >+{ >+ didStartProvisionalOrSameDocumentLoadForMainFrame(); > } > > void ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame() >@@ -201,10 +206,7 @@ void ViewGestureController::didReachMainFrameLoadTerminalState() > > void ViewGestureController::didSameDocumentNavigationForMainFrame(SameDocumentNavigationType type) > { >- m_snapshotRemovalTracker.resume(); >-#if PLATFORM(MAC) >- requestRenderTreeSizeNotificationIfNeeded(); >-#endif >+ didStartProvisionalOrSameDocumentLoadForMainFrame(); > > bool cancelledOutstandingEvent = false; > >diff --git a/Source/WebKit/UIProcess/Cocoa/ViewGestureController.h b/Source/WebKit/UIProcess/Cocoa/ViewGestureController.h >index 5b5d92d7149d40940a07fe7819397ec50c464ea1..f902376410955d2c5fd184e9427572ff640088ab 100644 >--- a/Source/WebKit/UIProcess/Cocoa/ViewGestureController.h >+++ b/Source/WebKit/UIProcess/Cocoa/ViewGestureController.h >@@ -157,6 +157,8 @@ private: > void willBeginGesture(ViewGestureType); > void didEndGesture(); > >+ void didStartProvisionalOrSameDocumentLoadForMainFrame(); >+ > class SnapshotRemovalTracker { > public: > enum Event : uint8_t { >@@ -321,7 +323,7 @@ private: > bool m_isConnectedToProcess { false }; > > SnapshotRemovalTracker m_snapshotRemovalTracker; >- WTF::Function<void()> m_provisionalLoadCallback; >+ WTF::Function<void()> m_loadCallback; > }; > > } // namespace WebKit >diff --git a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >index 483a476fa9bcd43b30fe4fdb10f5a09279bc4754..083d6faf15201f8cec4d028ba30988b7aca750d4 100644 >--- a/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >+++ b/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm >@@ -323,7 +323,7 @@ void ViewGestureController::endSwipeGesture(WebBackForwardListItem* targetItem, > > uint64_t pageID = m_webPageProxy.pageID(); > GestureID gestureID = m_currentGestureID; >- m_provisionalLoadCallback = [this, pageID, gestureID] { >+ m_loadCallback = [this, pageID, gestureID] { > auto drawingArea = m_webPageProxy.provisionalDrawingArea(); > if (!drawingArea) { > removeSwipeSnapshot();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193860
: 360202