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

Issue 2702243003: Disallow cross-thread Persistent<> read access. (Closed)

Created:
3 years, 10 months ago by sof
Modified:
3 years, 10 months ago
Reviewers:
oilpan-reviews, haraken
CC:
chromium-reviews, blink-reviews-platform-graphics_chromium.org, dshwang, kinuko+worker_chromium.org, kinuko+watch, rwlbuis, krit, drott+blinkwatch_chromium.org, Justin Novosad, hongchan, Rik, blink-reviews, falken+watch_chromium.org, ajuma+watch_chromium.org, blink-worker-reviews_chromium.org, Mads Ager (chromium), jbroman, Raymond Toy, pdr+graphicswatchlist_chromium.org, haraken, Stephen Chennney, fmalita+watch_chromium.org, shimazu+worker_chromium.org, oilpan-reviews, horo+watch_chromium.org, danakj+watch_chromium.org, kouhei+heap_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Disallow cross-thread Persistent<> read access. A Persistent<> reference is belongs to the thread that created it, read and write access must only be performed by that thread. Debug verification have been in place for some time to verify that Persistent<> updates only happen on its creation thread, and that the updated heap pointer resides on that thread's heap. Extend the debug checks to also apply to read access, checking that no other thread accesses the Persistent<>. This requires converting a handful of Persistent<>s to CrossThreadPersistent<>s. R=haraken BUG=693988 Review-Url: https://codereview.chromium.org/2702243003 Cr-Commit-Position: refs/heads/master@{#451753} Committed: https://chromium.googlesource.com/chromium/src/+/2d8378bf293f5a0a0dbec1f5c2436fe7eaa51d3b

Patch Set 1 #

Patch Set 2 : rebase fixup #

Total comments: 7

Patch Set 3 : add TODOs re undesirable CTPs #

Patch Set 4 : rebased upto r451733 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+96 lines, -36 lines) Patch
M third_party/WebKit/Source/core/loader/ThreadableLoaderTest.cpp View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/testing/DummyPageHolder.h View 1 2 1 chunk +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/workers/ThreadedMessagingProxyBase.h View 1 2 4 chunks +11 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/workers/ThreadedMessagingProxyBase.cpp View 3 chunks +4 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerGlobalScope.h View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerThread.h View 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/ConvolverNode.h View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaElementAudioSourceNode.h View 1 2 2 chunks +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaElementAudioSourceNode.cpp View 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/MediaStreamAudioDestinationNode.h View 1 2 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/OscillatorNode.h View 1 chunk +3 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/PannerNode.h View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h View 1 2 1 chunk +5 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.h View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/heap/Persistent.h View 2 chunks +14 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h View 1 2 2 chunks +8 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebSharedWorkerImpl.h View 1 2 2 chunks +7 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp View 2 chunks +4 lines, -4 lines 0 comments Download

Messages

Total messages: 17 (12 generated)
sof
please take a look. as can be seen, no major sinkholes discovered in the codebase ...
3 years, 10 months ago (2017-02-20 15:44:35 UTC) #5
haraken
LGTM to introducing the runtime verification. However, I think we should try to convert most ...
3 years, 10 months ago (2017-02-20 23:57:18 UTC) #9
sof
On 2017/02/20 23:57:18, haraken wrote: > LGTM to introducing the runtime verification. > > However, ...
3 years, 10 months ago (2017-02-21 06:24:04 UTC) #10
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/2702243003/60001
3 years, 10 months ago (2017-02-21 11:36:51 UTC) #14
commit-bot: I haz the power
3 years, 10 months ago (2017-02-21 14:04:00 UTC) #17
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://chromium.googlesource.com/chromium/src/+/2d8378bf293f5a0a0dbec1f5c243...

Powered by Google App Engine
This is Rietveld 408576698