[bindings] Implement ScriptWrappable::TraceWrappers. [chromium/src : master]

0 views
Skip to first unread message

Ulan Degenbaev (Gerrit)

unread,
Jan 18, 2018, 12:24:30 PM1/18/18
to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

ptal

View Change

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Thu, 18 Jan 2018 17:24:23 +0000
    Gerrit-HasComments: No
    Gerrit-HasLabels: No

    Michael Lippautz (Gerrit)

    unread,
    Jan 18, 2018, 12:40:56 PM1/18/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    lgtm, it's nicely shaping up now

    Please also wait for Kentaro's comment on ScriptWrappable::TraceWrappers.

    Patch set 3:Code-Review +1

    View Change

    4 comments:

    Gerrit-Comment-Date: Thu, 18 Jan 2018 17:40:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: Yes

    Kentaro Hara (Gerrit)

    unread,
    Jan 18, 2018, 8:29:46 PM1/18/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    4 comments:

      • I would be fine with landing this one already. […]

        Sounds reasonable since it will take a few weeks to roll the clang plugin.

        Just help me understand: Before Ulan started this refactoring and Michael fixed the parent class tracing, how was main_world_wrapper_ traced?

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 01:29:34 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Michael Lippautz (Gerrit)

    unread,
    Jan 19, 2018, 3:50:12 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 08:50:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 4:09:53 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • It was traced through ScriptWrappableVisitor::MarkWrappersInAllWorlds [1]. […]

        Ah, thanks! Makes sense.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 09:09:49 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Ulan Degenbaev (Gerrit)

    unread,
    Jan 19, 2018, 5:00:18 AM1/19/18
    to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    2 comments:

      • Can we make DOMDataStore inherit from TraceWrapperBase (instead of creating manually dispatched Trac […]

        If DOMDataStore inherits from TraceWrapperBase, then it gets its own mark bit, right? i.e. it becomes a real node in GC graph.

        Marking DOMDataStore would mark all wrappers, which will cause memory leaks (see my reply in the other comment).

    • File third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h:

      • Instead of making this a static method, can we make DOMWrapperMap inherit from TraceWrapperBase and […]

        visitor->TraceWrappers(wrapper_map) would put wrapper_map into marking deque.
        Later when we get the wrapper_map from the marking deque and process it, we will have to mark all wrappers in the map, which is not what we want.

        We want to mark only the wrappers corresponding to this script wrappable.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 10:00:15 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Ulan Degenbaev (Gerrit)

    unread,
    Jan 19, 2018, 5:11:45 AM1/19/18
    to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • main thread => main world

      • Done

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 10:11:42 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 7:42:39 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • visitor->TraceWrappers(wrapper_map) would put wrapper_map into marking deque. […]

        I got the situation.

        Then would it be an option to write it like this?

        void ScriptWrappable::TraceWrappers(Visitor* visitor) {
        for (auto& wrapper_map : AllWorldsInCurrentThread()) {
        visitor->TraceWrappers(wrapper_map->DOMDataStore().Get());
        }
        }

        My point is that we won't want to add a special TraceWrappers() method every time we want to trace a not-GarbageCollected class.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 12:42:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Ulan Degenbaev (Gerrit)

    unread,
    Jan 19, 2018, 7:58:02 AM1/19/18
    to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • I got the situation. […]

        Is the name "TraceWrappers" problematic? If so I can rename it to something different like "DispatchTraceWrappers".

        I would like to avoid ScriptWrappable knowing internals of DOMWrapperWorld, DOMDataStore, DOMWrapperMap. Without helper methods on these classes. The code is going to look like:

        void ScriptWrappable::TraceWrappers(Visitor* visitor) {
        for (DOMWrapperWorld* world : AllWorldsInCurrentThread()) {
        DOMDataStore& data_store = world->DomDataStore();
        if (data_store.ContainsWrapper(this))
        visitor->TraceWrappers(&data_store.wrapper_map().value(), this);
        }
        }

        So the ScriptWrappable is going to know that DOMWrapperMap is part of DOMDataStore, which is part of DOMWrapperWorld.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 12:57:59 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 8:07:52 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • Is the name "TraceWrappers" problematic? If so I can rename it to something different like "Dispatch […]

        Then can we add a helper like DOMWrapperWorld::GetWrapper() so that ScriptWrappable can get a wrapper without knowing DOMDataStore etc?

        We're already using the pattern in some places.

        void TraceWrappers(Visitor* visitor) {
        visitor->TraceWrappers(GetSomePointer());
        }

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 13:07:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Michael Lippautz (Gerrit)

    unread,
    Jan 19, 2018, 8:26:48 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • Then can we add a helper like DOMWrapperWorld::GetWrapper() so that ScriptWrappable can get a wrappe […]

        TraceWrappers should ideally always delegate to the component owning the pointers. In this case that is the worlds/storage.

        We should not reach into other classes objects. (We sometimes did that because it was not possible for other reasons back then but we should really try to keep abstractions as clean as possible.)

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 13:26:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Ulan Degenbaev (Gerrit)

    unread,
    Jan 19, 2018, 8:42:35 AM1/19/18
    to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • TraceWrappers should ideally always delegate to the component owning the pointers. […]

        1) DOMWrapperWorld::GetWrapper() is more generic than TraceWrappers (DispatchTraceWrappes). So we will have to support cases when GetWrapper is called by other components and properly manage lifetime of the returned Wrapper.
        2) More importantly, what would be the type of DOMWrapperWorld::GetWrapper()? It is not v8::PersistentBase and not TraceWrapperV8Reference. It is the value part of v8::GlobalValueMap<KeyType*, v8::Object, PersistentValueMapTraits>. I think this where where all this complexity is coming from.

        In any case, I still don't understand the problem with the current approach in the CL?
        DOMWrapperMap, DOMDataStore, and DOMWrapperWorld are not GarbageCollected, but they are already implicitly participating in tracing via MarkWrappersInAllWorlds, MarkWrapper methods.
        This CL is only making the participation explicit, which I think is good.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 13:42:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 9:01:24 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • 1) DOMWrapperWorld::GetWrapper() is more generic than TraceWrappers (DispatchTraceWrappes). […]

        The problem is that we're introducing multiple ways to trace into non-TraceWrapperBase objects (yeah, I understand that you're not introducing a new way because you're just replacing MarkWrappersInAllWorlds etc with DispatchTraceWrappers).

        Michael: Are we planning to consistently use DispatchTraceWrappers to trace into non-TraceWrapperBase objects? Then we will need to define a special Visit() for all the cases. It will be hard in some cases because ScriptWrappableVisitor is in platform/ but objects are in core/...

        In other words, what should be a pattern to trace into non-TraceWrapperBase objects?

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 14:01:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Michael Lippautz (Gerrit)

    unread,
    Jan 19, 2018, 9:11:49 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • The problem is that we're introducing multiple ways to trace into non-TraceWrapperBase objects (yeah […]

        I see your point now :)

        DOMWrapperWorld is not integrated into tracing and we are not calling DispatchTraceWrappers for it. We are merely calling a static function to delegate tracing its implementation details.

        This should always be an exception case as we need a manual write barrier. In this case I don't see a way to work around that as it is a data structure on the API boundary (storing raw v8::Object*).

        Nothing changes for the regular architecture: We should always inherit from TraceWrapperBase if SWV should be able to trace it. The object types that we need are: (1) TraceWrapperBase, (2) TraceWrapperV8Reference and (3) the world for raw v8::Objects.

        Case (3) was currently hidden because we took a look of hacky short curts. Ideally (2) and (3) would merge to a common type. This would require changing V8's API though. E.g. one could image having a DOMWrapperStore that somehow stores V8TraceWrapperReference internally. This would introduce quite some churn on both codebases though.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 14:11:46 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Ulan Degenbaev (Gerrit)

    unread,
    Jan 19, 2018, 9:25:08 AM1/19/18
    to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Kentaro Hara, Commit Bot, Mads Ager, chromium...@chromium.org

    Patch Set 4:

    (1 comment)

    View Change

    1 comment:

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 14:25:05 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 9:49:40 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    View Change

    1 comment:

      • Addition to Michael reply: […]

        Thanks, I'm now convinced :)

        Will take a final look shortly.

    To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-MessageType: comment
    Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
    Gerrit-Change-Number: 874190
    Gerrit-PatchSet: 4
    Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-CC: Mads Ager <ag...@chromium.org>
    Gerrit-Comment-Date: Fri, 19 Jan 2018 14:49:28 +0000
    Gerrit-HasComments: Yes
    Gerrit-HasLabels: No

    Kentaro Hara (Gerrit)

    unread,
    Jan 19, 2018, 9:56:06 AM1/19/18
    to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

    LGTM. Thanks for being persistent!

    Patch set 4:Code-Review +1

    View Change

      To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: master
      Gerrit-MessageType: comment
      Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
      Gerrit-Change-Number: 874190
      Gerrit-PatchSet: 4
      Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
      Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
      Gerrit-CC: Commit Bot <commi...@chromium.org>
      Gerrit-CC: Mads Ager <ag...@chromium.org>
      Gerrit-Comment-Date: Fri, 19 Jan 2018 14:56:01 +0000
      Gerrit-HasComments: No
      Gerrit-HasLabels: Yes

      Ulan Degenbaev (Gerrit)

      unread,
      Jan 19, 2018, 10:13:38 AM1/19/18
      to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

      Patch Set 4: Code-Review+1

      LGTM. Thanks for being persistent!

      Thank you! Can I land 873919? (this CL depends on that).

      View Change

        To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-MessageType: comment
        Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
        Gerrit-Change-Number: 874190
        Gerrit-PatchSet: 4
        Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
        Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
        Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
        Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-CC: Mads Ager <ag...@chromium.org>
        Gerrit-Comment-Date: Fri, 19 Jan 2018 15:13:32 +0000
        Gerrit-HasComments: No
        Gerrit-HasLabels: No

        Ulan Degenbaev (Gerrit)

        unread,
        Jan 20, 2018, 5:21:27 AM1/20/18
        to blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Commit Bot, Mads Ager, chromium...@chromium.org

        Patch set 4:Commit-Queue +2

        View Change

          To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-MessageType: comment
          Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
          Gerrit-Change-Number: 874190
          Gerrit-PatchSet: 4
          Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
          Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
          Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
          Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-CC: Mads Ager <ag...@chromium.org>
          Gerrit-Comment-Date: Sat, 20 Jan 2018 10:21:24 +0000
          Gerrit-HasComments: No
          Gerrit-HasLabels: Yes

          Commit Bot (Gerrit)

          unread,
          Jan 20, 2018, 5:21:55 AM1/20/18
          to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Mads Ager, chromium...@chromium.org

          CQ is trying the patch.

          Note: The patchset sent to CQ was uploaded after this CL was approved.
          "Rebase" https://chromium-review.googlesource.com/c/874190/5

          Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/874190/5

          Bot data: {"action": "start", "triggered_at": "2018-01-20T10:21:31.0Z", "cq_cfg_revision": "a668b5363cd374a29ca0f46124c226e2e2aa21d9", "revision": "4020ad0bdd112ac6c62aa505ed27dae57a0a3823"}

          View Change

            To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

            Gerrit-Project: chromium/src
            Gerrit-Branch: master
            Gerrit-MessageType: comment
            Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
            Gerrit-Change-Number: 874190
            Gerrit-PatchSet: 5
            Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
            Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
            Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
            Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
            Gerrit-CC: Commit Bot <commi...@chromium.org>
            Gerrit-CC: Mads Ager <ag...@chromium.org>
            Gerrit-Comment-Date: Sat, 20 Jan 2018 10:21:50 +0000
            Gerrit-HasComments: No
            Gerrit-HasLabels: No

            Commit Bot (Gerrit)

            unread,
            Jan 20, 2018, 11:50:44 PM1/20/18
            to Ulan Degenbaev, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-...@chromium.org, Kentaro Hara, Michael Lippautz, Mads Ager, chromium...@chromium.org

            Commit Bot merged this change.

            View Change

            Approvals: Kentaro Hara: Looks good to me Michael Lippautz: Looks good to me Ulan Degenbaev: Commit
            [bindings] Implement ScriptWrappable::TraceWrappers.

            The function traces wrapper objects corresponding to the
            ScriptWrappable in all worlds. This allows us to remove
            ad-hoc MarkWrappersInAllWorlds and simplify DispatchTraceWrappers.

            Now wrappers in non-main world are properly reported to the visitor.
            So the derived visitors (verifier, heap-snapshot generator) can see
            and handle these wrappers.

            Bug: 802273
            Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
            Reviewed-on: https://chromium-review.googlesource.com/874190
            Reviewed-by: Kentaro Hara <har...@chromium.org>
            Reviewed-by: Michael Lippautz <mlip...@chromium.org>
            Commit-Queue: Ulan Degenbaev <ul...@chromium.org>
            Cr-Commit-Position: refs/heads/master@{#530771}
            ---
            M third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
            M third_party/WebKit/Source/platform/bindings/DOMDataStore.h
            M third_party/WebKit/Source/platform/bindings/DOMWrapperMap.h
            M third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
            M third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.h
            M third_party/WebKit/Source/platform/bindings/ScriptWrappable.cpp
            M third_party/WebKit/Source/platform/bindings/ScriptWrappable.h
            M third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.cpp
            M third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.h
            M third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitorVerifier.h
            M third_party/WebKit/Source/platform/heap/TraceTraits.h
            11 files changed, 44 insertions(+), 69 deletions(-)


            To view, visit change 874190. To unsubscribe, or for help writing mail filters, visit settings.

            Gerrit-Project: chromium/src
            Gerrit-Branch: master
            Gerrit-MessageType: merged
            Gerrit-Change-Id: Ie5aef1de7f0dcffe3a71304e0a37686d2bc859d3
            Gerrit-Change-Number: 874190
            Gerrit-PatchSet: 6
            Gerrit-Owner: Ulan Degenbaev <ul...@chromium.org>
            Gerrit-Reviewer: Commit Bot <commi...@chromium.org>
            Gerrit-Reviewer: Kentaro Hara <har...@chromium.org>
            Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
            Gerrit-Reviewer: Ulan Degenbaev <ul...@chromium.org>
            Reply all
            Reply to author
            Forward
            0 new messages