WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
Formatted Diff
Diff
Patch
(2.09 KB, patch)
2012-11-13 10:36 PST
,
Sami Kyöstilä
no flags
Details
Formatted Diff
Diff
Patch
(2.01 KB, patch)
2012-11-13 11:56 PST
,
Sami Kyöstilä
no flags
Details
Formatted Diff
Diff
Patch
(2.03 KB, patch)
2012-11-13 15:09 PST
,
Sami Kyöstilä
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Sami Kyöstilä
Comment 1
2012-11-12 09:47:34 PST
Created
attachment 173663
[details]
Patch
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
Created
attachment 173941
[details]
Patch
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.
Top of Page
Format For Printing
XML
Clone This Bug