New issue
Advanced search Search tips

Issue 854109 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Video controls are pushed away from the page in Portrait mode

Reported by serp...@gmail.com, Jun 19 2018

Issue description

Example URL:
https://vimeo.com/1084537

Steps to reproduce the problem:
1. Go to https://vimeo.com/1084537
2. Press Play
3. Press Go to Fullscreen button
4. Look where are the controls, they are truncated or half way out of the screen.

Note: this is not-Vimeo specific but to all Portrait fullscreens.

What is the expected behavior?
Media controls should be visible on the page, not half-truncated.

What went wrong?
Possible wrongly calculated innerHeight ?

Did this work before? N/A 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes

Chrome version: 69.0.3462  Channel: canary
OS Version: 8.1.0
Flash Version: 

Contents of chrome://gpu: 
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Hardware accelerated
Skia Deferred Display List: Disabled
Skia Renderer: Disabled
Surface Synchronization: Disabled
Video Decode: Hardware accelerated
Viz Service Display Compositor: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_framebuffer_cmaa
disable_program_caching_for_transform_feedback
dont_disable_webgl_when_compositor_context_lost
force_cube_map_positive_x_allocation
max_copy_texture_chromium_size_1048576
max_msaa_sample_count_4
max_texture_size_limit_4096
scalarize_vec_and_mat_constructor_args
unbind_egl_context_to_flush_driver_caches
use_virtualized_gl_contexts
wake_up_gpu_before_drawing
Problems Detected
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
Non-virtual contexts on Qualcomm sometimes cause out-of-order frames: 289461
Applied Workarounds: use_virtualized_gl_contexts
The first draw operation from an idle state is slow: 309734
Applied Workarounds: wake_up_gpu_before_drawing
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
glFinish doesn't clear caches on Android: 509727
Applied Workarounds: unbind_egl_context_to_flush_driver_caches
Android Adreno crashes on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache growth on Adreno: 542478
Applied Workarounds: max_copy_texture_chromium_size_1048576
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Program binaries don't contain transform feedback varyings on Qualcomm GPUs: 658074
Applied Workarounds: disable_program_caching_for_transform_feedback
eglSwapBuffers intermittently fails on Android when app goes to background: 744678
Applied Workarounds: dont_disable_webgl_when_compositor_context_lost
Don't expose disjoint_timer_query extensions to WebGL: 808744
Limit MSAA to 4x on Android devices: 797243
Applied Workarounds: max_msaa_sample_count_4
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Surface synchronization has been disabled by Finch trial or command line.
Disabled Features: surface_synchronization
Viz service display compositor is not enabled by default.
Disabled Features: viz_display_compositor
Skia renderer is not used by default.
Disabled Features: skia_renderer
Skia deferred display list is not used by default.
Disabled Features: skia_deferred_display_list
Version Information
Data exported   2018-06-19T09:19:28.483Z
Chrome version  Chrome/69.0.3462.0
Operating system    Android 8.1.0
Software rendering list URL https://chromium.googlesource.com/chromium/src/+/41027c959446f06c55faea6c66cfa38d1d3adca6/gpu/config/software_rendering_list.json
Driver bug list URL https://chromium.googlesource.com/chromium/src/+/41027c959446f06c55faea6c66cfa38d1d3adca6/gpu/config/gpu_driver_bug_list.json
ANGLE commit id 3ec304dba28d
2D graphics backend Skia/69 5540528f81c0a1ad10b8086a1009b799717329f6-
Command Line    --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --force-dump-upload --disk-cache-size=20000000 --media-cache-size=20000000 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --enable-longpress-drag-selection --touch-selection-strategy=direction --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --enable-dom-distiller --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 55
In-process GPU  false
Passthrough Command Decoder false
Direct Composition  false
Supports overlays   false
Sandboxed   false
GPU0    VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 630] *ACTIVE*
Optimus false
AMD switchable  false
Driver vendor  
Driver version  283.0
Driver date
Pixel shader version    3.20
Vertex shader version   3.20
Max. MSAA samples   4
Machine model name  ONEPLUS A6003
Machine model version  
GL_VENDOR   Qualcomm
GL_RENDERER Adreno (TM) 630
GL_VERSION  OpenGL ES 3.2 V@283.0 (GIT@18fca9e, Ida6448821d) (Date:04/28/18)
GL_EXTENSIONS   GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers GL_QCOM_texture_foveated GL_QCOM_shader_framebuffer_fetch_noncoherent GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_EGL_image_array GL_NV_shader_noperspective_interpolation
Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Disabled WebGL Extensions   EXT_disjoint_timer_query EXT_disjoint_timer_query_webgl2
Window system binding vendor   
Window system binding version  
Window system binding extensions   
Direct rendering    Yes
Reset notification strategy 0x8252
GPU process crash count 0
Compositor Information
Tile Update Mode    One-copy
Partial Raster  Enabled
GpuMemoryBuffers Status
ATC Software only
ATCIA   Software only
DXT1    Software only
DXT5    Software only
ETC1    Software only
R_8 Software only
R_16    Software only
RG_88   Software only
BGR_565 Software only
RGBA_4444   Software only
RGBX_8888   GPU_READ, SCANOUT
RGBA_8888   GPU_READ, SCANOUT
BGRX_8888   Software only
BGRX_1010102    Software only
RGBX_1010102    Software only
BGRA_8888   Software only
RGBA_F16    Software only
YVU_420 Software only
YUV_420_BIPLANAR    Software only
UYVY_422    Software only
Display(s) Information
Info    Display[0] bounds=[0,0 412x869], workarea=[0,0 412x869], scale=2.625, external.
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component    8
Bits per pixel  24
Video Acceleration Information
Decode vp8  up to 3840x2160 pixels
Decode vp8  up to 3840x2160 pixels (encrypted)
Decode vp9 profile0 up to 3840x2160 pixels
Decode vp9 profile0 up to 3840x2160 pixels (encrypted)
Decode vp9 profile1 up to 3840x2160 pixels
Decode vp9 profile1 up to 3840x2160 pixels (encrypted)
Decode vp9 profile2 up to 3840x2160 pixels
Decode vp9 profile2 up to 3840x2160 pixels (encrypted)
Decode vp9 profile3 up to 3840x2160 pixels
Decode vp9 profile3 up to 3840x2160 pixels (encrypted)
Decode h264 baseline    up to 3840x2160 pixels
Decode h264 main    up to 3840x2160 pixels
Decode h264 extended    up to 3840x2160 pixels
Decode h264 high    up to 3840x2160 pixels
Decode h264 high 10 up to 3840x2160 pixels
Decode h264 high 4:2:2  up to 3840x2160 pixels
Decode h264 high 4:4:4 predictive   up to 3840x2160 pixels
Decode h264 scalable baseline   up to 3840x2160 pixels
Decode h264 scalable high   up to 3840x2160 pixels
Decode h264 stereo high up to 3840x2160 pixels
Decode h264 multiview high  up to 3840x2160 pixels
Decode hevc main    up to 3840x2160 pixels
Decode hevc main 10 up to 3840x2160 pixels
Encode vp8  up to 1280x720 pixels and/or 30.000 fps
Encode h264 baseline    up to 1280x720 pixels and/or 30.000 fps

Tested on OnePlus 6 - Android 8.1.0 device (stock rom)
 
fullscreentrunc.jpg
23.2 KB View Download
Labels: Needs-triage-Mobile
Cc: pnangunoori@chromium.org
Labels: Triaged-Mobile Needs-Feedback
Tested on Pixel 2 Android 8.1.0 using the latest Canary #69.0.3365.0 and stable #67.0.3396.87 and was not able to reproduce the issue on dailymotion.com and https://vimeo.com/1084537. Attached the screenshots for reference.

serphen@ -- Thanks for reporting this issue. Could you please confirm whether the issue is observed on latest Canary and share your device details on which the issue is reproduced.

Thanks!
854109.png
782 KB View Download

Comment 3 by serp...@gmail.com, Jun 20 2018

Yes just tested @ Canary 69.0.3466.0 (from Store), the issue is still present

Operating system Android 8.1.0
OnePlus 6, stock rom

Do you want me to bisect ?
op6.jpg
59.1 KB View Download
Project Member

Comment 4 by sheriffbot@chromium.org, Jun 20 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 5 by serp...@gmail.com, Jun 21 2018

Chrome Beta 68.0.3440.23 -> ok
and on the affected Canary, disabling Modern Design doesn't help (in case this was a layout issue but I think the top bar is same size anyway)

69.0.3457.0 nok
69.0.3451.0 nok
69.0.3450.2 ok
69.0.3449.0 ok
69.0.3447.0 ok

https://chromium.googlesource.com/chromium/src/+log/69.0.3450.2..69.0.3451.0?pretty=fuller&n=10000

Media changes in this commit (not sure if they are the cause):

steimel@chromium.org
3da026559a35a96de381e3a44cabfee364fae05b	
[Media Controls] Set overlay play button width/height dynamically

commit	70881e87e4f1026694a5be2cc9245be3b73d39ed	
[Media Controls] Update overflow menu sizing

Cc: steimel@chromium.org
Labels: TE-Hardware-Dependency
Tested on Oneplus 5 device Android 8.1.0 using latest Canary #69.0.3366.0 and was also not able to reproduce the issue. Adding the label 'TE-Hardware-Dependency' for the further triage, as reported device is not available in the inventory.

serphen@ -- Thanks for providing the bisect. CC'ing steimel@ from the CL provided by you.

steimel@ -- Could you please take a look into this issue from the bisect provided in the Comment #5.

Thanks!

Comment 7 by serp...@gmail.com, Jun 21 2018

Interesting info, the shift is exactly 30px:

In the buggy version, <body> has computed size of: 412x869
In the functioning version. <body> has computed size of 412x839

Tried disabling Modern Media Controls and it doesn't resolve the issue.
I suspect this is a viewport issue, not a media controls issue.

I'll ping you

Comment 8 by serp...@gmail.com, Jun 21 2018

Ok. I've got it, it's not a media controls issue, it's a Compositor View Holder issue.

This is the CL that introduced the issue,
https://chromium-review.googlesource.com/c/chromium/src/+/1074215
Owner: tedchoc@chromium.org


Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=519394

The issue comes from that line:
https://chromium-review.googlesource.com/c/chromium/src/+/1074215/6/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java#b210

--> setSize(getWebContents(), view, getWidthForViewport(), getHeightForViewport());
getHeightForViewport returns a cached version of mCacheRect

Changing the line to -> setSize(getWebContents(), view, view.getWidth(), view.getHeight());
resolves the issue
(don't forget the fix the runnable mSystemUiFullscreenResizeRunnable then)


Comment 9 by serp...@gmail.com, Jun 21 2018

Possible interested CC: mlamouri@chromium.org
Cc: mlamouri@chromium.org
Components: -Internals>Media Blink>Media>Controls
Components: -Blink>Media>Controls UI>Browser
Labels: -Type-Bug Type-Bug-Regression
Owner: tedc...@chromium.org
Status: Assigned (was: Unconfirmed)
Hmm...that actually seems like an OS bug.  getWindowVisibleDisplayFrame should be returning the visible draw area, but is returning something taller than the screen.  That is prone to breaking all sorts of things.

We could likely work around this in that particular code area, but still likely something to break any other consumer of that api.
Oh, the OnePlus 6 has a notch right?  I wonder if that is the root cause with this.

Comment 14 by serp...@gmail.com, Jun 21 2018

Yes it has. I can enable or disable the notch hiding feature and try.
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68497996df4bde8b8ee71857c9f160657279b5a8

commit 68497996df4bde8b8ee71857c9f160657279b5a8
Author: Ted Choc <tedchoc@google.com>
Date: Thu Jun 21 22:54:15 2018

Fix compositor sizing of OnePlus in fullscreen mode.

BUG= 854109 

Change-Id: Iac8a8b5c947d890a17b187f1cded75332b3dba27
Reviewed-on: https://chromium-review.googlesource.com/1110517
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569395}
[modify] https://crrev.com/68497996df4bde8b8ee71857c9f160657279b5a8/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java

Status: Fixed (was: Assigned)
I landed a fix that puts an upper bounds on the size, so this should address the issue, but I'd still be curious if disabling the notch would fix this too.  Hopefully it will get better with the newer Android P apis for better notch handling.

Sign in to add a comment