1 // // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_
6 #define WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_
8 #include "base/threading/thread_local_storage.h"
9 #include "webkit/child/webfallbackthemeengine_impl.h"
10 #include "webkit/child/webkit_child_export.h"
11 #include "webkit/child/webkitplatformsupport_impl.h"
13 #if defined(USE_DEFAULT_RENDER_THEME)
14 #include "webkit/child/webthemeengine_impl_default.h"
16 #include "webkit/child/webthemeengine_impl_win.h"
17 #elif defined(OS_MACOSX)
18 #include "webkit/child/webthemeengine_impl_mac.h"
19 #elif defined(OS_ANDROID)
20 #include "webkit/child/webthemeengine_impl_android.h"
23 namespace webkit_glue
{
25 class FlingCurveConfiguration
;
27 class WEBKIT_CHILD_EXPORT WebKitPlatformSupportChildImpl
:
28 public WebKitPlatformSupportImpl
{
30 WebKitPlatformSupportChildImpl();
31 virtual ~WebKitPlatformSupportChildImpl();
33 // Platform methods (partial implementation):
34 virtual blink::WebThemeEngine
* themeEngine();
35 virtual blink::WebFallbackThemeEngine
* fallbackThemeEngine();
37 void SetFlingCurveParameters(
38 const std::vector
<float>& new_touchpad
,
39 const std::vector
<float>& new_touchscreen
);
41 virtual blink::WebGestureCurve
* createFlingAnimationCurve(
43 const blink::WebFloatPoint
& velocity
,
44 const blink::WebSize
& cumulative_scroll
) OVERRIDE
;
46 virtual blink::WebThread
* createThread(const char* name
);
47 virtual blink::WebThread
* currentThread();
49 virtual void didStartWorkerRunLoop(
50 const blink::WebWorkerRunLoop
& runLoop
) OVERRIDE
;
51 virtual void didStopWorkerRunLoop(
52 const blink::WebWorkerRunLoop
& runLoop
) OVERRIDE
;
54 virtual blink::WebDiscardableMemory
* allocateAndLockDiscardableMemory(
58 static void DestroyCurrentThread(void*);
60 WebThemeEngineImpl native_theme_engine_
;
61 WebFallbackThemeEngineImpl fallback_theme_engine_
;
62 base::ThreadLocalStorage::Slot current_thread_slot_
;
63 scoped_ptr
<FlingCurveConfiguration
> fling_curve_configuration_
;
66 } // namespace webkit_glue
68 #endif // WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_