New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 773605 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 3
Type: Task

Blocked on:
issue 590802



Sign in to add a comment

Make blink::ScriptState inherit from GarbageCollectedFinalized.

Project Member Reported by yukishiino@chromium.org, Oct 11 2017

Issue description

ScriptState has been RefCounted for a long time (may be since its beginning).  Now Oilpan (Blink GC) is ready and we can change ScriptState from RefCounted to GarbageCollectedFinalized.  Once we make the change, it must be much simpler to maintain the lifetime of ScriptState, etc.  Let's do this.

 
Cc: w...@chromium.org haraken@chromium.org yukishiino@chromium.org
+cc: watk@, feel free to take this task if you're interested in.
Owner: w...@chromium.org
Status: Assigned (was: Available)

Comment 3 by w...@chromium.org, Dec 4 2017

Sorry, I stopped working on this for a while. Coming back to it now. I'm stuck not knowing what to do with ScriptPromise and ScriptValue.

yukishiino@, haraken@: I wrote some notes on what I've tried. Can you take a look and/or cc other people to help with the approach I should take:
https://docs.google.com/a/chromium.org/document/d/1yz_py5TFlU7C58VmwQc5vwAR8RkbT3s2OED6QhVqa-0/

Thanks!

Comment 4 by w...@chromium.org, Dec 19 2017

Cc: -yukishiino@chromium.org
Owner: yukishiino@chromium.org
I'm out for the next few weeks and will be transitioning to a new team when I return, so unfortunately I won't have time to finish this. yukishiino@ assigning you to take or redirect.

Here's a CL for the mechanical part of updating all scoped_refptr<ScriptState> users. https://chromium-review.googlesource.com/#/c/835148/

The remaining work is more complicated: fixing ScriptPromise and ScriptValue. yukishiino@ has suggested the refactoring of removing ScriptState from both of them.
Thanks for having been working on this.  Your investigation has helped us understand that ScriptValue and ScriptPromise are good targets to address first.  Thanks and good luck.  :)

Comment 6 by peria@chromium.org, Feb 19 2018

Cc: peria@chromium.org yukishiino@chromium.org
Owner: peria@chromium.org

Comment 7 by peria@chromium.org, Mar 29 2018

Blockedon: 590802
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa1b9b7022dc7b065dbdc22e02369537b87185e4

commit aa1b9b7022dc7b065dbdc22e02369537b87185e4
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Jun 28 14:08:33 2018

bindings: Clear ScriptState self-reference at disposing worker global scope

Each v8::Context is wired with a ScriptState, and it clears the
self-reference of ScriptState at its termination.
In worker threads, it means that ScriptState is kept alive until
terminating v8::Isolate, although ScriptState is not used after
disposing global scope.

This CL explicitly does tasks in weak callback registered in v8::Context
at disposing global scope. Actual tasks are (1)to clear self-persistent
of ScriptState and (2)to drop a weak reference from ScriptState to
v8::Context.
This change makes it possible to release ScriptState at anytime before
v8::Isolate termination.


Bug:  773605 
Change-Id: I9da5052c035a0b56dd47a6305df89809b05408a7
Reviewed-on: https://chromium-review.googlesource.com/1117976
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571107}
[modify] https://crrev.com/aa1b9b7022dc7b065dbdc22e02369537b87185e4/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63df9302d65e93ce71c16b7601a9b96d15482c53

commit 63df9302d65e93ce71c16b7601a9b96d15482c53
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Jun 28 23:21:18 2018

Revert "bindings: Clear ScriptState self-reference at disposing worker global scope"

This reverts commit aa1b9b7022dc7b065dbdc22e02369537b87185e4.

Reason for revert: Just in case. There comes a concern from a reviewer.

Original change's description:
> bindings: Clear ScriptState self-reference at disposing worker global scope
> 
> Each v8::Context is wired with a ScriptState, and it clears the
> self-reference of ScriptState at its termination.
> In worker threads, it means that ScriptState is kept alive until
> terminating v8::Isolate, although ScriptState is not used after
> disposing global scope.
> 
> This CL explicitly does tasks in weak callback registered in v8::Context
> at disposing global scope. Actual tasks are (1)to clear self-persistent
> of ScriptState and (2)to drop a weak reference from ScriptState to
> v8::Context.
> This change makes it possible to release ScriptState at anytime before
> v8::Isolate termination.
> 
> 
> Bug:  773605 
> Change-Id: I9da5052c035a0b56dd47a6305df89809b05408a7
> Reviewed-on: https://chromium-review.googlesource.com/1117976
> Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
> Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#571107}

TBR=peria@chromium.org,yukishiino@chromium.org,haraken@chromium.org

Change-Id: Ibf5511ad731ec8c18ad2df32f24060e9be81ba86
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  773605 
Reviewed-on: https://chromium-review.googlesource.com/1119425
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571322}
[modify] https://crrev.com/63df9302d65e93ce71c16b7601a9b96d15482c53/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc7f5252145dbef0c1663176a90e86285d5e0e3b

commit dc7f5252145dbef0c1663176a90e86285d5e0e3b
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Jul 05 09:30:04 2018

worker: Move clean-up tasks from PrepareForShutdown to PerformShutdown

Clearing objects should be done atomically, and no other tasks
should have a chance to be run during it.
This CL moves tasks to clean up objects on a worker thread from
PrepareForShutdownOnWorkerThread to PerformShutdownOnWorkerThread,
because those two methods can be run separately.

Bug:  773605 
Change-Id: Id263ad914a9eb9147b38f1557153eee9fa76cd34
Reviewed-on: https://chromium-review.googlesource.com/1126740
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572744}
[modify] https://crrev.com/dc7f5252145dbef0c1663176a90e86285d5e0e3b/third_party/blink/renderer/core/workers/worker_thread.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c59a245fb5b2c9efba44a17d830683a0aaf43ed

commit 5c59a245fb5b2c9efba44a17d830683a0aaf43ed
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Fri Jul 06 07:11:46 2018

bindings: Clear references between ScriptState and V8 context

On a worker thread we tear down V8's isolate without running a GC.
Alternately we manually clear all references between V8 and Blink,
and run operations that should have been invoked by weak callbacks
if a GC were run, at closing global contexts.

This CL adds operations which are known to be done in a weak
callback function to be called in a V8 context's destruction.


Bug:  773605 
Change-Id: I739aba21e86fd86946efc01ac1dfa50339f3fe85
Reviewed-on: https://chromium-review.googlesource.com/1124064
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572911}
[modify] https://crrev.com/5c59a245fb5b2c9efba44a17d830683a0aaf43ed/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc
[modify] https://crrev.com/5c59a245fb5b2c9efba44a17d830683a0aaf43ed/third_party/blink/renderer/platform/bindings/script_state.cc
[modify] https://crrev.com/5c59a245fb5b2c9efba44a17d830683a0aaf43ed/third_party/blink/renderer/platform/bindings/script_state.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d9ab2bffbc57614331bc24edb50ff4b747238bd

commit 8d9ab2bffbc57614331bc24edb50ff4b747238bd
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Wed Jul 11 09:20:13 2018

bindings: Make ScriptState inherited from GarbageCollected

In order to make their lifetime clear in Unified-GC, this CL
makes ScriptState inherited from GC.
This allows to have a cyclic reference between v8::Context,
ScriptState, and V8PerContextData in Unified-GC world.


Bug:  773605 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibbea4f8a15c8b5e2508b53aa4ddec38d82f6d8ad
Reviewed-on: https://chromium-review.googlesource.com/928189
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574114}
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/IDLExtendedAttributes.md
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/custom/v8_custom_xpath_ns_resolver.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/custom/v8_custom_xpath_ns_resolver.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/local_window_proxy.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/rejected_promises.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/scheduled_action.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/scheduled_action.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_function.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_function.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_promise.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_promise.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_streamer.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_value.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/script_value.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_object_builder.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_object_builder.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_v0_custom_element_lifecycle_callbacks.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_v0_custom_element_lifecycle_callbacks.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/window_proxy.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/fetch/body_stream_buffer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/fetch/body_stream_buffer.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/fetch/data_consumer_handle_test_util.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/frame/pausable_script_executor.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/frame/pausable_script_executor.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/layout/custom/css_layout_definition.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/layout/custom/css_layout_definition.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/loader/image_loader.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/document_modulator_impl.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/document_modulator_impl.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/document_modulator_impl_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/dynamic_module_resolver_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/modulator_impl_base.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/modulator_impl_base.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/module_map_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/script_module_resolver_impl_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/worker_modulator_impl.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/worker_modulator_impl.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/worklet_modulator_impl.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/script/worklet_modulator_impl.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/core/streams/readable_stream_default_controller_wrapper.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/cache_storage/cache.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/clipboard/clipboard_promise.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/csspaint/css_paint_definition.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/csspaint/css_paint_definition.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/indexeddb/idb_object_store.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/indexeddb/inspector_indexed_db_agent.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/payments/payment_response_test.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/modules/payments/payment_test_helper.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/callback_function_base.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/callback_function_base.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/callback_interface_base.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/callback_interface_base.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/script_state.cc
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/script_state.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h
[modify] https://crrev.com/8d9ab2bffbc57614331bc24edb50ff4b747238bd/third_party/blink/renderer/platform/heap/self_keep_alive.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f59c5558bcae3a45e08edc99450f00242e5e7ce0

commit f59c5558bcae3a45e08edc99450f00242e5e7ce0
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Jul 12 07:41:46 2018

oilpan: Make ImageLoader::Task::script_state_ WeakPersistent

ImageLoader::Task class does not actually own the script state,
so its reference can be weak.
This CL makes the reference weak.

Bug:  773605 
Change-Id: Ib5761227e6582a8519a9d10ffaa00226559ee3d6
Reviewed-on: https://chromium-review.googlesource.com/1134629
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574501}
[modify] https://crrev.com/f59c5558bcae3a45e08edc99450f00242e5e7ce0/third_party/blink/renderer/core/loader/image_loader.cc

Status: Fixed (was: Assigned)

Sign in to add a comment