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

Unified 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: clarify compositor thread ownership. guarantee initialization correctness. 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 side-by-side diff with in-line comments
Download patch
Index: content/child/blink_platform_impl.h
diff --git a/content/child/blink_platform_impl.h b/content/child/blink_platform_impl.h
index 25c164936ccbd92c1da18d348e5dfd2c19c2e7bf..c9d39864ef07377a1eaabb786aafc3ef92a2eedd 100644
--- a/content/child/blink_platform_impl.h
+++ b/content/child/blink_platform_impl.h
@@ -32,6 +32,10 @@ namespace base {
class MessageLoop;
}
+namespace scheduler {
+class WebThreadBase;
+}
+
namespace content {
class BackgroundSyncProvider;
class FlingCurveConfiguration;
@@ -167,6 +171,7 @@ class CONTENT_EXPORT BlinkPlatformImpl
double systemTraceTime() override;
void cryptographicallyRandomValues(unsigned char* buffer,
size_t length) override;
+ blink::WebThread* compositorThread() const override;
blink::WebGestureCurve* createFlingAnimationCurve(
blink::WebGestureDevice device_source,
const blink::WebFloatPoint& velocity,
@@ -187,6 +192,16 @@ class CONTENT_EXPORT BlinkPlatformImpl
blink::WebString domKeyStringFromEnum(int dom_key) override;
int domKeyEnumFromString(const blink::WebString& key_string) override;
+ blink::WebThread* createThreadWithOptions(const char* name,
piman 2015/12/01 23:44:41 nit: can you have this return a scoped_ptr<WebThre
Ian Vollick 2015/12/02 00:26:40 Done.
+ base::Thread::Options);
+
+ // This class does *not* own |compositor_thread|. It is the responsibility of
+ // the caller to ensure that the compositor thread is cleared before it is
+ // destructed.
+ void set_compositor_thread(scheduler::WebThreadBase* compositor_thread) {
+ compositor_thread_ = compositor_thread;
+ }
+
private:
void InternalInit();
void UpdateWebThreadTLS(blink::WebThread* thread);
@@ -208,6 +223,8 @@ class CONTENT_EXPORT BlinkPlatformImpl
scoped_refptr<PushDispatcher> push_dispatcher_;
scoped_ptr<PermissionDispatcher> permission_client_;
scoped_ptr<BackgroundSyncProvider> main_thread_sync_provider_;
+
+ scheduler::WebThreadBase* compositor_thread_;
};
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698