Changeset 74134 in webkit
- Timestamp:
- Dec 15, 2010 12:15:38 PM (13 years ago)
- Location:
- trunk/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit2/ChangeLog
r74131 r74134 1 2010-12-15 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Maciej Stachowiak. 4 5 Semi-reproducible crash in ChunkedUpdateDrawingArea::paintIntoUpdateChunk closing a particular yahoo page 6 https://bugs.webkit.org/show_bug.cgi?id=51126 7 <rdar://problem/8771219> 8 9 Laying out the web page can cause the drawing area to change so we need to protect against this. 10 11 * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp: 12 (WebKit::ChunkedUpdateDrawingArea::display): 13 * WebProcess/WebPage/LayerBackedDrawingArea.cpp: 14 (WebKit::LayerBackedDrawingArea::display): 15 * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm: 16 (WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverFired): 17 1 18 2010-12-15 Brian Weinstein <bweinstein@apple.com> 2 19 -
trunk/WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp
r73036 r74134 88 88 return; 89 89 90 // Laying out the page can cause the drawing area to change so we keep an extra reference. 91 RefPtr<ChunkedUpdateDrawingArea> protect(this); 92 90 93 // Layout if necessary. 91 94 m_webPage->layoutIfNeeded(); 92 95 96 if (m_webPage->drawingArea() != this) 97 return; 98 93 99 IntRect dirtyRect = m_dirtyRect; 94 100 m_dirtyRect = IntRect(); … … 134 140 m_webPage->layoutIfNeeded(); 135 141 136 if (m_webPage->drawingArea() != this) { 137 // The drawing area changed, return early. 138 return; 139 } 142 if (m_webPage->drawingArea() != this) 143 return; 140 144 141 145 if (m_paintingIsSuspended) { -
trunk/WebKit2/WebProcess/WebPage/LayerBackedDrawingArea.cpp
r73073 r74134 89 89 void LayerBackedDrawingArea::display() 90 90 { 91 // Laying out the page can cause the drawing area to change so we keep an extra reference. 92 RefPtr<LayerBackedDrawingArea> protect(this); 93 91 94 // Layout if necessary. 92 95 m_webPage->layoutIfNeeded(); 96 97 if (m_webPage->drawingArea() != this) 98 return; 93 99 } 94 100 … … 111 117 m_webPage->layoutIfNeeded(); 112 118 113 if (m_webPage->drawingArea() != this) { 114 // The drawing area changed, return early. 115 return; 116 } 119 if (m_webPage->drawingArea() != this) 120 return; 117 121 118 122 WebProcess::shared().connection()->send(DrawingAreaProxyMessage::DidSetSize, m_webPage->pageID(), CoreIPC::In(viewSize)); -
trunk/WebKit2/WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm
r73058 r74134 164 164 void LayerBackedDrawingArea::updateLayoutRunLoopObserverFired() 165 165 { 166 // Laying out the page can cause the drawing area to change so we keep an extra reference. 167 RefPtr<LayerBackedDrawingArea> protect(this); 168 166 169 m_webPage->layoutIfNeeded(); 170 171 if (m_webPage->drawingArea() != this) 172 return; 167 173 168 174 if (m_attached)
Note: See TracChangeset
for help on using the changeset viewer.