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 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 void AwContents::FocusFirstNode(JNIEnv* env, jobject obj) { | 933 void AwContents::FocusFirstNode(JNIEnv* env, jobject obj) { |
934 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 934 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
935 web_contents_->FocusThroughTabTraversal(false); | 935 web_contents_->FocusThroughTabTraversal(false); |
936 } | 936 } |
937 | 937 |
938 void AwContents::SetBackgroundColor(JNIEnv* env, jobject obj, jint color) { | 938 void AwContents::SetBackgroundColor(JNIEnv* env, jobject obj, jint color) { |
939 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 939 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
940 render_view_host_ext_->SetBackgroundColor(color); | 940 render_view_host_ext_->SetBackgroundColor(color); |
941 } | 941 } |
942 | 942 |
| 943 void AwContents::OnComputeScroll(JNIEnv* env, |
| 944 jobject obj, |
| 945 jlong animation_time_millis) { |
| 946 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 947 browser_view_renderer_.OnComputeScroll( |
| 948 base::TimeTicks() + |
| 949 base::TimeDelta::FromMilliseconds(animation_time_millis)); |
| 950 } |
| 951 |
943 jlong AwContents::ReleasePopupAwContents(JNIEnv* env, jobject obj) { | 952 jlong AwContents::ReleasePopupAwContents(JNIEnv* env, jobject obj) { |
944 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 953 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
945 return reinterpret_cast<intptr_t>(pending_contents_.release()); | 954 return reinterpret_cast<intptr_t>(pending_contents_.release()); |
946 } | 955 } |
947 | 956 |
948 gfx::Point AwContents::GetLocationOnScreen() { | 957 gfx::Point AwContents::GetLocationOnScreen() { |
949 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 958 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
950 JNIEnv* env = AttachCurrentThread(); | 959 JNIEnv* env = AttachCurrentThread(); |
951 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 960 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
952 if (obj.is_null()) | 961 if (obj.is_null()) |
953 return gfx::Point(); | 962 return gfx::Point(); |
954 std::vector<int> location; | 963 std::vector<int> location; |
955 base::android::JavaIntArrayToIntVector( | 964 base::android::JavaIntArrayToIntVector( |
956 env, | 965 env, |
957 Java_AwContents_getLocationOnScreen(env, obj.obj()).obj(), | 966 Java_AwContents_getLocationOnScreen(env, obj.obj()).obj(), |
958 &location); | 967 &location); |
959 return gfx::Point(location[0], location[1]); | 968 return gfx::Point(location[0], location[1]); |
960 } | 969 } |
961 | 970 |
962 void AwContents::ScrollContainerViewTo(gfx::Vector2d new_value) { | 971 void AwContents::ScrollContainerViewTo(gfx::Vector2d new_value) { |
963 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 972 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
964 JNIEnv* env = AttachCurrentThread(); | 973 JNIEnv* env = AttachCurrentThread(); |
965 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 974 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
966 if (obj.is_null()) | 975 if (obj.is_null()) |
967 return; | 976 return; |
968 Java_AwContents_scrollContainerViewTo( | 977 Java_AwContents_scrollContainerViewTo( |
969 env, obj.obj(), new_value.x(), new_value.y()); | 978 env, obj.obj(), new_value.x(), new_value.y()); |
970 } | 979 } |
971 | 980 |
972 bool AwContents::IsFlingActive() const { | 981 bool AwContents::IsSmoothScrollingActive() const { |
973 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 982 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
974 JNIEnv* env = AttachCurrentThread(); | 983 JNIEnv* env = AttachCurrentThread(); |
975 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 984 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
976 if (obj.is_null()) | 985 if (obj.is_null()) |
977 return false; | 986 return false; |
978 return Java_AwContents_isFlingActive(env, obj.obj()); | 987 return Java_AwContents_isSmoothScrollingActive(env, obj.obj()); |
979 } | 988 } |
980 | 989 |
981 void AwContents::UpdateScrollState(gfx::Vector2d max_scroll_offset, | 990 void AwContents::UpdateScrollState(gfx::Vector2d max_scroll_offset, |
982 gfx::SizeF contents_size_dip, | 991 gfx::SizeF contents_size_dip, |
983 float page_scale_factor, | 992 float page_scale_factor, |
984 float min_page_scale_factor, | 993 float min_page_scale_factor, |
985 float max_page_scale_factor) { | 994 float max_page_scale_factor) { |
986 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 995 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
987 JNIEnv* env = AttachCurrentThread(); | 996 JNIEnv* env = AttachCurrentThread(); |
988 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 997 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
989 if (obj.is_null()) | 998 if (obj.is_null()) |
990 return; | 999 return; |
991 Java_AwContents_updateScrollState(env, | 1000 Java_AwContents_updateScrollState(env, |
992 obj.obj(), | 1001 obj.obj(), |
993 max_scroll_offset.x(), | 1002 max_scroll_offset.x(), |
994 max_scroll_offset.y(), | 1003 max_scroll_offset.y(), |
995 contents_size_dip.width(), | 1004 contents_size_dip.width(), |
996 contents_size_dip.height(), | 1005 contents_size_dip.height(), |
997 page_scale_factor, | 1006 page_scale_factor, |
998 min_page_scale_factor, | 1007 min_page_scale_factor, |
999 max_page_scale_factor); | 1008 max_page_scale_factor); |
1000 } | 1009 } |
1001 | 1010 |
1002 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta) { | 1011 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta, |
| 1012 gfx::Vector2dF overscroll_velocity) { |
1003 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1013 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1004 JNIEnv* env = AttachCurrentThread(); | 1014 JNIEnv* env = AttachCurrentThread(); |
1005 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 1015 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
1006 if (obj.is_null()) | 1016 if (obj.is_null()) |
1007 return; | 1017 return; |
1008 Java_AwContents_didOverscroll( | 1018 Java_AwContents_didOverscroll(env, obj.obj(), overscroll_delta.x(), |
1009 env, obj.obj(), overscroll_delta.x(), overscroll_delta.y()); | 1019 overscroll_delta.y(), overscroll_velocity.x(), |
| 1020 overscroll_velocity.y()); |
1010 } | 1021 } |
1011 | 1022 |
1012 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { | 1023 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { |
1013 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1024 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1014 SetDipScaleInternal(dip_scale); | 1025 SetDipScaleInternal(dip_scale); |
1015 } | 1026 } |
1016 | 1027 |
1017 void AwContents::SetDipScaleInternal(float dip_scale) { | 1028 void AwContents::SetDipScaleInternal(float dip_scale) { |
1018 browser_view_renderer_.SetDipScale(dip_scale); | 1029 browser_view_renderer_.SetDipScale(dip_scale); |
1019 } | 1030 } |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1165 | 1176 |
1166 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, ports, | 1177 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, ports, |
1167 GetMessagePortMessageFilter()); | 1178 GetMessagePortMessageFilter()); |
1168 } | 1179 } |
1169 | 1180 |
1170 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { | 1181 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { |
1171 g_should_download_favicons = true; | 1182 g_should_download_favicons = true; |
1172 } | 1183 } |
1173 | 1184 |
1174 } // namespace android_webview | 1185 } // namespace android_webview |
OLD | NEW |