Changeset 143077 in webkit
- Timestamp:
- Feb 15, 2013 5:42:13 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r143071 r143077 1 2013-02-15 Adenilson Cavalcanti <cavalcantii@gmail.com> 2 3 [Qt][WK2] Crash on window resize if WebProcess is closed/crashed 4 https://bugs.webkit.org/show_bug.cgi?id=109216 5 6 Reviewed by Benjamin Poulain. 7 8 Only make calls into DrawingAreaProxy pointer after checking its state. 9 10 When the WebProcess was closed or crashed, WebKit::WebPageProxy will set 11 its DrawingAreaProxy pointer to null. Resize events on UIProcess/client will 12 try to access the object to update the geometry and forward this information 13 into the WebProcess. This would create a crash scenario that is fixed by this patch. 14 15 * UIProcess/API/qt/qquickwebview.cpp: 16 (QQuickWebViewPrivate::didRelaunchProcess): 17 (QQuickWebViewLegacyPrivate::updateViewportSize): 18 1 19 2013-02-15 Anders Carlsson <andersca@apple.com> 2 20 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
r142997 r143077 586 586 qWarning("WARNING: The web process has been successfully restarted."); 587 587 588 webPageProxy->drawingArea()->setSize(viewSize(), IntSize()); 589 590 updateViewportSize(); 591 updateUserScripts(); 592 updateSchemeDelegates(); 588 if (DrawingAreaProxy *drawingArea = webPageProxy->drawingArea()) { 589 drawingArea->setSize(viewSize(), IntSize()); 590 591 updateViewportSize(); 592 updateUserScripts(); 593 updateSchemeDelegates(); 594 } 593 595 } 594 596 … … 939 941 pageView->setContentsSize(viewportSize); 940 942 941 // The fixed layout is handled by the FrameView and the drawing area doesn't behave differently 942 // whether its fixed or not. We still need to tell the drawing area which part of it 943 // has to be rendered on tiles, and in desktop mode it's all of it. 944 webPageProxy->drawingArea()->setSize(viewportSize.toSize(), IntSize()); 945 // The backing store scale factor should already be set to the device pixel ratio 946 // of the underlying window, thus we set the effective scale to 1 here. 947 webPageProxy->drawingArea()->setVisibleContentsRect(FloatRect(FloatPoint(), FloatSize(viewportSize)), FloatPoint()); 943 if (DrawingAreaProxy *drawingArea = webPageProxy->drawingArea()) { 944 // The fixed layout is handled by the FrameView and the drawing area doesn't behave differently 945 // whether its fixed or not. We still need to tell the drawing area which part of it 946 // has to be rendered on tiles, and in desktop mode it's all of it. 947 drawingArea->setSize(viewportSize.toSize(), IntSize()); 948 // The backing store scale factor should already be set to the device pixel ratio 949 // of the underlying window, thus we set the effective scale to 1 here. 950 drawingArea->setVisibleContentsRect(FloatRect(FloatPoint(), FloatSize(viewportSize)), FloatPoint()); 951 } 948 952 } 949 953
Note: See TracChangeset
for help on using the changeset viewer.