Home | History | Annotate | Download | only in child
      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