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

Side by Side Diff: content/child/blink_platform_impl.h

Issue 1449953002: compositor-worker: Refactor CompositorWorkerManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add documentation and ASSERTS for some subtleties. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_ 5 #ifndef CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_
6 #define CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_ 6 #define CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_
7 7
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/containers/scoped_ptr_hash_map.h" 9 #include "base/containers/scoped_ptr_hash_map.h"
10 #include "base/threading/thread_local_storage.h" 10 #include "base/threading/thread_local_storage.h"
(...skipping 12 matching lines...) Expand all
23 #elif defined(OS_WIN) 23 #elif defined(OS_WIN)
24 #include "content/child/webthemeengine_impl_win.h" 24 #include "content/child/webthemeengine_impl_win.h"
25 #elif defined(OS_MACOSX) 25 #elif defined(OS_MACOSX)
26 #include "content/child/webthemeengine_impl_mac.h" 26 #include "content/child/webthemeengine_impl_mac.h"
27 #elif defined(OS_ANDROID) 27 #elif defined(OS_ANDROID)
28 #include "content/child/webthemeengine_impl_android.h" 28 #include "content/child/webthemeengine_impl_android.h"
29 #endif 29 #endif
30 30
31 namespace base { 31 namespace base {
32 class MessageLoop; 32 class MessageLoop;
33 class WaitableEvent;
34 }
35
36 namespace scheduler {
37 class WebThreadBase;
33 } 38 }
34 39
35 namespace content { 40 namespace content {
36 class BackgroundSyncProvider; 41 class BackgroundSyncProvider;
37 class FlingCurveConfiguration; 42 class FlingCurveConfiguration;
38 class NotificationDispatcher; 43 class NotificationDispatcher;
39 class PermissionDispatcher; 44 class PermissionDispatcher;
40 class PushDispatcher; 45 class PushDispatcher;
41 class ThreadSafeSender; 46 class ThreadSafeSender;
42 class TraceLogObserverAdapter; 47 class TraceLogObserverAdapter;
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 blink::WebString queryLocalizedString( 170 blink::WebString queryLocalizedString(
166 blink::WebLocalizedString::Name name, 171 blink::WebLocalizedString::Name name,
167 const blink::WebString& value1, 172 const blink::WebString& value1,
168 const blink::WebString& value2) override; 173 const blink::WebString& value2) override;
169 void suddenTerminationChanged(bool enabled) override {} 174 void suddenTerminationChanged(bool enabled) override {}
170 double currentTimeSeconds() override; 175 double currentTimeSeconds() override;
171 double monotonicallyIncreasingTimeSeconds() override; 176 double monotonicallyIncreasingTimeSeconds() override;
172 double systemTraceTime() override; 177 double systemTraceTime() override;
173 void cryptographicallyRandomValues(unsigned char* buffer, 178 void cryptographicallyRandomValues(unsigned char* buffer,
174 size_t length) override; 179 size_t length) override;
180 blink::WebThread* compositorThread() const override;
175 blink::WebGestureCurve* createFlingAnimationCurve( 181 blink::WebGestureCurve* createFlingAnimationCurve(
176 blink::WebGestureDevice device_source, 182 blink::WebGestureDevice device_source,
177 const blink::WebFloatPoint& velocity, 183 const blink::WebFloatPoint& velocity,
178 const blink::WebSize& cumulative_scroll) override; 184 const blink::WebSize& cumulative_scroll) override;
179 void didStartWorkerRunLoop() override; 185 void didStartWorkerRunLoop() override;
180 void didStopWorkerRunLoop() override; 186 void didStopWorkerRunLoop() override;
181 blink::WebCrypto* crypto() override; 187 blink::WebCrypto* crypto() override;
182 blink::WebGeofencingProvider* geofencingProvider() override; 188 blink::WebGeofencingProvider* geofencingProvider() override;
183 blink::WebNotificationManager* notificationManager() override; 189 blink::WebNotificationManager* notificationManager() override;
184 blink::WebPushProvider* pushProvider() override; 190 blink::WebPushProvider* pushProvider() override;
185 blink::WebServicePortProvider* createServicePortProvider( 191 blink::WebServicePortProvider* createServicePortProvider(
186 blink::WebServicePortProviderClient*) override; 192 blink::WebServicePortProviderClient*) override;
187 blink::WebPermissionClient* permissionClient() override; 193 blink::WebPermissionClient* permissionClient() override;
188 blink::WebSyncProvider* backgroundSyncProvider() override; 194 blink::WebSyncProvider* backgroundSyncProvider() override;
189 195
190 blink::WebString domCodeStringFromEnum(int dom_code) override; 196 blink::WebString domCodeStringFromEnum(int dom_code) override;
191 int domEnumFromCodeString(const blink::WebString& codeString) override; 197 int domEnumFromCodeString(const blink::WebString& codeString) override;
192 blink::WebString domKeyStringFromEnum(int dom_key) override; 198 blink::WebString domKeyStringFromEnum(int dom_key) override;
193 int domKeyEnumFromString(const blink::WebString& key_string) override; 199 int domKeyEnumFromString(const blink::WebString& key_string) override;
194 200
201 scoped_ptr<scheduler::WebThreadBase> createThreadWithOptions(
202 const char* name,
203 base::Thread::Options);
204
205 // This class does *not* own |compositor_thread|. It is the responsibility of
206 // the caller to ensure that the compositor thread is cleared before it is
207 // destructed.
208 void set_compositor_thread(scheduler::WebThreadBase* compositor_thread) {
209 compositor_thread_ = compositor_thread;
210 }
211
195 private: 212 private:
196 void InternalInit(); 213 void InternalInit();
197 void UpdateWebThreadTLS(blink::WebThread* thread); 214 void UpdateWebThreadTLS(blink::WebThread* thread, base::WaitableEvent* event);
198 215
199 bool IsMainThread() const; 216 bool IsMainThread() const;
200 217
201 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; 218 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
202 WebThemeEngineImpl native_theme_engine_; 219 WebThemeEngineImpl native_theme_engine_;
203 WebFallbackThemeEngineImpl fallback_theme_engine_; 220 WebFallbackThemeEngineImpl fallback_theme_engine_;
204 base::ThreadLocalStorage::Slot current_thread_slot_; 221 base::ThreadLocalStorage::Slot current_thread_slot_;
205 webcrypto::WebCryptoImpl web_crypto_; 222 webcrypto::WebCryptoImpl web_crypto_;
206 scoped_ptr<WebGeofencingProviderImpl> geofencing_provider_; 223 scoped_ptr<WebGeofencingProviderImpl> geofencing_provider_;
207 base::ScopedPtrHashMap<blink::WebMemoryDumpProvider*, 224 base::ScopedPtrHashMap<blink::WebMemoryDumpProvider*,
208 scoped_ptr<WebMemoryDumpProviderAdapter>> 225 scoped_ptr<WebMemoryDumpProviderAdapter>>
209 memory_dump_providers_; 226 memory_dump_providers_;
210 base::ScopedPtrHashMap<blink::Platform::TraceLogEnabledStateObserver*, 227 base::ScopedPtrHashMap<blink::Platform::TraceLogEnabledStateObserver*,
211 scoped_ptr<TraceLogObserverAdapter>> 228 scoped_ptr<TraceLogObserverAdapter>>
212 trace_log_observers_; 229 trace_log_observers_;
213 230
214 scoped_refptr<ThreadSafeSender> thread_safe_sender_; 231 scoped_refptr<ThreadSafeSender> thread_safe_sender_;
215 scoped_refptr<NotificationDispatcher> notification_dispatcher_; 232 scoped_refptr<NotificationDispatcher> notification_dispatcher_;
216 scoped_refptr<PushDispatcher> push_dispatcher_; 233 scoped_refptr<PushDispatcher> push_dispatcher_;
217 scoped_ptr<PermissionDispatcher> permission_client_; 234 scoped_ptr<PermissionDispatcher> permission_client_;
218 scoped_ptr<BackgroundSyncProvider> main_thread_sync_provider_; 235 scoped_ptr<BackgroundSyncProvider> main_thread_sync_provider_;
236
237 scheduler::WebThreadBase* compositor_thread_;
219 }; 238 };
220 239
221 } // namespace content 240 } // namespace content
222 241
223 #endif // CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_ 242 #endif // CONTENT_CHILD_BLINK_PLATFORM_IMPL_H_
OLDNEW
« no previous file with comments | « components/scheduler/child/webthread_impl_for_worker_scheduler.cc ('k') | content/child/blink_platform_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698