[context menu] adjust anchor if window is drawn edge-to-edge AnchoredPopupWindow applies anchorRect assuming origin right below the window decor. The input touch point from ContextMenuParams are coordinates relative to the associated RenderView's origin, i.e. the space not including the window decor, tabstrip and toolbar. It also provides a vertical offset of height of tabstrip + toolbar which will be added to the touch point to compute the anchor rect. This is correct when edge-to-edge is false, e.g. when window decor is drawn independently from the tab strip (#tab-strip-layout-optimization is disabled). But edge-to-edge is true, i.e. window decor is tabstrip, the offset will cause the anchor rect to be lower than the true touch point by the height of tabstrip. See: Before (flag off): https://screenshot.googleplex.com/8CMJqYcpPpwBdW8 Before (flag on): https://screenshot.googleplex.com/5om8UfsZG4mM3QJ Therefore, when edge-to-edge is true, subtract from the offset the height of tabstrip = height of window decor. After (flag on): https://screenshot.googleplex.com/WCJ2GkgopWu44fQ After (flag off): https://screenshot.googleplex.com/4WqccMYgnXgZj3Z Bug: 400499940 Change-Id: Ic3c93901427aee2d246300b9ef76835d05d60a50 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6629901 Commit-Queue: Grace Cham <hscham@chromium.org> Reviewed-by: Sinan Sahin <sinansahin@google.com> Auto-Submit: Grace Cham <hscham@chromium.org> Reviewed-by: Wenyu Fu <wenyufu@chromium.org> Cr-Commit-Position: refs/heads/main@{#1477101}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.