Changeset 101842 in webkit
- Timestamp:
- Dec 2, 2011 11:39:04 AM (12 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r101841 r101842 1 2011-11-30 Adam Klein <adamk@chromium.org> 2 3 [chromium] WebKitMutationObserver::deliverAllMutations should be exposed through the Chromium API 4 https://bugs.webkit.org/show_bug.cgi?id=71242 5 6 Reviewed by Darin Fisher. 7 8 Relanding, depends on http://codereview.chromium.org/8748015/ 9 to fix a sandboxing issue on Chromium/Linux. 10 11 Add addTaskObserver and removeTaskObserver to WebThread, 12 along with a new WebThread::TaskObserver interface. 13 14 For mutation observers, add a TaskObserver to the main thread 15 to deliver mutations after each task runs. 16 17 The Chromium implementation of the new WebThread methods is in 18 http://codereview.chromium.org/8586038/. 19 20 * public/platform/WebThread.h: 21 (WebKit::WebThread::TaskObserver::~TaskObserver): 22 * src/WebKit.cpp: 23 (WebKit::initialize): 24 (WebKit::shutdown): 25 1 26 2011-12-02 Sheriff Bot <webkit.review.bot@gmail.com> 2 27 -
trunk/Source/WebKit/chromium/public/platform/WebThread.h
r101429 r101842 44 44 }; 45 45 46 class TaskObserver { 47 public: 48 virtual ~TaskObserver() { } 49 virtual void didProcessTask() = 0; 50 }; 51 46 52 virtual void postTask(Task*) = 0; 47 53 virtual void postDelayedTask(Task*, long long delayMs) = 0; 54 virtual void addTaskObserver(TaskObserver*) { } 55 virtual void removeTaskObserver(TaskObserver*) { } 48 56 49 57 virtual ~WebThread() { } -
trunk/Source/WebKit/chromium/src/WebKit.cpp
r101576 r101842 38 38 #include "TextEncoding.h" 39 39 #include "V8Binding.h" 40 #include "WebKitMutationObserver.h" 40 41 #include "WebKitPlatformSupport.h" 41 42 #include "WebMediaPlayerClientImpl.h" 42 43 #include "WebSocket.h" 44 #include "WebThread.h" 43 45 #include "WorkerContextExecutionProxy.h" 44 46 #include "v8.h" … … 50 52 51 53 namespace WebKit { 54 55 #if ENABLE(MUTATION_OBSERVERS) 56 namespace { 57 58 class EndOfTaskRunner : public WebThread::TaskObserver { 59 public: 60 virtual void didProcessTask() 61 { 62 WebCore::WebKitMutationObserver::deliverAllMutations(); 63 } 64 }; 65 66 } // namespace 67 68 static WebThread::TaskObserver* s_endOfTaskRunner = 0; 69 #endif // ENABLE(MUTATION_OBSERVERS) 52 70 53 71 // Make sure we are not re-initialized in the same address space. … … 74 92 v8::V8::Initialize(); 75 93 WebCore::V8BindingPerIsolateData::ensureInitialized(v8::Isolate::GetCurrent()); 94 95 #if ENABLE(MUTATION_OBSERVERS) 96 ASSERT(!s_endOfTaskRunner); 97 s_endOfTaskRunner = new EndOfTaskRunner; 98 webKitPlatformSupport->currentThread()->addTaskObserver(s_endOfTaskRunner); 99 #endif 76 100 } 77 101 … … 102 126 void shutdown() 103 127 { 128 #if ENABLE(MUTATION_OBSERVERS) 129 if (s_endOfTaskRunner) { 130 s_webKitPlatformSupport->currentThread()->removeTaskObserver(s_endOfTaskRunner); 131 delete s_endOfTaskRunner; 132 s_endOfTaskRunner = 0; 133 } 134 #endif 104 135 s_webKitPlatformSupport = 0; 105 136 }
Note: See TracChangeset
for help on using the changeset viewer.