| Index: content/browser/android/content_view_core_impl.cc
|
| diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc
|
| index 7854c3e44ecb2dd4432142a395239ddef0b483d0..9913e63635e07cf48fe0b3205b1212f4c63900af 100644
|
| --- a/content/browser/android/content_view_core_impl.cc
|
| +++ b/content/browser/android/content_view_core_impl.cc
|
| @@ -209,13 +209,14 @@ ContentViewCoreImpl::ContentViewCoreImpl(
|
| WebContents* web_contents,
|
| const JavaRef<jobject>& view_android_delegate,
|
| ui::WindowAndroid* window_android,
|
| + float dpi_scale,
|
| const JavaRef<jobject>& java_bridge_retained_object_set)
|
| : WebContentsObserver(web_contents),
|
| java_ref_(env, obj),
|
| view_(view_android_delegate),
|
| web_contents_(static_cast<WebContentsImpl*>(web_contents)),
|
| page_scale_(1),
|
| - dpi_scale_(ui::GetScaleFactorForNativeView(&view_)),
|
| + dpi_scale_(dpi_scale),
|
| device_orientation_(0),
|
| accessibility_enabled_(false) {
|
| CHECK(web_contents) <<
|
| @@ -803,6 +804,15 @@ float ContentViewCoreImpl::GetBottomControlsHeightDip() const {
|
| return GetBottomControlsHeightPix() / dpi_scale();
|
| }
|
|
|
| +void ContentViewCoreImpl::SendScreenRectsAndResizeWidget() {
|
| + RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid();
|
| + if (view) {
|
| + // |SendScreenRects()| indirectly calls GetViewSize() that asks Java layer.
|
| + web_contents_->SendScreenRects();
|
| + view->WasResized();
|
| + }
|
| +}
|
| +
|
| void ContentViewCoreImpl::MoveRangeSelectionExtent(const gfx::PointF& extent) {
|
| if (!web_contents_)
|
| return;
|
| @@ -868,6 +878,16 @@ void ContentViewCoreImpl::SetFocus(JNIEnv* env,
|
| SetFocusInternal(focused);
|
| }
|
|
|
| +void ContentViewCoreImpl::SetDIPScale(JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj,
|
| + jfloat dpi_scale) {
|
| + if (dpi_scale_ == dpi_scale)
|
| + return;
|
| +
|
| + dpi_scale_ = dpi_scale;
|
| + SendScreenRectsAndResizeWidget();
|
| +}
|
| +
|
| void ContentViewCoreImpl::SetFocusInternal(bool focused) {
|
| if (!GetRenderWidgetHostViewAndroid())
|
| return;
|
| @@ -1236,16 +1256,12 @@ void ContentViewCoreImpl::RemoveJavascriptInterface(
|
|
|
| void ContentViewCoreImpl::WasResized(JNIEnv* env,
|
| const JavaParamRef<jobject>& obj) {
|
| - RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid();
|
| gfx::Size physical_size(
|
| Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj),
|
| Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj));
|
| view_.GetLayer()->SetBounds(physical_size);
|
|
|
| - if (view) {
|
| - web_contents_->SendScreenRects();
|
| - view->WasResized();
|
| - }
|
| + SendScreenRectsAndResizeWidget();
|
| }
|
|
|
| long ContentViewCoreImpl::GetNativeImeAdapter(
|
| @@ -1555,11 +1571,12 @@ jlong Init(JNIEnv* env,
|
| const JavaParamRef<jobject>& web_contents,
|
| const JavaParamRef<jobject>& view_android_delegate,
|
| jlong window_android,
|
| + jfloat dipScale,
|
| const JavaParamRef<jobject>& retained_objects_set) {
|
| ContentViewCoreImpl* view = new ContentViewCoreImpl(
|
| env, obj, WebContents::FromJavaWebContents(web_contents),
|
| view_android_delegate,
|
| - reinterpret_cast<ui::WindowAndroid*>(window_android),
|
| + reinterpret_cast<ui::WindowAndroid*>(window_android), dipScale,
|
| retained_objects_set);
|
| return reinterpret_cast<intptr_t>(view);
|
| }
|
|
|