New issue
Advanced search Search tips

Issue 841551 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Sticky hyperlink not handled correctly on blink side

Project Member Reported by yigu@chromium.org, May 9 2018

Issue description

See http://output.jsbin.com/sajawud
The position of the link is not correct. Note that there is no cc involved.

Bisect found the following range: https://chromium.googlesource.com/chromium/src/+log/a0ec88d41d7d073a49e41255f1c20bb7fccb5302..6030ae0eb891f76ca0646bdca08ea6b04898f516 

flackr@, could you please take a look? I don't quite follow the change you made.
 

Comment 1 by yigu@chromium.org, May 9 2018

It's better to open the test page on low dpi devices because there is a bug on high dpi devices ( issue 840478 ) right now which affects the result.

Comment 2 by yigu@chromium.org, May 10 2018

Cc: flackr@chromium.org
 Issue 841558  has been merged into this issue.

Comment 3 by yigu@chromium.org, May 10 2018

Cc: -yigu@chromium.org chrishtr@chromium.org
Owner: yigu@chromium.org
Status: Started (was: Assigned)

Comment 4 by yigu@chromium.org, May 10 2018

Cc: smcgruer@chromium.org yigu@chromium.org
 Issue 840478  has been merged into this issue.

Comment 5 by yigu@chromium.org, May 10 2018

Cc: -yigu@chromium.org
Labels: ReleaseBlock-Stable Hotlist-Polish M-68
See crrev.com/c/1054488 for proposed fix.

Project Member

Comment 6 by sheriffbot@chromium.org, May 14 2018

This issue is marked as a release blocker with no OS labels associated. Please add an appropriate OS label.

All release blocking issues should have OS labels associated to it, so that the issue can tracked and promptly verified, once it gets fixed.

Thanks for your time! To disable nags, add the Disable-Nags label.

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

Comment 7 by yigu@chromium.org, May 14 2018

Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 4 2018

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

commit d5270f6e22964848928f2f6a6d2263d012186e24
Author: Yi Gu <yigu@chromium.org>
Date: Mon Jun 04 22:40:02 2018

Compute correct sticky box constraints within scrollable containers

Currently calculating the skipped offset between sticky and its
containing block assumes that the latter is not scrollable. However,
when it is we should ignore the scroll offset from the container
otherwise scrolling the container would cause the sticky offset
incorrectly double accumulated.

Bug:  841551 
Change-Id: Ib49aaa74808847dcf6fce7dc0db9ac4d2de06c64
Reviewed-on: https://chromium-review.googlesource.com/1054488
Commit-Queue: Yi Gu <yigu@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564276}
[add] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/WebKit/LayoutTests/external/wpt/css/css-position/position-sticky-hyperlink-ref.html
[add] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/WebKit/LayoutTests/external/wpt/css/css-position/position-sticky-hyperlink.html
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_box_model_object.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_box_model_object_test.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_inline.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_inline.h
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_table_cell.cc
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/layout_table_cell.h
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/map_coordinates_flags.h
[modify] https://crrev.com/d5270f6e22964848928f2f6a6d2263d012186e24/third_party/blink/renderer/core/layout/map_coordinates_test.cc

Comment 9 by yigu@chromium.org, Jun 5 2018

Labels: Merge-Request-68

Comment 10 by yigu@chromium.org, Jun 5 2018

position : sticky has stopped working since https://chromium.googlesource.com/chromium/src/+/b087bb812734db76b31de8c6e2efd62d1b0a15a7. That patch exposed an existing bug due to incorrect computation of sticky box constraints within scrollable containers. The fix has been landed via #8.

Another test case just FYI: https://developer.mozilla.org/en-US/docs/Web/CSS/position. Click "position: sticky" and scroll the panel on the right.
Project Member

Comment 11 by sheriffbot@chromium.org, Jun 6 2018

Labels: -Merge-Request-68 Hotlist-Merge-Approved Merge-Approved-68
Your change meets the bar and is auto-approved for M68. Please go ahead and merge the CL to branch 3440 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

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

Comment 12 by bugdroid1@chromium.org, Jun 6 2018

Labels: -merge-approved-68 merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46de48d287c6eaf2f811b47312e3f2f0d9532e01

commit 46de48d287c6eaf2f811b47312e3f2f0d9532e01
Author: Yi Gu <yigu@chromium.org>
Date: Wed Jun 06 13:29:23 2018

Compute correct sticky box constraints within scrollable containers

Currently calculating the skipped offset between sticky and its
containing block assumes that the latter is not scrollable. However,
when it is we should ignore the scroll offset from the container
otherwise scrolling the container would cause the sticky offset
incorrectly double accumulated.

Bug:  841551 
Change-Id: Ib49aaa74808847dcf6fce7dc0db9ac4d2de06c64
Reviewed-on: https://chromium-review.googlesource.com/1054488
Commit-Queue: Yi Gu <yigu@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#564276}(cherry picked from commit d5270f6e22964848928f2f6a6d2263d012186e24)
Reviewed-on: https://chromium-review.googlesource.com/1087333
Reviewed-by: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#209}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[add] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/WebKit/LayoutTests/external/wpt/css/css-position/position-sticky-hyperlink-ref.html
[add] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/WebKit/LayoutTests/external/wpt/css/css-position/position-sticky-hyperlink.html
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_box_model_object.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_box_model_object_test.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_inline.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_inline.h
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_table_cell.cc
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/layout_table_cell.h
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/map_coordinates_flags.h
[modify] https://crrev.com/46de48d287c6eaf2f811b47312e3f2f0d9532e01/third_party/blink/renderer/core/layout/map_coordinates_test.cc

Comment 13 by yigu@chromium.org, Jun 6 2018

Status: Fixed (was: Started)
Labels: TE-Verified-M68 TE-Verified-68.0.3440.17
Able to reproduce the issue on Mac 10.13.3 using chrome build without fix.

Verified the fix on Mac 10.13.3, Win-10 and Ubuntu 17.10 using Chrome beta version #68.0.3440.17 as per the merged issue id: 841558 in comment #2.
Attaching screen cast for reference.
Observed that clicking a sticky hyperlink after scroll navigated to the new page.
Hence, the fix is working as expected. 
Adding the verified labels.

Thanks...!!
841551.mp4
166 KB View Download

Comment 15 by yigu@chromium.org, Jun 12 2018

Cc: yigu@chromium.org
 Issue 851832  has been merged into this issue.

Comment 16 by yigu@chromium.org, Jun 26 2018

Components: Internals>Compositing

Comment 17 by yigu@chromium.org, Jun 26 2018

Components: -Internals>Compositing Internals>Compositing>Scroll
Cc: majidvp@chromium.org
 Issue 856448  has been merged into this issue.

Sign in to add a comment