OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "android_webview/native/aw_contents.h" | 5 #include "android_webview/native/aw_contents.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "android_webview/browser/aw_browser_context.h" | 9 #include "android_webview/browser/aw_browser_context.h" |
10 #include "android_webview/browser/aw_browser_main_parts.h" | 10 #include "android_webview/browser/aw_browser_main_parts.h" |
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 void AwContents::FocusFirstNode(JNIEnv* env, jobject obj) { | 917 void AwContents::FocusFirstNode(JNIEnv* env, jobject obj) { |
918 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 918 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
919 web_contents_->FocusThroughTabTraversal(false); | 919 web_contents_->FocusThroughTabTraversal(false); |
920 } | 920 } |
921 | 921 |
922 void AwContents::SetBackgroundColor(JNIEnv* env, jobject obj, jint color) { | 922 void AwContents::SetBackgroundColor(JNIEnv* env, jobject obj, jint color) { |
923 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 923 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
924 render_view_host_ext_->SetBackgroundColor(color); | 924 render_view_host_ext_->SetBackgroundColor(color); |
925 } | 925 } |
926 | 926 |
| 927 void AwContents::OnComputeScroll(JNIEnv* env, |
| 928 jobject obj, |
| 929 jlong animation_time_millis) { |
| 930 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 931 browser_view_renderer_.OnComputeScroll( |
| 932 base::TimeTicks() + |
| 933 base::TimeDelta::FromMilliseconds(animation_time_millis)); |
| 934 } |
| 935 |
927 jlong AwContents::ReleasePopupAwContents(JNIEnv* env, jobject obj) { | 936 jlong AwContents::ReleasePopupAwContents(JNIEnv* env, jobject obj) { |
928 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 937 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
929 return reinterpret_cast<intptr_t>(pending_contents_.release()); | 938 return reinterpret_cast<intptr_t>(pending_contents_.release()); |
930 } | 939 } |
931 | 940 |
932 gfx::Point AwContents::GetLocationOnScreen() { | 941 gfx::Point AwContents::GetLocationOnScreen() { |
933 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 942 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
934 JNIEnv* env = AttachCurrentThread(); | 943 JNIEnv* env = AttachCurrentThread(); |
935 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 944 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
936 if (obj.is_null()) | 945 if (obj.is_null()) |
937 return gfx::Point(); | 946 return gfx::Point(); |
938 std::vector<int> location; | 947 std::vector<int> location; |
939 base::android::JavaIntArrayToIntVector( | 948 base::android::JavaIntArrayToIntVector( |
940 env, | 949 env, |
941 Java_AwContents_getLocationOnScreen(env, obj.obj()).obj(), | 950 Java_AwContents_getLocationOnScreen(env, obj.obj()).obj(), |
942 &location); | 951 &location); |
943 return gfx::Point(location[0], location[1]); | 952 return gfx::Point(location[0], location[1]); |
944 } | 953 } |
945 | 954 |
946 void AwContents::ScrollContainerViewTo(gfx::Vector2d new_value) { | 955 void AwContents::ScrollContainerViewTo(gfx::Vector2d new_value) { |
947 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 956 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
948 JNIEnv* env = AttachCurrentThread(); | 957 JNIEnv* env = AttachCurrentThread(); |
949 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 958 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
950 if (obj.is_null()) | 959 if (obj.is_null()) |
951 return; | 960 return; |
952 Java_AwContents_scrollContainerViewTo( | 961 Java_AwContents_scrollContainerViewTo( |
953 env, obj.obj(), new_value.x(), new_value.y()); | 962 env, obj.obj(), new_value.x(), new_value.y()); |
954 } | 963 } |
955 | 964 |
956 bool AwContents::IsFlingActive() const { | 965 bool AwContents::IsSmoothScrollingActive() const { |
957 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 966 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
958 JNIEnv* env = AttachCurrentThread(); | 967 JNIEnv* env = AttachCurrentThread(); |
959 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 968 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
960 if (obj.is_null()) | 969 if (obj.is_null()) |
961 return false; | 970 return false; |
962 return Java_AwContents_isFlingActive(env, obj.obj()); | 971 return Java_AwContents_isSmoothScrollingActive(env, obj.obj()); |
963 } | 972 } |
964 | 973 |
965 void AwContents::UpdateScrollState(gfx::Vector2d max_scroll_offset, | 974 void AwContents::UpdateScrollState(gfx::Vector2d max_scroll_offset, |
966 gfx::SizeF contents_size_dip, | 975 gfx::SizeF contents_size_dip, |
967 float page_scale_factor, | 976 float page_scale_factor, |
968 float min_page_scale_factor, | 977 float min_page_scale_factor, |
969 float max_page_scale_factor) { | 978 float max_page_scale_factor) { |
970 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 979 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
971 JNIEnv* env = AttachCurrentThread(); | 980 JNIEnv* env = AttachCurrentThread(); |
972 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 981 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
973 if (obj.is_null()) | 982 if (obj.is_null()) |
974 return; | 983 return; |
975 Java_AwContents_updateScrollState(env, | 984 Java_AwContents_updateScrollState(env, |
976 obj.obj(), | 985 obj.obj(), |
977 max_scroll_offset.x(), | 986 max_scroll_offset.x(), |
978 max_scroll_offset.y(), | 987 max_scroll_offset.y(), |
979 contents_size_dip.width(), | 988 contents_size_dip.width(), |
980 contents_size_dip.height(), | 989 contents_size_dip.height(), |
981 page_scale_factor, | 990 page_scale_factor, |
982 min_page_scale_factor, | 991 min_page_scale_factor, |
983 max_page_scale_factor); | 992 max_page_scale_factor); |
984 } | 993 } |
985 | 994 |
986 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta) { | 995 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta, |
| 996 gfx::Vector2dF overscroll_velocity, |
| 997 bool first_overscroll_x, |
| 998 bool first_overscroll_y) { |
987 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 999 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
988 JNIEnv* env = AttachCurrentThread(); | 1000 JNIEnv* env = AttachCurrentThread(); |
989 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 1001 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
990 if (obj.is_null()) | 1002 if (obj.is_null()) |
991 return; | 1003 return; |
992 Java_AwContents_didOverscroll( | 1004 Java_AwContents_didOverscroll(env, obj.obj(), overscroll_delta.x(), |
993 env, obj.obj(), overscroll_delta.x(), overscroll_delta.y()); | 1005 overscroll_delta.y(), overscroll_velocity.x(), |
| 1006 overscroll_velocity.y(), first_overscroll_x, |
| 1007 first_overscroll_y); |
994 } | 1008 } |
995 | 1009 |
996 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { | 1010 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { |
997 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1011 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
998 SetDipScaleInternal(dip_scale); | 1012 SetDipScaleInternal(dip_scale); |
999 } | 1013 } |
1000 | 1014 |
1001 void AwContents::SetDipScaleInternal(float dip_scale) { | 1015 void AwContents::SetDipScaleInternal(float dip_scale) { |
1002 browser_view_renderer_.SetDipScale(dip_scale); | 1016 browser_view_renderer_.SetDipScale(dip_scale); |
1003 } | 1017 } |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 | 1163 |
1150 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, ports, | 1164 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, ports, |
1151 GetMessagePortMessageFilter()); | 1165 GetMessagePortMessageFilter()); |
1152 } | 1166 } |
1153 | 1167 |
1154 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { | 1168 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { |
1155 g_should_download_favicons = true; | 1169 g_should_download_favicons = true; |
1156 } | 1170 } |
1157 | 1171 |
1158 } // namespace android_webview | 1172 } // namespace android_webview |
OLD | NEW |