Changeset 240365 in webkit
- Timestamp:
- Jan 23, 2019 4:23:52 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r240363 r240365 1 2019-01-23 Ryan Haddad <ryanhaddad@apple.com> 2 3 Unreviewed, rolling out r240343. 4 5 Caused 4 PSON API test failures. 6 7 Reverted changeset: 8 9 "[PSON] Flash on back navigation on Mac" 10 https://bugs.webkit.org/show_bug.cgi?id=193716 11 https://trac.webkit.org/changeset/240343 12 1 13 2019-01-23 Chris Dumez <cdumez@apple.com> 2 14 -
trunk/Source/WebKit/UIProcess/SuspendedPageProxy.cpp
r240343 r240365 27 27 #include "SuspendedPageProxy.h" 28 28 29 #include "DrawingAreaProxy.h"30 29 #include "Logging.h" 31 30 #include "WebPageMessages.h" … … 156 155 m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_page.pageID()); 157 156 158 bool shouldKeepOnFailure = false;159 #if PLATFORM(MAC)160 // With web process side tiles, we need to keep the suspended page around on failure to avoid flashing.161 // It is removed by WebPageProxy::enterAcceleratedCompositingMode when the target page is ready.162 shouldKeepOnFailure = m_page.drawingArea() && m_page.drawingArea()->type() == DrawingAreaTypeTiledCoreAnimation;163 #endif164 if (newSuspensionState == SuspensionState::FailedToSuspend && !shouldKeepOnFailure) {165 RunLoop::main().dispatch([weakProcessPool = makeWeakPtr(m_process->processPool()), weakThis = makeWeakPtr(*this)] {166 if (weakProcessPool && weakThis)167 weakProcessPool->removeSuspendedPage(*weakThis);168 });169 }170 171 157 if (m_readyToUnsuspendHandler) 172 158 m_readyToUnsuspendHandler(this); -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r240343 r240365 6848 6848 void WebPageProxy::enterAcceleratedCompositingMode(const LayerTreeContext& layerTreeContext) 6849 6849 { 6850 #if PLATFORM(MAC)6851 ASSERT(m_drawingArea->type() == DrawingAreaTypeTiledCoreAnimation);6852 #endif6853 6850 pageClient().enterAcceleratedCompositingMode(layerTreeContext); 6854 // We needed the failed suspended page to stay alive to avoid flashing. Now we can get rid of it.6855 m_process->processPool().removeFailedSuspendedPagesForPage(*this);6856 6851 } 6857 6852 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r240363 r240365 2263 2263 } 2264 2264 2265 void WebProcessPool::removeFailedSuspendedPagesForPage(WebPageProxy& page)2266 {2267 m_suspendedPages.removeAllMatching([&page](auto& suspendedPage) {2268 return &suspendedPage->page() == &page && suspendedPage->failedToSuspend();2269 });2270 }2271 2272 2265 std::unique_ptr<SuspendedPageProxy> WebProcessPool::takeSuspendedPage(SuspendedPageProxy& suspendedPage) 2273 2266 { -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r240363 r240365 448 448 void addSuspendedPage(std::unique_ptr<SuspendedPageProxy>&&); 449 449 void removeAllSuspendedPagesForPage(WebPageProxy&); 450 void removeFailedSuspendedPagesForPage(WebPageProxy&);451 450 std::unique_ptr<SuspendedPageProxy> takeSuspendedPage(SuspendedPageProxy&); 452 451 void removeSuspendedPage(SuspendedPageProxy&); -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r240343 r240365 1341 1341 { 1342 1342 auto failedToSuspend = [this, protectedThis = makeRef(*this)] { 1343 close(); 1343 1344 send(Messages::WebPageProxy::DidFailToSuspendAfterProcessSwap()); 1344 1345 };
Note: See TracChangeset
for help on using the changeset viewer.