Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Issue 2539433002: Properly trace OffscreenCanvas (Closed)

Created:
4 years ago by Michael Lippautz
Modified:
4 years ago
CC:
jochen (gone - plz use gerrit), blink-reviews, chromium-reviews, Marcel Hlopko
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Properly trace OffscreenCanvas BUG=chromium:668848 Committed: https://crrev.com/eb7ae5b79faeb3b4c79866b419ca8e3e7879d29d Cr-Commit-Position: refs/heads/master@{#434674}

Patch Set 1 #

Patch Set 2 : Properly trace OffscreenCanvas #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -1 line) Patch
M third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 19 (12 generated)
Michael Lippautz
haraken: ptal jochen: thanks for your help!
4 years ago (2016-11-28 15:50:04 UTC) #3
jochen (gone - plz use gerrit)
how can we make sure there aren't more of these bugs in the codebase?
4 years ago (2016-11-28 15:52:01 UTC) #6
haraken
LGTM +keishi: Why is this error not detected by the GC plugin? I guess it's ...
4 years ago (2016-11-28 15:55:06 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2539433002/20001
4 years ago (2016-11-28 17:22:25 UTC) #14
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years ago (2016-11-28 17:27:13 UTC) #16
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/eb7ae5b79faeb3b4c79866b419ca8e3e7879d29d Cr-Commit-Position: refs/heads/master@{#434674}
4 years ago (2016-11-28 17:30:16 UTC) #18
keishi
4 years ago (2016-11-30 04:47:00 UTC) #19
Message was sent while issue was closed.
On 2016/11/28 15:55:06, haraken wrote:
> LGTM
> 
> +keishi: Why is this error not detected by the GC plugin? I guess it's because
> EventTarget's hierarchy is somewhat special but it would be nicer to tell the
> fact to the plugin.

Looks like the plugin marks EventTargetWithInlineData as not requiring a trace
method because we GC_PLUGIN_IGNORE the single member that requires a trace.
According to the comment below, we want to skip over super classes that don't
require a trace method.

CheckTraceVisitor.cpp
// We want to deal with omitted trace() function in an intermediary
// class in the class hierarchy, e.g.:
//     class A : public GarbageCollected<A> { trace() { ... } };
//     class B : public A { /* No trace(); have nothing to trace. */ };
//     class C : public B { trace() { B::trace(visitor); } }
// where, B::trace() is actually A::trace(), and in some cases we get
// A as |callee_record| instead of B. We somehow need to mark B as
// traced if we find A::trace() call.

I think the plugin should require a trace if a class has a trace method defined.
Created CL at https://codereview.chromium.org/2536403002

Powered by Google App Engine
This is Rietveld 408576698