Changeset 26941 in webkit
- Timestamp:
- Oct 23, 2007, 6:51:04 PM (17 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r26937 r26941 1 2007-10-23 Dan Bernstein <mitz@apple.com> 2 3 Reviewed by Eric Seidel. 4 5 - fix http://bugs.webkit.org/show_bug.cgi?id=15405 6 ASSERTION FAILED: d->m_view && !d->m_view->needsLayout() in Frame::Paint 7 8 Calling updateWidget() during attach() led to arbitrary (plugin and resource load delegate) 9 code execution under attach(). The fix is to use the mechanism that's already in place for 10 deferring updateWidget() until after layout. 11 12 * html/HTMLEmbedElement.cpp: 13 (WebCore::HTMLEmbedElement::attach): Replaced call to updateWidget() with call to updateWidgetSoon() 14 * html/HTMLObjectElement.cpp: 15 (WebCore::HTMLObjectElement::attach): Ditto. 16 * manual-tests/paint-during-plugin-attach.html: Added. 17 * rendering/RenderPartObject.cpp: 18 (WebCore::RenderPartObject::updateWidgetSoon): Added this function that schedules the 19 updateWidget() call for after the next layout. 20 * rendering/RenderPartObject.h: 21 1 22 2007-10-23 Adam Roben <aroben@apple.com> 2 23 -
trunk/WebCore/html/HTMLEmbedElement.cpp
r25754 r26941 157 157 158 158 if (renderer()) 159 static_cast<RenderPartObject*>(renderer())->updateWidget (true);159 static_cast<RenderPartObject*>(renderer())->updateWidgetSoon(); 160 160 } 161 161 -
trunk/WebCore/html/HTMLObjectElement.cpp
r25754 r26941 187 187 // this method or recalcStyle (which also calls updateWidget) to be called. 188 188 m_needWidgetUpdate = false; 189 static_cast<RenderPartObject*>(renderer())->updateWidget (true);189 static_cast<RenderPartObject*>(renderer())->updateWidgetSoon(); 190 190 } else { 191 191 m_needWidgetUpdate = true; -
trunk/WebCore/rendering/RenderPartObject.cpp
r25754 r26941 281 281 } 282 282 283 void RenderPartObject::updateWidgetSoon() 284 { 285 if (m_view) 286 m_view->addWidgetToUpdate(this); 287 } 288 283 289 void RenderPartObject::viewCleared() 284 290 { -
trunk/WebCore/rendering/RenderPartObject.h
r25754 r26941 39 39 virtual void layout(); 40 40 void updateWidget(bool onlyCreateNonPlugins); 41 void updateWidgetSoon(); 41 42 42 43 virtual void viewCleared();
Note:
See TracChangeset
for help on using the changeset viewer.