Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / android_webview / browser / browser_view_renderer.h
index 5231294..e841a8a 100644 (file)
@@ -5,14 +5,12 @@
 #ifndef ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_
 #define ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_
 
-#include "android_webview/browser/global_tile_manager.h"
-#include "android_webview/browser/global_tile_manager_client.h"
 #include "android_webview/browser/parent_compositor_draw_constraints.h"
 #include "android_webview/browser/shared_renderer_state.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/callback.h"
 #include "base/cancelable_callback.h"
-#include "base/values.h"
+#include "base/debug/trace_event.h"
 #include "content/public/browser/android/synchronous_compositor.h"
 #include "content/public/browser/android/synchronous_compositor_client.h"
 #include "skia/ext/refptr.h"
 
 class SkCanvas;
 class SkPicture;
-struct AwDrawGLInfo;
-struct AwDrawSWFunctionTable;
 
 namespace content {
-class ContentViewCore;
-struct SynchronousCompositorMemoryPolicy;
 class WebContents;
 }
 
@@ -57,19 +51,20 @@ class BrowserViewRendererJavaHelper {
 
 // Interface for all the WebView-specific content rendering operations.
 // Provides software and hardware rendering and the Capture Picture API.
-class BrowserViewRenderer : public content::SynchronousCompositorClient,
-                            public GlobalTileManagerClient {
+class BrowserViewRenderer : public content::SynchronousCompositorClient {
  public:
-  static void CalculateTileMemoryPolicy(bool use_zero_copy);
+  static void CalculateTileMemoryPolicy();
 
   BrowserViewRenderer(
       BrowserViewRendererClient* client,
-      SharedRendererState* shared_renderer_state,
       content::WebContents* web_contents,
       const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner);
 
   virtual ~BrowserViewRenderer();
 
+  intptr_t GetAwDrawGLViewContext();
+  bool RequestDrawGL(bool wait_for_completion);
+
   // Main handler for view drawing: performs a SW draw immediately, or sets up
   // a subsequent GL Draw (via BrowserViewRendererClient::RequestDrawGL) and
   // returns true. A false return value indicates nothing was or will be drawn.
@@ -109,42 +104,31 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
   bool hardware_enabled() const { return hardware_enabled_; }
   void ReleaseHardware();
 
-  // Set the memory policy in shared renderer state and request the tiles from
-  // GlobalTileManager. The actually amount of memory allowed by
-  // GlobalTileManager may not be equal to what's requested in |policy|.
-  void RequestMemoryPolicy(content::SynchronousCompositorMemoryPolicy& policy);
-
   void TrimMemory(const int level, const bool visible);
 
   // SynchronousCompositorClient overrides.
   virtual void DidInitializeCompositor(
-      content::SynchronousCompositor* compositor) OVERRIDE;
+      content::SynchronousCompositor* compositor) override;
   virtual void DidDestroyCompositor(content::SynchronousCompositor* compositor)
-      OVERRIDE;
-  virtual void SetContinuousInvalidate(bool invalidate) OVERRIDE;
-  virtual void DidUpdateContent() OVERRIDE;
-  virtual gfx::Vector2dF GetTotalRootLayerScrollOffset() OVERRIDE;
+      override;
+  virtual void SetContinuousInvalidate(bool invalidate) override;
+  virtual void DidUpdateContent() override;
+  virtual gfx::Vector2dF GetTotalRootLayerScrollOffset() override;
   virtual void UpdateRootLayerState(
       const gfx::Vector2dF& total_scroll_offset_dip,
       const gfx::Vector2dF& max_scroll_offset_dip,
       const gfx::SizeF& scrollable_size_dip,
       float page_scale_factor,
       float min_page_scale_factor,
-      float max_page_scale_factor) OVERRIDE;
-  virtual bool IsExternalFlingActive() const OVERRIDE;
+      float max_page_scale_factor) override;
+  virtual bool IsExternalFlingActive() const override;
   virtual void DidOverscroll(gfx::Vector2dF accumulated_overscroll,
                              gfx::Vector2dF latest_overscroll_delta,
-                             gfx::Vector2dF current_fling_velocity) OVERRIDE;
-
-  // GlobalTileManagerClient overrides.
-  virtual content::SynchronousCompositorMemoryPolicy GetMemoryPolicy()
-      const OVERRIDE;
-  virtual void SetMemoryPolicy(
-      content::SynchronousCompositorMemoryPolicy new_policy,
-      bool effective_immediately) OVERRIDE;
+                             gfx::Vector2dF current_fling_velocity) override;
 
   void UpdateParentDrawConstraints();
   void DidSkipCommitFrame();
+  void InvalidateOnFunctorDestroy();
 
  private:
   void SetTotalRootLayerScrollOffset(gfx::Vector2dF new_value_dip);
@@ -159,11 +143,11 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
   bool CompositeSW(SkCanvas* canvas);
   void DidComposite();
   void DidSkipCompositeInDraw();
-  scoped_ptr<base::Value> RootLayerStateAsValue(
+  scoped_refptr<base::debug::ConvertableToTraceFormat> RootLayerStateAsValue(
       const gfx::Vector2dF& total_scroll_offset_dip,
       const gfx::SizeF& scrollable_size_dip);
 
-  bool OnDrawHardware(jobject java_canvas);
+  bool OnDrawHardware();
   scoped_ptr<cc::CompositorFrame> CompositeHw();
   void ReturnUnusedResource(scoped_ptr<cc::CompositorFrame> frame);
   void ReturnResourceFromParent();
@@ -180,18 +164,15 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
   // compositor that are not directly exposed here.
   void ForceFakeCompositeSW();
 
-  void EnforceMemoryPolicyImmediately(
-      content::SynchronousCompositorMemoryPolicy policy);
-
   gfx::Vector2d max_scroll_offset() const;
 
-  content::SynchronousCompositorMemoryPolicy CalculateDesiredMemoryPolicy();
+  size_t CalculateDesiredMemoryPolicy();
   // For debug tracing or logging. Return the string representation of this
-  // view renderer's state and the |draw_info| if provided.
-  std::string ToString(AwDrawGLInfo* draw_info) const;
+  // view renderer's state.
+  std::string ToString() const;
 
   BrowserViewRendererClient* client_;
-  SharedRendererState* shared_renderer_state_;
+  SharedRendererState shared_renderer_state_;
   content::WebContents* web_contents_;
   scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
 
@@ -243,9 +224,6 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
   // spot over a period of time).
   gfx::Vector2dF overscroll_rounding_error_;
 
-  GlobalTileManager::Key tile_manager_key_;
-  content::SynchronousCompositorMemoryPolicy memory_policy_;
-
   DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer);
 };