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 "content/browser/android/content_view_core_impl.h" | 5 #include "content/browser/android/content_view_core_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 // Note that viewport_width/height is a best effort based. | 415 // Note that viewport_width/height is a best effort based. |
416 // ContentViewCore has the actual information about the physical viewport size. | 416 // ContentViewCore has the actual information about the physical viewport size. |
417 void ContentViewCoreImpl::UpdateFrameInfo( | 417 void ContentViewCoreImpl::UpdateFrameInfo( |
418 const gfx::Vector2dF& scroll_offset, | 418 const gfx::Vector2dF& scroll_offset, |
419 float page_scale_factor, | 419 float page_scale_factor, |
420 const gfx::Vector2dF& page_scale_factor_limits, | 420 const gfx::Vector2dF& page_scale_factor_limits, |
421 const gfx::SizeF& content_size, | 421 const gfx::SizeF& content_size, |
422 const gfx::SizeF& viewport_size, | 422 const gfx::SizeF& viewport_size, |
423 const gfx::Vector2dF& controls_offset, | 423 const gfx::Vector2dF& controls_offset, |
424 const gfx::Vector2dF& content_offset, | 424 const gfx::Vector2dF& content_offset, |
| 425 const gfx::Vector2dF& bottom_controls_offset, |
| 426 const gfx::Vector2dF& bottom_controls_translate, |
425 bool is_mobile_optimized_hint, | 427 bool is_mobile_optimized_hint, |
426 const gfx::SelectionBound& selection_start) { | 428 const gfx::SelectionBound& selection_start) { |
427 JNIEnv* env = AttachCurrentThread(); | 429 JNIEnv* env = AttachCurrentThread(); |
428 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 430 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
429 if (obj.is_null() || !window_android_) | 431 if (obj.is_null() || !window_android_) |
430 return; | 432 return; |
431 | 433 |
432 window_android_->set_content_offset( | 434 window_android_->set_content_offset( |
433 gfx::ScaleVector2d(content_offset, dpi_scale_)); | 435 gfx::ScaleVector2d(content_offset, dpi_scale_)); |
434 | 436 |
(...skipping 17 matching lines...) Expand all Loading... |
452 scroll_offset.y(), | 454 scroll_offset.y(), |
453 page_scale_factor, | 455 page_scale_factor, |
454 page_scale_factor_limits.x(), | 456 page_scale_factor_limits.x(), |
455 page_scale_factor_limits.y(), | 457 page_scale_factor_limits.y(), |
456 content_size.width(), | 458 content_size.width(), |
457 content_size.height(), | 459 content_size.height(), |
458 viewport_size.width(), | 460 viewport_size.width(), |
459 viewport_size.height(), | 461 viewport_size.height(), |
460 controls_offset.y(), | 462 controls_offset.y(), |
461 content_offset.y(), | 463 content_offset.y(), |
| 464 bottom_controls_offset.y(), |
| 465 bottom_controls_translate.y(), |
462 is_mobile_optimized_hint, | 466 is_mobile_optimized_hint, |
463 has_insertion_marker, | 467 has_insertion_marker, |
464 is_insertion_marker_visible, | 468 is_insertion_marker_visible, |
465 insertion_marker_horizontal, | 469 insertion_marker_horizontal, |
466 insertion_marker_top, | 470 insertion_marker_top, |
467 insertion_marker_bottom); | 471 insertion_marker_bottom); |
468 } | 472 } |
469 | 473 |
470 void ContentViewCoreImpl::SetTitle(const base::string16& title) { | 474 void ContentViewCoreImpl::SetTitle(const base::string16& title) { |
471 JNIEnv* env = AttachCurrentThread(); | 475 JNIEnv* env = AttachCurrentThread(); |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 | 776 |
773 gfx::Size size_dip = gfx::ScaleToCeiledSize(size_pix, 1.0f / dpi_scale()); | 777 gfx::Size size_dip = gfx::ScaleToCeiledSize(size_pix, 1.0f / dpi_scale()); |
774 if (DoTopControlsShrinkBlinkSize()) | 778 if (DoTopControlsShrinkBlinkSize()) |
775 size_dip.Enlarge(0, -GetTopControlsHeightDip()); | 779 size_dip.Enlarge(0, -GetTopControlsHeightDip()); |
776 return size_dip; | 780 return size_dip; |
777 } | 781 } |
778 | 782 |
779 gfx::Size ContentViewCoreImpl::GetViewSize() const { | 783 gfx::Size ContentViewCoreImpl::GetViewSize() const { |
780 gfx::Size size = GetViewportSizeDip(); | 784 gfx::Size size = GetViewportSizeDip(); |
781 if (DoTopControlsShrinkBlinkSize()) | 785 if (DoTopControlsShrinkBlinkSize()) |
782 size.Enlarge(0, -GetTopControlsHeightDip()); | 786 size.Enlarge(0, -GetTopControlsHeightDip() - GetBottomControlsHeightDip()); |
783 return size; | 787 return size; |
784 } | 788 } |
785 | 789 |
786 gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { | 790 gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { |
787 JNIEnv* env = AttachCurrentThread(); | 791 JNIEnv* env = AttachCurrentThread(); |
788 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | 792 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
789 if (j_obj.is_null()) | 793 if (j_obj.is_null()) |
790 return gfx::Size(); | 794 return gfx::Size(); |
791 return gfx::Size( | 795 return gfx::Size( |
792 Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj.obj()), | 796 Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj.obj()), |
(...skipping 11 matching lines...) Expand all Loading... |
804 } | 808 } |
805 | 809 |
806 int ContentViewCoreImpl::GetTopControlsHeightPix() const { | 810 int ContentViewCoreImpl::GetTopControlsHeightPix() const { |
807 JNIEnv* env = AttachCurrentThread(); | 811 JNIEnv* env = AttachCurrentThread(); |
808 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | 812 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
809 if (j_obj.is_null()) | 813 if (j_obj.is_null()) |
810 return 0; | 814 return 0; |
811 return Java_ContentViewCore_getTopControlsHeightPix(env, j_obj.obj()); | 815 return Java_ContentViewCore_getTopControlsHeightPix(env, j_obj.obj()); |
812 } | 816 } |
813 | 817 |
| 818 int ContentViewCoreImpl::GetBottomControlsHeightPix() const { |
| 819 JNIEnv* env = AttachCurrentThread(); |
| 820 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
| 821 if (j_obj.is_null()) |
| 822 return 0; |
| 823 return Java_ContentViewCore_getBottomControlsHeightPix(env, j_obj.obj()); |
| 824 } |
| 825 |
814 gfx::Size ContentViewCoreImpl::GetViewportSizeDip() const { | 826 gfx::Size ContentViewCoreImpl::GetViewportSizeDip() const { |
815 return gfx::ScaleToCeiledSize(GetViewportSizePix(), 1.0f / dpi_scale()); | 827 return gfx::ScaleToCeiledSize(GetViewportSizePix(), 1.0f / dpi_scale()); |
816 } | 828 } |
817 | 829 |
818 bool ContentViewCoreImpl::DoTopControlsShrinkBlinkSize() const { | 830 bool ContentViewCoreImpl::DoTopControlsShrinkBlinkSize() const { |
819 JNIEnv* env = AttachCurrentThread(); | 831 JNIEnv* env = AttachCurrentThread(); |
820 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | 832 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
821 if (j_obj.is_null()) | 833 if (j_obj.is_null()) |
822 return false; | 834 return false; |
823 return Java_ContentViewCore_doTopControlsShrinkBlinkSize(env, j_obj.obj()); | 835 return Java_ContentViewCore_doTopControlsShrinkBlinkSize(env, j_obj.obj()); |
824 } | 836 } |
825 | 837 |
826 float ContentViewCoreImpl::GetTopControlsHeightDip() const { | 838 float ContentViewCoreImpl::GetTopControlsHeightDip() const { |
827 return GetTopControlsHeightPix() / dpi_scale(); | 839 return GetTopControlsHeightPix() / dpi_scale(); |
828 } | 840 } |
829 | 841 |
| 842 float ContentViewCoreImpl::GetBottomControlsHeightDip() const { |
| 843 return GetBottomControlsHeightPix() / dpi_scale(); |
| 844 } |
| 845 |
830 void ContentViewCoreImpl::AttachLayer(scoped_refptr<cc::Layer> layer) { | 846 void ContentViewCoreImpl::AttachLayer(scoped_refptr<cc::Layer> layer) { |
831 root_layer_->InsertChild(layer, 0); | 847 root_layer_->InsertChild(layer, 0); |
832 root_layer_->SetIsDrawable(false); | 848 root_layer_->SetIsDrawable(false); |
833 } | 849 } |
834 | 850 |
835 void ContentViewCoreImpl::RemoveLayer(scoped_refptr<cc::Layer> layer) { | 851 void ContentViewCoreImpl::RemoveLayer(scoped_refptr<cc::Layer> layer) { |
836 layer->RemoveFromParent(); | 852 layer->RemoveFromParent(); |
837 | 853 |
838 if (!root_layer_->children().size()) | 854 if (!root_layer_->children().size()) |
839 root_layer_->SetIsDrawable(true); | 855 root_layer_->SetIsDrawable(true); |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1581 return ScopedJavaLocalRef<jobject>(); | 1597 return ScopedJavaLocalRef<jobject>(); |
1582 | 1598 |
1583 return view->GetJavaObject(); | 1599 return view->GetJavaObject(); |
1584 } | 1600 } |
1585 | 1601 |
1586 bool RegisterContentViewCore(JNIEnv* env) { | 1602 bool RegisterContentViewCore(JNIEnv* env) { |
1587 return RegisterNativesImpl(env); | 1603 return RegisterNativesImpl(env); |
1588 } | 1604 } |
1589 | 1605 |
1590 } // namespace content | 1606 } // namespace content |
OLD | NEW |