• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_
6 #define WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_
7 
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"
12 
13 #if defined(USE_DEFAULT_RENDER_THEME)
14 #include "webkit/child/webthemeengine_impl_default.h"
15 #elif defined(OS_WIN)
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"
21 #endif
22 
23 namespace webkit_glue {
24 
25 class FlingCurveConfiguration;
26 
27 class WEBKIT_CHILD_EXPORT WebKitPlatformSupportChildImpl :
28     public WebKitPlatformSupportImpl {
29  public:
30   WebKitPlatformSupportChildImpl();
31   virtual ~WebKitPlatformSupportChildImpl();
32 
33   // Platform methods (partial implementation):
34   virtual blink::WebThemeEngine* themeEngine();
35   virtual blink::WebFallbackThemeEngine* fallbackThemeEngine();
36 
37   void SetFlingCurveParameters(
38     const std::vector<float>& new_touchpad,
39     const std::vector<float>& new_touchscreen);
40 
41   virtual blink::WebGestureCurve* createFlingAnimationCurve(
42       int device_source,
43       const blink::WebFloatPoint& velocity,
44       const blink::WebSize& cumulative_scroll) OVERRIDE;
45 
46   virtual blink::WebThread* createThread(const char* name);
47   virtual blink::WebThread* currentThread();
48 
49   virtual void didStartWorkerRunLoop(
50       const blink::WebWorkerRunLoop& runLoop) OVERRIDE;
51   virtual void didStopWorkerRunLoop(
52       const blink::WebWorkerRunLoop& runLoop) OVERRIDE;
53 
54   virtual blink::WebDiscardableMemory* allocateAndLockDiscardableMemory(
55       size_t bytes);
56 
57  private:
58   static void DestroyCurrentThread(void*);
59 
60   WebThemeEngineImpl native_theme_engine_;
61   WebFallbackThemeEngineImpl fallback_theme_engine_;
62   base::ThreadLocalStorage::Slot current_thread_slot_;
63   scoped_ptr<FlingCurveConfiguration> fling_curve_configuration_;
64 };
65 
66 }  // namespace webkit_glue
67 
68 #endif  // WEBKIT_CHILD_WEBKITPLATFORMSUPPORT_CHILD_IMPL_H_
69