[chromium] Make it safe to delete WorkerFileSystemContextObserver on any thread.
authorlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jan 2012 03:08:14 +0000 (03:08 +0000)
committerlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jan 2012 03:08:14 +0000 (03:08 +0000)
commit7481ce784ad4380209d30b5ee039b31f19daf5e2
tree99d33510a0f258ec0695125869cae182545eccb6
parent5fdf70ea7c231adc47ba2338cb326daf4a224ce9
[chromium] Make it safe to delete WorkerFileSystemContextObserver on any thread.
https://bugs.webkit.org/show_bug.cgi?id=75573

Reviewed by Dmitry Titov.

* src/WorkerFileSystemCallbacksBridge.cpp:
(WebKit::WorkerFileSystemContextObserver): Move the WorkerContextObserver
out of the WorkerFileSystemCallbacksBridge since an observer should be
destroyed on the WorkerContext thread. (Actually, it could be destroyed on either
thread if you are careful to make a certain method call on it while on the WorkerContext
thread but trying that is a more fragile pattern.)
(WebKit::WorkerFileSystemCallbacksBridge::WorkerFileSystemCallbacksBridge):
(WebKit::WorkerFileSystemCallbacksBridge::stop): Factor out the clean up and make it
clear what the mutex is guarding.
(WebKit::WorkerFileSystemCallbacksBridge::cleanUpAfterCallback): Delete
the observer. Due to where this is called from, it is always called on the WorkerContext thread.
(WebKit::WorkerFileSystemCallbacksBridge::runTaskOnWorkerThread): Replace some code with
the cleanUpAfterCallback call.
(WebKit::WorkerFileSystemCallbacksBridge::mayPostTaskToWorker):
* src/WorkerFileSystemCallbacksBridge.h: In addition to some comment clean ups and code factoring,
I made the desctructor private since no one should call it directly.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@104111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp
Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h