Chromium Code Reviews| 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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 float dpi_scale, | 214 float dpi_scale, |
| 215 const JavaRef<jobject>& java_bridge_retained_object_set) | 215 const JavaRef<jobject>& java_bridge_retained_object_set) |
| 216 : WebContentsObserver(web_contents), | 216 : WebContentsObserver(web_contents), |
| 217 java_ref_(env, obj), | 217 java_ref_(env, obj), |
| 218 web_contents_(static_cast<WebContentsImpl*>(web_contents)), | 218 web_contents_(static_cast<WebContentsImpl*>(web_contents)), |
| 219 page_scale_(1), | 219 page_scale_(1), |
| 220 dpi_scale_(dpi_scale), | 220 dpi_scale_(dpi_scale), |
| 221 device_orientation_(0), | 221 device_orientation_(0), |
| 222 accessibility_enabled_(false) { | 222 accessibility_enabled_(false) { |
| 223 GetViewAndroid()->SetLayer(cc::Layer::Create()); | 223 GetViewAndroid()->SetLayer(cc::Layer::Create()); |
| 224 gfx::Size physical_size( | 224 GetViewAndroid()->UpdateLayerBounds(); |
|
boliu
2017/04/29 00:18:40
SetLayer should just do this automatically
Jinsuk Kim
2017/04/30 00:23:50
Done.
| |
| 225 Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj), | |
| 226 Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); | |
| 227 GetViewAndroid()->GetLayer()->SetBounds(physical_size); | |
| 228 | 225 |
| 229 // Currently, the only use case we have for overriding a user agent involves | 226 // Currently, the only use case we have for overriding a user agent involves |
| 230 // spoofing a desktop Linux user agent for "Request desktop site". | 227 // spoofing a desktop Linux user agent for "Request desktop site". |
| 231 // Automatically set it for all WebContents so that it is available when a | 228 // Automatically set it for all WebContents so that it is available when a |
| 232 // NavigationEntry requires the user agent to be overridden. | 229 // NavigationEntry requires the user agent to be overridden. |
| 233 const char kLinuxInfoStr[] = "X11; Linux x86_64"; | 230 const char kLinuxInfoStr[] = "X11; Linux x86_64"; |
| 234 std::string product = content::GetContentClient()->GetProduct(); | 231 std::string product = content::GetContentClient()->GetProduct(); |
| 235 std::string spoofed_ua = | 232 std::string spoofed_ua = |
| 236 BuildUserAgentFromOSAndProduct(kLinuxInfoStr, product); | 233 BuildUserAgentFromOSAndProduct(kLinuxInfoStr, product); |
| 237 web_contents->SetUserAgentOverride(spoofed_ua); | 234 web_contents->SetUserAgentOverride(spoofed_ua); |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 649 return Java_ContentViewCore_getContext(env, obj); | 646 return Java_ContentViewCore_getContext(env, obj); |
| 650 } | 647 } |
| 651 | 648 |
| 652 gfx::Size ContentViewCoreImpl::GetViewSize() const { | 649 gfx::Size ContentViewCoreImpl::GetViewSize() const { |
| 653 gfx::Size size = GetViewportSizeDip(); | 650 gfx::Size size = GetViewportSizeDip(); |
| 654 if (DoBrowserControlsShrinkBlinkSize()) | 651 if (DoBrowserControlsShrinkBlinkSize()) |
| 655 size.Enlarge(0, -GetTopControlsHeightDip() - GetBottomControlsHeightDip()); | 652 size.Enlarge(0, -GetTopControlsHeightDip() - GetBottomControlsHeightDip()); |
| 656 return size; | 653 return size; |
| 657 } | 654 } |
| 658 | 655 |
| 659 gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { | |
| 660 JNIEnv* env = AttachCurrentThread(); | |
| 661 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | |
| 662 if (j_obj.is_null()) | |
| 663 return gfx::Size(); | |
| 664 return gfx::Size( | |
| 665 Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj), | |
| 666 Java_ContentViewCore_getPhysicalBackingHeightPix(env, j_obj)); | |
| 667 } | |
| 668 | |
| 669 gfx::Size ContentViewCoreImpl::GetViewportSizePix() const { | 656 gfx::Size ContentViewCoreImpl::GetViewportSizePix() const { |
| 670 JNIEnv* env = AttachCurrentThread(); | 657 JNIEnv* env = AttachCurrentThread(); |
| 671 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); | 658 ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
| 672 if (j_obj.is_null()) | 659 if (j_obj.is_null()) |
| 673 return gfx::Size(); | 660 return gfx::Size(); |
| 674 return gfx::Size(Java_ContentViewCore_getViewportWidthPix(env, j_obj), | 661 return gfx::Size(Java_ContentViewCore_getViewportWidthPix(env, j_obj), |
| 675 Java_ContentViewCore_getViewportHeightPix(env, j_obj)); | 662 Java_ContentViewCore_getViewportHeightPix(env, j_obj)); |
| 676 } | 663 } |
| 677 | 664 |
| 678 int ContentViewCoreImpl::GetTopControlsHeightPix() const { | 665 int ContentViewCoreImpl::GetTopControlsHeightPix() const { |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1023 void ContentViewCoreImpl::RemoveJavascriptInterface( | 1010 void ContentViewCoreImpl::RemoveJavascriptInterface( |
| 1024 JNIEnv* env, | 1011 JNIEnv* env, |
| 1025 const JavaParamRef<jobject>& /* obj */, | 1012 const JavaParamRef<jobject>& /* obj */, |
| 1026 const JavaParamRef<jstring>& name) { | 1013 const JavaParamRef<jstring>& name) { |
| 1027 java_bridge_dispatcher_host_->RemoveNamedObject( | 1014 java_bridge_dispatcher_host_->RemoveNamedObject( |
| 1028 ConvertJavaStringToUTF8(env, name)); | 1015 ConvertJavaStringToUTF8(env, name)); |
| 1029 } | 1016 } |
| 1030 | 1017 |
| 1031 void ContentViewCoreImpl::WasResized(JNIEnv* env, | 1018 void ContentViewCoreImpl::WasResized(JNIEnv* env, |
| 1032 const JavaParamRef<jobject>& obj) { | 1019 const JavaParamRef<jobject>& obj) { |
| 1033 gfx::Size physical_size( | 1020 GetViewAndroid()->UpdateLayerBounds(); |
|
boliu
2017/04/29 00:18:40
this intuitively makes no sense, because now that
Jinsuk Kim
2017/04/30 00:23:49
It was added here: https://codereview.chromium.org
| |
| 1034 Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj), | |
| 1035 Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); | |
| 1036 GetViewAndroid()->GetLayer()->SetBounds(physical_size); | |
| 1037 | |
| 1038 SendScreenRectsAndResizeWidget(); | 1021 SendScreenRectsAndResizeWidget(); |
| 1039 } | 1022 } |
| 1040 | 1023 |
| 1041 void ContentViewCoreImpl::SetAccessibilityEnabled( | 1024 void ContentViewCoreImpl::SetAccessibilityEnabled( |
| 1042 JNIEnv* env, | 1025 JNIEnv* env, |
| 1043 const JavaParamRef<jobject>& obj, | 1026 const JavaParamRef<jobject>& obj, |
| 1044 bool enabled) { | 1027 bool enabled) { |
| 1045 SetAccessibilityEnabledInternal(enabled); | 1028 SetAccessibilityEnabledInternal(enabled); |
| 1046 } | 1029 } |
| 1047 | 1030 |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1275 return ScopedJavaLocalRef<jobject>(); | 1258 return ScopedJavaLocalRef<jobject>(); |
| 1276 | 1259 |
| 1277 return view->GetJavaObject(); | 1260 return view->GetJavaObject(); |
| 1278 } | 1261 } |
| 1279 | 1262 |
| 1280 bool RegisterContentViewCore(JNIEnv* env) { | 1263 bool RegisterContentViewCore(JNIEnv* env) { |
| 1281 return RegisterNativesImpl(env); | 1264 return RegisterNativesImpl(env); |
| 1282 } | 1265 } |
| 1283 | 1266 |
| 1284 } // namespace content | 1267 } // namespace content |
| OLD | NEW |