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

Side by Side Diff: content/browser/android/content_view_core_impl.cc

Issue 11428091: Migrate the Android compositor to cc::Layer classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/android/content_view_core_impl.h" 5 #include "content/browser/android/content_view_core_impl.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/android/scoped_java_ref.h" 10 #include "base/android/scoped_java_ref.h"
11 #include "base/json/json_writer.h" 11 #include "base/json/json_writer.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "cc/layer.h"
14 #include "content/browser/android/interstitial_page_delegate_android.h" 15 #include "content/browser/android/interstitial_page_delegate_android.h"
15 #include "content/browser/android/load_url_params.h" 16 #include "content/browser/android/load_url_params.h"
16 #include "content/browser/android/touch_point.h" 17 #include "content/browser/android/touch_point.h"
17 #include "content/browser/renderer_host/java/java_bound_object.h" 18 #include "content/browser/renderer_host/java/java_bound_object.h"
18 #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager .h" 19 #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager .h"
19 #include "content/browser/renderer_host/compositor_impl_android.h" 20 #include "content/browser/renderer_host/compositor_impl_android.h"
20 #include "content/browser/renderer_host/render_view_host_impl.h" 21 #include "content/browser/renderer_host/render_view_host_impl.h"
21 #include "content/browser/renderer_host/render_widget_host_impl.h" 22 #include "content/browser/renderer_host/render_widget_host_impl.h"
22 #include "content/browser/renderer_host/render_widget_host_view_android.h" 23 #include "content/browser/renderer_host/render_widget_host_view_android.h"
23 #include "content/browser/ssl/ssl_host_state.h" 24 #include "content/browser/ssl/ssl_host_state.h"
(...skipping 26 matching lines...) Expand all
50 using base::android::ConvertJavaStringToUTF16; 51 using base::android::ConvertJavaStringToUTF16;
51 using base::android::ConvertJavaStringToUTF8; 52 using base::android::ConvertJavaStringToUTF8;
52 using base::android::ConvertUTF16ToJavaString; 53 using base::android::ConvertUTF16ToJavaString;
53 using base::android::ConvertUTF8ToJavaString; 54 using base::android::ConvertUTF8ToJavaString;
54 using base::android::GetClass; 55 using base::android::GetClass;
55 using base::android::HasField; 56 using base::android::HasField;
56 using base::android::MethodID; 57 using base::android::MethodID;
57 using base::android::JavaByteArrayToByteVector; 58 using base::android::JavaByteArrayToByteVector;
58 using base::android::ScopedJavaGlobalRef; 59 using base::android::ScopedJavaGlobalRef;
59 using base::android::ScopedJavaLocalRef; 60 using base::android::ScopedJavaLocalRef;
61 using cc::Layer;
joth 2012/11/29 21:19:38 nit: rather than using, I think saying cc::Layer a
Leandro GraciĆ” Gil 2012/11/30 12:11:11 Done.
60 using WebKit::WebGestureEvent; 62 using WebKit::WebGestureEvent;
61 using WebKit::WebInputEvent; 63 using WebKit::WebInputEvent;
62 using WebKit::WebInputEventFactory; 64 using WebKit::WebInputEventFactory;
63 using WebKit::WebLayer;
64 65
65 // Describes the type and enabled state of a select popup item. 66 // Describes the type and enabled state of a select popup item.
66 // Keep in sync with the value defined in SelectPopupDialog.java 67 // Keep in sync with the value defined in SelectPopupDialog.java
67 enum PopupItemType { 68 enum PopupItemType {
68 POPUP_ITEM_TYPE_GROUP = 0, 69 POPUP_ITEM_TYPE_GROUP = 0,
69 POPUP_ITEM_TYPE_DISABLED, 70 POPUP_ITEM_TYPE_DISABLED,
70 POPUP_ITEM_TYPE_ENABLED 71 POPUP_ITEM_TYPE_ENABLED
71 }; 72 };
72 73
73 namespace content { 74 namespace content {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 return reinterpret_cast<ContentViewCore*>( 141 return reinterpret_cast<ContentViewCore*>(
141 env->GetIntField(obj, g_native_content_view)); 142 env->GetIntField(obj, g_native_content_view));
142 } 143 }
143 144
144 ContentViewCoreImpl::ContentViewCoreImpl(JNIEnv* env, jobject obj, 145 ContentViewCoreImpl::ContentViewCoreImpl(JNIEnv* env, jobject obj,
145 bool hardware_accelerated, 146 bool hardware_accelerated,
146 WebContents* web_contents, 147 WebContents* web_contents,
147 ui::WindowAndroid* window_android) 148 ui::WindowAndroid* window_android)
148 : java_ref_(env, obj), 149 : java_ref_(env, obj),
149 web_contents_(static_cast<WebContentsImpl*>(web_contents)), 150 web_contents_(static_cast<WebContentsImpl*>(web_contents)),
150 root_layer_(WebLayer::create()), 151 root_layer_(Layer::create()),
151 tab_crashed_(false), 152 tab_crashed_(false),
152 window_android_(window_android) { 153 window_android_(window_android) {
153 DCHECK(web_contents) << 154 DCHECK(web_contents) <<
154 "A ContentViewCoreImpl should be created with a valid WebContents."; 155 "A ContentViewCoreImpl should be created with a valid WebContents.";
155 156
156 // When a tab is restored (from a saved state), it does not have a renderer 157 // When a tab is restored (from a saved state), it does not have a renderer
157 // process. We treat it like the tab is crashed. If the content is loaded 158 // process. We treat it like the tab is crashed. If the content is loaded
158 // when the tab is shown, tab_crashed_ will be reset. Since 159 // when the tab is shown, tab_crashed_ will be reset. Since
159 // RenderWidgetHostView is associated with the lifetime of the renderer 160 // RenderWidgetHostView is associated with the lifetime of the renderer
160 // process, we use it to test whether there is a renderer process. 161 // process, we use it to test whether there is a renderer process.
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 594
594 gfx::Rect ContentViewCoreImpl::GetBounds() const { 595 gfx::Rect ContentViewCoreImpl::GetBounds() const {
595 JNIEnv* env = AttachCurrentThread(); 596 JNIEnv* env = AttachCurrentThread();
596 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); 597 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env);
597 if (j_obj.is_null()) 598 if (j_obj.is_null())
598 return gfx::Rect(); 599 return gfx::Rect();
599 return gfx::Rect(Java_ContentViewCore_getWidth(env, j_obj.obj()), 600 return gfx::Rect(Java_ContentViewCore_getWidth(env, j_obj.obj()),
600 Java_ContentViewCore_getHeight(env, j_obj.obj())); 601 Java_ContentViewCore_getHeight(env, j_obj.obj()));
601 } 602 }
602 603
603 void ContentViewCoreImpl::AttachWebLayer(WebLayer* layer) { 604 void ContentViewCoreImpl::AttachLayer(scoped_refptr<Layer> layer) {
604 root_layer_->addChild(layer); 605 root_layer_->addChild(layer);
605 } 606 }
606 607
607 void ContentViewCoreImpl::RemoveWebLayer(WebLayer* layer) { 608 void ContentViewCoreImpl::RemoveLayer(scoped_refptr<Layer> layer) {
608 layer->removeFromParent(); 609 layer->removeFromParent();
609 } 610 }
610 611
611 void ContentViewCoreImpl::LoadUrl( 612 void ContentViewCoreImpl::LoadUrl(
612 NavigationController::LoadURLParams& params) { 613 NavigationController::LoadURLParams& params) {
613 GetWebContents()->GetController().LoadURLWithParams(params); 614 GetWebContents()->GetController().LoadURLWithParams(params);
614 tab_crashed_ = false; 615 tab_crashed_ = false;
615 } 616 }
616 617
617 ui::WindowAndroid* ContentViewCoreImpl::GetWindowAndroid() const { 618 ui::WindowAndroid* ContentViewCoreImpl::GetWindowAndroid() const {
618 return window_android_; 619 return window_android_;
619 } 620 }
620 621
621 WebLayer* ContentViewCoreImpl::GetWebLayer() const { 622 scoped_refptr<Layer> ContentViewCoreImpl::GetLayer() const {
622 return root_layer_.get(); 623 return root_layer_.get();
623 } 624 }
624 625
625 // ---------------------------------------------------------------------------- 626 // ----------------------------------------------------------------------------
626 // Methods called from Java via JNI 627 // Methods called from Java via JNI
627 // ---------------------------------------------------------------------------- 628 // ----------------------------------------------------------------------------
628 629
629 void ContentViewCoreImpl::SelectPopupMenuItems(JNIEnv* env, jobject obj, 630 void ContentViewCoreImpl::SelectPopupMenuItems(JNIEnv* env, jobject obj,
630 jintArray indices) { 631 jintArray indices) {
631 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( 632 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 if (!HasField(env, clazz, "mNativeContentViewCore", "I")) { 1248 if (!HasField(env, clazz, "mNativeContentViewCore", "I")) {
1248 DLOG(ERROR) << "Unable to find ContentView.mNativeContentViewCore!"; 1249 DLOG(ERROR) << "Unable to find ContentView.mNativeContentViewCore!";
1249 return false; 1250 return false;
1250 } 1251 }
1251 g_native_content_view = GetFieldID(env, clazz, "mNativeContentViewCore", "I"); 1252 g_native_content_view = GetFieldID(env, clazz, "mNativeContentViewCore", "I");
1252 1253
1253 return RegisterNativesImpl(env) >= 0; 1254 return RegisterNativesImpl(env) >= 0;
1254 } 1255 }
1255 1256
1256 } // namespace content 1257 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698