Changeset 243461 in webkit
- Timestamp:
- Mar 25, 2019, 2:28:09 PM (7 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
WebProcess/WebPage/WebPage.cpp (modified) (3 diffs)
-
WebProcess/WebPage/WebPage.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r243460 r243461 1 2019-03-25 Chris Dumez <cdumez@apple.com> 2 3 Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag 4 https://bugs.webkit.org/show_bug.cgi?id=196210 5 <rdar://problem/48681326> 6 7 Reviewed by Geoffrey Garen. 8 9 Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag and use the drawing area identifier 10 instead to reset the DrawingArea in the WebProcess whenever the UIProcess did. 11 12 This is less error-prone and guarantees that the WebProcess and the UIProcess can reliably 13 communicate via DrawingArea IPC. 14 15 * WebProcess/WebPage/WebPage.cpp: 16 (WebKit::WebPage::reinitializeWebPage): 17 (WebKit::WebPage::setIsSuspended): 18 * WebProcess/WebPage/WebPage.h: 19 1 20 2019-03-25 Alex Christensen <achristensen@webkit.org> 2 21 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r243354 r243461 725 725 setSize(parameters.viewSize); 726 726 727 if (m_shouldResetDrawingAreaAfterSuspend) { 727 // If the UIProcess created a new DrawingArea, then we need to do the same. 728 if (m_drawingArea->identifier() != parameters.drawingAreaIdentifier) { 728 729 auto oldDrawingArea = std::exchange(m_drawingArea, nullptr); 729 730 oldDrawingArea->removeMessageReceiverIfNeeded(); 730 m_shouldResetDrawingAreaAfterSuspend = false;731 731 732 732 m_drawingArea = DrawingArea::create(*this, parameters); … … 740 740 unfreezeLayerTree(LayerTreeFreezeReason::PageSuspended); 741 741 } 742 RELEASE_ASSERT(m_drawingArea->identifier() == parameters.drawingAreaIdentifier);743 742 744 743 setViewLayoutSize(parameters.viewLayoutSize); … … 6322 6321 m_isSuspended = suspended; 6323 6322 6324 if ( m_isSuspended) {6325 // Unfrozen on drawing area reset.6326 freezeLayerTree(LayerTreeFreezeReason::PageSuspended); 6327 6328 WebProcess::singleton().sendPrewarmInformation(mainWebFrame()->url());6329 6330 suspendForProcessSwap();6331 } else 6332 m_shouldResetDrawingAreaAfterSuspend = true;6323 if (!suspended) 6324 return; 6325 6326 // Unfrozen on drawing area reset. 6327 freezeLayerTree(LayerTreeFreezeReason::PageSuspended); 6328 6329 WebProcess::singleton().sendPrewarmInformation(mainWebFrame()->url()); 6330 6331 suspendForProcessSwap(); 6333 6332 } 6334 6333 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r243354 r243461 1562 1562 WebCore::IntSize m_viewSize; 1563 1563 std::unique_ptr<DrawingArea> m_drawingArea; 1564 bool m_shouldResetDrawingAreaAfterSuspend { false };1565 1564 1566 1565 HashSet<PluginView*> m_pluginViews;
Note:
See TracChangeset
for help on using the changeset viewer.