Bug 20004

Summary: REGRESSION: ASSERT in Frame::paint making flash video full screen
Product: WebKit Reporter: Matt Lilek <dev+webkit>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bdakin, maxime.britto, mitz
Priority: P1 Keywords: InRadar, Regression
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
URL: http://www.dailybuzzer.com/nasa-makes-magnetic-fields-visible-video

Description Matt Lilek 2008-07-10 20:06:45 PDT
1. Load <http://www.dailybuzzer.com/nasa-makes-magnetic-fields-visible-video>
2. Begin playing the video under the title "Watch the Magnetic Movie"
3. Click the full screen icon between the volume control and the "Vimeo" branding
4. BOOM.  In a debug build:

ASSERTION FAILED: !d->m_isPainting
<http://trac.webkit.org/browser/trunk/WebCore/page/Frame.cpp#L1361>

Thread 0 Crashed:
0   com.apple.WebCore             	0x02876985 WebCore::Frame::paint(WebCore::GraphicsContext*, WebCore::IntRect const&) + 599 (Frame.cpp:1361)
1   com.apple.WebCore             	0x028a0ff8 WebCore::FrameView::updateControlTints() + 368 (FrameView.cpp:1124)
2   com.apple.WebKit              	0x001e7838 -[WebHTMLView _windowChangedKeyState] + 84 (WebHTMLView.mm:4542)
3   com.apple.CoreFoundation      	0x94442cb6 CFArrayApplyFunction + 198
4   com.apple.AppKit              	0x9034297f -[NSView _windowChangedKeyState] + 127

This is a regression from Safari 3.1.  Using Flash 9.0 r124 fwiw.
Comment 1 mitz 2008-07-11 11:52:32 PDT
paint() is re-entered because the plug-in reorders windows (thus changing the Safari window's key state) during its drawRect callback, which is invoked under the outer paint().
Comment 2 Maxime Britto 2008-08-12 11:32:20 PDT
Also visible at http://ll.static.abc.go.com/streaming/move/00080005/static.html?aff=kgo&affTo=kgo&useexternal=0&channelid=77803&episodeid=85332&partner=&campaign=&wrapped=1&affFrom=abc&affLost=kgo&dmarank=6&dmazip=94002
 when trying to go fullscreen.

By disabling the Assert and using the early return present after the Assert no crash happened and the video was played correctly.
Comment 3 mitz 2009-02-16 17:39:03 PST
<rdar://problem/6509966>