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

Unified Diff: android_webview/native/aw_contents.h

Issue 12041009: [Android WebView] Migrate the rendering code to a separate set of classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: upload error, re-uploading. Created 7 years, 10 months 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
« no previous file with comments | « android_webview/native/android_webview_jni_registrar.cc ('k') | android_webview/native/aw_contents.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/native/aw_contents.h
diff --git a/android_webview/native/aw_contents.h b/android_webview/native/aw_contents.h
index 78ababc8ab1c25a1a663de88a846141714e26579..889aaa875b6e9571450f267a12680dc115ba1ca2 100644
--- a/android_webview/native/aw_contents.h
+++ b/android_webview/native/aw_contents.h
@@ -10,29 +10,20 @@
#include <string>
#include <utility>
+#include "android_webview/browser/browser_view_renderer.h"
#include "android_webview/browser/find_helper.h"
#include "android_webview/browser/icon_helper.h"
#include "android_webview/browser/renderer_host/aw_render_view_host_ext.h"
-#include "android_webview/public/browser/draw_gl.h"
#include "base/android/scoped_java_ref.h"
#include "base/android/jni_helper.h"
#include "base/callback_forward.h"
#include "base/memory/scoped_ptr.h"
-#include "content/public/browser/android/compositor.h"
#include "content/public/browser/javascript_dialog_manager.h"
-#include "skia/ext/refptr.h"
-#include "third_party/skia/include/core/SkPicture.h"
-typedef void* EGLContext;
class SkBitmap;
class TabContents;
-namespace cc {
-class Layer;
-}
-
namespace content {
-class Compositor;
class WebContents;
}
@@ -47,8 +38,7 @@ class AwWebContentsDelegate;
// level of indirection provided by the AwContentsContainer abstraction.
class AwContents : public FindHelper::Listener,
public IconHelper::Listener,
- public content::Compositor::Client,
- public AwRenderViewHostExt::Client {
+ public BrowserViewRenderer::Client {
public:
enum OnNewPictureMode {
kOnNewPictureDisabled = 0,
@@ -72,15 +62,6 @@ class AwContents : public FindHelper::Listener,
return render_view_host_ext_.get();
}
- void DrawGL(AwDrawGLInfo* draw_info);
- bool DrawSW(JNIEnv* env,
- jobject obj,
- jobject canvas,
- jint clip_x,
- jint clip_y,
- jint clip_w,
- jint clip_h);
-
void RunJavaScriptDialog(
content::JavaScriptMessageType message_type,
const GURL& origin_url,
@@ -127,9 +108,17 @@ class AwContents : public FindHelper::Listener,
base::android::ScopedJavaLocalRef<jbyteArray> GetOpaqueState(
JNIEnv* env, jobject obj);
jboolean RestoreFromOpaqueState(JNIEnv* env, jobject obj, jbyteArray state);
+ void FocusFirstNode(JNIEnv* env, jobject obj);
+ bool DrawSW(JNIEnv* env,
+ jobject obj,
+ jobject canvas,
+ jint clip_x,
+ jint clip_y,
+ jint clip_w,
+ jint clip_h);
void SetScrollForHWFrame(JNIEnv* env, jobject obj,
int scroll_x, int scroll_y);
- void FocusFirstNode(JNIEnv* env, jobject obj);
+ jint GetAwDrawGLViewContext(JNIEnv* env, jobject obj);
base::android::ScopedJavaLocalRef<jobject> CapturePicture(JNIEnv* env,
jobject obj);
void EnableOnNewPicture(JNIEnv* env,
@@ -150,8 +139,6 @@ class AwContents : public FindHelper::Listener,
void FindAllAsync(JNIEnv* env, jobject obj, jstring search_string);
void FindNext(JNIEnv* env, jobject obj, jboolean forward);
void ClearMatches(JNIEnv* env, jobject obj);
- void ClearCache(JNIEnv* env, jobject obj, jboolean include_disk_files);
-
FindHelper* GetFindHelper();
// FindHelper::Listener implementation.
@@ -163,29 +150,17 @@ class AwContents : public FindHelper::Listener,
virtual void OnReceivedTouchIconUrl(const std::string& url,
const bool precomposed) OVERRIDE;
- // content::Compositor::Client implementation.
- virtual void ScheduleComposite() OVERRIDE;
- virtual void OnSwapBuffersCompleted() OVERRIDE;
+ // BrowserViewRenderer::Client implementation.
+ virtual void Invalidate() OVERRIDE;
+ virtual void OnNewPicture(
+ const base::android::JavaRef<jobject>& picture) OVERRIDE;
+ void ClearCache(JNIEnv* env, jobject obj, jboolean include_disk_files);
void SetPendingWebContentsForPopup(scoped_ptr<content::WebContents> pending);
jint ReleasePopupWebContents(JNIEnv* env, jobject obj);
- // AwRenderViewHostExt::Client implementation.
- virtual void OnPictureUpdated(int process_id, int render_view_id) OVERRIDE;
-
- // Returns the latest locally available picture if any.
- // If none is available will synchronously request the latest one
- // and block until the result is received.
- skia::RefPtr<SkPicture> GetLastCapturedPicture();
-
private:
- void Invalidate();
void SetWebContents(content::WebContents* web_contents);
- void SetCompositorVisibility(bool visible);
- void ResetCompositor();
- void AttachLayerTree();
- bool RenderSW(SkCanvas* canvas);
- bool RenderPicture(SkCanvas* canvas);
JavaObjectWeakGlobalRef java_ref_;
scoped_ptr<content::WebContents> web_contents_;
@@ -194,6 +169,7 @@ class AwContents : public FindHelper::Listener,
scoped_ptr<FindHelper> find_helper_;
scoped_ptr<IconHelper> icon_helper_;
scoped_ptr<content::WebContents> pending_contents_;
+ scoped_ptr<BrowserViewRenderer> browser_view_renderer_;
// GURL is supplied by the content layer as requesting frame.
// Callback is supplied by the content layer, and is invoked with the result
@@ -202,23 +178,6 @@ class AwContents : public FindHelper::Listener,
// The first element in the list is always the currently pending request.
std::list<OriginCallback> pending_geolocation_prompts_;
- // Compositor-specific state.
- scoped_ptr<content::Compositor> compositor_;
- scoped_refptr<cc::Layer> scissor_clip_layer_;
- scoped_refptr<cc::Layer> transform_layer_;
- scoped_refptr<cc::Layer> view_clip_layer_;
- gfx::Point hw_rendering_scroll_;
- gfx::Size view_size_;
- bool view_visible_;
- bool compositor_visible_;
- bool is_composite_pending_;
- float dpi_scale_;
- OnNewPictureMode on_new_picture_mode_;
-
- // Used only for detecting Android View System context changes.
- // Not to be used between draw calls.
- EGLContext last_frame_context_;
-
DISALLOW_COPY_AND_ASSIGN(AwContents);
};
« no previous file with comments | « android_webview/native/android_webview_jni_registrar.cc ('k') | android_webview/native/aw_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698