New issue
Advanced search Search tips

Issue 793036 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

Not receive DM_POINTERHITTEST message on first tab

Project Member Reported by chaopeng@chromium.org, Dec 7 2017

Issue description

Direct Manipulation API for Windows Touchpad need DM_POINTERHITTEST as the lead message of the sequence. Demo: https://github.com/chaopeng/PTPDManipSample/

But we don't get DM_POINTERHITTEST for the first tab until a manual resize/hide-show, open url from omnibox or open a new tab.

No DM_POINTERHITTEST means we don't have chance to pass the pointer id to start Direct Manipulation. So in the first tab we don't have smooth fling, pinch zoom and overscroll navigation change.

Have tried following solutions:

1. Change message loop in MessagePumpForUI::DoRunLoop to a basic message loop. Can receive DM_POINTERHITTEST but chrome will hang.
2. Add Redraw, Show, SetWindowPos before or after Direct Manipulation enable. Still not receive DM_POINTERHITTEST.
3. Add work around as CommonSubprocessInit, https://cs.chromium.org/chromium/src/services/service_manager/embedder/main.cc?rcl=795e276929ac2972b8f9692a10ff8f8bc731f381&l=167 Still not receive DM_POINTERHITTEST.
 
Good news: I apply the Direct Manipulation CL to 51. And I can get the DM_POINTERHITTEST message. So I can do a bisect to figure out.
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 19 2018

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

commit f77fb4f7114017bd995d081a424b52e3d7d437d7
Author: chaopeng <chaopeng@chromium.org>
Date: Fri Jan 19 20:31:42 2018

Correct the z-order of Intermediate D3D Window after reparent

The scroll lagging issue and DM_POINTERHITTEST missing issue are caused by
"Intermediate D3D Window" being in front of "Chrome_RenderWidgetHostHWND"
when Chrome starts until a manual resize calls SetWindowPos and moves
"Chrome_RenderWidgetHostHWND" to the top.

In this patch, we move the "Intermediate D3D Window" to the bottom after it
reparents to root window.

Bug:  713907 ,  793036 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I9d847f5cfb57819ad1a7dfd54aa62932e2eca8c0
Reviewed-on: https://chromium-review.googlesource.com/867070
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530601}
[modify] https://crrev.com/f77fb4f7114017bd995d081a424b52e3d7d437d7/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/f77fb4f7114017bd995d081a424b52e3d7d437d7/ui/gfx/win/rendering_window_manager.cc

Status: Fixed (was: Assigned)
No Regression for 1 week.

Sign in to add a comment