Bug 34065 - Assertion ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
Summary: Assertion ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Macintosh OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2010-01-24 19:24 PST by Simon Fraser (smfr)
Modified: 2010-03-23 17:07 PDT (History)
2 users (show)

See Also:


Attachments
Reduction (230 bytes, text/html)
2010-01-24 19:25 PST, Simon Fraser (smfr)
no flags Details
Another testcase (745 bytes, text/html)
2010-03-04 18:47 PST, Simon Fraser (smfr)
no flags Details
Patch (4.01 KB, patch)
2010-03-05 14:11 PST, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
Patch (4.21 KB, patch)
2010-03-05 14:24 PST, Simon Fraser (smfr)
mitz: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2010-01-24 19:24:33 PST
When watching videos at hulu in recent builds, with Flash Player 10.1 beta installed, there's an assertion:
ASSERTION FAILED: rootLayer == m_clipRectsRoot
Comment 1 Simon Fraser (smfr) 2010-01-24 19:25:10 PST
Created attachment 47306 [details]
Reduction
Comment 2 Simon Fraser (smfr) 2010-01-24 19:25:26 PST
<rdar://problem/7573509>
Comment 3 Simon Fraser (smfr) 2010-03-04 18:47:13 PST
Created attachment 50078 [details]
Another testcase

Here's another testcase, which doesn't involve any 0x0 layers.
Comment 4 Simon Fraser (smfr) 2010-03-04 19:24:16 PST
In the second testcase, the assertion is firing because there's a layer whose parent is composited, but that parent is not a stacking context, so the layer is not rendered by that parent. Thus, the parent computes its own clip rects relative to itself, but when that layer asks for its parent's clip rects, it's asking with the root layer as the clip rects root.
Comment 5 Simon Fraser (smfr) 2010-03-04 19:48:50 PST
Ah, <object> tag is triggering this because of the call to FrameView::windowClipRectForLayer() from -[WebBaseNetscapePluginView _windowClipRect]
Comment 6 Simon Fraser (smfr) 2010-03-05 14:11:38 PST
Created attachment 50119 [details]
Patch
Comment 7 mitz 2010-03-05 14:23:50 PST
Comment on attachment 50119 [details]
Patch

> +        Assertion ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
> +        https://bugs.webkit.org/show_bug.cgi?id=34065

Please add the Radar link. You may remove one instance of “assertion”.
Comment 8 Simon Fraser (smfr) 2010-03-05 14:24:49 PST
Created attachment 50121 [details]
Patch
Comment 9 Simon Fraser (smfr) 2010-03-05 14:29:41 PST
Comment on attachment 50119 [details]
Patch

Stupid webkit-patch
Comment 10 Simon Fraser (smfr) 2010-03-05 14:56:54 PST
Comment on attachment 50119 [details]
Patch

http://trac.webkit.org/changeset/55597
Comment 11 Eric Seidel (no email) 2010-03-15 13:14:21 PDT
Did this land?  And what did webkit-patch do that you'd not like it to?  I'm happy to fix any and all webkit-patch bugs if you file them. :)
Comment 12 Simon Fraser (smfr) 2010-03-17 17:18:18 PDT
webkit-patch obsoleted an earlier, non-overlapping patch in the bug when attaching a second patch.

Sometimes we do need to track > 1 patch per bug.
Comment 13 Eric Seidel (no email) 2010-03-17 17:20:14 PDT
(In reply to comment #12)
> webkit-patch obsoleted an earlier, non-overlapping patch in the bug when
> attaching a second patch.
> 
> Sometimes we do need to track > 1 patch per bug.

Agreed.  We decided to optimize for the common case.  You can always pass --no-obsolete to any command which does obsoleting and it will stop. :)
Comment 14 Simon Fraser (smfr) 2010-03-23 17:07:12 PDT
http://trac.webkit.org/changeset/56428