Changeset 258829 in webkit
- Timestamp:
- Mar 23, 2020 3:16:21 AM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/loader/FrameLoaderStateMachine.h
r258663 r258829 52 52 53 53 WEBCORE_EXPORT bool committingFirstRealLoad() const; 54 WEBCORE_EXPORTbool committedFirstRealDocumentLoad() const;55 bool creatingInitialEmptyDocument() const;54 bool committedFirstRealDocumentLoad() const; 55 WEBCORE_EXPORT bool creatingInitialEmptyDocument() const; 56 56 WEBCORE_EXPORT bool isDisplayingInitialEmptyDocument() const; 57 57 WEBCORE_EXPORT bool firstLayoutDone() const; -
trunk/Source/WebKit/ChangeLog
r258821 r258829 1 2020-03-23 youenn fablet <youenn@apple.com> 2 3 Explicitly activate the new DrawingAreaProxy on PSON navigation 4 https://bugs.webkit.org/show_bug.cgi?id=209232 5 6 Reviewed by Antti Koivisto. 7 8 Delay tree unfreezing for provisional pages until the main frame load is committed. 9 At that point, UIProcess is made aware and is doing the process swap. 10 We can thus unfreeze the tree so that UIProcess starts getting DrawAreaProxy messages. 11 12 This allows UIProcess to start listening to DrawAreaProxy messages at the time of doing process swapping in WebPageProxy. 13 14 * UIProcess/DrawingAreaProxy.cpp: 15 (WebKit::DrawingAreaProxy::DrawingAreaProxy): 16 (WebKit::DrawingAreaProxy::startReceivingMessages): 17 * UIProcess/DrawingAreaProxy.h: 18 * UIProcess/WebPageProxy.cpp: 19 (WebKit::WebPageProxy::setDrawingArea): 20 * WebProcess/WebPage/WebPage.cpp: 21 (WebKit::WebPage::didCompletePageTransition): 22 (WebKit::WebPage::didCommitLoad): 23 1 24 2020-03-22 Wenson Hsieh <wenson_hsieh@apple.com> 2 25 -
trunk/Source/WebKit/UIProcess/DrawingAreaProxy.cpp
r253346 r258829 49 49 #endif 50 50 { 51 process.addMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier, *this);52 51 } 53 52 54 53 DrawingAreaProxy::~DrawingAreaProxy() 55 54 { 56 process().removeMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier); 55 if (m_startedReceivingMessages) 56 process().removeMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier); 57 } 58 59 void DrawingAreaProxy::startReceivingMessages() 60 { 61 m_startedReceivingMessages = true; 62 process().addMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_identifier, *this); 57 63 } 58 64 -
trunk/Source/WebKit/UIProcess/DrawingAreaProxy.h
r258513 r258829 61 61 DrawingAreaType type() const { return m_type; } 62 62 DrawingAreaIdentifier identifier() const { return m_identifier; } 63 64 void startReceivingMessages(); 63 65 64 66 virtual void deviceScaleFactorDidChange() = 0; … … 156 158 virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } 157 159 #endif 160 bool m_startedReceivingMessages { false }; 158 161 }; 159 162 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r258792 r258829 1036 1036 return; 1037 1037 1038 m_drawingArea->startReceivingMessages(); 1039 1038 1040 #if ENABLE(ASYNC_SCROLLING) && PLATFORM(COCOA) 1039 1041 if (m_drawingArea->type() == DrawingAreaTypeRemoteLayerTree) { -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r258804 r258829 3335 3335 { 3336 3336 unfreezeLayerTree(LayerTreeFreezeReason::PageTransition); 3337 3338 auto& stateMachine = m_mainFrame->coreFrame()->loader().stateMachine();3339 RELEASE_LOG_IF_ALLOWED(Layers, "didCompletePageTransition: Did complete page transition, loader state is %d", stateMachine.stateForDebugging());3340 3341 if (stateMachine.committedFirstRealDocumentLoad())3342 unfreezeLayerTree(LayerTreeFreezeReason::ProcessSwap);3343 3337 } 3344 3338 … … 5866 5860 return; 5867 5861 5862 ASSERT(!frame->coreFrame()->loader().stateMachine().creatingInitialEmptyDocument()); 5863 unfreezeLayerTree(LayerTreeFreezeReason::ProcessSwap); 5864 5868 5865 #if ENABLE(RESOURCE_LOAD_STATISTICS) 5869 5866 clearLoadedThirdPartyDomains();
Note: See TracChangeset
for help on using the changeset viewer.