RESOLVED FIXED 101947
Don't mark scrolling contents as dirty if RenderLayerBacking is going away
https://bugs.webkit.org/show_bug.cgi?id=101947
Summary Don't mark scrolling contents as dirty if RenderLayerBacking is going away
Sami Kyöstilä
Reported 2012-11-12 09:42:45 PST
Don't mark scrolling contents as dirty if RenderLayerBacking is going away
Attachments
Patch (2.27 KB, patch)
2012-11-12 09:47 PST, Sami Kyöstilä
no flags
Patch (2.09 KB, patch)
2012-11-13 10:36 PST, Sami Kyöstilä
no flags
Patch (2.01 KB, patch)
2012-11-13 11:56 PST, Sami Kyöstilä
no flags
Patch (2.03 KB, patch)
2012-11-13 15:09 PST, Sami Kyöstilä
no flags
Sami Kyöstilä
Comment 1 2012-11-12 09:47:34 PST
Simon Fraser (smfr)
Comment 2 2012-11-12 10:10:48 PST
Comment on attachment 173663 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=173663&action=review > Source/WebCore/ChangeLog:16 > + track repaints or not. If the RenderLayerBacking is being destroyed, the > + compositor is no longer valid and this causes a crash. This seems like the wrong way to fix the crash. Does 'no longer valid' mean null, or garbage? if the latter, we need to null out a pointer somewhere.
Sami Kyöstilä
Comment 3 2012-11-12 10:19:07 PST
(In reply to comment #2) > This seems like the wrong way to fix the crash. Does 'no longer valid' mean null, or garbage? if the latter, we need to null out a pointer somewhere. Specifically, renderer()->view() is null, so we get a crash (and an assertion failure) in RenderLayer::compositor(). An alternative way to fix this would be to make RenderLayerBacking::isTrackingRepaints() check for a valid view before calling compositor().
Sami Kyöstilä
Comment 4 2012-11-13 10:36:55 PST
Created attachment 173923 [details] Patch Alternative fix.
Simon Fraser (smfr)
Comment 5 2012-11-13 10:41:45 PST
Comment on attachment 173923 [details] Patch I still don't understand. You say compositor is no longer valid. Does this mean that RenderLayerBacking::compositor() returns garbage? Or null?
Sami Kyöstilä
Comment 6 2012-11-13 10:57:00 PST
(In reply to comment #5) > (From update of attachment 173923 [details]) > I still don't understand. You say compositor is no longer valid. Does this mean that RenderLayerBacking::compositor() returns garbage? Or null? It returns garbage, because it tries to get the compositor from a null RenderView. There's a debug assert in RenderLayer::compositor() to guard against this.
Simon Fraser (smfr)
Comment 7 2012-11-13 11:06:02 PST
So let's fix that (returning garbage is a security issue, returning null may crash, but safely). I don't think we want to add null checks to every call to compositor(), so your current patch is still needed.
Sami Kyöstilä
Comment 8 2012-11-13 11:54:25 PST
(In reply to comment #7) > So let's fix that (returning garbage is a security issue, returning null may crash, but safely). I don't think we want to add null checks to every call to compositor(), so your current patch is still needed. Agreed. Actually RenderLayerBacking::isTrackingRepaints() already checks for a null compositor so no changes are needed there.
Sami Kyöstilä
Comment 9 2012-11-13 11:56:18 PST
WebKit Review Bot
Comment 10 2012-11-13 14:39:42 PST
Comment on attachment 173941 [details] Patch Rejecting attachment 173941 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog Failed to merge in the changes. Patch failed at 0001 Clean up the inheritance tree under the MediaControls Class. When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To restore the original branch and stop rebasing run "git rebase --abort". rebase refs/remotes/origin/master: command returned error: 1 Died at Tools/Scripts/update-webkit line 154. Full output: http://queues.webkit.org/results/14826313
Sami Kyöstilä
Comment 11 2012-11-13 15:09:00 PST
Created attachment 174002 [details] Patch Weird. That merge conflict is from a completely unrelated patch. Here's a rebased version just in case.
WebKit Review Bot
Comment 12 2012-11-13 21:19:47 PST
Comment on attachment 174002 [details] Patch Clearing flags on attachment: 174002 Committed r134536: <http://trac.webkit.org/changeset/134536>
WebKit Review Bot
Comment 13 2012-11-13 21:19:52 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.