It appears that when compositing events were implemented, this wasn't done in an entirely safe fashion for non-Cocoa platforms: https://bugs.webkit.org/show_bug.cgi?id=146168 Specifically, the asserts for InspectorTimelineAgent::willComposite and InspectorTimelineAgent::didComposite ensure that one is not used without the other, yet didComposite is called within a PLATFORM(COCOA) block while willComposite is called on all platforms. Asserts: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp#L358 didComposite callsite: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp#L196 willComposite callsite: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/page/FrameView.cpp#L1234 As such, on any non-Cocoa platform, the second compositing event in a timeline recording causes an assertion failure.
Compositing events are Cocoa-specific until we have platform abstraction for RunLoopObserver: https://bugs.webkit.org/show_bug.cgi?id=142748 Therefore we should simply guard the willComposite callsite for now.
Created attachment 308327 [details] Patch
I'd like Matt to review this when he's back in office next week.
Comment on attachment 308327 [details] Patch r=me. I don't have an easy way to test this, but it seems clear that the second time willComposite is called (and every time after) it will assert, since didComposite is never called. Ross's patch matches the guards around the creation of the run loop observation points and looks correct.
Comment on attachment 308327 [details] Patch Clearing flags on attachment: 308327 Committed r216043: <http://trac.webkit.org/changeset/216043>
All reviewed patches have been landed. Closing bug.